Kubernetes vs. Docker
Crie, entregue e dimensione aplicativos mais rapidamente com tecnologias de contêiner que funcionam melhor em conjunto.
A pergunta sobre Kubernetes vs. Docker
A conversa sobre Kubernetes vs. Docker geralmente é formulada como mutuamente exclusiva: devo usar o Kubernetes ou o Docker? É como comparar maçãs com torta de maçã. Achar que é preciso escolher uma ou outra opção é um equívoco comum.
A diferença entre o Kubernetes e o Docker é mais facilmente entendida quando respondida em uma pergunta sobre o uso simultâneo ou complementar. O fato é que você não precisa escolher: o Kubernetes e o Docker são tecnologias fundamentalmente diferentes que funcionam bem em conjunto para criar, fornecer e dimensionar aplicativos em contêiner.
Docker e o aumento da conteinerização
O Docker é uma tecnologia de software livre – e um formato de arquivo de contêiner – para automatizar a implantação de aplicativos como contêineres portáteis e autossuficientes que podem ser executados na nuvem ou localmente. A Docker, Inc., embora compartilhe um nome semelhante, é uma das empresas que cultiva a tecnologia Docker de software livre para ser executada em Linux e Windows em colaboração com provedores de nuvem como a Microsoft.
Embora a ideia de isolar ambientes não seja nova e existam outros tipos de software para conteinerização, o Docker tornou-se o formato padrão de contêiner nos últimos anos. O Docker oferece o Docker Engine, que é um ambiente de runtime. Ele permite que você crie e execute contêineres em qualquer computador de desenvolvimento; depois armazene ou compartilhe imagens de contêiner por meio de um registro de contêiner como o Docker Hub ou o Registro de Contêiner do Azure.
Conforme os aplicativos crescem para abranger vários contêineres implantados em vários servidores, operá-los torna-se mais complexo. Enquanto o Docker fornece um padrão aberto para empacotar e distribuir aplicativos em contêiner, as possíveis complexidades podem aumentar rapidamente. Como você coordena muitos contêineres e faz o agendamento deles? Como todos os diferentes contêineres do seu aplicativo se comunicam? Como você dimensiona muitas instâncias de contêiner? É aqui que o Kubernetes pode ajudar.
Kubernetes e orquestração de contêiner
O Kubernetes é um software de orquestração de software livre que fornece uma API para controlar como e onde esses contêineres serão executados. Ele permite que você execute os contêineres e cargas de trabalho do Docker e ajuda a resolver algumas das complexidades operacionais durante a transferência para escalar vários contêineres, implantados em diversos servidores.
O Kubernetes permite que você organize um cluster de máquinas virtuais e agende a execução de contêineres nessas máquinas virtuais com base nos recursos de computação disponíveis e nos requisitos de recursos de cada contêiner. Contêineres são agrupados em pods, a unidade de operações básica para o Kubernetes. Esses contêineres e pods poderão ser escalonados para seu estado desejado e você será capaz de gerenciar o ciclo de vida para manter os aplicativos em pleno funcionamento.
Qual é a diferença entre o Kubernetes e o Docker?
O Kubernetes é um software de orquestração de software livre que fornece uma API para controlar como e onde esses contêineres serão executados. Ele permite que você execute os contêineres e cargas de trabalho do Docker e ajuda a resolver algumas das complexidades operacionais durante a transferência para escalar vários contêineres, implantados em diversos servidores.
O Kubernetes permite que você organize um cluster de máquinas virtuais e agende a execução de contêineres nessas máquinas virtuais com base nos recursos de computação disponíveis e nos requisitos de recursos de cada contêiner. Contêineres são agrupados em pods, a unidade de operações básica para o Kubernetes. Esses contêineres e pods poderão ser escalonados para seu estado desejado e você será capaz de gerenciar o ciclo de vida para manter os aplicativos em pleno funcionamento.
Kubernetes e Docker – mais poderosos em conjunto
Embora a promessa dos contêineres seja codificar uma vez e executar em qualquer lugar, o Kubernetes oferece o potencial de orquestrar e gerenciar todos os recursos de contêiner através de um único painel de controle. Ele ajuda na rede, no balanceamento de carga, na segurança e no dimensionamento em todos os nós do Kubernetes que executam os contêineres. O Kubernetes também tem um mecanismo de isolamento interno, como os namespaces, que permitem agrupar recursos de contêiner por permissão de acesso, ambientes de preparo e muito mais. Esses constructos facilitam para a TI fornecer aos desenvolvedores o acesso a recursos de autoatendimento e colaborar até mesmo na arquitetura de microsserviços mais complexa, sem necessidade de representar todo o aplicativo no ambiente de desenvolvimento. A combinação de práticas de DevOps com contêineres e Kubernetes também permite uma linha de base da arquitetura de microsserviços que promove entrega rápida e orquestração escalonável de aplicativos nativos de nuvem.
Em resumo, use o Kubernetes com o Docker para:
- Tornar a infraestrutura mais robusta e o aplicativo mais disponível. Seu aplicativo permanecerá online, mesmo que alguns dos nós fiquem offline.
- Tornar o aplicativo mais escalonável. Caso o aplicativo comece a receber muito mais carga e você precise fazer uma expansão para oferecer uma melhor experiência ao usuário, é simples habilitar mais contêineres ou adicionar mais nós ao cluster do Kubernetes.
O Kubernetes e o Docker funcionam juntos. O Docker fornece um padrão aberto para empacotar e distribuir aplicativos em contêiner. Usando o Docker, você pode criar e executar contêineres e armazenar e compartilhar imagens de contêiner. É possível executar facilmente um build do Docker em um cluster do Kubernetes, mas o Kubernetes por si só não é uma solução completa. Para otimizar o Kubernetes na produção, implemente ferramentas e serviços adicionais para gerenciar segurança, governança, identidade e acesso, juntamente com fluxos de trabalho de CI/CD (integração contínua/implantação contínua) e outras práticas de DevOps.
Arquiteturas da solução do Kubernetes e do Docker em produção
Microsserviços com AKS
Use o AKS para simplificar a implantação e o gerenciamento da arquitetura baseada em microsserviços. O AKS simplifica o dimensionamento horizontal, a autorrecuperação, o balanceamento de carga e o gerenciamento de segredos.
DevOps seguro para AKS
DevOps e Kubernetes funcionam melhor juntos. Implementando o DevOps seguro em conjunto com o Kubernetes no Azure, você pode obter o equilíbrio entre velocidade e segurança e oferecer código mais rápido em escala.
Aproveite a força do Kubernetes com o Azure
Implantar e gerenciar os aplicativos em contêiner é fácil com o AKS (Serviço de Kubernetes do Azure). O AKS oferece Kubernetes sem servidor, uma experiência integrada de CI/CD e segurança e governança de nível empresarial. Una suas equipes de desenvolvimento e operações em uma única plataforma para criar, entregar e dimensionar aplicativos rapidamente com confiança.
Referências
Vídeos, webinars, demonstrações, sessões técnicas
Comunidade de software livre
Junte-se a outros usuários do AKS no Github, no KubeCon, ou em um Kubernetes Meetup perto de você.