Microservicios y Kubernetes: una guía de jardinería para ecosistemas de software

NGINX | 30 de marzo de 2023

Al igual que la jardinería, el desarrollo de software requiere comprender cómo interactúan los distintos elementos para crear un ecosistema bello y productivo. Ese fue el motivo por el que elegimos la jardinería como tema para el programa Microservices March de este año. Como ocurre en cualquier jardín, hay una mala hierba problemática que no deja de aparecer en la conversación: ¿cuál es la diferencia entre los microservicios y Kubernetes?

Banner con el título de esta sección: Microservicios: las plantas de tu jardín

Las plantas son los elementos principales del ecosistema de un jardín. Son los organismos vivos que conforman el jardín y contribuyen a su belleza y funcionalidad. Del mismo modo, los microservicios son los componentes básicos de las aplicaciones de software modernas. Son servicios individuales que realizan funciones específicas y trabajan conjuntamente para crear una aplicación más amplia y compleja.

Al igual que las plantas, los microservicios varían en tamaño, forma y finalidad. Algunos son pequeños y especializados, y se encargan de una única operación. Otros son más grandes y realizan operaciones más generales, o están formados por un conjunto de componentes más pequeños. Por ejemplo, una planta de fresa es pequeña y solo produce fresas. Esto equivale a un microservicio que únicamente procesa transacciones con tarjeta de crédito (pequeño y especializado). Una planta más polivalente, como el cilantro, no solo produce las hojas verdes que se utilizan en la salsa y el guacamole, sino también las semillas de cilantro. Este tipo de planta equivale a un servicio que gestiona la autenticación de usuarios (un proceso más amplio y general).

Banner con el título de esta sección: Contenedores, las macetas para tus microservicios

La mayoría de las plantas necesitan estar plantadas en tierra para poder absorber nutrientes y humedad; si se dejan con las raíces desnudas, morirán. Aunque es perfectamente válido plantarlas directamente en el suelo, muchos jardineros optan por cultivarlas en macetas, ya que así pueden adaptar la tierra, protegerlas mejor de las plagas y trasladarlas de un lugar a otro del jardín (o incluso llevarlas al interior durante el invierno). Del mismo modo, existen varias opciones para alojar los microservicios, y la más habitual es, acertadamente, un «contenedor». Un microservicio en contenedores incluye todo lo necesario para ejecutar la aplicación y puede trasladarse fácilmente entre distintos entornos de ejecución.

Banner con el título de esta sección: Kubernetes: las herramientas de jardinería

Ya tenemos nuestros microservicios (plantas) en nuestros contenedores (macetas), pero ¿cómo los desplegamos, mantenemos y escalamos? ¡Con herramientas! Aquí entra en escena Kubernetes. Kubernetes ofrece numerosas funciones y complementos que facilitan la gestión y el mantenimiento de los microservicios, y se considera la herramienta de facto para la orquestación de contenedores. Por ejemplo, Kubernetes proporciona balanceo de carga automatizado, descubrimiento de servicios y capacidades de autorrecuperación (para descargar a tus desarrolladores de parte del trabajo de mantenimiento y supervisión). ¿Y qué ocurre cuando todo el mundo quiere que tus microservicios (plantas) produzcan más? Kubernetes permite el escalado automático y las actualizaciones progresivas para que tus aplicaciones de microservicios sigan funcionando sin problemas.

Nota: Las alternativas a Kubernetes, como Docker Swarm y HashiCorp Nomad, ofrecen prácticamente las mismas funcionalidades.

Banner con el título de esta sección: Microservicios sin Kubernetes: la opción del «jardín silvestre»

Hemos expuesto los motivos para utilizar Kubernetes a fin de gestionar microservicios y evitar que las aplicaciones crezcan de forma descontrolada. Sin embargo, Kubernetes y los contenedores no siempre son necesarios. En función de la complejidad de tu aplicación, puedes optar por una plataforma tradicional de máquinas virtuales (o incluso físicas), que también se puede desplegar o aprovisionar mediante herramientas de automatización. Estas herramientas no ofrecen el mismo nivel de automatización y escalabilidad que Kubernetes, pero quizá te compense aceptar esa contrapartida en aplicaciones menos complejas o no críticas. Otra opción es utilizar plataformas de computación sin servidor (como AWS Lambda), que permiten ejecutar el código de tus microservicios en respuesta a eventos sin tener que preocuparte por la infraestructura subyacente.

