Virtualização de sistemas: uma miríade de possibilidades

A evolução da virtualização de sistemas mudou o paradigma de gestão de infraestruturas de datacenters e o desenvolvimento e manutenção de software.

A virtualização de sistemas representa a capacidade de criar múltiplos ambientes ou instâncias (virtuais) sobre o mesmo recurso de hardware (físico), aumentando a produtividade e eficiência tanto em cenários empresariais ou pessoais, assim como em ambientes cloud ou on-prem.

É um conceito que se pode aplicar tanto em recursos como processamento, armazenamento ou comunicações de rede, como dados, aplicações e postos de trabalho.

A primeira memória que guardo sobre este conceito remonta aos primeiros anos deste milénio (talvez 2002), na altura em que foram disponibilizadas publicamente as primeiras versões do VMWare Workstation. Desde então, a virtualização tem evoluído de uma forma significativa, criando possibilidades na gestão de infraestruturas de datacenter e alterando o paradigma no desenvolvimento e manutenção de software e serviços.

Virtualização de sistemas
A virtualização tem evoluído de uma forma significativa, criando possibilidades na gestão de infraestruturas de datacenter e alterando o paradigma no desenvolvimento e manutenção de software e serviços.

Virtualização de sistemas: a luta de titãs

Apesar dos vários projetos anteriores (IBM, Macintosh, Connectix entre outras), a viragem de milénio trouxe imensas novidades no domínio da virtualização de sistemas, tornando a VMWARE um dos principais players de mercado.

A Microsoft, com a aquisição da linha de produtos Virtual PC e Virtual Server da Connectix acompanhou esta tendência, disponibilizando em 2008 o HyperV (que acompanhava o Windows Server). Ao mesmo tempo foram aparecendo soluções opensource como o Virtuozzo (em 2005), KVM (em 2007) ou Docker (em 2013), todas elas com abordagens inovadoras e diferenciadoras.

Muitos anos depois e após uma série de desenvolvimento e aquisições por parte dos gigantes tecnológicos, chegamos a 2024 com várias soluções de virtualização, para dar resposta a todos os requisitos, cenários e orçamentos.

A Microsoft decidiu descontinuar o HyperV apostando tudo no Azure Stack HCI, um produto híbrido que permite integração de recursos on-prem e cloud Azure para todo o tipo de serviços do ecossistema Microsoft.

A AWS (Amazon Web Services, criada em 2006) e a Google (Google Computing Engine, lançada em 2012) desenvolveram os seus serviços cloud com tecnologias KVM tendo-se tornado líderes (juntamente com a Microsoft) em IaaS (infraestruras cloud como serviço) e PaaS (Platformas como Serviço).

Outras soluções como o Nutanix Cloud Platform, Citrix Hypervisor, Red Hat Virtualization, Proxmox, Oracle VM Server, Virtuozzo Hybrid Server, Xen Project, QEMU continuam a ser apresentados como alternativas aos principais players, cada um com as suas mais valias e benefícios.

De entre todas estas soluções, coloco grande expectativa no portfólio da Canonical, empresa liderada por Mark Shuttleworth, que desenvolve e dá suporte ao Ubuntu (Sistema Operativo, servidor e posto de trabalho), participa no projeto Ceph (Storage), desenvolve o Multipass (Virtualização), LXD (gestão unificada de máquinas virtuais e containers), Juju (motor de orquestração), MaaS (Metal as a service), Data Fabric (integração e processamento de dados) e MicroK8s (Kubernetes).

Tendo em conta a parceria que a Canonical fez com a Microsoft em 2016 (que permitiu a inclusão de uma bash no Windows 10), ou sua presença no evento Ubuntu Summit 2023 (realizado em Novembro de 2023), poderemos estar na presença de uma viragem histórica na Canonical (empresa com sede em Londres e), que nos últimos anos (desde 2018) tem considerado a hipótese de entrar na bolsa com uma oferta publica inicial (IPO), tendo como principais interessados empresas como a Netflix, eBay, Walmart, AT&T ou Telekom que escolheram as plataformas Canonical para desenvolver os seus serviços.

virtualização-de-sistemas
O hipervisor permite criar uma camada intermédia entre o hardware físico (designados por hosts) e as máquinas virtuais (intitulados normalmente por guests), gerindo os recursos físicos que são partilhados pelas cargas virtuais.

Do hipervisor aos kubernetes

Independentemente das empresas que desenvolvem cada uma das tecnologias, a verdade é que a virtualização de sistemas foi um conceito que mudou completamente o paradigma de gestão de datacenters, desenvolvimento e manutenção de software.

O hipervisor permite criar uma camada intermédia entre o hardware físico (designados por hosts) e as máquinas virtuais (intitulados normalmente por guests), gerindo os recursos físicos que são partilhados pelas cargas virtuais.

