Neste post, abordaremos a primeira pergunta: Como as máquinas virtuais (VMs) são diferentes dos contentores. O que são máquinas virtuais (VMs)? Historicamente, à medida que a capacidade e a potência de processamento do servidor aumentaram, os aplicativos bare metal não conseguiram explorar a nova abundância de recursos. Assim, as VMs nasceram, projetadas executando software em cima de servidores físicos para emular um determinado sistema de hardware. Um hypervisor, ou um monitor de máquina virtual, é software, firmware ou hardware que cria e executa VMs. É o que fica entre o hardware e a máquina virtual e é necessário virtualizar o servidor.
Dentro de cada máquina virtual executa um sistema operacional convidado exclusivo. As VMs com diferentes sistemas operacionais podem ser executadas no mesmo servidor físico, uma VM UNIX pode ficar ao lado de uma VM Linux, etc. Cada VM tem seus próprios binários, bibliotecas e aplicativos que atende, e a VM pode ter muitos gigabytes de tamanho.
A virtualização de servidores proporcionou uma variedade de benefícios, sendo um dos maiores a capacidade de consolidar aplicativos em um único sistema. Longe foram os dias de um único aplicativo em execução em um único servidor. A virtualização aumentou a economia de custos por meio da redução de espaço físico, provisionamento de servidor mais rápido e recuperação de desastres (DR) aprimorada, porque o hardware do local de DR não precisava mais espelhar o data center principal.
O desenvolvimento também se beneficiou dessa consolidação física, pois uma maior utilização em servidores maiores e mais rápidos libertaram servidores não utilizados posteriormente para serem reutilizados para QA, desenvolvimento ou equipamento de laboratório. Mas esta abordagem teve suas desvantagens. Cada VM inclui uma imagem de sistema operacional separada, que adiciona sobrecarga na memória e espaço de armazenamento. Acontece que esse problema aumenta a complexidade em todas as etapas do ciclo de vida do desenvolvimento de software, desde o desenvolvimento e o teste até a produção e a recuperação de desastres. Essa abordagem também limita seriamente a portabilidade de aplicações entre nuvens públicas, nuvens privadas e data centers tradicionais. O que são contentores? A virtualização do sistema operacional (SO) cresceu em popularidade ao longo da última década para permitir que o software seja executado de forma previsível e adequada quando movido de um ambiente de servidor para outro. Mas os contêineres fornecem uma maneira de executar esses sistemas isolados em um único servidor ou sistema operacional host.
Os contentores ficam em cima de um servidor físico e de seu sistema operacional host, por exemplo, Linux ou Windows. Cada contentor compartilha o kernel do sistema operacional host e, geralmente, os binários e bibliotecas também. Os componentes compartilhados são somente leitura. Os contêineres são, portanto, excepcionalmente "leves" - eles são apenas megabytes de tamanho e levam apenas alguns segundos para iniciar, em vez de gigabytes e minutos para uma VM.
Os contêineres também reduzem a sobrecarga no gerenciamento. Como eles compartilham um sistema operacional comum, apenas um único sistema operacional precisa de cuidado e alimentação para correções de bugs, patches e assim por diante. Esse conceito é semelhante ao que experimentamos com hosts de hypervisor: Menos pontos de gerenciamento, mas um domínio de falha ligeiramente maior. Em suma, os contentores são mais leves e mais portáteis do que as máquinas virtuais. Conclusão máquinas virtuais e contêineres diferem de várias maneiras, mas a principal diferença é que os contêineres fornecem uma maneira de virtualizar um sistema operacional para que várias cargas de trabalho possam ser executadas em uma única instância do sistema operacional. Com as VMs, o hardware está sendo virtualizado para executar várias instâncias do sistema operacional. A velocidade, agilidade e portabilidade dos contêineres fazem deles mais uma ferramenta para ajudar a otimizar o desenvolvimento de software.
Na NetApp, acreditamos na tecnologia de contentores e estamos trabalhando para oferecer inovações que promovam ainda mais velocidade e agilidade no desenvolvimento de software. Desenvolvemos o Trident com o objetivo de tornar o storage persistente automático e otimizado. Confira nossa última versão do Trident no GitHub e também em nossa página de soluções de contentor. Para obter mais informações, ou se você tiver dúvidas, consulte o Pub em NetApp.io.
Doug Jones é um gerente sênior de serviços de produtos da NetApp e lidera a estratégia de portfólio para serviços de migração. Possui MBA pela Duke Fuqua School Business em Gestão Geral e bacharelado em Ciência da Computação pela Florida Atlantic University. Ele vive na área de Asheville, NC.