Redis Enterprise para Microservicios

Crea microservicios resistentes y de alta disponibilidad con Redis Enterprise

Elija una capa de datos en tiempo real para su arquitectura de microservicios

Las arquitecturas de microservicios permiten lanzar nuevos productos más rápido, ayudarlos a escalar más fácilmente y responder mejor a las demandas de los clientes. Con sus múltiples modelos de datos modernos, tolerancia a fallos en cualquier escenario, multi-arrendamiento para aislamiento y la flexibilidad para implementarse en múltiples entornos, Redis Enterprise permite a los desarrolladores y operadores optimizar su capa de datos para una arquitectura de microservicios.

https://www.youtube.com/embed/1ybaY27uZA0?si=c2lCcSDcipPAbety

¿Qué es una arquitectura de microservicios?

As defined by Chris Richardson, noted microservices expert, microservices architecture is an architectural style for structuring applications as a collection of loosely coupled services that are highly maintainable and testable, independently deployable, bounded by specific business domains, and owned by small teams. A microservice architecture enables the rapid, frequent, and reliable delivery of large, complex applications. 

Según la definición de Chris Richardson, conocido experto en microservicios, la arquitectura de microservicios es un estilo arquitectónico para estructurar aplicaciones como una colección de servicios poco acoplados que son altamente mantenibles y comprobables, desplegables de forma independiente, limitados por dominios empresariales específicos y propiedad de equipos pequeños. Una arquitectura de microservicios permite la entrega rápida, frecuente y fiable de aplicaciones grandes y complejas.

Por qué son importantes los microservicios

Las aplicaciones basadas en microservicios permiten iniciativas estratégicas de transformación digital y migración a la nube

Los microservicios son un estilo de arquitectura que ha ayudado a los equipos de desarrollo a crear un software mejor, más rápido y a minimizar los costes y la complejidad de la modernización de las aplicaciones. Como resultado, las arquitecturas de microservicios se han adoptado en todas las industrias, para proyectos que justificadamente se pueden etiquetar como “iniciativas de transformación digital”, así como para tareas más mundanas pero importantes, como el arranque de implementaciones en la nube.

Este estilo de arquitectura y su cultura de desarrollo de software relacionada permiten que los equipos de desarrollo de microservicios operen en sus propios ciclos de lanzamiento, adopten la propiedad del producto de extremo a extremo y adopten un marco DevOps basado en integración continua/entrega continua. El resultado es que las empresas pueden reducir el tiempo de comercialización para el desarrollo de nuevos servicios, a menudo a partir de proyectos medidos en meses o días.Los microservicios aceleran las migraciones a la nube de nivel de datos. Esto se debe a que se basan principalmente en bases de datos NoSQL nativas de la nube. Las bases de datos NoSQL están reemplazando las bases de datos relacionales locales que no se crearon para la nube ni para ciclos de lanzamiento independientes, según una encuesta de 2021 IDC InfoBrief survey

Además, algunas organizaciones no pueden migrar sus aplicaciones monolíticas heredadas a nativas de la nube todas a la vez. Los microservicios permiten la migración incremental de subdominios de una arquitectura monolítica a pilas de tecnología moderna.

Redis Enterprise: una solución perfecta para microservicios

Rendimiento a escala de microservicios

En un entorno de microservicios, los servicios que necesitan ejecutarse en tiempo real deben compensar la sobrecarga de la red. Redis Enterprise ofrece una latencia inferior al milisegundo para todos los tipos y modelos de datos de Redis. Además, se escala instantánea y linealmente a casi cualquier rendimiento necesario.

Diseñada para la tolerancia a los fallos y la resiliencia

Para garantizar que sus aplicaciones sean resistentes a fallos, Redis Enterprise utiliza una arquitectura de clúster compartida. Es tolerante a fallos en todos los niveles: con conmutación por error automatizada a nivel de proceso, para nodos individuales e incluso a través de zonas de disponibilidad de infraestructura. También incluye persistencia ajustable y recuperación ante desastres.

Reduce la complejidad con modelos de datos rápidos y flexibles

Redis Enterprise permite a los desarrolladores elegir el modelo de datos que mejor se adapte a sus requisitos de rendimiento y acceso a datos para su arquitectura de microservicios y diseño basado en dominios, al mismo tiempo que mantiene el aislamiento con la implementación de múltiples usuarios en una única plataforma de datos.

Simplifica las operaciones con la implementación nativa de Kubernetes

Redis Enterprise proporciona una interfaz operativa unificada que reduce la expansión tecnológica, simplifica las operaciones y reduce la latencia del servicio. Redis Enterprise Operator para Kubernetes le brinda implementaciones automatizadas y consistentes para reducir el riesgo. Eso permite que los equipos de desarrollo se centren en la innovación y el valor empresarial.

