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

A orquestração de contêineres é o processo de automatização da rede e do gerenciamento de contêineres, para que você possa implantar aplicações em grande escala. A conteinerização agrupa o código de uma aplicação com todos os arquivos e bibliotecas de necessários para a execução em qualquer infraestrutura. As arquiteturas de microsserviços podem ter centenas ou até milhares de contêineres à medida que as aplicações crescem e se tornam mais complexas. As ferramentas de orquestração de contêineres visam simplificar o gerenciamento da infraestrutura de contêineres, automatizando seu ciclo de vida completo, desde o provisionamento e o agendamento até a implantação e a exclusão. As organizações podem se beneficiar da conteinerização em grande escala sem incorrer em despesas adicionais de manutenção.

Por que a orquestração de contêineres é necessária?

Os contêineres se tornaram a unidade padrão de computação para aplicações nativas de nuvem. Os provedores de nuvem oferecem instâncias de servidores virtuais para executar todos os tipos de workloads de computação e são perfeitos para os tipos baseados em contêineres. O único requisito para poder executar contêineres consiste na execução de um serviço de conteinerização, como o Docker, pelo próprio servidor. O Docker é uma ferramenta de código aberto para empacotar softwares e bibliotecas associadas, ferramentas de sistema, código e runtime em um contêiner. É uma solução leve para executar e gerenciar alguns contêineres em uma única instância de servidor, mas o dimensionamento se torna um desafio.

Antes da existência das plataformas gerenciadas de orquestração de contêineres, as organizações usavam scripts complexos para gerenciar a implantação, o agendamento e a exclusão de contêineres em várias máquinas. A manutenção desses scripts criava desafios, como o controle de versão e configuração, que era difícil de escalar. A orquestração de contêineres automatiza e resolve essas complexidades, eliminando os desafios associados ao gerenciamento manual. 

Casos de uso de orquestração de contêineres

As ferramentas de orquestração de contêineres se tornam necessárias quando você precisa:

  • Gerenciar e escalar contêineres em várias instâncias. 
  • Executar várias aplicações em contêineres diferentes.
  • Executar diferentes versões de aplicações (por exemplo, teste e produção em CI/CD) de uma só vez.
  • Garantir a continuidade do serviço da aplicação, em caso de falha do servidor, executando várias instâncias duplicadas (réplicas) de um contêiner.
  • Executar várias instâncias de uma aplicação em várias regiões geográficas diferentes.
  • Maximizar o uso de várias instâncias de servidor para fins orçamentários.
  • Executar grandes aplicações em contêineres compostos por milhares de microsserviços diferentes.

Quais são os benefícios da orquestração de contêineres?

O gerenciamento de arquiteturas de contêineres complexas sem uma solução de orquestração de contêineres pode ser difícil. A orquestração de contêineres gerencia a criação, a configuração, a programação, a implantação e a exclusão de contêineres. Além disso, a orquestração presta os seguintes suportes:

  • Balanceamento de carga e gerenciamento de tráfego de aplicações.
  • Continuidade do serviço de aplicações em contêineres.
  • Segurança em toda a conteinerização.
  • Monitoramento do status do contêiner.
  • Contêineres de recursos de servidores subjacentes ou recursos da instância.

Veja a seguir mais benefícios das orquestrações de contêineres.

Resiliência incorporada

Serviços simples de conteinerização normalmente não reiniciarão um contêiner que esteja off-line. Da mesma forma, se a máquina em que um contêiner está funcionando for desligada ou desconectada, o contêiner não será reiniciado quando a máquina for reiniciada. As soluções de orquestração de contêineres podem garantir que os contêineres sejam reiniciados automaticamente ou que mais de uma versão esteja em execução por tempo integral em caso de falha da máquina.

Melhor desempenho

Um dos maiores benefícios da orquestração de contêineres é a automatização da escalabilidade, a disponibilidade e o desempenho das aplicações em contêineres. Você pode configurar as ferramentas de orquestração de contêineres para escalar com base na demanda, na disponibilidade da rede e nas restrições de infraestrutura. A solução de orquestração de contêineres pode monitorar o desempenho em toda a rede de contêineres e reconfigurar automaticamente os contêineres para um desempenho ideal.

Otimização de recursos

A execução de servidores e instâncias subjacentes é onerosa e deve ser usada com eficiência para otimização de custos. A orquestração de contêineres permite que as organizações maximizem o uso de cada instância disponível, bem como instanciem instâncias sob demanda se os recursos acabarem. Isso favorece a economia de custos na infraestrutura.

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

Os contêineres são aplicações ou microsserviços independentes baseados em Linux, agrupados em todas as bibliotecas e funções necessárias para serem executados em praticamente qualquer tipo de máquina. A orquestração de contêineres funciona através do gerenciamento de contêineres em um grupo de instâncias do servidor (também chamadas de nós). Um grupo de nós que executa contêineres interconectados é chamado de cluster

A orquestração de contêineres requer, primeiro, uma solução de conteinerização subjacente em execução em cada nó do cluster (normalmente, essa solução será o Docker). Os nós também devem executar a ferramenta de orquestração. Um nó principal designado, com um ambiente de gerenciamento, é o controlador da própria solução de orquestração. O administrador da solução usa uma interface gráfica do usuário (GUI) ou um controlador de linha de comando no nó principal para gerenciar e monitorar a ferramenta de orquestração de contêineres. 

