O que é orquestração de containers?

Copiar URL

A orquestração é o processo que automatiza a implantação, o gerenciamento, a escalabilidade e a rede dos containers ao longo do ciclo de vida, possibilitando a implantação de software de forma consistente em vários ambientes diferentes em escala.

Containers, que empacotam uma aplicação e seu ambiente de runtime juntos em uma unidade autônoma, são essenciais para o desenvolvimento de aplicações nativas em nuvem. A orquestração é importante principalmente para empresas que precisam implantar e gerenciar centenas ou milhares de hosts e containers. A maioria das soluções de orquestração de containers são baseadas no Kubernetes, uma plataforma open source amplamente adotada. 

E-book: Use o Red Hat OpenShift como uma plataforma de aplicações moderna

A orquestração de containers traz benefícios para a segurança, os custos e os métodos de desenvolvimento.

Desenvolvimento acelerado

Os containers, que são feitos para serem portáteis e executados de forma consistente entre ambientes, revelam oportunidades para métodos mais rápidos de desenvolvimento de software. Com a orquestração de containers, é possível criar pipelines de integração e implantação contínuas (CI/CD), que melhoram a entrega de software no ciclo de vida do desenvolvimento de software via automação. Ela também se conecta a uma abordagem DevOps, que tem o objetivo de agilizar o processo do desenvolvimento de uma ideia à sua implantação.

Redução de custos

A orquestração pode escalar containers automaticamente conforme suas necessidades, oferecendo a capacidade necessária para suas aplicações enquanto conserva recursos e reduz custos. Uma plataforma de orquestração pode oferecer a flexibilidade para uma organização ser eficiente no uso de ambientes híbridos e multicloud.

Segurança

O desenvolvimento de software em containers ajuda as equipes a consertar problemas de segurança na etapa de criação, em vez de ter que atualizar ou aplicar um patch na aplicação já lançada. Essa função permite melhor previsibilidade no comportamento do container e detecção de comportamento anômalo. Com a orquestração, uma empresa pode aplicar políticas de segurança e governança, segmentando as regras por pods e grupos de pods. As plataformas de orquestração também viabilizam o controle de acesso baseado em função (RBAC), que atribui permissões específicas para usuários e contas de serviço.

Recursos da Red Hat

A orquestração de containers é útil para automatizar e gerenciar tarefas como:

  • Provisionamento e implantação
  • Configuração e programação
  • Alocação de recursos
  • Disponibilização de containers
  • Ajuste da escala ou remoção de containers com base no balanceamento de cargas de trabalho em toda a infraestrutura
  • Balanceamento de carga e roteamento de tráfego
  • Monitoramento da integridade dos containers
  • Configuração de aplicações com base no container em que serão executadas
  • Segurança nas interações entre containers

As ferramentas de orquestração de containers oferecem um framework para gerenciar a arquitetura de containers e microsserviços, em escala. Existem muitas ferramentas para essa finalidade que podem ser usadas no gerenciamento do ciclo de vida dos containers. Algumas das opções mais conhecidas são o Kubernetes, o Docker Swarm e o Apache Mesos.

O Kubernetes é uma ferramenta de orquestração de containers open source desenvolvida originalmente pelos engenheiros do Google.Em 2015, o Google doou o projeto Kubernetes à Cloud Native Computing Foundation, recém-formada na época.

Como o Kubernetes ajuda na orquestração de containers

A capacidade de orquestração do Kubernetes torna possível criar serviços de aplicações que abrangem vários containers, programar o uso desses containers no cluster, ajustar a escala e gerenciar a integridade deles com o passar do tempo.

O Kubernetes elimina diversos processos manuais relacionados à implantação e à escala de aplicações em containers. Você pode agrupar conjuntos de hosts, sejam máquinas físicas ou virtuais, executando containers Linux: o Kubernetes fornece a plataforma para gerenciar esses clusters de forma fácil e eficiente. 

Isso permite que você implemente e utilize uma infraestrutura baseada em containers de forma completa em ambientes de produção. Esses clusters podem abranger hosts em nuvens públicas, privadas ou híbridas. Por isso, o Kubernetes é a plataforma ideal para hospedar apps nativas em nuvem que precisam escalar rápido.

O Kubernetes também auxilia na portabilidade e no balanceamento de carga, permitindo que você mova aplicações sem a necessidade de redesenhá-las. 

Principais componentes do Kubernetes:

  • Cluster: um control plane e uma ou mais máquinas de computação, chamadas de nós.
  • Control plane: a coleção de processos que controlam os nós do Kubernetes. É o local onde todas as tarefas se originam.
  • Kubelet: um serviço executado nos nós que lê os manifestos do container e garante que os containers definidos foram iniciados e estão em execução.
  • Pod: um grupo de um ou mais containers implantados em um único nó. Todos os containers em um determinado pod usam o mesmo endereço IP, IPC, nome do host e outros recursos.

Quando você usa uma ferramenta de orquestração de containers como o Kubernetes, a configuração da aplicação é descrita em um arquivo YAML ou JSON. Esse arquivo instrui a ferramenta de gerenciamento de configuração sobre onde encontrar as imagens de container, como estabelecer uma rede e onde armazenar os logs.

Na hora de implantar um novo container, a ferramenta de gerenciamento de containers programa a implantação automaticamente em um cluster e encontra o host certo seguindo todas os requisitos (ou restrições) definidos. Depois, a ferramenta de orquestração gerencia o ciclo de vida do container com base nas especificações determinadas no arquivo de configuração.

Você pode usar padrões do Kubernetes para gerenciar a configuração, o ciclo de vida e a escala de aplicações e serviços baseados em container. Esses padrões reproduzíveis são asferramentas que qualquer desenvolvedor Kubernetes precisa para criar sistemas completos. 

Com essa tecnologia, é possível adotar a orquestração de containers em qualquer ambiente, como em servidores on-premises e nuvens públicas ou privadas.

O que é uma implantação Kubernetes?

A Red Hat é uma empresa líder do setor e participa ativamente do desenvolvimento de tecnologias de containers open source e cria ferramentas essenciais para proteger, simplificar e atualizar automaticamente as infraestruturas de container.

Com o Red Hat® OpenShift®, os desenvolvedores podem criar novas aplicações em containers para hospedar e implantar na nuvem. Tudo isso com a escalabilidade, o controle e a orquestração necessários para transformar boas ideias em ótimos negócios, com rapidez e facilidade. Se quiser implantar ou migrar suas cargas de trabalho do Kubernetes para um serviço em nuvem gerenciado, o OpenShift também está disponível como serviço nativo em nuvem na Amazon Web Services (AWS), no Microsoft Azure, no Google Cloud, na IBM Cloud e em outros provedores.

Com o OpenShift, você pode usar o Red Hat Advanced Cluster Management e o Red Hat Ansible® Automation Platform juntos para implantar e gerenciar clusters do Kubernetes em ambientes de nuvem pública, on-premises ou na edge computing com eficiência.

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

What is the Kubernetes Java client?

The Kubernetes Java client is a client library that enables the use of the Java programming language to interface with Kubernetes.

Kubernetes na AWS: comparação entre K8s autogerenciado e plataforma de aplicações gerenciada

Conheça as vantagens de usar o Kubernetes (K8s) na AWS e entenda as diferenças entre o Kubernetes autogerenciado e uma plataforma de aplicações gerenciada.

O que é hosted control plane?

Hosted control plane refere-se ao plano de gerenciamento desacoplado que permite o controle e gerenciamento consolidados dos principais componentes do plano de controle.

Containers: leitura recomendada

Artigos relacionados