Adaptable a todas las nubes y zonas geográficas

Elija dónde debe ejecutarse su base de datos. Redis Enterprise puede desplegarse en cualquier lugar: en cualquier plataforma de nube, en las instalaciones o en una arquitectura de nube híbrida o multicloud.

Patrones de diseño para arquitecturas de microservicios

Almacenamiento en caché de consultas de microservicio

El aislamiento o contexto acotado es una característica importante de una arquitectura de microservicio. Como parte del diseño basado en dominios, cada servicio puede tener una base de datos dedicada con su propio modelo de datos único y objetivos de rendimiento del acuerdo de nivel de servicio. El almacenamiento en caché de consultas, un patrón de caché comúnmente utilizado para reducir los tiempos de respuesta de los microservicios, funciona mediante la implementación de una caché de Redis Enterprise junto con cada microservicio para entregar los datos que se necesitan dentro de un solo contexto comercial. (Es decir, sirve solo un microservicio).

Redis Enterprise Smart Cache es compatible con varios modelos de datos que se pueden implementar fácilmente en varios usuarios y permanecer aislados, todo ello sin sacrificar el rendimiento.

Más información

Almacenamiento en caché de datos compartidos entre dominios a través de CQRS

Los microservicios necesitan un acceso rápido a los datos, pero eso puede ser un reto cuando docenas o cientos de microservicios intentan leer de la misma base de datos lenta basada en disco. Los datos entre dominios tienen que estar disponibles para cada microservicio en tiempo real, y hacerlo sin romper el alcance de su contexto y objetivo empresarial.

La segregación de responsabilidades de comandos y consultas (CQRS) es un patrón de caché de precarga crítico dentro de las arquitecturas de microservicios que desacoplan las lecturas (consultas) y las escrituras (comandos). Esto permite que una aplicación escriba datos en una base de datos SQL basada en disco más lenta, mientras que obtiene y almacena en caché previamente esos datos utilizando la capacidad de captura de datos de cambio (CDC) integrada en Redis Enterprise para lecturas ultrarrápidas. De este modo, los datos están disponibles de inmediato para otros microservicios que los necesiten.

Más información

Almacenamiento en caché de la pasarela API para datos globales

Las aplicaciones de microservicios pueden almacenar en caché los datos a los que se accede globalmente en el nivel de la pasarela API para distribuir y acelerar los datos a los que acceden todos los servicios. Por lo general, se trata de datos de sesión (como el ID de usuario y las preferencias) y datos de autenticación (tokens, estado de autorización, permisos). Esto permite que los datos que se necesitan con frecuencia estén disponibles en tiempo real para todos los servicios. ¿Cuál es el resultado? Reducir la latencia de la aplicación sin romper los límites de cada contexto empresarial de microservicio.

La limitación de velocidad, en la que se mide el número de solicitudes de API en un determinado periodo de tiempo, también puede implementarse en la pasarela de API utilizando Redis Enterprise. Esto puede evitar la sobrecarga del sistema y previene los ataques DDoS.

Mensajería asíncrona para la comunicación entre servicios

Los microservicios deben comunicarse entre sí el estado, los eventos y los datos sin romper el aislamiento, y tienen que permanecer desacoplados. Una solución habitual es incorporar a la arquitectura un agente de mensajería de publicación y suscripción, es decir, hacer que la comunicación entre servicios se rija por eventos y sea coherente, y tratar cada mensaje entre microservicios como un evento.

Redis Streams es una estructura de datos de registro inmutable y ordenada en el tiempo que permite a un servicio (productor) publicar mensajes asíncronos a los que pueden suscribirse varios consumidores. Puede configurarse para gestionar diferentes garantías de entrega, admitir grupos de consumidores y aplicar otras funciones comparables a las particiones de temas de Apache Kafka. Aún mejor, Redis Streams ayuda a crear informes, análisis, auditorías y análisis forenses en el backend.

Más información

Funciones de Redis Enterprise para la arquitectura de microservicios

Replicación Active-Active

Una arquitectura de microservicios tiene muchos servicios conectados, pero se enfrenta a las mismas exigencias de rendimiento que otros enfoques. Para minimizar la latencia, los datos deben residir lo más cerca posible de los servicios. Garantizar que las bases de datos sean coherentes entre sí en caso de fallos o actualizaciones conflictivas también puede ser un gran reto. Redis Enterprise puede desplegarse como una base de datos de activo a activo, replicada y libre de conflictos, para gestionar las actualizaciones de múltiples instalaciones locales de tus servicios pero sin comprometer la latencia o la consistencia de los datos, y proporcionando continuidad en caso de fallos.

Múltiples modelos de datos

Redis Enterprise proporciona múltiples estructuras de datos (hashes, cadenas, Streams, listas, etc.) y modelos que incluyen JSON, búsqueda, series temporales y gráficos que le permiten elegir el modelo de datos que mejor se adapte a su dominio de microservicio, rendimiento y requisitos de acceso a datos. Y todo está en una única plataforma de datos.

Bases de datos multiusuario

Dentro de un diseño de base de datos de arquitectura de microservicios, con tan solo un único clúster de Redis Enterprise puede proporcionar bases de datos a muchos servicios diferentes, cada uno con su propia instancia aislada, ajustada para la carga de trabajo en cuestión. Cada instancia de la base de datos se despliega, escala y modela independientemente de las demás, al tiempo que aprovecha el mismo entorno de clúster, aislando los datos entre los servicios sin aumentar la complejidad operativa.

Flexibilidad entre nubes

Los microservicios proporcionan una gran flexibilidad tecnológica, y elegir dónde desea ejecutar su base de datos no debería ser una excepción. Redis Enterprise se puede implementar en cualquier lugar: en cualquier plataforma de nube, en las instalaciones o en una arquitectura de nube múltiple o híbrida. También está disponible en Kubernetes, Pivotal Kubernetes Service (PKS) y Red Hat OpenShift.

Orquestación y gestión de contenedores Kubernetes nativos

Los contenedores están estrechamente alineados con las aplicaciones de microservicios y ayudan a las empresas a implantarlas. Kubernetes es la plataforma estándar de facto para el despliegue, la programación y la orquestación de contenedores. Redis es la principal tecnología de base de datos que se ejecuta en contenedores, con más de dos mil millones de lanzamientos de concentradores Docker. Redis Enterprise Operator para Kubernetes ofrece: escalabilidad automática, volúmenes de almacenamiento persistentes, gestión simplificada de puntos finales de bases de datos y actualizaciones continuas sin tiempo de inactividad. Está disponible en múltiples plataformas Kubernetes y servicios gestionados en la nube, incluyendo RedHat OpenShift, VMware Tanzu Kubernetes Grid (anteriormente Enterprise PKS), Kubernetes aguas arriba, y Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), o Amazon Elastic Kubernetes Service (EKS).

PREGUNTAS MÁS FRECUENTES

  • ¿Qué son los microservicios?
    • La arquitectura de microservicios (a menudo abreviada como microservices) se refiere a un estilo arquitectónico para desarrollar aplicaciones. Los microservicios permiten separar una aplicación grande en partes más pequeñas e independientes, cada una de las cuales tiene su propio ámbito de responsabilidad. Para atender una única solicitud de un usuario, una aplicación basada en microservicios puede llamar a muchos microservicios internos para componer su respuesta.
  • ¿Cuál es la diferencia entre arquitectura monolítica y arquitectura de microservicios?
    • En una arquitectura monolítica, los procesos están estrechamente acoplados y se ejecutan como un único artefacto desplegable. Aunque esto es relativamente sencillo al principio, ampliar o modificar una parte de la aplicación de microservicios requiere actualizar todo el servicio, lo que da lugar a una escalabilidad ineficaz y a una mayor complejidad a medida que aumenta el tamaño de la base de código.
      • La arquitectura de microservicios consiste en una colección de servicios poco acoplados que pueden ser actualizados y ampliados de forma independiente por equipos más pequeños. Dado que los servicios individuales son más fáciles de crear, desplegar y gestionar que una única aplicación monolítica, los microservicios permiten despliegues más frecuentes, autonomía en el almacenamiento de datos y una mayor flexibilidad.
      • Las organizaciones están pasando todas sus aplicaciones a la arquitectura de microservicios para reducir drásticamente el tiempo de comercialización, adoptar más fácilmente nuevas tecnologías y responder con mayor rapidez a las necesidades de los clientes.
  • ¿Qué es Kubernetes?
    • Kubernetes, también conocido como k8s, es un sistema de orquestación de código abierto para automatizar el despliegue, el escalado y la gestión de aplicaciones en contenedores, utilizado normalmente como parte de arquitecturas de microservicios y nativas de la nube.
  • ¿Qué son los contenedores Docker?
    • Las imágenes de contenedores Docker son paquetes de software ligeros, independientes y ejecutables que incluyen todo lo necesario para ejecutar una aplicación.
  • ¿Qué es una pasarela API?
    • Una pasarela de API es una aplicación de software para la gestión de api que se sitúa entre un cliente y un conjunto de microservicios backend. La pasarela de API sirve como proxy inverso para aceptar llamadas a la API desde la aplicación cliente, reenviando este tráfico al servicio apropiado.