Siguiendo la línea de los últimos posts, vamos a hablar de otra herramienta muy importante y de la que cada vez se oye más en las charlas y eventos tecnológicos: Kubernetes.
Como hemos explicado en los posts anteriores, el auge de la virtualización ligera, con Docker como su principal valedor, ha revolucionado el mundo del desarrollo de software y las operaciones. En el post de Migración Legacy a Microservicios explicamos las ventajas de los microservicios. Ante esto cabe destacar que el desarrollo de microservicios se ha visto impulsado por tecnologías como Docker, puesto que antes ya se podía realizar pero implicaba mucho más esfuerzo. Por otro lado, en el post de Docker explicamos las ventajas y facilidades que nos da la virtualización ligera con Docker en el desarrollo y despliegue de aplicaciones.
Ahora bien, si unimos ambos conceptos, Microservicios y Docker, nos damos cuenta de que durante el desarrollo de software podemos encontrarnos con muchas más piezas que en el desarrollo de una aplicación monolítica tradicional; por tanto, es fácil darse cuenta de que el esfuerzo de gestionar muchas piezas va a suponer bastante más esfuerzo. En este punto nacen los llamados orquestadores de contenedores, como Swarm, Mesos y Kubernetes, con el principal objetivo de poner orden a las múltiples versiones de aplicaciones dockerizadas y agilizar tanto sus despliegues como el escalado; en otras palabras, para orquestar y gestionar los contenedores.
Kubernetes ó k8s (abreviatura que se obtiene al juntar la primera k, un 8 que representan las 8 letras del medio, y la s por la letra final) es un orquestador creado por ingenieros de Google en 2014 y donado a la comunidad en 2015. En ese mismo año Google se asoció con la Linux Foundation para formar la Cloud Native Computing Foundation, en la que Kubernetes sería una tecnología semilla.
De forma resumida, se trata de un sistema para la automatización de despliegues, el escalado y gestión de aplicaciones de contenedores, gestión de servicios y balanceo de carga automático.
Una aplicación real está compuesta por varios contenedores interconectados entre sí para ofrecer un servicio. Además, necesita ser desplegada en varios hosts de servidores para tener alta disponibilidad o soportar las cargas de trabajo previstas. Si esto lo llevamos a un entorno de producción con múltiples aplicaciones es fácil darse cuenta de que la gestión de los contenedores se complica de forma notable.
Para solucionar varios de los problemas de la propagación y crecimiento de contenedores, Kubernetes permite ordenar y agrupar contenedores en un único nodo denominado Pod; es decir, añade una capa de abstracción a los contenedores agrupados proporcionando las conexiones de red y almacenamiento entre ellos. De esta manera K8s es capaz de mover y escalar los contenedores por el clúster con mucha facilidad lo que conlleva poder programar las cargas de trabajo para dar soporte según la demanda requerida.
Varias son las características de Kubernetes que han hecho que se convierta en el estándar de orquestación de contenedores por delante de otras soluciones. Las principales son:
Otro de los motivos por los que muchas soluciones lo están integrando en sus arquitecturas es porque las opciones de instalación de K8s casi no tienen restricciones. Podemos instalar Kubernetes en:
Tal es el impacto que está teniendo Kubernetes en la orquestación y gestión de entornos basados en contenedores, que se ha convertido en la herramienta más utilizada por varias soluciones, e incluso Mesosphere lo ha implementado sustituyendo a su orquestador original Marathon.
Actualmente se encuentra en un momento de gran crecimiento gracias a la comunidad apoyada por Google, Red Hat, Mesosphere, CoreOS, AWS, etc. por lo que las mejoras son continuas.
Los contenedores han supuesto una revolución en la forma de desarrollar y desplegar aplicaciones, pero esto no sería posible sin herramientas como Kubernetes. Por lo tanto, esperamos que se termine de consolidar en el mercado y no pare de crecer ya que tiene un gran recorrido por delante.
https://www.paradigmadigital.com/techbiz/por-que-todos-apuestan-por-kubernetes/