Criação e programação

A solução de orquestração de contêineres lê um arquivo de configuração declarativa, escrito em YAML ou JSON, para identificar o estado específico exigido do sistema. Usando as informações especificadas no arquivo, a ferramenta:

  1. Obtém imagens de contêiner oriundas de um registro de contêiner.
  2. Provisiona os contêineres com seus requisitos individuais.
  3. Determina a rede necessária entre os contêineres. 

Em seguida, a ferramenta programa e implanta a aplicação de vários contêineres em todo o cluster. Esse enquadramento aprimorado entre nós e contêineres é determinado pela ferramenta de orquestração de contêineres, em vez de ser especificado no arquivo de configuração. A ferramenta seleciona o nó real para executar cada contêiner com base nas restrições de recursos do nó, como CPU, memória etc., bem como nos requisitos definidos do contêiner. 

Management

Quando os contêineres são executados no cluster, a ferramenta de orquestração gerencia a integridade geral do sistema para garantir que a sua permanência no estado de desempenho especificado. Isso pode incluir:

  • Alocação de recursos em contêineres.
  • Implantação de contêineres em novos nós ou exclusão de contêineres.
  • Balanceamento de carga do tráfego para a aplicação.

Uma solução de orquestração de contêineres gerencia o ciclo de vida dos contêineres para otimizar e proteger workloads e ambientes grandes e complexos com vários contêineres. Essa solução pode gerenciar quantas aplicações em contêineres forem necessários para uma organização. A execução de vários nós principais a favor da alta disponibilidade e tolerância a falhas é típica em demandas organizacionais mais altas.

Quais são os desafios da orquestração de contêineres?

A seguir foram relacionados alguns desafios da orquestração de contêineres.

Camadas adicionais de gerenciamento

O Kubernetes é uma solução de orquestração de contêineres de código aberto amplamente usada por organizações. Esse sistema é conhecido por sua facilidade de uso, disponibilidade multiplataforma e suporte para desenvolvedores. No entanto, essa solução de orquestração ainda requer um gerenciamento de recursos subjacente. Em vez de contêineres, é necessário gerenciar o provisionamento de recursos para o Kubernetes. As ferramentas de orquestração de contêineres nativas de nuvem são a melhor opção, pois elas gerenciam seus próprios requisitos de recursos. 

Treinamento insuficiente

Simplesmente ter a ferramenta certa não é suficiente para garantir a orquestração ideal de contêineres. Também é preciso um administrador de ferramentas qualificado para lidar com a orquestração corretamente, bem como definir o estado desejado e entender o resultado do monitoramento. Uma compreensão profunda de DevOps e do processo de CI/CD, da conteinerização e da arquitetura da máquina é necessária para ser um administrador bem-sucedido de ambientes complexos de contêineres. Um treinamento pode ser necessário para desenvolver o conjunto de habilidades certo em sua equipe.

Configurações de versionamento

Quando uma aplicação de software é versionada, ela tem versões específicas para ambientes específicos, como desenvolvimento, teste e produção. Da mesma forma, as ferramentas de orquestração de contêineres também exigem várias configurações documentadas com um histórico de versões. Isso significa que elas podem lidar com o provisionamento rápido e reproduzível juntamente com a implantação e o gerenciamento.

Como a AWS pode oferecer suporte aos seus requisitos de orquestração de contêineres?

O Amazon ECS é um serviço de orquestração de contêineres totalmente gerenciado para que as organizações criem, implantem e gerenciem aplicações conteinerizadas em grande escala na AWS. Ele não tem versão e gerencia automaticamente o provisionamento de clusters. Você retém o controle das propriedades operacionais dos contêineres com a capacidade de especificar requisitos de CPU e memória, políticas de rede e IAM, além do tipo de lançamento e volumes de dados. Com chamadas de API simples, você pode executar e interromper aplicações habilitadas para contêiner, consultar o estado completo do seu cluster e acessar muitos recursos AWS familiares, como grupos de segurança, Elastic Load Balancing (ELB), volumes do Amazon Elastic Block Store (EBS) e perfis do AWS Identity Access Management (IAM). 

Para aqueles que usam o Kubernetes para orquestração de contêineres, o Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço Kubernetes gerenciado para executar serviços Kubernetes na nuvem AWS ou em datacenters locais (on-premises). On-premises (no local), o EKS fornece uma solução Kubernetes consistente e totalmente compatível com ferramentas integradas e implantação simples em AWS Outposts, máquinas virtuais ou servidores. Na nuvem, o Amazon EKS gerencia automaticamente a disponibilidade e a escalabilidade dos nós do ambiente de gerenciamento do Kubernetes responsáveis por uma série de tarefas: agendamento de contêineres, gerenciamento da disponibilidade de aplicações, armazenamento de dados de cluster e muito mais. Você aproveita todo o desempenho, escalabilidade, confiabilidade e disponibilidade da infraestrutura da AWS, bem como integrações com serviços de rede e segurança da AWS.

Comece a usar a AWS criando uma conta hoje mesmo. 

Próximas etapas na AWS

Confira recursos adicionais relacionados a produtos
Inove mais rápido com o conjunto mais abrangente de serviços de contêiner 
Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS.

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login