Projetar uma arquitetura de microsserviços

Os microsserviços são um estilo de arquitetura popular para criar aplicativos de nuvem que permanecem resilientes, dimensionam com eficiência, são implantados de forma independente e evoluem rapidamente. Para fornecer valor real, os microsserviços exigem uma abordagem diferente para o design e o desenvolvimento de aplicativos.

Este conjunto de artigos explora como criar uma arquitetura de microsserviços no Azure. Ele inclui as seguintes diretrizes:

  • Opções de computação para microsserviços: compare as plataformas de computação do Azure para microsserviços, incluindo o AKS (Serviço de Kubernetes do Azure), os Aplicativos de Contêiner do Azure, o Azure Functions, o Serviço de Aplicativo do Azure e o Red Hat OpenShift do Azure. Avalie cada plataforma com base na comunicação entre serviços, dimensionamento independente e implantabilidade.

  • Comunicação entre serviços: crie padrões de comunicação eficazes entre microsserviços usando abordagens síncronas e assíncronas. Saiba mais sobre APIs REST, padrões de mensagens, arquiteturas controladas por eventos e tecnologias de malha de serviço para comunicação de serviço a serviço confiável.

  • Design de API: crie APIs bem projetadas que dão suporte a princípios de arquitetura de microsserviços. Aprenda estratégias de controle de versão de API, padrões de tratamento de erros e como criar APIs que promovam o acoplamento flexível e a evolução do serviço independente.

  • Gateways de API: implemente gateways de API para gerenciar questões transversais, como autenticação, limitação de requisições e roteamento de solicitações. Entenda como os gateways simplificam as interações do cliente e fornecem a imposição de política centralizada em seu ecossistema de microsserviços.

  • Considerações de dados: resolva os desafios de gerenciamento de dados em arquiteturas de microsserviços, incluindo padrões de consistência de dados, transações distribuídas e escolha os armazenamentos de dados apropriados. Aprenda estratégias para manter a integridade de dados entre os limites de serviço.

  • Orquestração de contêineres: implante e gerencie microsserviços em contêineres em escala usando orquestradores de contêineres. Entenda como plataformas como o Kubernetes automatizam a implantação, o dimensionamento, o balanceamento de carga e o gerenciamento de integridade para manter o estado desejado do sistema em ambientes de produção.

  • Padrões de Design: Aplique padrões de design comprovados a desafios comuns de microsserviços, incluindo o padrão Saga para consistência de dados distribuídos, o padrão Bulkhead para isolamento de falhas e o padrão Strangler Fig para refatoração incremental do aplicativo.

Pré-requisitos

Antes de ler estes artigos, comece com os seguintes recursos:

Arquitetura de exemplo

Diagrama que mostra a arquitetura de uma carga de trabalho de entrega de drone.

Carrege um arquivo Visio desta arquitetura.

Scenario

Fabrikam, Inc. cria um serviço de entrega de drones. A empresa gerencia uma frota de aeronaves de drones. Empresas se registram no serviço e os usuários podem solicitar que um drone colete mercadorias para entrega. Quando um cliente agenda uma retirada, um sistema de back-end atribui um drone e notifica o usuário de um tempo de entrega estimado. Durante a entrega, o cliente pode acompanhar a localização do drone, incluindo um ETA (tempo de chegada) estimado continuamente atualizado.

Esta solução funciona bem para as indústrias aeroespacial e de aeronaves.

Esse cenário envolve um domínio bastante complicado. Algumas preocupações comerciais incluem agendamento de drones, acompanhamento de pacotes, gerenciamento de contas de usuário e armazenamento e análise de dados históricos. A Fabrikam também deseja chegar ao mercado e iterar rapidamente para adicionar novas funcionalidades e capacidades. O aplicativo precisa operar em escala de nuvem com um SLO (objetivo de alto nível de serviço). A Fabrikam também espera que diferentes partes do sistema tenham requisitos muito diferentes para armazenamento e consulta de dados. Com base em considerações, a Fabrikam escolhe uma arquitetura de microsserviços para o aplicativo de entrega de drones.

Observação

Para obter mais informações sobre como escolher entre uma arquitetura de microsserviços e outros estilos arquitetônicos, consulte o guia de arquitetura Azure Application.

Essa arquitetura usa o Kubernetes com AKS. Mas muitas das decisões e desafios arquitetônicos de alto nível se aplicam a qualquer orquestrador de contêineres.

Próxima etapa