- +55 11 2090 1420
- contato@wtsnet.com.br
- Suporte
Por Victor Matsumoto
Quem é da área de TI com certeza nos últimos anos ouviu falar sobre Docker e como esta plataforma, através de containers, revolucionou o desenvolvimento e a entrega de softwares.
Após a difusão da virtualização, algumas formas de disponibilizar aplicações nestes ambientes despontaram como tendências de mercado, assim se tornou bastante comum ouvirmos falar sobre containers e Docker, muito por conta dos benefícios que essa tecnologia pode trazer, juntamente com a utilização da nuvem.
Mas antes de falarmos sobre o que é o Docker e quais são as vantagens de usá-lo, vamos iniciar o artigo falando sobre os containers e como isso funciona.
Para entender os containers precisamos voltar um pouco no tempo e entender como iniciou a virtualização. No modelo tradicional de virtualização, o objetivo dos desenvolvedores de software era manter os aplicativos na mesma máquina física ou cluster dividindo e isolando os serviços um do outro.
O intuito era separar recursos de hardware (memória, processador, rede) para que não interferissem no desempenho um do outro. A solução foram as famosas máquinas virtuais, que mantinham os aplicativos no mesmo hardware virtual totalmente separados para reduzir ao mínimo os conflitos entre componentes de software e a competição por recursos de hardware. Porém, máquinas virtuais além de não serem feitas para provisão e desprovisão, precisam de sistemas operacionais inteiros para serem executadas, o que torna o consumo de recursos de cada VM ineficiente.
Os containers, por outro lado, isolam os ambientes de execução dos aplicativos, mas compartilham o kernel do SO usando pouquíssimo recursos comparados as VMs e iniciam quase que imediatamente. Com a tecnologia pode ser compactado com mais densidade no mesmo hardware e escalado para cima ou para baixo com pouco esforço. Os containers fornecem um mecanismo altamente eficiente e granular para combinar componentes de software com os tipos de aplicativos e serviços necessários para uma empresa moderna e manter esses componentes atualizados e gerenciados.
O Docker é uma plataforma de containers open source que agrupa partes de softwares de um sistema de arquivo completo e que abrange todos e normalmente somente os recursos necessários para a execução do sistema.
Dessa forma, os mesmos softwares e as suas diferentes versões podem ter sua implantação facilitada e agilizada, através da criação de imagens próprias devidamente personalizadas com todos os requisitos de sua aplicação.
O que ocorre na prática é que o Docker destaca recursos e usa bibliotecas de kernel em comum. Os itens empacotados ou até mesmo um ambiente inteiro são dispostos no container e se tornam portáveis, podendo ser provisionados ou desprovisionados de acordo com a demanda de acesso.
Assim, o Docker é uma implementação de virtualização de containers que vem conquistando cada vez mais espaço devido à computação em nuvem. Anteriormente, virtualizações tradicionais dominavam o ambiente, mas agora elas sequer são necessárias.
Agora, com o conceito e funcionalidades do container em mente, imagine administrar dezenas de processos de seus containers em operação. Com essa necessidade em orquestrar, atraiu várias opções de software como solução.
Duas das principais ferramentas que desenvolvem a automação, escalabilidade, balanceamento de cargas e recursos avançados para os containers são Kubernetes e Docker Swarm.
Originalmente criado e desenvolvido pelos engenheiros do Google, ele é uma plataforma de código aberto usada para orquestrar e gerenciar clusters de containers, eliminando a maior parte dos processos manuais necessários para implantar e escalar os aplicativos em containers. O Kubernetes visa fornecer os componentes e ferramentas para aliviar a carga de execução de aplicativos em nuvens públicas e privadas, agrupando containers em unidades lógicas. Seus pontos fortes estão no crescimento flexível, na portabilidade independente do ambiente e no dimensionamento fácil.
Swarm é o cluster nativo do Docker. A promessa de compatibilidade com versões anteriores é especialmente importante para os usuários atuais. Quaisquer ferramentas ou containers que funcionem com o Docker funcionam igualmente bem no Docker Swarm.
O Docker Swarm e o Kubernetes são capazes de executar muitos serviços, mas tem abordagens ligeiramente diferentes para alguns detalhes. Conhecer cada um dos softwares pode ajudar a tomar a decisão ao escolher a ferramenta certa para a orquestração de containers.
A tecnologia Docker implementa facilidade no dia a dia dos desenvolvedores e profissionais de infraestrutura, já que dores de cabeça inerentes à implantação de novas versões de sistemas reduzem bastante acabando desta forma com o argumento de que a aplicação funciona na máquina do desenvolvedor e não no ambiente de produção, e isso por si só já possibilita ao menos iniciar o estudo de uma implantação de cenários de DEVOPS, infraestrutura como código em nuvem.
ÚLTIMOS ARTIGOS