Orquestração de contêineres para microsserviços
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 contentores são leves e de curta duração, o que os torna fáceis de criar e destruir, mas difíceis de coordenar e comunicar entre si.
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êineres do Azure.
Arquitetura de microsserviços em contêineres
Neste cluster simples em contêiner do Serviço Kubernetes do Azure (AKS):
- Uma instância do Microservice 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 Microservice B está sendo executada no Nó 1 e outra instância no Nó 3.
- Servidores proxy reverso em contêineres estão sendo executados nos nós 1 e 2 para distribuir o tráfego.
Para gerenciar o cluster, uma equipe de DevOps precisa:
- 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 desejado do cluster AKS.
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êineres impõe a configuração desejada e automatiza todas as tarefas de gerenciamento.
Considere a criação de contêineres em 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 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 do cluster.
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 do Microservice A em resposta ao aumento do tráfego.
Gerencia os contêineres para refletir o estado desejado configurado. No exemplo, o Microservice B está configurado para ter duas instâncias. Uma instância tornou-se insalubre, de modo que o orquestrador mantém o estado desejado criando outra instância.
Envolve 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.
- Suporta comunicação fácil entre instâncias de microsserviços 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 testes lado a lado de diferentes versões de microsserviços.
Escolha um orquestrador de contêiner do Azure
Aqui estão algumas opções para implementar a orquestração de contêineres de microsserviços no Azure:
do Serviço Kubernetes do Azure (AKS) é um serviço de orquestração de contêineres Kubernetes totalmente gerenciado no Azure que simplifica a implantação e o gerenciamento de aplicativos em contêineres. O AKS oferece provisionamento elástico, implantação rápida de ponta a ponta e gerenciamento avançado de identidade e acesso. do Azure Service Fabric é um orquestrador de contêineres para implantar e gerenciar microsserviços em um cluster de máquinas. O leve tempo de execução do Service Fabric oferece suporte à criação de microsserviços sem monitoração de estado e com monitoração de estado.
Um dos principais diferenciais do Service Fabric é seu suporte robusto para a criação de serviços com monitoração de estado. Você pode usar o modelo de programação de serviços stateful interno ou executar serviços stateful em contêineres escritos em qualquer linguagem ou código.
de Instâncias de Contêiner do Azure (ACI) é a maneira mais rápida e simples de executar um contêiner no Azure. Com a 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 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 do Azure gerenciado e sem servidor. Para cenários de orquestração de contêineres completos, o ACI pode se integrar ao AKS para criar nós virtuais para orquestração do AKS.
Azure Spring Apps é um serviço totalmente gerenciado pronto para aplicativos Spring Boot. Com o Spring Apps, você pode se concentrar na criação e execução de aplicativos sem ter que gerenciar a infraestrutura. O Spring Apps vem com gerenciamento integrado de ciclo de vida e orquestração, facilidade de monitoramento e integração total com o Azure.
do 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 imagem, gerenciamento de armazenamento, monitoramento e DevOps. O ARO estende o Kubernetes combinando esses componentes em uma única plataforma de contêiner como serviço (PaaS).
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Veerash Ayyagari | Engenheiro de Software Principal
Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.
Próximos passos
- Arquitetura de microsserviços no do Serviço Kubernetes do Azure (AKS)
- Arquitetura avançada de microsserviços do Serviço Kubernetes do Azure (AKS)
- CI/CD para aplicativos AKS com o Azure Pipelines
- Usar gateways de API em microsserviços
- de arquitetura de referência do Azure Spring Apps
Recursos relacionados
- Criar microsserviços no Azure
- Projetar uma arquitetura de microsserviços
- Padrões de design para microsserviços
- de estilo arquitetônico de microsserviços
- jornada da solução do Serviço Kubernetes do Azure