O que é a arquitetura de microsserviços?

A arquitetura de microsserviços (geralmente chamada simplesmente de microsserviços) refere-se a um estilo de arquitetura para o desenvolvimento de aplicativos. Os microsserviços permitem que um aplicativo grande seja separado em partes independentes menores, com cada parte tendo sua própria responsabilidade. Para atender a uma única solicitação do usuário, um aplicativo baseado em microsserviços pode chamar muitos microsserviços internos para compor a resposta.

Contêineres são um exemplo de arquitetura de microsserviços bem organizada e permitem que você se concentre no desenvolvimento dos serviços sem se preocupar com as dependências. A computação sem servidor é outra abordagem comum, que permite que as equipes executem microsserviços sem gerenciar servidores ou infraestrutura, escalando automaticamente as funções em resposta à demanda.

Saiba como o Google Kubernetes Engine (GKE) e o Cloud Run podem ajudar você a criar aplicativos baseados em microsserviços usando contêineres.

Tudo pronto para começar? Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.

Saiba mais sobre a arquitetura de microsserviços
Saiba mais sobre a arquitetura de microsserviços

Definição da arquitetura de microsserviços

Uma arquitetura de microsserviços é um tipo de arquitetura em que o aplicativo é desenvolvido como uma coleção de serviços. Ela fornece a estrutura para desenvolver, implantar e manter diagramas e serviços de arquitetura de microsserviços de maneira independente.

Em uma arquitetura de microsserviços, cada microsserviço é um serviço único criado para acomodar um recurso do aplicativo e processar tarefas distintas. Cada microsserviço se comunica com outros serviços por meio de interfaces simples para resolver problemas comerciais.

Arquitetura monolítica x arquitetura de microsserviços

Os aplicativos monolíticos tradicionais são criados como uma unidade única e unificada. Todos os componentes estão acoplados de forma rígida, compartilhando recursos e dados. Isso pode gerar desafios na escalabilidade, implantação e manutenção do aplicativo, especialmente à medida que ele se torna mais complexo. Em contraste, a arquitetura de microsserviços decompõe um aplicativo em um pacote de serviços pequenos e independentes. Cada microsserviço é independente, com código, dados e dependências próprios. Essa abordagem oferece várias vantagens em potencial:

  • Escalabilidade melhorada: microsserviços individuais podem ser escalonados de forma independente com base em suas necessidades específicas
  • Mais agilidade: os microsserviços podem ser desenvolvidos, implantados e atualizados de forma independente, o que permite ciclos de lançamento mais rápidos
  • Resiliência aprimorada: se um microsserviço falhar, isso não vai necessariamente afetar todo o aplicativo
  • Diversidade de tecnologia: a flexibilidade dos microsserviços permite que as equipes usem a tecnologia mais adequada para cada serviço

Para aplicativos que ainda não são grandes ou complexos o suficiente para justificar uma arquitetura de microsserviços totalmente distribuída, o "monólito modular" é uma opção poderosa. Essa abordagem mantém uma única unidade de implantação do aplicativo (um monólito), mas separa estritamente a base de código do aplicativo em módulos internos altamente coesos e com acoplamento flexível com base na área dos negócios. Isso oferece os benefícios organizacionais dos microsserviços (limites claros, desenvolvimento independente) sem toda a sobrecarga do gerenciamento de um sistema distribuído.

Exemplos do setor

Muitas organizações de vários setores adotaram a arquitetura de microsserviços para enfrentar desafios específicos dos negócios e impulsionar a inovação. Veja alguns exemplos:

  • E-commerce: muitas plataformas de e-commerce usam microsserviços para gerenciar diferentes aspectos das operações, como catálogo de produtos, carrinho de compras, processamento de pedidos e contas de clientes. Isso ajuda a empresa a escalar serviços individuais com base na demanda, personalizar as experiências dos clientes e implantar novos recursos com rapidez.
  • Serviços de streaming: os serviços de streaming geralmente dependem de microsserviços para lidar com tarefas como codificação de vídeo, entrega de conteúdo, autenticação de usuários e mecanismos de recomendação. Isso ajuda a oferecer experiências de streaming de alta qualidade para milhões de usuários ao mesmo tempo.
  • Serviços financeiros: as instituições financeiras usam microsserviços para gerenciar vários aspectos das operações, como detecção de fraudes, processamento de pagamentos e gerenciamento de riscos. Isso possibilita uma resposta rápida às mudanças nas condições do mercado, uma melhoria na segurança e o cumprimento de requisitos regulatórios.

Para que a arquitetura de microsserviços é usada?

Normalmente, os microsserviços são usados para acelerar o desenvolvimento de aplicativos. Arquiteturas de microsserviços criadas usando Java são comuns, especialmente as do Spring Boot. Também é comum comparar microsserviços com a arquitetura orientada a serviços. Ambos têm o mesmo objetivo, que é dividir aplicativos monolíticos em componentes menores, mas usam abordagens diferentes. Veja alguns exemplos de arquitetura de microsserviços:

Migração de sites

É possível migrar um site complexo hospedado em uma plataforma monolítica para uma plataforma de microsserviços baseada na nuvem e em contêineres.

Conteúdo de mídia

Usando a arquitetura de microsserviços, os recursos de imagem e vídeo podem ser armazenados em um sistema de armazenamento de objetos escalável e exibidos diretamente na Web ou em dispositivos móveis.

Transações e faturas

O processamento e a ordem de pagamentos podem ser separados como unidades de serviço independentes. Dessa forma, os pagamentos continuarão sendo aceitos se o faturamento não estiver funcionando.

Processamento de dados

Uma plataforma de microsserviços pode estender o suporte à nuvem para serviços de processamento de dados modulares existentes.

Enfrente seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
Fale com um especialista em vendas do Google Cloud para discutir seu desafio exclusivo em mais detalhes.

Padrões de design de microsserviços

Para gerenciar a complexidade e otimizar o desempenho de sistemas distribuídos, os arquitetos hoje em dia contam com vários padrões básicos de design.

Malha de serviço

  • Uma malha de serviço é uma camada de infraestrutura dedicada para lidar com a comunicação entre serviços
  • Ela normalmente utiliza um proxy sidecar (como Istio ou Envoy) implantado ao lado de cada contêiner de microsserviço para gerenciar o tráfego
  • Esse padrão oferece recursos cruciais, como resiliência (por exemplo, novas tentativas e interrupção de circuito), segurança (autenticação mTLS) e observabilidade (rastreamento e métricas detalhados) sem exigir alterações no código do serviço em si

Arquitetura orientada a eventos (EDA)

  • Enquanto os microsserviços tradicionais geralmente se comunicam de forma síncrona por meio de APIs REST, as arquiteturas modernas favorecem cada vez mais a comunicação assíncrona usando eventos
  • Na EDA, um serviço publica um evento (uma mudança de estado) em um agente de mensagens (como o Google Cloud Pub/Sub), e outros serviços se inscrevem nesses eventos
  • Isso promove um acoplamento mais flexível, melhor capacidade de resposta em tempo real e melhor isolamento de falhas, já que os serviços não precisam conhecer uns aos outros diretamente

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos sem gastar nada.

Google Cloud