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 se comunicar entre eles.
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 microsserviços em contêineres
Neste cluster simples do AKS (Serviço de Kubernetes do Azure) em contêineres:
- Uma instância de Microsserviço A está em execução no Nó 1, em outra instância no Nó 2 e em uma terceira instância no Nó 3.
- Uma instância do Microsserviço B está em execução no Nó 1 e outra no Nó 3.
- Os servidores proxy reverso em contêineres estão em execução nos Nós 1 e 2 para distribuir o tráfego.
Para gerenciar o cluster, uma equipe do DevOps precisa:
- Execute várias instâncias de contêiner em cada nó.
- Balancear a carga de tráfego entre as instâncias.
- Gerenciar a comunicação entre instâncias dependentes em nós separados.
- Mantenha o estado de cluster do 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 o contêiner 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 da API REST.
- A camada intermediária se comunica com um banco de dados distribuído globalmente.
Executar esses contêineres em um único computador de desenvolvimento pode não ser muito difícil. No entanto, executar o aplicativo em modo de alta disponibilidade em escala em um cluster de produção rapidamente se torna desafiador. A orquestração de contêiner é crucial para ambientes de produção grandes e dinâmicos.
Vantagens da orquestração de contêiner
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 de Microsserviço A em resposta ao aumento do tráfego.
Gerencia os contêineres para refletir o estado desejado configurado. No exemplo, o Microsserviço B está configurado para ter duas instâncias. Uma instância tornou-se não íntegra, portanto, o orquestrador mantém o estado desejado criando outra instância.
Encapsula os contêineres para 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.
- A carga equilibra o tráfego entre instâncias de microsserviço.
- Dá suporte à fácil comunicação entre instâncias de microsserviço dependentes.
Os orquestradores de contêiner também fornecem flexibilidade e controle de tráfego para:
- Libere novas versões ou reverta 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ço.
Escolher um orquestrador de contêineres do Azure
Aqui estão algumas opções para implementar a orquestração de contêiner de microsserviços no Azure:
do AKS (Serviço de Kubernetes do Azure) é um serviço de orquestração de contêineres do Kubernetes totalmente gerenciado no Azure que simplifica a implantação e o gerenciamento de aplicativos em contêineres. O AKS fornece 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 computadores. O runtime leve do Service Fabric dá suporte à criação de microsserviços com estado e sem estado.
Um diferencial chave do Service Fabric é seu suporte robusto para a 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 idioma ou código.
ACI (Instâncias de Contêiner do Azure) é a maneira mais rápida e mais simples de executar um contêiner no Azure. Com a ACI, você não precisa gerenciar máquinas virtuais nem 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 da ACI em um ambiente gerenciado e sem servidor do Azure. Para cenários completos de orquestração de contêiner, a ACI pode se integrar ao AKS para criar nós virtuais para orquestração do AKS.
do Azure Spring Apps é um serviço totalmente gerenciado e pronto para empresas para aplicativos do 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 de orquestração e ciclo de vida interno, facilidade de monitoramento e integração completa com o Azure.
ARO (Red Hat OpenShift) do Azure dá suporte à implantação de clusters de do OpenShifttotalmente 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).
Contribuintes
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
- arquitetura de microsserviços no AKS (Serviço de Kubernetes do Azure)
- arquitetura de microsserviços do AKS (Serviço avançado de Kubernetes do Azure)
- CI/CD para aplicativos AKS com o Azure Pipelines
- usar gateways de API em microsserviços
- arquitetura de referência do Azure Spring Apps
Recursos relacionados
- criar microsserviços no Azure
- Criar uma arquitetura de microsserviços
- padrões de design de para microsserviços
- estilo arquitetônico microsserviços
- o percurso da solução do Serviço de Kubernetes do Azure