Jump to section

Spring en Kubernetes con Red Hat OpenShift

Copiar URL

Con Red Hat® OpenShift®, puede desarrollar y ejecutar las aplicaciones de Spring y Spring Boot directamente en Kubernetes.

Las aplicaciones de Spring pueden utilizar Kubernetes y sus funciones para prestar los servicios necesarios de nube que permitan el desarrollo eficiente en esa plataforma, entre los que se incluyen las colas de mensajes, las bases de datos, el almacenamiento permanente y la memoria caché.

Registro de servicios

Las arquitecturas de microservicios suelen implicar la adaptación dinámica de los servicios individuales, en una nube privada, híbrida o pública, donde no siempre se pueden predecir o configurar de manera estática y por adelantado el número y la dirección de los hosts. La replicación y la adaptación de los servicios son funciones esenciales en Kubernetes, así que no es necesario que el cliente conserve la memoria caché ni que se encargue de las fallas en el registro de los servicios. Por ejemplo, Ribbon de Netflix (que suele utilizarse con las aplicaciones de Spring) se puede configurar de manera declarativa para que utilice Kubernetes en lugar de un registro de servicios, sin tener que modificar el código.

Equilibrio de la carga

Para las llamadas de los clientes a los servicios sin estado que se alojan en las aplicaciones de Spring, la alta disponibilidad implica la necesidad de buscar el servicio en el registro y equilibrar la carga entre las instancias disponibles. Kubernetes brinda una sola dirección del servicio, donde se equilibra la carga de las llamadas y se las envía a la instancia adecuada. Dentro de un clúster de Kubernetes, el nombre del servicio determina su dirección IP y puede utilizarse para llegar al equilibrador de carga. También se puede configurar una dirección IP externa para las llamadas desde el exterior o para evitar el enrutador.

Tolerancia a los errores

Dado que los microservicios son altamente distribuidos por naturaleza, hay un mayor riesgo de falla en las llamadas externas a medida que aumentan. La implementación de los patrones de tolerancia a los errores, como los disyuntores, siempre ha sido responsabilidad de los desarrolladores; sin embargo, los proyectos que utilizan una malla de servicios (por ejemplo, Istio) alivian esta carga y brindan un control operativo mucho mayor sobre los servicios de Spring que se ejecutan en el clúster.

Configuración externalizada

Las soluciones de gestión de la configuración externalizada ofrecen una buena alternativa a la combinación clásica de archivos de configuración, argumentos de la línea de comandos y variables de entorno que se utilizan para que las aplicaciones sean más portátiles y flexibles ante los cambios externos. Se pueden utilizar los objetos ConfigMap de Kubernetes para almacenar información detallada, como las propiedades individuales, o la información general, como los archivos completos de configuración o blobs JSON. Además, brindan mecanismos para integrar los datos de la configuración en los contenedores y la mantienen separada de las aplicaciones de Spring, aunque les permiten acceder a ella mediante anotaciones como @ConfigProperty.

Seguimiento distribuido e indicadores de aplicaciones

Si bien la arquitectura de microservicios tiene muchas ventajas, puede ser difícil analizarla y solucionar los problemas que se presenten en ella. Cada solicitud comercial genera múltiples llamadas a los servicios individuales (y entre ellos) en varias capas. El seguimiento distribuido vincula todas esas llamadas y genera un número de identificación único para asociarlas con una solicitud. Además, los indicadores permiten acceder a los datos de las aplicaciones de Spring y examinar su estado en detalle. Cuando se combinan las herramientas de seguimiento (por ejemplo, Jaeger) con el conjunto de indicadores de Prometheus y Grafana, se obtiene una base sólida para supervisar y resolver los problemas de las aplicaciones de Spring en Kubernetes.

