A conteinerização é uma alternativa leve para a virtualização de máquina completa que envolve o encapsulamento de um aplicativo em um contêiner com seu próprio ambiente operacional. Isso fornece muitos dos benefícios de carregar um aplicativo em uma máquina virtual, pois o aplicativo pode ser executado em qualquer máquina física adequada sem nenhuma preocupação com dependências.
A conteinerização ganhou destaque recentemente com o Docker de código aberto. Os contêineres Docker são projetados para executar em tudo, desde computadores físicos a máquinas virtuais, servidores bare-metal, clusters de nuvem OpenStack, instâncias públicas e muito mais.
Containerização x virtualização por meio de hipervisores tradicionais
A base para a conteinerização está no formato LinuX Containers (LXC), que é uma interface de espaço do usuário para os recursos de contenção do kernel Linux. Como resultado, a conteinerização funciona apenas em ambientes Linux e só pode executar aplicativos Linux.
Isso contrasta com os hipervisores tradicionais, como o ESXi, Xen ou KVM da VMware, em que os aplicativos podem ser executados no Windows ou em qualquer outro sistema operacional que suporte o hipervisor.
Outra diferença importante com a conteinerização em oposição aos hipervisores tradicionais é que os contêineres compartilham o kernel Linux usado pelo sistema operacional que executa a máquina host, o que significa que qualquer outro contêiner em execução na máquina host também usará o mesmo kernel Linux.
Docker não é a única opção de conteinerização
O Docker pode ter sido o primeiro a chamar a atenção para a conteinerização, mas não é mais a única opção de sistema de contêiner. CoreOS lançou recentemente uma alternativa simplificada para Docker chamada Rocket.
E a Canonical, desenvolvedores do sistema operacional baseado no Ubuntu Linux, anunciou o mecanismo de contêiner LXD para o Ubuntu, que também será integrado ao OpenStack.
A Microsoft está trabalhando em sua própria tecnologia de conteinerização chamada Drawbridge, que provavelmente será apresentada no Windows Server e Azure no futuro. E o Spoon é outra alternativa do Windows que permitirá que aplicativos em contêineres sejam executados em qualquer máquina Windows que tenha o Spoon instalado, independentemente da infraestrutura subjacente.