Orquestração de contêiner para microsserviços

AKS (Serviço de Kubernetes do Azure)
Azure Service Fabric
Instâncias de Contêiner do Azure

As arquiteturas de microsserviços normalmente empacotam e implantam cada instância de microsserviço dentro de um único contêiner. Muitas instâncias dos microsserviços podem estar em execução, cada uma em um contêiner separado. Os contêineres são leves e de curta duração, tornando-os fáceis de criar e destruir, mas difíceis de coordenar e comunicar.

Este artigo discute os desafios de executar uma arquitetura de microsserviços em contêineres em escala de produção e como a orquestração de contêineres pode ajudar. O artigo apresenta várias opções de orquestração de contêiner do Azure.

Arquitetura de aplicativos conteinerizados

Neste cluster simples do AKS (Serviço de Kubernetes do Azure) conteinerizado:

  • Uma instância do Microsserviço A está sendo executada no Nó 1, outra instância no Nó 2 e uma terceira instância no Nó 3.
  • Uma instância do Microsserviço B está sendo executada no Nó 1 e outra instância no Nó 3.
  • Os servidores de proxy reverso conteinerizados estão sendo executados nos nós 1 e 2 para distribuir o tráfego.

Diagrama conceitual de uma arquitetura simples de microsserviços conteinerizados.

Para gerenciar o cluster, uma equipe de DevOps deve:

  • Execute várias instâncias de contêiner em cada nó.
  • Balanceamento de carga de tráfego entre as instâncias.
  • Gerencie a comunicação entre instâncias dependentes em nós separados.
  • Mantenha o estado de cluster AKS desejado.

Com a orquestração de contêineres, a equipe de DevOps pode representar o estado desejado do cluster como uma configuração. Um mecanismo de orquestração de contêiner impõe a configuração desejada e automatiza todas as tarefas de gerenciamento.

Considere a conteinerização de um aplicativo Web simples de três camadas:

  • Um contêiner hospeda o componente front-end.
  • Outro contêiner hospeda a camada intermediária ou a camada de API REST.
  • A camada de camada intermediária se comunica com um banco de dados distribuído globalmente.

Executar esses contêineres em uma única máquina de desenvolvimento pode não ser muito difícil. No entanto, executar o aplicativo no modo de alta disponibilidade em escala em um cluster de produção rapidamente se torna um desafio. A orquestração de contêineres é crucial para ambientes de produção grandes e dinâmicos.

Vantagens da orquestração de contêineres

O exemplo a seguir mostra como a orquestração de contêineres pode ajudar a gerenciar a implantação, a rede e o dimensionamento de cluster.

Diagrama de um exemplo de cluster de microsserviços mostrando cenários do orquestrador de contêiner.

O orquestrador de contêineres:

  • Dimensiona automaticamente o número de instâncias de microsserviço, com base no tráfego ou na utilização de recursos. No exemplo, o orquestrador adiciona automaticamente outra instância A do Microsserviço em resposta ao aumento do tráfego.

  • Gerencia os contêineres para refletir o estado desejado configurado. No exemplo, o Microsserviço B é configurado para ter duas instâncias. Uma instância se tornou não íntegra, então o orquestrador mantém o estado desejado criando outra instância.

  • Encapsula os contêineres de cada microsserviço em uma camada de serviço simples. A camada de serviço:

    • Abstrai complexidades como endereço IP, porta e número de instâncias.
    • Balanceia a carga do tráfego entre instâncias de microsserviço.
    • Oferece suporte à comunicação fácil entre instâncias de microsserviço dependentes.

Os orquestradores de contêineres também oferecem flexibilidade e controle de tráfego para:

  • Lançar novas versões ou reverter para versões antigas de microsserviços ou conjuntos de microsserviços, sem tempo de inatividade.
  • Habilite o teste lado a lado de diferentes versões de microsserviços.

Escolher um orquestrador de contêiner do Azure

Aqui estão algumas opções para implementar a orquestração de contêiner de microsserviços no Azure:

  • O AKS (Serviço de Kubernetes do Azure) é um serviço de orquestração de contêiner totalmente gerenciado do Kubernetes gerenciado no Azure que simplifica a implantação e o gerenciamento de aplicativos conteinerizados. O AKS fornece provisionamento elástico, implantação rápida de ponta a ponta e gerenciamento avançado de identidade e acesso.

  • O Azure Service Fabric é um orquestrador de contêineres para implantação e gerenciamento de microsserviços em um cluster de computadores. O runtime leve do Service Fabric oferece suporte à criação de microsserviços sem monitoração de estado e com monitoração de estado.

    Uma diferencial fundamental do Service Fabric é o seu suporte robusto à criação de serviços com estado. Você pode usar o modelo de programação de serviços com estado interno ou executar serviços com estado em contêineres escritos em qualquer linguagem ou código.

  • As Instâncias de Contêiner do Azure (ACI) proporcionam a maneira mais rápida e simples de executar um contêiner no Azure. Com as ACI, você não precisa gerenciar máquinas virtuais ou adaptar serviços de nível superior.

    Para cenários de orquestração simples, você pode usar o Docker Compose para definir e executar um aplicativo de vários contêineres localmente. Em seguida, implante os contêineres do Docker como um grupo de contêineres ACI em um ambiente gerenciado e sem servidor do Azure. Para cenários de orquestração de contêiner completo, as ACI podem se integrar ao AKS para criar nós virtuais para orquestração do AKS.

  • O Azure Spring Apps é um serviço totalmente gerenciado pronto para empresas para aplicativos Spring Boot. Com o Spring Apps, você pode se concentrar na criação e execução de aplicativos sem precisar gerenciar a infraestrutura. O Spring Apps vem com gerenciamento interno de ciclo de vida e orquestração, facilidade de monitoramento e integração total com o Azure.

  • O Azure Red Hat OpenShift (ARO) dá suporte à implantação de clusters OpenShift totalmente gerenciados no Azure. A execução de contêineres de produção do Kubernetes requer integração com estruturas e ferramentas como registros de imagens, gerenciamento de armazenamento, monitoramento e DevOps. O ARO estende o Kubernetes combinando esses componentes em uma PaaS (plataforma como serviço) de um único contêiner.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas