top of page

Deploy de Microsserviços no Azure: Guia

  • Luiz Henrique de Oliveira Bueno
  • 12 de dez. de 2024
  • 5 min de leitura

Atualizado: 13 de dez. de 2024

ree

Primeiro, vamos entender o que são microsserviços. Microsserviços são uma abordagem arquitetural em que uma aplicação é construída como um conjunto de pequenos serviços independentes, cada um responsável por uma tarefa específica. Isso contrasta com a abordagem tradicional de desenvolvimento de software, onde a aplicação é construída como um monólito único e grande.


A vantagem dos microsserviços é que eles permitem uma maior escalabilidade, flexibilidade e agilidade no desenvolvimento e implantação da aplicação. Cada microsserviço pode ser desenvolvido, implantado e escalado de forma independente, o que facilita muito a manutenção e evolução da aplicação ao longo do tempo.


Agora, vamos entender como fazer o deploy desses microsserviços no Azure.


O Azure oferece uma infraestrutura robusta e ferramentas modernas para isso. Algumas das principais etapas são:


  • Definir a arquitetura de microsserviços: Primeiro, é preciso definir quais serão os diferentes microsserviços que comporão a sua aplicação e como eles se comunicarão entre si.

  • Criar os microsserviços: Cada microsserviço deve ser desenvolvido como uma aplicação independente, utilizando as tecnologias e frameworks mais adequados para cada caso.

  • Containerizar os microsserviços: Para facilitar o deploy e a escalabilidade, é comum que os microsserviços sejam empacotados em containers Docker.

  • Implantar os containers no Azure: O Azure oferece diversos serviços para implantar e gerenciar containers, como o Azure Kubernetes Service (AKS) e o Azure Container Instances (ACI).

  • Configurar o balanceamento de carga e a escalabilidade: O Azure permite configurar facilmente o balanceamento de carga entre os diferentes microsserviços, além de permitir a escalabilidade automática deles de acordo com a demanda.

  • Implementar o monitoramento e o gerenciamento: O Azure possui ferramentas avançadas de monitoramento e gerenciamento, que permitem acompanhar o desempenho e a saúde dos microsserviços implantados.


Ao longo desse processo, é importante considerar aspectos como segurança, resiliência, integração contínua e entrega contínua, para garantir que a sua arquitetura de microsserviços seja robusta e escalável.


Passo 1: Estruturando os Microsserviços


ree

Os microsserviços são pequenas aplicações autônomas que trabalham em conjunto para formar um sistema maior. Cada microsserviço deve ser independente, ter seu próprio banco de dados (quando necessário) e ser capaz de ser implantado separadamente.


Estrutura Básica


  1. Isolamento: Cada microsserviço deve ser independente. Isso significa que ele pode ser desenvolvido, testado e implantado separadamente.

  2. Comunicação: A comunicação entre microsserviços geralmente ocorre via APIs RESTful ou mensagens (ex.: RabbitMQ, Azure Service Bus).

  3. Versionamento: Cada microsserviço deve ter seu próprio ciclo de vida de versão.


Exemplo: User Service

Um microsserviço chamado "User Service" pode ser responsável por gerenciar os usuários de um sistema. Ele pode expor endpoints como:

  • GET /users: Retorna todos os usuários.

  • POST /users: Cria um novo usuário.


Dockerização

Para implantar no Azure, os microsserviços precisam ser containerizados usando Docker.

Exemplo de Dockerfile para o User Service:


ree

Passos para criar a imagem Docker:


ree

Agora o serviço já está containerizado e pronto para ser enviado para o Azure.


Passo 2: Criar o Azure Container Registry (ACR)

ree

O Azure Container Registry (ACR) é um repositório privado de imagens Docker. Ele permite armazenar, gerenciar e compartilhar imagens de contêiner no Azure.


Por que usar o ACR?

  • Segurança: Imagens armazenadas no ACR são protegidas e acessíveis apenas para serviços autorizados.

  • Performance: Imagens hospedadas em um registro na mesma região do cluster (AKS) reduzem a latência no deploy.


Criando o ACR pelo Azure Portal

  1. Acesse o Portal do Azure.

  2. Vá para Container Registry e clique em Criar.

  3. Preencha os campos:

    • Nome do Registro: Digite um nome único, como meuacr.

    • Grupo de Recursos: Crie um novo grupo ou escolha um existente.

    • Localização: Escolha a região mais próxima de seus usuários.

    • Plano de Preço: Selecione Basic para começar (pode ser alterado posteriormente).

  4. Clique em Revisar + Criar e, em seguida, em Criar.


Comando via CLI do Azure:

ree

Passo 3: Fazer Push das Imagens Docker para o ACR

ree

Depois de criar o ACR, envie suas imagens Docker para ele.

Passos para enviar as imagens:


1- Faça login no registro do ACR


ree

2- Marque (tag) a imagem Docker para o repositório do ACR:

ree

3- Envie a imagem para o ACR:

ree

""Repita o processo para cada microsserviço.""


Passo 4: Configurar o Azure Kubernetes Service (AKS)

ree

O Azure Kubernetes Service (AKS) é um serviço gerenciado de Kubernetes que simplifica a implantação, o dimensionamento e as operações de clusters Kubernetes no Azure.


Por que usar o AKS?

  • Orquestração: Gerencia a execução de contêineres em vários nós.

  • Escalabilidade: Permite dimensionar o sistema dinamicamente com base na carga.

  • Monitoramento: Integrado ao Azure Monitor para observabilidade.


Criando um Cluster AKS

  1. No Azure Portal, vá para Kubernetes Services e clique em Criar.

  2. Preencha os campos:


    • Nome do Cluster: Nome único para o cluster, como meucluster.

    • Grupo de Recursos: Escolha o mesmo grupo usado no ACR.

    • Localização: Escolha a mesma região do ACR.

    • Configuração de Nós:


      • Tamanho do Nó: Escolha um tamanho adequado para suas cargas.

      • Quantidade de Nós: Comece com 2 nós (pode ser ajustado posteriormente).

    • Autenticação: Habilite o RBAC (Role-Based Access Control).


  3. Clique em Revisar + Criar e, em seguida, em Criar.


Criando o Cluster via CLI:

ree
  1. Configure o acesso ao cluster

ree

Passo 5: Fazer Deploy no AKS


ree

Agora que o cluster está configurado, vamos implantar os microsserviços.


Arquivos YAML para Deployment

Crie arquivos YAML que definem os deployments e os serviços.

Exemplo: Deployment do User Service (deployment-user-service.yaml)


ree
ree

Deploy no Cluster

Envie os arquivos YAML para o cluster:

""Repita para cada microsserviço.""



Passo 6: Configurar CI/CD com Azure DevOps

ree

Automatize o processo de build, push e deploy com o Azure DevOps.


Passos:

  1. Crie um Projeto no Azure DevOps.

  2. Vá para Pipelines e crie um pipeline YAML.


Pipeline YAML Exemplo:

ree
ree

Conclusão:


Foi destacado acima os principais benefícios dessa abordagem arquitetural, especialmente para aplicações escaláveis e resilientes.

Vale destacar e detalhar alguns casos de usos como :


No caso de um e-commerce, a divisão em microsserviços independentes para carrinho, usuários e pagamentos traz muitas vantagens. Cada equipe pode desenvolver, implantar e escalar esses serviços de forma autônoma, sem impactar o restante da aplicação. Isso permite uma maior agilidade para lançar novos recursos ou fazer ajustes conforme a demanda.

Já em um sistema SaaS, a separação em microsserviços para autenticação, relatórios e integração com terceiros facilita muito a manutenção e evolução da plataforma. Novos clientes podem ser adicionados com maior facilidade, já que cada funcionalidade está encapsulada em seu próprio serviço. Além disso, o monitoramento e o gerenciamento desses microsserviços se tornam mais eficientes.


Todo esse processo de preparação, empacotamento e implantação dos microsserviços no Azure é facilitado pelas ferramentas modernas oferecidas pela plataforma, como o Docker, o Azure Container Registry, o Azure Kubernetes Service e o Azure DevOps.


O Docker, por exemplo, permite que cada microsserviço seja empacotado de forma padronizada e independente, facilitando muito a implantação e a escalabilidade. O Azure Container Registry, por sua vez, atua como um repositório seguro e escalável para armazenar e gerenciar esses containers Docker.


Já o Azure Kubernetes Service (AKS) é um serviço gerenciado que simplifica muito o deploy e a operação de clusters Kubernetes, que são essenciais para orquestrar e escalar os containers dos microsserviços.


E o Azure DevOps, com suas ferramentas de integração e entrega contínua, automatiza todo o pipeline de build, teste e implantação desses microsserviços, garantindo agilidade e confiabilidade no processo.


Então, com essas poderosas ferramentas do Azure, seus microsserviços estarão prontos para produção, escaláveis, resilientes e fáceis de gerenciar. É realmente uma arquitetura ideal para aplicações modernas e de alto desempenho.


Referências:


Documentação oficial da Microsoft:

Artigos e tutoriais:

Livros e ebooks:

  • "Microservices Patterns" de Chris Richardson

  • "Building Microservices" de Sam Newman

  • "Microservices in .NET Core" de Christian Horsdal Gammelgaard


Cursos online:

  • "Microservices Architecture on Microsoft Azure" na Pluralsight

  • "Implementing Microservices on Azure" na Udemy

  • "Azure Microservices" na Coursera


Comunidades e fóruns:



Comentários


bottom of page