Almacén de datos - Implementación de microservicios en AWS

Almacén de datos

El almacén de datos se utiliza para conservar los datos que necesitan los microservicios. Las tiendas populares para datos de sesión son los cachés en memoria como Memcached o Redis. AWS ofrece ambas tecnologías como parte del servicio administrado Amazon ElastiCache.

Poner una caché entre los servidores de aplicaciones y una base de datos es un mecanismo común para reducir la carga de lectura de la base de datos, lo que, a su vez, puede habilitar el uso de recursos a fin de admitir más escrituras. Los cachés también pueden mejorar la latencia.

Las bases de datos relacionales continúan siendo muy utilizadas para almacenar datos estructurados y objetos de negocios. AWS ofrece seis motores de base de datos (Microsoft SQL Server, Oracle, MySQL, MariaDB, PostgreSQL y Amazon Aurora) como servicios administrados a través de Amazon Relational Database Service (Amazon RDS).

Sin embargo, las bases de datos relacionales no están diseñadas para escalas interminables, lo que puede hacer que la aplicación de técnicas tendientes a admitir un gran número de consultas resulte muy difícil y use demasiado tiempo.

Las bases de datos NoSQL se han diseñado para favorecer la escalabilidad, el rendimiento y la disponibilidad por sobre la coherencia de las bases de datos relacionales. Un aspecto importante de las bases de datos NoSQL es que, generalmente, no imponen un esquema estricto. Los datos se distribuyen en particiones que se pueden escalar horizontalmente y se recuperan mediante claves de partición.

Como los microservicios individuales están diseñados para hacer una sola cosa bien, normalmente tienen un modelo de datos simplificado que podría ser adecuado para la persistencia NoSQL. Es importante saber que las bases de datos NoSQL tienen diferentes patrones de acceso en comparación con las bases de datos relacionales. Por ejemplo, no es posible unir tablas. Si esto es necesario, se debe implementar lógica en la aplicación. Puede utilizar Amazon DynamoDB para crear una tabla de base de datos capaz de almacenar y recuperar cualquier cantidad de datos, así como de satisfacer cualquier nivel de tráfico de solicitud. DynamoDB ofrece un rendimiento inferior a un milisegundo. Sin embargo, hay ciertos casos de uso que requieren tiempos de respuesta de microsegundos. Amazon DynamoDB Accelerator (DAX) ofrece capacidades de almacenamiento en caché para obtener acceso a los datos.

DynamoDB también ofrece una característica de escalado automático para ajustar de manera dinámica la capacidad de procesamiento en respuesta al tráfico real. Sin embargo, existen casos en los que la planificación de la capacidad resulta compleja o imposible debido a la existencia de incrementos de actividad pronunciados de duración breve en las aplicaciones. Para dichos casos, DynamoDB ofrece una opción simple bajo demanda que permite pagar por solicitud. DynamoDB con modalidad bajo demanda es capaz de atender miles de solicitudes por segundo de manera instantánea sin planificación de capacidad.