BLOG | NGINX

Microservicios y Kubernetes: Una guía práctica para ecosistemas de software

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Jenn Gile
Jenn Gile
Publicado el 30 de marzo de 2023

Al igual que la jardinería, el desarrollo de software requiere una comprensión de cómo los diferentes elementos trabajan juntos para crear un ecosistema hermoso y productivo. Ese fue el catalizador que nos llevó a elegir un tema de jardinería para el programa de Microservices March de este año. Como sucede en cualquier jardín, hay una maleza problemática que sigue apareciendo en la conversación: ¿cuál es la diferencia entre microservicios y Kubernetes?

Las plantas son los elementos principales del ecosistema de un jardín. Son los organismos vivos que componen su jardín y contribuyen a su belleza y funcionalidad. De manera similar, los microservicios son los componentes principales de las aplicações de software modernas . Son los servicios individuales que realizan funciones específicas y trabajan juntos para crear una aplicação más grande y compleja.

Al igual que las plantas, los microservicios varían en tamaño, forma y propósito. Algunos son pequeños y especializados y se encargan de realizar una sola operación. Otros son más grandes, más generalizados en sus operaciones o están compuestos por un conjunto de componentes más pequeños. Por ejemplo, una planta de fresa es pequeña y sólo genera fresas. Esto es similar a un microservicio que solo procesa transacciones con tarjetas de crédito (pequeñas y especializadas). Una planta más generalizada como el cilantro produce no sólo las hojas verdes utilizadas en la salsa y el guacamole, sino también las semillas de cilantro. Este tipo de planta es similar a un servicio que maneja la autenticación de usuarios (un proceso más grande y más general).

La mayoría de las plantas necesitan ser plantadas en tierra para que puedan absorber nutrientes y humedad; si se las deja con la raíz desnuda, morirán. Si bien es perfectamente aceptable colocarlas directamente en el suelo, muchos jardineros optan por la jardinería en contenedores con macetas porque les permite personalizar el suelo, defenderse mejor de las plagas y mover las plantas por el jardín (o incluso adentro durante el invierno). De manera similar, tienes múltiples opciones sobre dónde colocar los microservicios, siendo la más común un “contenedor”. Un microservicio en contenedor incluye todo lo que necesita para ejecutar la aplicación y es fácilmente transportable entre entornos de ejecución.

Entonces, tenemos nuestros microservicios (plantas) en nuestros contenedores (pots), pero ¿cómo los implementamos, mantenemos y escalamos? ¡Con herramientas! Ingresa Kubernetes . Kubernetes ofrece muchas características y complementos que facilitan la administración y el mantenimiento de microservicios, y se considera la herramienta de facto para la orquestación de contenedores. Por ejemplo, Kubernetes proporciona equilibrio de carga automatizado, descubrimiento de servicios y capacidades de autocuración (para quitarle parte del trabajo de mantenimiento y monitoreo a sus desarrolladores). ¿Y cuando todos quieren que tus microservicios (plantas) produzcan más? Kubernetes admite el escalamiento automático y las actualizaciones continuas para mantener sus aplicações de microservicios funcionando sin problemas.

Nota:  Las alternativas a Kubernetes, como Docker Swarm y HashiCorp Nomad , ofrecen prácticamente la misma funcionalidad.

Hemos establecido el caso del uso de Kubernetes para administrar microservicios y evitar que las aplicações crezcan descontroladamente y sin control. Pero Kubernetes y los contenedores no siempre son necesarios. Dependiendo de la complejidad de su aplicação, puede optar por utilizar una plataforma de máquina virtual (o incluso física) tradicional, que aún puede implementarse o aprovisionarse mediante herramientas de automatización. Estas herramientas no ofrecen el mismo nivel de automatización y escalabilidad que Kubernetes, pero es posible que no te moleste esa compensación por aplicaciones menos complicadas o no críticas. Otra opción es utilizar plataformas informáticas sin servidor (como AWS Lambda ) que le permiten ejecutar su código de microservicios en respuesta a eventos sin preocuparse por la infraestructura subyacente.

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

Los jardineros expertos saben que la siembra asociada (por ejemplo, caléndulas junto a tomates ) permite un mejor uso de los recursos y contribuye a tener un jardín más saludable. De manera similar, Kubernetes ofrece una amplia gama de características y complementos que lo hacen útil para más que la gestión de microservicios. Kubernetes se puede utilizar para aplicaciones que no sean microservicios (como modelos de aprendizaje automático o monolitos), por ejemplo. Vemos muchos clientes que utilizan Kubernetes para administrar microservicios y otras aplicações, ¡y algunos incluso implementan máquinas virtuales (VM) dentro de Kubernetes! Esta puede ser una excelente opción para las organizaciones que están haciendo la transición de aplicaciones monolíticas heredadas a una arquitectura orientada a microservicios.

Llegando a la raíz del asunto

Esperamos que esta publicación te lleve dos cosas (además de las ganas de visitar tu vivero local):

  • No todo lo implementado en Kubernetes es un microservicio. Las características y complementos que ofrece Kubernetes lo convierten en una herramienta útil en una variedad de ecosistemas.
  • Los microservicios no siempre necesitan gestionarse con Kubernetes. Algunas aplicações prosperan con herramientas alternativas y un enfoque de “jardín salvaje”.

Consulte los siguientes recursos para obtener más detalles sobre los fundamentos de los microservicios:


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.