Instrutor: Para que a computação
em nuvem obtenha a economia de custos e a eficiência
pretendidas, ela depende muito da virtualização.
Agora, com o uso da virtualização,
vários servidores lógicos podem ser colocados
em um único servidor físico.
Isso, por sua vez, reduz a quantidade física de espaço, energia
e resfriamento necessários dentro de nossos data centers.
Além disso, com o uso da virtualização, podemos
atingir níveis mais altos de disponibilidade ao ativar servidores
virtuais adicionais sempre que precisarmos deles.
Essa capacidade de provisionar dinamicamente
os recursos de memória e CPU é um dos principais
benefícios da computação em nuvem.
Embora a computação em nuvem ofereça muitos
benefícios diferentes, ainda há vários problemas
de segurança que precisam ser considerados.
A maioria dos mesmos problemas de
segurança que temos com servidores
físicos também é transferida para o ambiente de nuvem.
Muitas vezes, os executivos pensam que a migração para
a nuvem resolverá todos os seus
problemas, mas esse nunca é o caso.
Ao usar a virtualização, um ou mais servidores lógicos
residem em um único servidor físico.
Para isso, usamos peças especializadas de software conhecidas
como hipervisor.
O hipervisor controla a distribuição
de todos os recursos, como o processador, a memória
e a disponibilidade do disco rígido.
Essencialmente, o hipervisor emula uma máquina física para
que o sistema operacional
e todos os seus aplicativos nem percebam
que estão operando em um ambiente virtual.
Agora, os hipervisores são divididos em duas categorias:
hipervisores do tipo um ou bare metal e hipervisores
do tipo dois ou hospedados.
Agora, ao comparar os tipos de hipervisor
bare metal com os hospedados, a única diferença
principal do ponto de vista da segurança é que, com os tipos hospedados,
precisamos garantir que o sistema operacional
subjacente também esteja devidamente
protegido e corrigido.
Em termos de desempenho, o bare
metal será mais rápido e mais eficiente do que
sua contraparte hospedada.
Outra opção de virtualização que temos é conhecida
como virtualização baseada em contêiner, ou conteinerização.
Com esse tipo, um hipervisor não é utilizado; em vez disso, cada contêiner
depende de um sistema operacional comum como base para cada um desses contêineres.
Embora cada contêiner compartilhe o mesmo sistema operacional subjacente, cada
contêiner pode ter seus próprios binários,
bibliotecas e aplicativos que podem ser personalizados de acordo com suas necessidades.
Atualmente, a virtualização baseada em contêineres
é usada quase exclusivamente com o Linux como
sistema operacional subjacente.
A virtualização baseada em contêineres também usa menos recursos
do que uma virtualização do tipo um ou do tipo dois,
pois não requer sua própria cópia do
sistema operacional para cada contêiner individual.
Muitos provedores de serviços em nuvem levaram a virtualização
um passo adiante com a infraestrutura hiperconvergente.
Isso permite que o provedor integre totalmente
o armazenamento, as redes e os servidores, sem
precisar fazer alterações no hardware.
Em vez disso, eles contam com software
e tecnologia de virtualização
para realizar todas as integrações.
Podemos gerenciar tudo isso a partir de uma única interface
ou de um dispositivo, sem precisar nos preocupar
com todas as soluções subjacentes dos fornecedores.
A virtualização de aplicativos é outro tipo de
virtualização comumente usado para
criar segurança adicional para nosso host subjacente.
A virtualização de aplicativos é uma tecnologia de software
que encapsula programas de computador
do sistema operacional subjacente
no qual estão sendo executados.
Um aplicativo totalmente virtualizado
nem sequer é instalado em um sentido tradicional,
embora ainda seja executado como se fosse.
Com a virtualização de aplicativos, você
pode executar aplicativos legados que foram projetados
para um sistema operacional em fim de vida útil, como o Windows
XP ou o Windows 7, sobre um sistema operacional mais moderno, ou pode até
mesmo executar software de plataforma cruzada, como aplicativos
Android em uma máquina Windows.
Muitos provedores de nuvem também oferecem VDI,
ou infraestrutura de desktop virtual.
Agora, a VDI permite que um provedor de nuvem ofereça um sistema
operacional de desktop completo aos seus usuários finais
a partir de um servidor centralizado.
Há muitos benefícios de segurança ao usar essa abordagem.
Por exemplo, uma organização com a qual trabalhei
criava uma nova imagem de desktop virtual para cada usuário
quando ele se conectava pela manhã.
Essa área de trabalho não era persistente, portanto,
mesmo que fosse explorada por um invasor, ela seria destruída
assim que o usuário fizesse logoff ou à meia-noite
de cada dia, o que efetivamente destruía
a capacidade do invasor de permanecer persistente
na área de trabalho do usuário final, mesmo que o malware
fosse instalado.
Outro ótimo uso da virtualização é a criação de uma área restrita.
Agora, uma sandbox permite
criar um ambiente isolado no qual é possível analisar
vírus, worms, cavalos de Troia e outros tipos de malware
em um sistema operacional convidado.
Agora, como ele está nessa sandbox virtual
localizada dentro de uma máquina virtual isolada, você pode
garantir que não conseguirá infectar seu próprio
computador que o hospeda como o sistema operacional do host subjacente
ou o hipervisor subjacente.
Quando você trabalha como analista de segurança
cibernética, usa muito as sandboxes para fazer análise de malware,
especialmente quando faz análise dinâmica de malware,
em que pega um malware, executa-o e identifica
o que está acontecendo quando esse malware é executado nesse sistema operacional
convidado específico.
Outro bom uso das máquinas virtuais
é a virtualização entre plataformas.
Por exemplo, eu uso um MacBook Pro como minha máquina principal.
Portanto, se eu quisesse testar alguns aplicativos
de software para diferentes sistemas
operacionais, poderia pegar novas máquinas
para cada um desses sistemas operacionais,
como ter um laptop para Windows, um laptop
para Linux e um laptop para Mac.
Mas se eu usar a virtualização, posso
fazer a virtualização entre plataformas usando
um sistema hospedado no meu MacBook Pro com um software
como VMware, Parallels ou VirtualBox
para poder instalar esses sistemas operacionais convidados sobre o
meu ambiente Mac OS existente.
Isso permitirá que eu teste todos
os softwares, independentemente do sistema
operacional necessário, e veja
como eles vão interagir.
Isso é ótimo, especialmente para desenvolvedores
da Web, pois quero ter certeza de que, como
desenvolvedor da Web, quando crio meu site, ele funciona
no Windows 10, no Windows 11, no Mac, em um Chromebook, em um iPhone, em um dispositivo
Android ou em qualquer outro lugar, e poder
testar tudo isso em uma única máquina
usando a virtualização é um ótimo recurso para nós,
desenvolvedores.
Outro uso excelente da virtualização é o treinamento.
Você pode criar ambientes de laboratório configurados
para que as pessoas possam praticar
em um sistema operacional ativo usando essas máquinas virtuais.
Por exemplo, quando estiver estudando
para obter as várias certificações da CompTIA, se comprar
o curso diontraining. com, eles vêm com laboratórios
práticos integrados.
Esses laboratórios permitem que você faça login em nosso
ambiente baseado em nuvem e possa executar ações
em sistemas Linux, sistemas Windows 10, sistemas
Windows Server e outros de maneira segura, e isso não
afetará nosso ambiente de produção, pois
tudo está isolado nessa área de treinamento ou nessa
sandbox de treinamento.
Outra vantagem de usar máquinas virtuais
em um ambiente de treinamento ou laboratório
é que você pode tirar instantâneos em vários pontos
e retomá-los exatamente no ponto em que estavam.
Por exemplo, quando eu costumava ministrar meus cursos pessoalmente,
eu criava máquinas quebradas com o Windows 7 e apresentava problemas
diferentes para meus alunos
A+ solucionarem.
Eu lhes daria a máquina virtual, a ligaria, restauraria
a partir do último ponto de segurança, que foi onde
eu a quebrei, e então pediria que
tentassem descobrir o que havia de
errado com ela e como poderiam consertá-la.
Essa é uma ótima maneira de usar máquinas virtuais
em seu treinamento.
E, à medida que continuar seus estudos e começar a aprender
sobre Linux, Windows, ambientes de servidor, Mac OS e
outras coisas do gênero, você poderá ativar diferentes
máquinas virtuais que contêm esses
sistemas operacionais convidados e praticar
suas habilidades em um ambiente seguro e protegido.
A última coisa que precisamos
discutir é o conceito de emulação,
pois muitas pessoas confundem emulação com virtualização.
Agora, a emulação envolve o uso de um sistema
que imita outro sistema.
Com a virtualização, uma instância virtual de
uma determinada peça de hardware está sendo criada e usada.
Portanto, na realidade, você está usando uma nova máquina física
que é representada por um software.
No entanto, com um emulador, um software
está traduzindo o ambiente em tempo real para
fingir que se trata de outra coisa.
Por exemplo, se eu quiser jogar um
jogo antigo do Super Nintendo no meu MacBook
Pro, posso baixar um emulador do Super Nintendo, como o OpenEmu,
e ele traduzirá o código do jogo em tempo
real para instruções que o meu Mac possa entender.
Com a virtualização, o software que está sendo
executado pode acessar fisicamente o hardware da máquina,
o que o torna muito, muito mais rápido do que usar um emulador.
Então, quando você pode querer usar um emulador
em vez da virtualização?
Bem, se você precisar executar um sistema
operacional destinado a outro tipo de hardware,
como um Super Nintendo em uma máquina Mac ou Windows, será necessário
usar um emulador.
Se você quiser executar um software
destinado a um sistema operacional diferente, como um
Android projetado para ser executado em um processador
ARM, mas você tem um processador Intel e um sistema
operacional Windows, então, novamente,
os emuladores serão a escolha certa para você, porque você está lidando
com um hardware subjacente diferente.
Por outro lado, se você precisar de alta velocidade
e melhor desempenho, deverá
usar uma solução de virtualização.
No entanto, lembre-se de que, com a virtualização,
você está limitado a executar software codificado
para o hardware subjacente específico do seu processador.
Normalmente, a maioria de nós está usando processadores baseados em x86 ou x64, portanto, você está
executando Windows, Linux ou Mac, ou qualquer um desses
três sistemas operacionais nesses tipos de sistemas
com virtualização funcionará muito bem.
Mas se você estiver tentando executar um sistema
operacional projetado para um processador
ARM, ele não funcionará com a virtualização, será
necessário usar um emulador.
Em geral, você usará a virtualização na maior parte
do tempo em vez de um emulador, porque ela
é mais rápida e mais eficiente e a
maioria das coisas é escrita para
funcionar em um processador x86 ou x64.
Mas, novamente, se você precisar executar
algo para um processador diferente,
terá que usar um emulador.