Humor: Cuando intento irme de vacaciones de Navidad!

MicroServicios con Spring Cloud y Kubernetes

Este artículo de DZone es una lectura muy interesante (casi imprescindible) para todos aquellos que estáis trabajando con microservicios.

En el artículo se comparan las propuestas de Spring Cloud y Kubernetes, aunque la conclusión (no por esperada menos interesante) es que son dos herramientas para usar en combinación.

Permitidme que traduzca y comente el artículo:

Spring Cloud y Kubernetes son 2 tecnologías para crear Arquitecturas MSA (microservice-based architectures) en las que desarrollar y ejecutar microservicios.

En un sistema de microservicios tendremos cientos de servicios, por lo que es fundamental gestionarlos y gobernalos de forma centralizada.

Spring Cloud implementa una Arquitectura MSA sobre servicios funcionales (statistics service, account service y notification service) y servicios de infraestructura de soporte (log analysis, configuration server, service discovery, auth service):

Spring Cloud por contra no se encarga de la parte de integración continua, escalado, alta disponibilidad,… que son también muy importantes en una Arquitectura MSA y que si resuelve Kubernetes.

Si hablamos de las capacidades que debe tener una Arquitectura MSA:

Podemos ver cómo lo resuelve cada uno de ellos:

En base a esta tabla podemos concluir:

· Spring Cloud ofrece un complete conjunto de librerías Java para resolver todas las necesidades MSA en término de ejecución, como client-side service discovery, load balancing, configuration update, metrics tracking, schedulin, singleton application,…

· Kubernetes is políglota, no encaja solo en la Plataforma Java, y resuelve las necesidades de programación distribuida de una forma genérica para todos los lenguajes, ofreciendo: configuration management, service discovery, load balancing, tracing, metrics, singletons, scheduled jobs on the platform level fuera del stack de aplicación.

  • En algunos puntos ambas plataformas se basan en las mismas herramientas.
  • Existen áreas donde ambas plataformas son complementarias y pueden combinarse para crear una solución más potente (como KubeFlix y Spring Cloud Kubernetes).

En esta imagen queda más claro lo que resuelve cada una:

Podemos decir que usando ambas tecnologías podré crear una arquitectura MSA muy potente:

· Spring Boot para construir despliegues Single JAR

· Despliegues declarativos vía Docker

· Hystrix para resiliencia de lasolución

· Ribbon para balanceo de carga

· Kubernetes health checks, restart, autoescalado,…

Si comprobamos sus virtudes y defectos de nuevo concluimos que interesa usarlos en conjunto: Spring Cloud es muy potente dentro de la JVM y Kubernetes gestionando esas JVMS:

Lo que nos llevaría a un mix de este estilo:

Leer más

Humor: Día 30 de diciembre en la oficina…

A %d blogueros les gusta esto: