As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implementando microsserviços em AWS
Data de publicação: 31 de julho de 2023 (Histórico do documento)
Os microsserviços oferecem uma abordagem simplificada para o desenvolvimento de software que acelera a implantação, incentiva a inovação, melhora a capacidade de manutenção e aumenta a escalabilidade. Esse método se baseia em serviços pequenos e pouco acoplados que se comunicam por meio de serviços bem definidosAPIs, gerenciados por equipes autônomas. A adoção de microsserviços oferece benefícios, como maior escalabilidade, resiliência, flexibilidade e ciclos de desenvolvimento mais rápidos.
Este whitepaper explora três padrões populares de microsserviços: API orientado, orientado por eventos e streaming de dados. Fornecemos uma visão geral de cada abordagem, descrevemos os principais recursos dos microsserviços, abordamos os desafios em seu desenvolvimento e ilustramos como a Amazon Web Services (AWS) pode ajudar as equipes de aplicativos a enfrentar esses obstáculos.
Considerando a natureza complexa de tópicos como armazenamento de dados, comunicação assíncrona e descoberta de serviços, recomendamos que você avalie as necessidades específicas e os casos de uso do seu aplicativo junto com a orientação fornecida ao tomar decisões de arquitetura.
Introdução
As arquiteturas de microsserviços
-
Desenvolvimento ágil de software
-
Arquiteturas orientadas a serviços
-
API-primeiro design
-
ContínuoIntegration/Continuous Delivery (CI/CD)
Frequentemente, os microsserviços incorporam padrões de design do aplicativo Twelve-Factor
Embora os microsserviços ofereçam muitos benefícios, é vital avaliar os requisitos exclusivos do seu caso de uso e os custos associados. Arquitetura monolítica ou abordagens alternativas podem ser mais apropriadas em alguns casos. A decisão entre microsserviços ou monólitos deve ser feita case-by-case com base em fatores como escala, complexidade e casos de uso específicos.
Primeiro, exploramos uma arquitetura de microsserviços altamente escalável e tolerante a falhas (interface de usuário, implementação de microsserviços, armazenamento de dados) e demonstramos como desenvolvê-la usando tecnologias de contêiner. AWS Em seguida, sugerimos AWS serviços para implementar uma arquitetura típica de microsserviços sem servidor, reduzindo a complexidade operacional.
A tecnologia sem servidor é caracterizada pelos seguintes princípios:
-
Sem infraestrutura para provisionar ou gerenciar
-
Dimensionamento automático por unidade de consumo
-
Modelo de cobrança “Pague pelo valor”
-
Disponibilidade e tolerância a falhas integradas
-
Arquitetura orientada a eventos (EDA)
Por fim, examinamos o sistema geral e discutimos os aspectos entre serviços de uma arquitetura de microsserviços, como monitoramento distribuído, registro, rastreamento, auditoria, consistência de dados e comunicação assíncrona.
Este documento se concentra nas cargas de trabalho em execução no Nuvem AWS, excluindo cenários híbridos e estratégias de migração. Para obter informações sobre estratégias de migração, consulte o whitepaper da Metodologia de Migração de Contêineres
Você é Well-Architected?
A AWS Well-Architected Framework
No Serverless Application Lens, nos concentramos nas melhores práticas para arquitetar seus aplicativos sem servidor em. AWS
Para obter orientações especializadas e melhores práticas adicionais para a arquitetura de sua nuvem (implantações de arquitetura de referência, diagramas e whitepapers), consulte o Centro de Arquitetura da AWS
Modernização para microsserviços
Os microsserviços são essencialmente unidades pequenas e independentes que compõem um aplicativo. A transição de estruturas monolíticas tradicionais para microsserviços pode seguir várias estratégias.
Essa transição também afeta a forma como sua organização opera:
-
Ela incentiva o desenvolvimento ágil, em que as equipes trabalham em ciclos rápidos.
-
As equipes geralmente são pequenas, às vezes descritas como duas equipes de pizza — pequenas o suficiente para que duas pizzas possam alimentar toda a equipe.
-
As equipes assumem total responsabilidade por seus serviços, desde a criação até a implantação e manutenção.