O que é a orquestração de contêineres?

Gerenciar um único aplicativo conteinerizado é relativamente simples, mas escalar para centenas ou milhares em um sistema distribuído apresenta desafios significativos para garantir a disponibilidade, a interconectividade e a escalonabilidade. A orquestração de contêineres lida com essas complexidades. Embora o Kubernetes seja a principal plataforma de código aberto para essa tarefa, ferramentas de orquestração de contêineres totalmente gerenciadas, como o Google Kubernetes Engine (GKE), simplificam a implantação e o gerenciamento contínuo, abstraindo grande parte do ônus operacional associado ao Kubernetes.

Introdução à orquestração de contêineres no Google Cloud

Definição de orquestração de contêineres

A orquestração de contêineres é o sistema que provisiona, implanta, escalona e gerencia automaticamente aplicativos conteinerizados sem se preocupar com a infraestrutura de base.

Os desenvolvedores podem implementar a orquestração de contêineres em qualquer lugar, permitindo automatizar o gerenciamento do ciclo de vida. 

Para equipes de operações e desenvolvimento corporativo, isso significa ir além dos processos manuais e adotar um sistema declarativo e automatizado. Em vez de especificar como realizar tarefas como implantar uma nova versão, escalonar para atender a picos de tráfego ou se recuperar de uma falha de hardware, você simplesmente declara o estado desejado do seu aplicativo.

Principais conceitos da orquestração do Kubernetes

A orquestração do Kubernetes funciona gerenciando um cluster de máquinas e implantando contêineres nelas com base nos recursos necessários e no estado desejado definido pelo usuário. O sistema é composto por vários conceitos importantes que trabalham juntos.

  • Contêineres: são pacotes leves, portáteis e executáveis que contêm um aplicativo e todas as dependências dele. O Kubernetes orquestra a implantação e o ciclo de vida desses contêineres.
  • Cluster: é o conjunto de todas as máquinas, conhecidas como nós, que são agrupadas e gerenciadas pelo Kubernetes para executar seus aplicativos.
  • Plano de controle: o plano de controle é o cérebro do cluster do Kubernetes. Ele toma todas as decisões globais sobre o cluster (como o agendamento) e é responsável por detectar e responder a eventos do cluster para manter o estado desejado do usuário.
  • Nós: um nó é uma única máquina de trabalho no cluster, seja um servidor físico ou uma máquina virtual. É o local onde os contêineres são executados.
  • Pods: no Kubernetes, os pods são os menores objetos implantáveis, representando uma única instância de um processo em execução. Eles contêm um ou mais contêineres, armazenamento compartilhado e um IP de rede exclusivo.

Tipos de ferramentas de orquestração de contêineres

As plataformas de orquestração de contêiner fornecem ferramentas para automatizar a orquestração de contêiner e oferecem a capacidade de instalar outras tecnologias de código aberto para geração de registros, monitoramento e análise de eventos, como o Prometheus.

Há dois tipos principais de plataformas de orquestração de contêineres: autogerenciadas e gerenciadas.

  • Orquestradores de contêineres autogerenciados: essas plataformas, geralmente criadas do zero ou aproveitando uma plataforma de código aberto como o Kubernetes, oferecem controle total sobre a personalização. No entanto, elas também exigem que você assuma o ônus de gerenciar e manter a plataforma, incluindo tarefas como instalação, configuração, atualizações e aplicação de patches de segurança.
  • Serviços gerenciados do Kubernetes: plataformas como o Google Kubernetes Engine (GKE) lidam com a complexidade de configurar e operar a infraestrutura de cluster, permitindo que você se concentre na implantação e no gerenciamento dos seus aplicativos. O provedor de nuvem é responsável por gerenciar a instalação e as operações. Como resultado, é possível simplesmente consumir os recursos e se concentrar na execução de seus aplicativos conteinerizados.

Embora o Kubernetes em si forneça a orquestração principal, uma variedade de ferramentas de cluster trabalham em conjunto para ajudar na segurança, simplificar o gerenciamento e permitir o escalonamento. Confira abaixo uma lista de ferramentas relacionadas: 

  • Soluções de monitoramento e geração de registros: ferramentas como o pacote de operações do Google Cloud (Cloud Monitoring e Cloud Logging) são essenciais para observar a integridade e o desempenho do cluster e dos aplicativos em execução nele.
  • Ferramentas de CI/CD: sistemas como o Cloud Build se integram ao Kubernetes para automatizar o processo de criação de imagens de contêiner e implantação delas no cluster.

Como funciona a orquestração de contêineres?

As ferramentas de orquestração de contêineres, como o Google Kubernetes Engine (GKE), facilitam a implantação e a execução de aplicativos e microsserviços conteinerizados. Normalmente, os orquestradores de contêiner aplicam as próprias metodologias e oferecem recursos variados, mas todos permitem que as organizações coordenem, gerenciem e monitorem automaticamente os aplicativos conteinerizados.

Embora o resultado final seja o mesmo (um aplicativo conteinerizado gerenciado em execução), as etapas e o nível de esforço envolvidos diferem significativamente entre o Kubernetes e o GKE.

Imagem do YouTube

Funções principais da orquestração do Kubernetes

