Trace Id is missing
Pular para o conteúdo principal

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

Diagrama de arquitetura da solução de Microsserviços com AKS

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.

Diagrama de arquitetura da solução de DevOps seguro para AKS

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.

Introdução ao Kubernetes e ao Docker