O blog da AWS

Let’s Architect! Projetando arquiteturas de microsserviços

Por Luca Mezzalira, Federica Ciuffo, Laura Hyatt, Vittorio Denti, e Zamira Jaupaj
 

Em 2022, publicamos Let’s Architect! Arquitetando microsserviços com containers. Abordamos padrões de integrações e algumas abordagens para implementar microsserviços usando containers. Neste post do Let’s Architect!, queremos nos aprofundar apenas nos microsserviços, focando nos principais desafios que arquitetos e engenheiros de software enfrentam ao trabalhar em grandes sistemas distribuídos estruturados como um conjunto de serviços independentes.Há muitas considerações a serem abordadas em detalhes em um tópico amplo, como microsserviços. Devemos refletir sobre a estrutura organizacional, os canais de automação, a estratégia de várias contas, os testes, a comunicação e muitas outras áreas. Com este post, nos aprofundamos no tópico analisando as opções de descoberta e conectividade disponíveis por meio do Amazon VPC Lattice; depois, nos concentramos nos padrões de arquitetura para comunicação, principalmente na comunicação assíncrona, pois ela se encaixa muito bem este cenário. Por fim, exploramos como trabalhar com microsserviços serverless e analisamos um estudo de caso da Amazon, retirado diretamente da Biblioteca do Amazon Builder.

AWS Container Day com Kubernetes

Os aplicativos modernos geralmente são criados usando uma abordagem distribuída de microsserviços, que envolve a divisão do aplicativo em serviços menores e especializados. Cada um desses serviços implementa seu próprio subconjunto de funcionalidades ou lógica de negócios. Para facilitar a comunicação entre esses serviços, é essencial ter um método para autorizar, rotear e monitorar o tráfego da rede. Também é importante, em caso de problemas, ter a capacidade de identificar a causa raiz de um problema, seja ele originado no nível do aplicativo, do serviço ou da rede.

O Amazon VPC Lattice pode oferecer uma forma consistente de conectar, proteger e monitorar a comunicação entre instâncias, container e funções serverless. Com o Amazon VPC Lattice, você pode definir políticas para gerenciamento de tráfego, acesso à rede, roteamento avançado, implementar a capacidade de descoberta e, ao mesmo tempo, monitorar como o tráfego está fluindo dentro de aplicativos complexos quase em tempo real.

Assistir a esse vídeo!

Amazon VPC Lattice service gives you a consistent way to connect, secure, and monitor communication between your services

O serviço Amazon VPC Lattice oferece uma maneira consistente de conectar, proteger e monitorar a comunicação entre seus serviços.

Padrões de integração de aplicativos para microsserviços

A integração fraca pode ajudá-lo a projetar sistemas independentes que podem ser desenvolvidos e operados individualmente, além de aumentar a disponibilidade e a confiabilidade do cenário geral do sistema, especialmente usando comunicação assíncrona. Embora existam muitas abordagens para cenários de integração e conversação, nem sempre está claro qual abordagem é a melhor para uma determinada situação.

Assista a esta sessão do re:Invent 2022 para aprender sobre os padrões fundamentais para cenários de integração e conversação com ênfase em acoplamento fraco e comunicação assíncrona. Explore casos de uso do mundo real arquitetados com serviços nativos da nuvem e sem servidor e receba orientação sobre como escolher a tecnologia de integração.

Assistir este vídeo do re:Invent 2022!

Loosely coupled integration can help you design independent systems that can be developed and operated individually and can also increase the availability and reliability of the overall system

A integração fracamente acoplada pode ajudá-lo a projetar sistemas independentes que podem ser desenvolvidos e operados individualmente e também podem aumentar a disponibilidade e a confiabilidade do sistema geral

Padrões de design para o sucesso em microsserviços serverless

Os engenheiros de software adoram padrões — abordagens comprovadas para problemas conhecidos que facilitam o desenvolvimento de software e preparam nossos projetos para o sucesso. Em sistemas complexos e distribuídos, como microsserviços, padrões como CQRS e Event Sourcing ajudam a desacoplar e escalar sistemas.

A primeira parte do vídeo é sobre a introdução de padrões de arquitetura e seus aplicativos, enquanto a segunda parte contém um conjunto de demonstrações e exemplos do console da AWS.

Nesta sessão, examinamos alguns padrões típicos para a criação de microsserviços serverless robustos e de alto desempenho e como os padrões de acesso a dados podem impulsionar a persistência poliglota.

Assistir este vídeo do AWS Summit!

With Event Sourcing data is stored as a series of events, instead of direct updates to data stores. Microservices replay events from an event store to compute the appropriate state of their own data stores

Com event sourcing, os dados são armazenados como uma série de eventos, em vez de atualizações diretas nos armazenamentos de dados; os microsserviços reproduzem eventos de um armazenamento de eventos para computar o estado apropriado de seus próprios armazenamentos de dados

Evitar a sobrecarga em sistemas distribuídos colocando o serviço menor sob controle

Se não prestarmos atenção à escala relativa de um serviço e de seus clientes, sistemas distribuídos com microsserviços podem correr o risco de sobrecarga. Um padrão de arquitetura comum adotado por muitos serviços da AWS consiste em dividir o sistema em um control plane e um data plane

Este artigo detalha esse cenário para entender o que poderia acontecer se a frota do data plane excedesse a escala da frota do control plane em um fator de 100 ou mais. Isso pode acontecer em uma arquitetura baseada em microsserviços quando o serviço X se recupera de uma interrupção e começa a enviar uma grande quantidade de solicitações ao serviço Y. Sem um ajuste fino cuidadoso, essa mudança de comportamento pode sobrecarregar o cliente menor. Com esse recurso, queremos compartilhar alguns modelos mentais e estratégias de design que são benéficos para sistemas distribuídos e equipes que trabalham em arquiteturas de microsserviços.

Ir para a Biblioteca do Amazon Builders!

To stay up to date on the data plane’s operational state, the control plane can poll an Amazon S3 bucket into which data plane servers periodically write that information

Para se manter atualizado sobre o estado operacional do data plane, o control plane pode pesquisar um bucket do Amazon S3 no qual os servidores do control plane gravam periodicamente essas informações.

Até a próxima!

Para encontrar todos os blogs desta série, você pode conferir o Let’s Architect! lista de conteúdo no blog de arquitetura da AWS.

 

Este artigo foi traduzido do Blog da AWS em Inglês.


Sobre os autores

Luca Mezzalira é arquiteto de soluções principal com sede em Londres. Ele é autor de vários livros e é palestrante internacional. Ele emprestou sua experiência predominantemente na área de arquitetura de soluções. Luca ganhou elogios por revolucionar a escalabilidade das arquiteturas de front-end com microfrontend, desde o aumento da eficiência dos fluxos de trabalho até a entrega de qualidade nos produtos.

 

 

 

 

Federica Ciuffo é arquiteta de soluções na Amazon Web Services. Ela é especializada em serviços de containers e é apaixonada por criar infraestrutura com código. Fora do escritório, ela gosta de ler, desenhar e passar tempo com seus amigos, de preferência em restaurantes experimentando novos pratos de diferentes cozinhas.

 

 

 

 

Laura Hyatt é arquiteta de soluções para o setor público da AWS e ajuda clientes do setor educacional no Reino Unido. Laura ajuda os clientes não apenas em arquiteturas  e a desenvolver soluções escaláveis, mas também a pensar bem em soluções inovadoras enfrentadas atualmente pelo setor educacional. A especialidade de Laura é a IoT, e ela também é a PME da Alexa para Educação na EMEA.

 

 

 

 

Vittorio Dentié engenheiro de aprendizado de máquina na Amazon, com sede em Londres. Depois de concluir seu mestrado em Ciência da Computação e Engenharia no Politecnico di Milano (Milão) e no KTH Royal Institute of Technology (Estocolmo), ele ingressou na AWS. Vittorio tem experiência em sistemas distribuídos e aprendizado de máquina. Ele é especialmente apaixonado pela engenharia de software e pelas últimas inovações na ciência do aprendizado de

 

 

 

 

máquina.Zamira Jaupaj é arquiteta de soluções corporativas com sede na Holanda. Ela é uma profissional de TI altamente apaixonada, com mais de 10 anos de experiência multinacional em projetar e implementar soluções críticas e complexas com contêineres, sem servidor e análise de dados para empresas pequenas e corporativas.

 

 

 

 

Tradutor

Michael Costa é arquiteto de soluções na Amazon Web Services Brasil, com mais de 20 anos de experiência em computação e especialista no projeto e desenvolvimento de sistemas.