O Kubernetes automatiza várias funções essenciais que, de outra forma, exigiriam um esforço manual significativo. Esses recursos principais são o que fazem dela uma plataforma de orquestração tão poderosa.

  • Implantação: o Kubernetes ajuda você a descrever o estado desejado para o aplicativo implantado. O mecanismo de orquestração gerencia o lançamento das mudanças, como a atualização de um aplicativo para uma nova versão, de maneira controlada, geralmente sem tempo de inatividade.
  • Escalonamento: com base no uso da CPU ou em outras métricas personalizadas, o Kubernetes pode aumentar ou diminuir automaticamente o número de contêineres em execução. Isso ajuda a garantir que seu aplicativo tenha os recursos necessários para lidar com a carga e, ao mesmo tempo, otimizar os custos.
  • Autocorreção: se um contêiner ou nó falhar, a orquestração do Kubernetes pode detectar automaticamente a falha. Em seguida, ele reinicia, substitui ou reagenda contêineres em nós íntegros para ajudar a garantir que o aplicativo permaneça disponível sem intervenção manual.
  • Descoberta de serviço e balanceamento de carga: o Kubernetes pode expor automaticamente um contêiner à Internet ou a outros contêineres no cluster usando um nome DNS estável. Ele também pode balancear a carga do tráfego entre vários contêineres que fornecem o mesmo serviço, para garantir que as solicitações sejam distribuídas de forma eficiente.
  • Gerenciamento de configuração: o Kubernetes permite armazenar e gerenciar informações sensíveis, como senhas e chaves de API, como "Secrets". Ele também lida com dados de configuração de aplicativos como "ConfigMaps", para que você possa atualizar as configurações sem recriar suas imagens de contêiner.

Benefícios da orquestração de contêineres do Kubernetes

Um dos maiores benefícios da orquestração de contêineres é que ela simplifica as operações. Automatizar tarefas não só ajuda a minimizar o esforço e a complexidade do gerenciamento de aplicativos em contêineres, mas também oferece muitas outras vantagens.

Desenvolvimento confiável de aplicativos

As ferramentas de orquestração de contêineres ajudam a tornar o desenvolvimento de apps mais rápido e reproduzível. Isso aumenta a velocidade de implantação e os torna ideais para dar suporte a abordagens de desenvolvimento ágil, como o DevOps.

Escalonabilidade

A orquestração de contêineres permite escalonar implantações de contêiner para mais ou para menos com base na alteração dos requisitos de carga de trabalho. Você também tem a escalabilidade da nuvem se escolher uma oferta gerenciada e escalonar sua infraestrutura sob demanda.

Custos mais baixos

Os contêineres exigem menos recursos do que as máquinas virtuais, reduzindo os custos com infraestrutura e sobrecarga. Além disso, as plataformas de orquestração de contêineres exigem menos tempo e capital humano, resultando em mais economia de custos.

Segurança reforçada

A orquestração de contêineres permite gerenciar políticas de segurança em plataformas e ajuda a reduzir erros humanos que podem levar a vulnerabilidades. Os contêineres também isolam os processos do aplicativo, diminuindo as superfícies de ataque e melhorando a segurança geral.

Alta disponibilidade

É mais fácil detectar e corrigir falhas de infraestrutura usando ferramentas de orquestração de contêineres. Se um contêiner falhar, uma ferramenta de orquestração de contêineres poderá reiniciá-lo ou substituí-lo automaticamente, ajudando a manter a disponibilidade e aumentar o tempo de atividade do aplicativo.

Melhor produtividade

A orquestração de contêineres aumenta a produtividade do desenvolvedor, ajudando a reduzir tarefas repetitivas e diminuir a carga de instalar, gerenciar e manter contêineres.

Resolva seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
Fale com um especialista em vendas do Google Cloud para discutir seu desafio exclusivo em mais detalhes.

Exemplos de orquestração de casos e casos de uso

Imagine que você tenha 50 contêineres que precisam ser atualizados. Você poderia fazer tudo manualmente, mas quanto tempo e esforço sua equipe precisaria gastar para fazer o trabalho? Com a orquestração de contêineres, é possível gravar um arquivo de configuração, e a ferramenta de orquestração de contêineres fará tudo para você. Este é apenas um exemplo de como a orquestração de contêineres pode ajudar a reduzir cargas de trabalho operacionais. 

Agora, pense em quanto tempo levaria para implantar, escalonar e proteger esses mesmos contêineres se tudo for desenvolvido usando diferentes sistemas operacionais e linguagens. E se você tivesse que movê-los para ambientes diferentes? Uma abordagem declarativa pode simplificar várias tarefas repetitivas e previsíveis necessárias para manter os contêineres funcionando sem problemas, como alocação de recursos, gerenciamento de réplicas e configurações de rede. Confira alguns casos de uso comuns da orquestração de contêineres:

  • Automatizar implantações: em vez de implantar manualmente cada contêiner, as ferramentas de orquestração automatizam o processo, garantindo implantações consistentes e repetíveis.
  • Escalonamento de aplicativos: quando o tráfego aumenta, as ferramentas de orquestração escalonam automaticamente o número de contêineres para lidar com o aumento da carga, garantindo a disponibilidade do aplicativo.
  • Gerenciamento de atualizações de aplicativos: as ferramentas de orquestração facilitam as atualizações graduais, permitindo que você implante novas versões do aplicativo sem inatividade.
  • Garantir alta disponibilidade: se um contêiner falhar, as ferramentas de orquestração detectam automaticamente a falha e reiniciam ou substituem o contêiner, garantindo a resiliência do aplicativo.
  • Otimização do uso de recursos: as ferramentas de orquestração agrupam os contêineres de maneira eficiente nos recursos disponíveis, maximizando o uso e minimizando os custos.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud