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 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