As tipologias de hipervisor são geralmente do tipo 1 (também designado Bare Metal), em que o hipervisor interage diretamente com os recursos de hardware não sendo necessário qualquer sistema operativo adicional (ex. Proxmox ou KVM), ou do tipo 2 em que o hipervisor é executado como se fosse uma aplicação, sobre o sistema operativo existente (ex. VMWare Player, Oracle VM for x86).

Esta camada intermédia entre o hardware do host e o sistema operativo do guest permitiu otimizar muitas das tarefas do sysadmin (administradores de sistemas), nomeadamente nos processos de instalação, validação e manutenção.

Tirando partido de templates (modelos pré-configurados) passou a ser possível fazer o deploy de servidores virtuais em poucos minutos. Usando snapshots (registos instantâneos) ou clonagem passou a ser possível testar updates ou repor versões antigas sempre que necessário. Recorrendo às funcionalidades de live migration (transferência de cargas virtuais entre hosts) passou a ser possível desligar componentes da infraestrutura (ex. servidores físicos) sem qualquer donwtime nas cargas virtuais. Estes são apenas alguns exemplos das vantagens da virtualização de sistemas operativos.

Por outro lado, o aparecimento de containers (ex. Docker) permite isolar a componente aplicacional, virtualizando apenas esta camada e restantes dependências ou configurações, criando imagens muito mais leves e portáveis.

Esta plataforma de contentorização permite empacotar e isolar aplicações em containers, que são leves e partilham o kernel do sistema operativo do host. Difere de um hipervisor comum porque não cria máquinas virtuais ou sistemas operativos diferenciados. Em vez disso, os containers Docker utilizam os recursos do host (máquina física) e disponibilizam uma forma eficiente de instalar e executar aplicações sem haver preocupações com dependências ou bloquear com problemas de compatibilidade.

Embora o Docker e ambos os tipos de hipervisores (tipo 1 e 2) forneçam uma camada de isolamento, a tecnologia e a abordagem subjacentes são diferentes. Os hipervisores criam máquinas virtuais que simulam hardware e executam seus próprios sistemas operativos. Os contentores Docker, por outro lado, compartilham o kernel do sistema operativo do host e fornecem uma solução mais leve e eficiente porque virtualizam apenas os recursos necessários para a execução das aplicações.

O sucesso que o docker teve na comunidade tecnológica levou ao aparecimento de novas tecnologias, como é o caso dos kubernetes, que são sistemas de orquestração de contentores e que permitem a implementação, automação, dimensionamento e gestão desse ecossistema.

Atualmente mantido pela Cloud Native Computing Foundation (resultado da parceria da Google com a Linux Foundation), esta tecnologia (comummente designada k8s) assenta no conceito de que o gestor deve definir os parâmetros, requisitos e limitações, devendo o cluster de kubernetes garantir o cumprimento desses objetivos da forma mais eficiente.

As principais componentes são as “worker machines” intitulados como “nodes”, que executam as aplicações contentorizadas. Os “worker nodes” alojam os “pods” que são um género de cabine onde as componentes das aplicações são executadas.
Como referido, o gestor do cluster define o número de “worker machines” assim como os parâmetros de escalonamento pretendido, sendo responsabilidade do “control plane” gerir a forma como o cluster distribui a carga pelos recursos de processamento. Este “control plane” tem ainda componentes como o apiserver (que expõe APIs no frontend), o etcd (que regista informação sobre o cluster), o scheduler, controller-manager , entre outros.

Um dos recursos mais interessantes dos kubernetes são os “namespaces” permitindo criar divisões lógicas entre ambientes (como por exemplo a separação entre ambientes de produção e testes). Outros recursos ou funcionalidades como os “services”, os “volumes”, o “secrets” e os “helm charts” garantem uma solução global para ambientes de desenvolvimento e operação de tecnologias e sistemas de informação.

Será 2024 um ano de novidades no que respeita a tecnologias de virtualização?

O que virá a seguir?

As instituições, empresas, fundações e demais players nestes domínios têm apresentado ao mercado (a um ritmo alucinante) atualizações constantes, novos produtos e serviços, exigindo uma atualização e especialização constante aos profissionais do setor.

Com a recente aquisição da VMWARE pela Broadcom (em finais de 2023, por $69 Billion), são esperadas reações por parte de outros players, mas também por parte de grandes clientes da VMWARE (alguns dos quais já procuram alternativas). Manterá a VMWARE (Agora integrada na Broadcom) a sua posição de líder no quadrante mágico da Gartnet? Será 2024 um ano de novidades no que respeita a tecnologias de virtualização? Haverá novos líderes no setor a curto prazo? Estas são algumas das questões que se colocam.


Carlos Domingues

Coordenador de TI e Segurança da Informação