O que é orquestração de contêineres?
Tópicos da página
- O que é orquestração de contêineres?
- Por que a orquestração de contêineres é necessária?
- Quais são os benefícios da orquestração de contêineres?
- Como a orquestração de contêineres funciona?
- Quais são os desafios da orquestração de contêineres?
- De que maneira a AWS pode apoiar seus requisitos de orquestração de contêineres?
O que é orquestração de contêineres?
A orquestração de contêineres é o processo de automaçã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 necessários para 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 ao automatizar o 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 custos indiretos de manutenção adicionais.
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 da nuvem. Os provedores de nuvem oferecem instâncias de servidores virtuais para executar todos os tipos de workloads de computação, sendo ideais para workloads baseadas 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. Trata-se de uma solução leve para executar e gerenciar poucos contêineres em uma única instância de servidor, mas o escalonamento se torna um desafio.
Antes de existirem plataformas de orquestração de contêineres gerenciadas, 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 criou desafios, como o controle de versões, e a configuração 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 da 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) ao mesmo tempo.
- 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 diversas 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 compostas 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 o uso de 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 oferece suporte a:
- Balanceamento de carga de aplicações e gerenciamento de tráfego.
- Continuidade do serviço de aplicações em todos os contêineres.
- Segurança em todo o processo de conteinerização.
- Monitoramento do status dos contêineres.
- Alocação de recursos de contêineres provenientes de recursos de servidores ou instâncias subjacentes.
A seguir, apresentamos mais benefícios das orquestrações de contêineres.
Resiliência integrada
Serviços simples de conteinerização normalmente não reiniciarão um contêiner que esteja off-line. De forma semelhante, se a máquina em que um contêiner está sendo executado falhar, o contêiner não será reiniciado no momento em que 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.
Performance aprimorada
Um dos principais benefícios da orquestração de contêineres é a automação da escalabilidade, disponibilidade e performance de aplicações em contêineres. É possível configurar ferramentas de orquestração de contêineres para realizar a escalabilidade com base na demanda, disponibilidade de rede e restrições de infraestrutura. A solução de orquestração de contêineres pode monitorar a performance em toda a rede de contêineres e reconfigurá-los de forma automática para obter a performance ideal.
Otimização de recursos
Servidores e instâncias subjacentes geram custos de execução e precisam ser usados com eficiência para fins de 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 caso os recursos se esgotem. Isso resulta em redução de custos de infraestrutura.
Como a orquestração de contêineres funciona?
Os contêineres são aplicações ou microsserviços independentes baseados em Linux, integrados com todas as bibliotecas e funções necessárias para serem executados em quase qualquer tipo de máquina. A orquestração de contêineres funciona por meio do gerenciamento de contêineres em um grupo de instâncias de 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, atua como o controlador da própria solução de orquestração. O administrador da solução usa uma interface gráfica do usuário (GUI, na sigla em inglês) ou um controlador de linha de comandos no nó principal para gerenciar e monitorar a ferramenta de orquestração de contêineres.
Criação e agendamento
A solução de orquestração de contêineres realiza a leitura de um arquivo de configuração declarativa, escrito em YAML ou JSON, para identificar o estado específico exigido do sistema. Com base nas informações especificadas no arquivo, a ferramenta:
- Obtém imagens de contêiner de um registro de contêiner.
- Provisiona os contêineres de acordo com seus requisitos individuais.
- Define a configuração de rede necessária entre os contêineres.
Em seguida, a ferramenta realiza o agendamento e implanta a aplicação de vários contêineres em todo o cluster. A melhor adequação entre nós e contêineres é determinada pela ferramenta de orquestração de contêineres, e não especificada 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 e assim por diante, bem como nos requisitos definidos para o contêiner.
Gerenciamento
Assim que os contêineres estiverem em execução no cluster, a ferramenta de orquestração gerencia a integridade geral do sistema para garantir que ele permaneça no estado de performance especificado. Isso pode incluir:
- Alocação de recursos entre os 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 para o fornecimento de alta disponibilidade e tolerância a falhas é comum em cenários com demandas organizacionais mais elevadas.
Quais são os desafios da orquestração de contêineres?
A seguir, apresentamos 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 é reconhecido pela facilidade de uso, pela disponibilidade em diferentes plataformas e pelo suporte aos desenvolvedores. No entanto, essa solução ainda requer um gerenciamento dos recursos subjacentes. Em vez de contêineres, agora é necessário gerenciar o provisionamento de recursos para o Kubernetes. As ferramentas de orquestração de contêineres nativas da nuvem são a melhor opção, pois realizam o autogerenciamento de seus próprios requisitos de recursos.
Treinamento insuficiente
Simplesmente ter a ferramenta correta não basta para assegurar uma orquestração de contêineres otimizada. Também é necessário um administrador de ferramentas capacitado para gerenciar a orquestração de forma correta, definir o estado desejado e compreender os dados de 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. Pode ser necessário investir em treinamento para desenvolver o conjunto de habilidades adequado em sua equipe.
Configurações de versionamento
Quando uma aplicação de software é versionada, ela conta com versões distintas para ambientes específicos, como desenvolvimento, teste e produção. De forma semelhante, 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.
De que maneira a AWS pode apoiar seus requisitos de orquestração de contêineres?
O Amazon ECS é um serviço de orquestração de contêineres totalmente gerenciado que permite às organizações criar, implantar e gerenciar aplicações em contêineres em grande escala na AWS. Ele não tem versão e gerencia automaticamente o provisionamento de clusters. O controle das propriedades de operação dos contêineres continua com você, permitindo especificar requisitos de CPU e memória, políticas do IAM e de rede, além do tipo de inicialização e volumes de dados. Por meio de chamadas de API, é possível executar e interromper aplicações baseadas em contêineres, consultar o estado completo do cluster e acessar recursos conhecidos da AWS, 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 gerenciado de Kubernetes para executar serviços do Kubernetes na Nuvem AWS ou em data centers on-premises. Em ambientes on-premises, o EKS oferece uma solução de Kubernetes consistente e com suporte total. Você conta com ferramentas integradas e implantação para o 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 do cluster e muito mais. Você pode usar toda a performance, escala, 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 ao criar uma conta hoje mesmo.
Próximas etapas na AWS
Browse all cloud computing concepts
Browse all cloud computing concepts content here:
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages