Microsserviços se tornaram um estilo popular de arquitetura para criar aplicativos de nuvem resilientes, altamente escalonáveis, implantáveis independentemente e capazes de evoluir rapidamente. No entanto, para serem mais do que apenas uma palavra de efeito, microsserviços exigem uma abordagem diferente para o design e criação de aplicativos.
Nesse conjunto de artigos, exploramos como criar uma arquitetura de microsserviços no Azure. Os tópicos incluem:
- Opções de computação para microsserviços
- Comunicação entre serviços
- Design de API
- Gateways de API
- Considerações sobre dados
- Padrões de design
Pré-requisitos
Antes de ler estes artigos, você pode começar por:
- Introdução às arquiteturas de microsserviços. Entenda os benefícios e desafios dos microsserviços e quando usar esse estilo de arquitetura.
- Usar análise de domínio para microsserviços de modelo. Aprenda uma abordagem baseada em domínio a microsserviços de modelagem.
Implementação de referência
Para ilustrar as práticas recomendadas de uma arquitetura de microsserviços, criamos uma implementação de referência que chamamos de aplicativo de Entrega por Drone. Essa implementação é executada no Kubernetes usando o Serviço de Kubernetes do Azure (AKS). Você pode encontrar a implementação de referência no GitHub.
Baixe um Arquivo Visio dessa arquitetura.
Cenário
A Fabrikam, Inc. está dando início a um serviço de entrega por drone. A empresa gerencia uma frota de aeronaves de tipo drone. Empresas se registram no serviço e os usuários podem solicitar que um drone colete mercadorias para entrega. Quando um cliente agenda uma coleta, um sistema de back-end atribui um drone ao usuário e notifica-o com um tempo de entrega previsto. Enquanto a entrega está em andamento, o cliente pode acompanhar a localização do drone, com um ETA atualizado continuamente.
Essa solução é ideal para as indústrias aeronáutica e aeroespacial.
Este cenário envolve um domínio bastante complicado. Algumas das preocupações de negócios incluem o agendamento drones, o acompanhamento de pacotes, o gerenciamento de contas de usuário e o armazenamento e análise de dados históricos. Além disso, Fabrikam deseja se lançar no mercado rapidamente e, em seguida, iterar rapidamente, adicionando novas funcionalidades e capacidades. O aplicativo deve operar em escala de nuvem, com um SLO (objetivo do nível de serviço) elevado. A Fabrikam também espera que diferentes partes do sistema tenham requisitos muito diferentes de armazenamento e consulta de dados. Todas essas considerações levam Fabrikam para escolher uma arquitetura de microsserviços para o aplicativo de Entrega por Drone.
Observação
Para obter ajuda na escolha entre uma arquitetura de microsserviços e outros estilos de arquitetura, consulte o Guia de arquitetura de aplicativo do Azure.
Nossa implementação de referência usa Kubernetes com o AKS (Serviço de Kubernetes do Azure). No entanto, muitas das decisões de arquitetura de alto nível e desafios se aplicarão a qualquer orquestrador de contêineres.