Decompor monólitos em microsserviços - AWS Orientação prescritiva

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á.

Decompor monólitos em microsserviços

Tabby Ward e Dmitry Gulin, Amazon Web Services (AWS)

Abril de 2023 (histórico do documento)

A migração para a nuvem da Amazon Web Services (AWS) tem muitas vantagens, incluindo agilidade técnica e comercial, novas oportunidades de receita e custos reduzidos. Para se beneficiar totalmente dessas vantagens, você deve modernizar continuamente o software da sua organização, refatorando seus aplicativos monolíticos em microsserviços. Esse processo consiste em três etapas principais:

A modernização normalmente envolve dois tipos de projetos:

  • Os projetos Brownfield envolvem o desenvolvimento e a implantação de um novo sistema de software dentro do contexto de sistemas herdados ou existentes.

  • Os projetos Greenfield envolvem a criação de um sistema do zero para um ambiente completamente novo, sem nenhum código legado envolvido.

Para projetos abandonados, uma das primeiras etapas em sua jornada de modernização de aplicativos é decompor os monólitos do seu portfólio em microsserviços.

A maioria dos aplicativos começa como monólitos projetados para um caso de uso comercial específico. Se a arquitetura do monólito não impõe um design modular, um monólito pode continuar sendo uma opção válida para aplicativos que não têm responsabilidades claramente definidas dentro dos limites de um conhecimento de domínio bem estabelecido. A característica central de um monólito como uma única unidade de implantação também pode ajudar a mitigar falhas de projeto, como acoplamento forte ou falta de estrutura interna.

Embora um monólito possa ser uma opção válida para alguns casos de uso, ele normalmente não é adequado para uma aplicação moderna. As estruturas internas mal definidas de um monólito podem dificultar a manutenção do código, o que cria uma curva de aprendizado acentuada para novos desenvolvedores e causa custos adicionais de suporte. O alto acoplamento e a baixa coesão podem aumentar significativamente o tempo necessário para adicionar novos atributos e talvez você não consiga escalar componentes individuais com base nos padrões de tráfego. Os monólitos também exigem que várias equipes se coordenem para um grande lançamento, o que aumenta a carga de colaboração e transferência de conhecimento. Por fim, você pode descobrir que adicionar novos atributos ou criar novas experiências de usuário se torna difícil quando sua empresa ou sua base de usuários cresce.

Para evitar isso, você pode usar padrões de decomposição para decompor aplicativos monolíticos, convertê-los em vários microsserviços e migrá-los para uma arquitetura de microsserviços. Uma arquitetura de microsserviços estrutura um aplicativo como uma série de serviços com acoplamento fraco. Os microsserviços são projetados para acelerar o desenvolvimento de software, permitindo processos de entrega e implantação contínuas (CI/CD)

Antes de iniciar o processo de decomposição, você deve avaliar quais monólitos devem ser decompostos. Certifique-se de incluir monólitos que tenham problemas de confiabilidade ou desempenho, ou inclua vários componentes em uma arquitetura fortemente acoplada. Também recomendamos que você compreenda totalmente o caso de uso comercial do monólito, sua tecnologia e suas interdependências com outros aplicativos.

Este guia é para proprietários de aplicativos, empresários, arquitetos, líderes técnicos e gerentes de projeto. Ele discute os seis padrões nativos de nuvem a seguir que são usados para decompor monólitos e descreve as vantagens e desvantagens de cada um:

O guia é parte de uma série de conteúdos que discutem a abordagem de modernização de aplicativos recomendada pela AWS. A série também inclui:

Resultados de negócios desejados

Você deve esperar os seguintes resultados depois de decompor seus monólitos em microsserviços:

  • Uma transição eficiente do seu aplicativo monolítico para uma arquitetura de microsserviços.

  • Ajustes rápidos à flutuação da demanda comercial sem interromper as principais atividades, como alta escalabilidade, maior resiliência, entrega contínua e isolamento de falhas.

  • Inovação mais rápida, pois cada microsserviço pode ser testado e implantado individualmente.