Habilitar a persistência de dados 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á.

Habilitar a persistência de dados em microsserviços

Tabby Ward e Balaji Mohan, da Amazon Web Services () AWS

Dezembro de 2023 (histórico do documento)

As organizações buscam constantemente novos processos para criar oportunidades de crescimento e reduzir o tempo de lançamento no mercado. Você pode aumentar a agilidade e a eficiência da sua organização modernizando seus aplicativos, software e sistemas de TI. A modernização também ajuda você a oferecer serviços melhores e mais rápidos aos seus clientes.

A modernização de aplicativos é um gateway para a melhoria contínua de sua organização e começa com a refatoração de um aplicativo monolítico em um conjunto de microsserviços desenvolvidos, implantados e gerenciados de forma independente. Esse processo inclui as seguintes etapas:

Embora você possa usar uma arquitetura de aplicativo monolítica para alguns casos de uso, os atributos modernos de aplicativos geralmente não funcionam em uma arquitetura monolítica. Por exemplo, o aplicativo inteiro não pode permanecer disponível enquanto você atualiza componentes individuais e você não pode escalar componentes individuais para resolver gargalos ou hotspots (regiões relativamente densas nos dados do seu aplicativo). Os monólitos podem se tornar aplicativos grandes e difíceis de administrar, exigindo esforço e coordenação significativos entre várias equipes para introduzir pequenas mudanças.

Os aplicativos legados geralmente usam um banco de dados monolítico centralizado, o que dificulta as mudanças no esquema, cria uma dependência tecnológica com o escalonamento vertical como a única forma de responder ao crescimento e impõe um único ponto de falha. Um banco de dados monolítico também impede que você crie os componentes descentralizados e independentes necessários para implementar uma arquitetura de microsserviços.

Anteriormente, uma abordagem arquitetônica típica seria modelar todos os requisitos do usuário em um banco de dados relacional usado pelo aplicativo monolítico. Essa abordagem foi apoiada pela arquitetura popular de banco de dados relacional e os arquitetos de aplicativos geralmente projetavam o esquema relacional nos estágios iniciais do processo de desenvolvimento, criavam um esquema altamente normalizado e o enviavam para a equipe de desenvolvedores. No entanto, isso significava que o banco de dados orientava o modelo de dados para o caso de uso do aplicativo, e não o contrário.

Ao optar por descentralizar seus armazenamentos de dados, você promove a persistência poliglota entre seus microsserviços e identifica sua tecnologia de armazenamento de dados com base nos padrões de acesso aos dados e em outros requisitos de seus microsserviços. Cada microsserviço tem seu próprio armazenamento de dados e pode ser escalado de forma independente com alterações de esquema de baixo impacto, e os dados são controlados por meio da API do microsserviço. Dividir um banco de dados monolítico não é fácil e um dos maiores desafios é estruturar seus dados para obter o melhor desempenho possível. A persistência poliglota descentralizada também geralmente resulta em uma eventual consistência de dados e outros desafios potenciais que exigem uma avaliação completa incluem sincronização de dados durante transações, integridade transacional, duplicação de dados, junções e latência.

Este guia é para proprietários de aplicativos, empresários, arquitetos, líderes técnicos e gerentes de projeto. O guia fornece os seis padrões a seguir para permitir a persistência de dados entre seus microsserviços:

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

Muitas organizações descobrem que inovar e melhorar a experiência do usuário sofre impacto negativo por bancos de dados, tecnologias e aplicativos monolíticos. Aplicativos e bancos de dados legados reduzem suas opções de adoção de estruturas tecnológicas modernas e restringem sua competitividade e inovação. No entanto, quando você moderniza os aplicativos e seus armazenamentos de dados, eles se tornam mais fáceis de escalar e mais rápidos de desenvolver. Uma estratégia de dados desacoplados melhora a tolerância a falhas e a resiliência, o que ajuda a acelerar o tempo de lançamento no mercado de seus novos atributos de aplicativos.

Você deve esperar os seis resultados a seguir ao promover a persistência de dados entre seus microsserviços:

  • Remover bancos de dados monolíticos legados do seu portfólio de aplicativos.

  • Melhorar a tolerância a falhas, a resiliência e a disponibilidade de seus aplicativos.

  • Reduzir seu tempo de lançamento no mercado para novos atributos de aplicativos.

  • Reduzir suas despesas gerais de licenciamento e custos operacionais.

  • Aproveite as soluções de código aberto (por exemplo, MySQL ou PostgreSQL).

  • Crie aplicativos altamente escaláveis e distribuídos, escolhendo entre mais de 15 mecanismos de bancos de dados com propósitos específicos na AWS Cloud.