Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Permitir la persistencia de los datos en los microservicios
Tabby Ward y Balaji Mohan, Amazon Web Services () AWS
Diciembre de 2023 (historial de documentos)
Las organizaciones buscan constantemente nuevos procesos para crear oportunidades de crecimiento y reducir el tiempo de comercialización. Puede aumentar la agilidad y la eficacia de su organización modernizando sus aplicaciones, software y sistemas de TI. La modernización también le ayuda a ofrecer servicios mejores y más rápidos a sus clientes.
La modernización de las aplicaciones es una puerta de enlace a la mejora continua para su organización y comienza con la refactorización de una aplicación monolítica en un conjunto de microservicios desarrollados, implementados y administrados de forma independiente. El proceso consta de los pasos siguientes:
-
Descomponer los monolitos en microservicios: emplee los patrones para dividir las aplicaciones monolíticas en microservicios.
-
Integrar los microservicios: integre los microservicios recién creados en una arquitectura de microservicios usando servicios sin servidor de Amazon Web Services (AWS)
. -
Habilite la persistencia de los datos para los microservicios: fomente la persistencia políglota
entre sus microservicios descentralizando los almacenes de datos.
Si bien puede utilizar una arquitectura monolítica de aplicaciones para algunos casos de uso, las características de las aplicaciones modernas a menudo no funcionan en una arquitectura monolítica. Por ejemplo, la aplicación completa no puede permanecer disponible mientras se actualizan los componentes individuales y no se pueden escalar los componentes individuales para resolver los cuellos de botella o los puntos de acceso (regiones relativamente densas en los datos de la aplicación). Los monolitos pueden convertirse en aplicaciones de gran tamaño e incontrolables, por lo que se requiere un esfuerzo y una coordinación considerables entre varios equipos para introducir pequeños cambios.
Las aplicaciones heredadas suelen utilizar una base de datos monolítica centralizada, lo que dificulta los cambios de esquema, crea un bloqueo tecnológico con el escalado vertical como única forma de responder al crecimiento e impone un único punto de error. Una base de datos monolítica también le impide crear los componentes descentralizados e independientes necesarios para implementar una arquitectura de microservicios.
Anteriormente, un enfoque de arquitectura típico consistía en modelar todos los requisitos de los usuarios en una base de datos relacional que utilizaba la aplicación monolítica. Este enfoque estaba respaldado por la popular arquitectura de bases de datos relacionales y los arquitectos de aplicaciones solían diseñar el esquema relacional en las primeras etapas del proceso de desarrollo, creaban un esquema altamente normalizado y, a continuación, lo enviaban al equipo de desarrolladores. Sin embargo, esto significaba que la base de datos se basaba en el modelo de datos para el caso de uso de la aplicación y no al revés.
Al optar por descentralizar sus almacenes de datos, fomenta la persistencia políglota entre sus microservicios e identifica su tecnología de almacenamiento de datos en función de los patrones de acceso a datos y otros requisitos de sus microservicios. Cada microservicio tiene su propio almacén de datos y se puede escalar de forma independiente con cambios de esquema de bajo impacto. Además, los datos se almacenan a través de la API del microservicio. Desglosar una base de datos monolítica no es fácil y uno de los mayores desafíos es estructurar los datos para lograr el mejor rendimiento posible. La persistencia políglota descentralizada también suele dar lugar a la coherencia de datos final y otros posibles desafíos que requieren una evaluación exhaustiva incluyen la sincronización de datos durante las transacciones, la integridad de las transacciones, la duplicación de datos y las uniones y la latencia.
Esta guía es útil para propietarios de aplicaciones, propietarios de empresas, arquitectos, líderes técnicos y directores de proyecto. La guía proporciona los seis patrones siguientes para permitir la persistencia de los datos entre sus microservicios:
-
-
Para ver los pasos para implementar el patrón saga mediante el uso de AWS Step Functions, consulte el patrón Implementar el patrón saga sin servidor con AWS Step Functions en el sitio web de la Orientación prescriptiva de AWS.
-
La guía forma parte de una serie de contenido que cubre el enfoque de modernización de las aplicaciones recomendado por AWS. La serie también incluye:
Resultados empresariales específicos
Muchas organizaciones consideran que la innovación y la mejora de la experiencia del usuario se ven afectadas negativamente por las aplicaciones, bases de datos y tecnologías monolíticas. Las aplicaciones y las bases de datos heredadas reducen sus opciones de adoptar marcos tecnológicos modernos y limitan su competitividad e innovación. Sin embargo, al modernizar las aplicaciones y sus almacenes de datos, es más fácil escalarlos y más rápido desarrollarlos. Una estrategia de datos desacoplada mejora la tolerancia a errores y la resiliencia, lo que ayuda a acelerar el tiempo de comercialización de las nuevas características de la aplicación.
Al fomentar la persistencia de los datos en sus microservicios, debería esperar los seis resultados siguientes:
-
Elimine las bases de datos monolíticas heredadas de su cartera de aplicaciones.
-
Mejore la tolerancia a errores, la resiliencia y la disponibilidad de sus aplicaciones.
-
Reduzca el tiempo de comercialización de las nuevas características de la aplicación.
-
Reduzca los gastos generales de licencias y los costos operativos.
-
Aproveche las soluciones de código abierto (por ejemplo, MySQL
o PostgreSQL ). -
Cree aplicaciones distribuidas y altamente escalables eligiendo entre más de 15 motores de bases de datos personalizadas en la nube de AWS
.