Cuenta Iniciar sesión
Jump to section

Spring en Kubernetes

Copiar URL

Red Hat® OpenShift® es la mejor opción para desarrollar y ejecutar aplicaciones de Spring y Spring Boot directamente en Kubernetes.

Spring es uno de los marcos de Java más populares para diseñar aplicaciones con una arquitectura distribuida de microservicios. Su modelo de programación y configuración para las aplicaciones basadas en este lenguaje se concentra en el mantenimiento, de modo que los desarrolladores pueden enfocarse en la lógica empresarial de las aplicaciones y no dependen de ningún entorno de implementación específico. Por su parte, Spring Boot permite empaquetar y configurar fácilmente las aplicaciones para que sean ejecutables y autónomas, y puedan implementarse como contenedores en Kubernetes.

Ejecución de Spring directamente en Kubernetes

Al igual que muchos otros marcos tradicionales de Java, Spring no reconoce que se está ejecutando en un contenedor en una plataforma como Kubernetes. Este marco incluye varios elementos que facilitan el diseño y la implementación de las aplicaciones distribuidas, como Spring Boot, Spring Cloud, Spring Web y muchos otros, que posibilitan la detección de servicios, el equilibrio de carga, el enrutamiento de solicitudes, etc. Kubernetes permite delegar muchos de estos aspectos a la plataforma de contenedores subyacente para generar una aplicación que se integre de manera más eficiente con la plataforma en la que se ejecuta. Si desea aprovechar el potencial de la combinación de Spring y Kubernetes, es fundamental diseñar las aplicaciones de Spring con estas rutas optimizadas de acceso al código.

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 el número ni la dirección de los hosts de manera estática y anticipada. 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

Debido al carácter altamente distribuido de los microservicios, hay un mayor riesgo de que se produzcan fallas a medida que aumentan las llamadas externas. La implementación de los patrones de tolerancia a los errores siempre ha sido responsabilidad del desarrollador; 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 algunas de ellas:

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 RedHatOpenShift 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

Red Hat OpenShift

Plataforma de contenedores de Kubernetes empresarial con operaciones automatizadas integrales para gestionar implementaciones de nube híbrida, multicloud y edge computing.

Red Hat OpenShift Data Foundation

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

Red Hat Advanced Cluster Security Kubernetes

Solución empresarial de seguridad de los contenedores propia de Kubernetes que permite diseñar, implementar y ejecutar aplicaciones en la nube con mayor seguridad.

Red Hat Advanced Cluster Management Kubernetes

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?

Informe de analistas

Red Hat named a leader among multicloud container development platforms by Forrester

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

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

Illustration - mail

Obtenga más contenido como este

Suscríbase a nuestro boletín informativo: Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Productos

Herramientas

Comprar, vender, explorar

Comunicarse

Acerca de Red Hat

Somos el proveedor líder a nivel mundial de soluciones empresariales de código abierto, incluyendo Linux, cloud, contenedores y Kubernetes. Ofrecemos soluciones reforzadas, las cuales permiten que las empresas trabajen en distintas plataformas y entornos con facilidad, desde el centro de datos principal hasta el extremo de la red.

Suscríbase a nuestra newsletter, Red Hat Shares

Suscríbase ahora

Seleccionar idioma

© 2022 Red Hat, Inc. Red Hat Summit