A medida que las aplicaciones de Spring se transforman en conjuntos de servicios descentralizados, se torna más difícil gestionar la comunicación y la seguridad entre ellos. La combinación de Red Hat OpenShift y Red Hat Runtimes ofrece a los desarrolladores las herramientas, los marcos y las integraciones originales de Kubernetes que se requieren para diseñar y gestionar las aplicaciones ajustables de Spring en la plataforma de nube híbrida para los contenedores y Kubernetes líder del sector.

Red Hat OpenShift ofrece muchas ventajas a los desarrolladores de Spring. A continuación, mencionamos algunos de ellos:

El uso de Spring Boot en OpenShift ofrece a los desarrolladores una experiencia natural en Kubernetes, tanto con las aplicaciones actuales de Spring como con las nuevas.

  • Posibilidad de desarrollar aplicaciones directamente en la nube con Spring y Spring Boot.
  • Integración de las funciones de Kubernetes, que reemplazan a los recursos independientes y tradicionales que la aplicación utiliza a través de la red.
    • Configuración externalizada: ConfigMap de Kubernetes e integración con Spring Cloud Kubernetes
    • Detección de servicios: servicios de Kubernetes
    • Equilibrio de carga: controlador de replicación de Kubernetes
    • Reinicio automático: comprobaciones de estado de Kubernetes e integración con Spring Actuator
    • Indicadores: Prometheus, Grafana y la integración con Spring Cloud Sleuth
    • Seguimiento distribuido con Istio y Jaeger
  • Herramientas de Red Hat OpenShift para los desarrolladores, las cuales posibilitan la creación rápida de proyectos de Spring, el acceso a las API de Spring que ya conoce en su IDE preferido y la implementación en OpenShift.

Utilice las API de Spring que ya conoce y obtenga las ventajas de la plataforma y los servicios subyacentes de Kubernetes en Red Hat OpenShift y Red Hat Application Services.

Aproveche el conocimiento sobre Spring para desarrollar aplicaciones modernas utilizando tecnología de vanguardia.

Artículos relacionados

Artículo

¿Qué son los operadores de Red Hat OpenShift?

Red Hat OpenShift Operators automatizan la creación, configuración y gestión de instancias de las aplicaciones desarrolladas específicamente para Kubernetes.

Artículo

¿Por qué elegir Red Hat OpenShift Serverless?

Red Hat OpenShift Serverless amplía Kubernetes para implementar y gestionar las cargas de trabajo sin servidor.

Artículo

¿Por qué conviene elegir Red Hat OpenShift Service Mesh?

Red Hat OpenShift Service Mesh le permite conectar, gestionar y vigilar las aplicaciones basadas en microservicios de manera uniforme.

Más información sobre OpenShift

Productos

Plataforma de aplicaciones empresariales que ofrece servicios probados para lanzar aplicaciones al mercado en la infraestructura que usted escoja.

Almacenamiento definido por software que aloja los datos de forma permanente a medida que los contenedores ajustan su capacidad en todos los entornos.

Plataforma de inteligencia artificial que brinda herramientas para desarrollar, entrenar, entregar y monitorear de manera rápida modelos y aplicaciones habilitadas con inteligencia artificial.

Consola con políticas de seguridad integradas para controlar las aplicaciones y los clústeres de Kubernetes.

Contenido adicional

Ebook

¿Cuál es la diferencia entre Red Hat OpenShift y Kubernetes?

DATASHEET

Red Hat OpenShift Dedicated: descripción del producto

datasheet

Red Hat OpenShift Container Platform: descripción del producto

datasheet

Red Hat OpenShift Kubernetes Engine: descripción del producto

datasheet

Red Hat OpenShift Data Foundation: descripción del producto

PODCAST

Command Line Heroes Temporada 4, Episodio 6:

Hardware open source: la alianza de los fabricantes

Capacitación

Curso de capacitación gratuito

Running Containers with Red Hat Technical Overview

Curso de capacitación gratuito

Developing Cloud-Native Applications with Microservices Architectures

Curso de capacitación gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Cursos de capacitación certificados

Planes de desarrollo de conocimiento de Red Hat OpenShift