Banner con el título de esta sección: No todo en Kubernetes son microservicios

Los jardineros experimentados saben que asociar cultivos —por ejemplo, plantar caléndulas junto a los tomates— permite aprovechar mejor los recursos y contribuye a tener un jardín más saludable. Del mismo modo, Kubernetes ofrece una amplia gama de funciones y complementos que lo hacen útil para mucho más que gestionar microservicios. Por ejemplo, Kubernetes puede utilizarse para aplicaciones que no se basan en microservicios, como modelos de aprendizaje automático o aplicaciones monolíticas. Vemos que muchos clientes utilizan Kubernetes para gestionar microservicios y otras aplicaciones, ¡y algunos incluso implementan máquinas virtuales (VM) dentro de Kubernetes! Esta puede ser una excelente opción para las organizaciones que están migrando aplicaciones monolíticas heredadas a una arquitectura orientada a microservicios.

Llegar a la raíz del asunto

Esperamos que saques dos conclusiones de esta publicación (además de quedarte con ganas de visitar tu vivero local):

  • No todo lo que se despliega en Kubernetes es un microservicio. Las funcionalidades y los complementos que ofrece Kubernetes lo convierten en una herramienta útil para una gran variedad de ecosistemas.
  • Los microservicios no siempre tienen que gestionarse con Kubernetes. Algunas aplicaciones prosperan con herramientas alternativas y un enfoque de «jardín silvestre».

Consulta los siguientes recursos para obtener más información sobre los fundamentos de los microservicios:


Compartir

Sobre el autor

Jenn Gile
Jenn GileResponsable de Marketing de Producto, NGINX

Más artículos de Jenn Gile

Artículos relacionados del blog

Únete a F5 NGINX en AppWorld 2024
NGINX | 04/01/2024

Únete a F5 NGINX en AppWorld 2024

Descubre las numerosas razones para asistir al evento insignia de F5, que incluirá un emocionante anuncio sobre la cartera de productos NGINX.

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source
NGINX | 26/09/2023

Rotación de certificados SSL/TLS sin reinicios en NGINX Open Source

La función de diccionario compartido permite configurar NGINX sin necesidad de reiniciarlo al renovar los certificados SSL/TLS.

Exposición de APIs en Kubernetes
NGINX | 10/03/2022

Exposición de APIs en Kubernetes

La unidad 2 de Microservices March 2022 se centra en cómo exponer tus API en Kubernetes. Aquí tienes enlaces a los recursos que necesitas: la retransmisión en directo del 14 de marzo, artículos de blog y otros recursos de preparación, y el laboratorio práctico «Protege las API de Kubernetes mediante la limitación de solicitudes».

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto
NGINX | 23/08/2021

NGINX Sprint 2.0: visión clara, código renovado y nuevos compromisos con el código abierto

Hoy, en NGINX Sprint 2.0, anunciamos cómo respaldaremos nuestra visión del futuro de las aplicaciones modernas con una mayor presencia en la comunidad de código abierto, incluida la participación en el proyecto comunitario Kubernetes, nuevos proyectos de software de código abierto y la arquitectura de referencia para aplicaciones modernas.

Presentamos NGINX Plus R22
NGINX | 09/06/2020

Presentamos NGINX Plus R22

NGINX Plus R22 incorpora nuevas funcionalidades, como la compatibilidad con OCSP para verificar la revocación de certificados en TLS mutuo, el uso de varios proveedores de identidad OIDC en una configuración, el seguimiento en tiempo real de la limitación de solicitudes y conexiones en el panel de NGINX Plus y mejoras en NGINX JavaScript.

Presentamos NGINX Plus R17
NGINX | 11/12/2018

Presentamos NGINX Plus R17

NGINX Plus R17 incorpora compatibilidad con la limitación de velocidad en dos fases y con TLS 1.3, la versión más reciente del protocolo Transport Layer Security. La configuración de OpenID Connect es más sencilla y NGINX ModSecurity WAF es el doble de rápido que antes. También se ha actualizado el módulo JavaScript de NGINX.