Hace poco tiempo, los despliegues de las aplicaciones web eran monolíticos: grandes bases de código que crecía y crecía en nuevas funciones hasta convertirse en un gigante enorme, de movimientos lentos y difíciles de gestionar.

Hoy en día, la tendencia entre desarrolladores, arquitectos y expertos en DevOps es el convencimiento de que es mucho mejor utilizar microservicios que un monolito gigante. Normalmente, utilizar una arquitectura basada en microservicios significa dividir el monolito en al menos dos aplicaciones: la aplicación front-end y una app de back-end (API).

Una vez queda clara la necesidad e idoneidad de utilizar microservicios, surge la pregunta: ¿En qué entorno es mejor ejecutar microservicios? ¿Qué tenemos que elegir para que el servicio sea estable y al mismo tiempo sea fácil de manejar y de implementar? La respuesta es fácil: Docker!

En este artículo, te explicaremos qué es Docker y qué es Kubernetes.

Docker? Qué es Docker?

Docker es una herramienta diseñada para facilitar la vida a los DevOps.

Con Docker, un desarrollador puede crear, desplegar y ejecutar aplicaciones en contenedores. Los contenedores permiten al desarrollador empaquetar una aplicación con todas las partes que necesita, tales como bibliotecas y otras dependencias, y enviarla toda con un solo paquete.

Utilizando contenedores, los desarrolladores pueden (re) implementar fácilmente una imagen en cualquier sistema operativo. Sólo hay que instalar Docker, ejecutar una comanda y la aplicación estará en funcionamiento. Además, una de las otras grandes ventajas de utilizar Docker, es que no hay que preocuparse por las nuevas versiones de las bibliotecas del sistema operativo anfitrión. Se pueden lanzar más contenedores al mismo host: será la misma aplicación u otra? No importa.

Sí, Docker es una herramienta fantástica. Pero la gran pregunta es: ¿cómo y dónde se deben lanzar los contenedores?

Hay muchas opciones sobre cómo y dónde ejecutar contenedores: AWS Elastic Container Service (AWS Fargate o una instancia reservada con escalado automático horizontal y vertical); una instancia en la nube con una imagen Docker predefinida a Azure o Google Cloud (con plantillas, grupos de instancias y escalado automático); a un servidor propio con Docker; o, por supuesto, Kubernetes! Un servicio desarrollado por Google en 2014, para la virtualización de contenedores.

Kubernetes? ¿Qué es esto?

Kubernetes es un sistema de código abierto que permite ejecutar contenedores, gestionarlos, automatizar despliegues, escalar, crear y configurar direcciones, desplegar aplicaciones entre muchas otras cosas. Básicamente, puede lanzar una o varias instancias e instalar Kubernetes para operarlas como clúster de Kubernetes. Una vez hecho, se obtiene el endpoint de la API del clúster Kubernetes, se configura el kubectl (una herramienta para gestionar los clústeres de Kubernetes) y Kubernetes ya está listo!

Así pues, ¿por qué deberías usarlo?

Con Kubernetes, puedes utilizar al máximo los recursos computacionales. De alguna manera, Kubernetes, permite que seas «el capitán del barco» (infraestructura) haciendo que Kubernetes mismo, sea el viento que empuja la vela. Con Kubernetes, el servicio será HA y, lo más importante de todo, Kubernetes, permite ahorrar una gran cantidad de recursos económicos optimizando la infraestructura de deployment.

Categorías: Uncategorized

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *