25 May Para qué y cómo utilizar contenedores: ¿Qué es Docker y Kubernetes?
Una de las razones que justifica la transición digital de las empresas es agilizar la puesta en marcha de las soluciones TI que permiten acelerar el lanzamiento de nuevos productos y servicios al mercado. En este post nos centramos en una estrategia IT que tiene ese objetivo: ¿para qué y cómo utilizar contenedores? ¿Qué es Docker y Kubernetes?
Las arquitecturas de microservicios, que están en la base del enfoque de despliegue de aplicaciones mediante contenedores, han revolucionado la manera de desarrollar e implantar el software hoy en día.
Dentro de la estrategia de modernización la IT empresarial, este modelo de desarrollo de aplicaciones mediante microservicios termina con las limitaciones de modificación y traslado a diferentes entornos que lastraba su uso y evolución en las empresas. Esto es así porque era imposible desacoplar los distintos elementos que componían el software y hacían que funcionara.
Construir aplicaciones mediante microservicios permite independizar cada uno de esos campos y comunicarlos mediante APIs para que se puedan desarrollar, implementar y modificar sin depender entre sí. Esto aporta la máxima capacidad para evolucionar y escalar a las aplicaciones, y facilita su encaje en múltiples entornos ya sean locales o en la nube.
¿Qué son los microservicios y qué relación tienen con Docker y Kubernetes?
Esos microservicios pueden empaquetarse en un contenedor, de manera que en este se encuentran el código y todos los demás componentes que permiten que una aplicación se implante y ejecute rápidamente y de forma segura. Esto permite que un software sea trasladado fácilmente de un entorno a otro para su entrada en producción inmediata. El contenedor es un elemento aislado del resto de la infraestructura, por eso es sencillo acoplarlo en cualquier arquitectura.
En este escenario de contenedores tenemos dos nombres claves que seguro que has oído muchas veces: Docker y Kubernetes. Docker es un sistema operativo para contenedores que automatiza su implantación, como un ejecutable que contiene tiene todo lo necesario para que funcione una aplicación: herramientas y bibliotecas del sistema, código, configuraciones y tiempo de ejecución. Es código abierto para Windows y Linux.
Kubernetes es un orquestador de contenedores, el gestor que los coordina. Se ciñe a contenedores en Linux y, pese a que hay otras opciones en el mercado, se ha convertido prácticamente en un estándar. Su concurso es fundamental para reducir la complejidad de administración de una infraestructura TI en la que haya muchos contenedores. Es un punto único (se ofrece una API) para encargarse del ciclo de vida de cada uno de ellos, desde su implantación a su escalamiento.
¿Cuándo utilizar contenedores con Docker y Kubernetes?
La propuesta de incluir en un contenedor todo lo que necesita una aplicación para funcionar imprime justamente la agilidad que demandan las empresas para poner en producción nuevas soluciones en el mínimo tiempo. No tienen que preocuparse por capacidades, integraciones y configuraciones referidas a sistemas externos. Y pueden ser trasladados de uno a otro entorno según sus necesidades TI.
Por eso no es de extrañar que se esté optando por este modelo de desarrollo al diseñar nuevas aplicaciones orientadas a servicios. No olvidemos tampoco que esta propuesta encaja totalmente con las estrategias cloud de las empresas que aseguran una alta agilidad a la hora de proveer la TI.
Esto no quiere decir que programas legacy ya existentes en la organización no puedan evolucionarse a arquitecturas de contenedores. Esa conversión conlleva un cambio de mentalidad completo al ‘despiezarlas’ en microservicios para adaptarlas a las nuevas demandas de escalabilidad sin límite y flexibilidad para aplicar cambios en ellas cuando así lo determinen los procesos de negocio.
Eso sí, como en cualquier otro proyecto de TI seguro, en una arquitectura de contenedores es imprescindible desplegar una capa de seguridad que impida que la presencia de distintas estancias independientes sea una vulnerabilidad y un señuelo para sufrir ciberataques.