Precios

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.

Empiece a practicar con Spring en OpenShift

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.

Recursos de Red Hat

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.

Hub

Blogs de Red Hat

Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.

Todas las versiones de prueba de los productos de Red Hat

Con las versiones de prueba gratuitas de nuestros productos, podrás adquirir experiencia práctica, prepararte para obtener una certificación o evaluar las soluciones para saber si son adecuadas para tu empresa.

Más información

Red Hat OpenShift para los ingenieros de plataformas

Con Red Hat OpenShift, los equipos de ingeniería de plataformas disponen de las herramientas que necesitan para diseñar y gestionar con eficacia las plataformas internas para desarrolladores.

El edge computing con Red Hat OpenShift

Red Hat OpenShift es una plataforma de Kubernetes empresarial líder en el sector para la organización de los contenedores

Red Hat OpenShift y Kubernetes: diferencias y ventajas

Red Hat® OpenShift® es una plataforma de aplicaciones certificada y comercializada que utiliza la tecnología de Kubernetes y se basa en varios proyectos open source. Aquí encuentras las ventajas de ambas tecnologías.

Red Hat OpenShift: lecturas recomendadas

Productos destacados

  • Red Hat OpenShift

    Una plataforma de desarrollo de aplicaciones unificada que te permite crear, modernizar e implementar aplicaciones a escala en la infraestructura de nube híbrida que elijas.

  • Red Hat Application Foundations

    Un conjunto de componentes diseñados para ayudar a crear, implementar y operar aplicaciones. Incluye Red Hat 3scale API Management, Red Hat Data Grid, Red Hat JBoss Web Server, Red Hat AMQ, compilaciones Red Hat de tecnologías open source y un conjunto de herramientas de migración para las aplicaciones.