Datastore - Implementação de microsserviços na AWS

Datastore

O datastore é usado para persistir os dados necessários para os microsserviços. Caches na memória, como Memcached ou Redis, são datastores populares para dados de sessão. A AWS oferece ambas as tecnologias como parte do serviço gerenciado Amazon ElastiCache.

O posicionamento de um cache entre servidores de aplicação e um banco de dados é um mecanismo comum para reduzir a carga de leitura do banco de dados. Isso, por sua vez, pode permitir o uso de recursos para comportar mais gravações. Os caches também aprimoram a latência.

Os bancos de dados relacionais ainda são muito apreciados para armazenar dados estruturados e objetos de negócio. A AWS oferece seis mecanismos de banco de dados (Microsoft SQL Server, Oracle, MySQL, MariaDB, PostgreSQL e Amazon Aurora) como serviços gerenciados por meio do Amazon Relational Database Service (Amazon RDS).

No entanto, os bancos de dados relacionais não são projetados para escalar indefinidamente. Por isso, pode ser muito difícil e demorado aplicar técnicas para comportar um alto número de consultas.

Os bancos de dados NoSQL foram projetados para priorizar a escalabilidade, a performance e a disponibilidade em relação à consistência dos bancos de dados relacionais. Um elemento importante é que, normalmente, os bancos de dados NoSQL não aplicam um esquema rigoroso. Os dados são distribuídos por meio de partições, que podem ser escaladas horizontalmente e são recuperadas por meio de chaves de partição.

Como os microsserviços individuais são projetados para executar bem uma única função, eles normalmente têm um modelo de dados simplificado que pode ser bastante adequado para persistência no NoSQL. É importante compreender que bancos de dados NoSQL têm padrões de acesso diferentes dos bancos de dados relacionais. Por exemplo, não é possível associar tabelas. Se a associação for necessária, a lógica deverá ser implementada no aplicativo. Você pode usar o Amazon DynamoDB para criar uma tabela de banco de dados capaz de armazenar e recuperar qualquer quantidade de dados, assim como atender a todos os níveis de solicitação de tráfego. O DynamoDB oferece performance abaixo de dez milissegundos. No entanto, alguns casos de uso demandam tempos de resposta em microssegundos. O Amazon DynamoDB Accelerator (DAX) oferece recursos de armazenamento em cache para acesso aos dados.

O DynamoDB também oferece um recurso de escalabilidade automática para ajustar dinamicamente a capacidade de throughput de acordo com o tráfego real. No entanto, há casos em que o planejamento de capacidade é difícil ou impossível devido a grandes picos de atividade de curta duração no aplicativo. Para tais situações, o DynamoDB disponibiliza uma opção sob demanda com definição de preço simples no modelo de pagamento por solicitação. O DynamoDB sob demanda consegue atender instantaneamente a milhares de solicitações por segundo, sem precisar de planejamento de capacidade.