Kubernetes o Docker: ¿una elección sencilla?
Cuando hablamos de tecnologías de contenedores, hay dos nombres que a todos nos suenan como líderes del código abierto: Docker y Kubernetes.
Elegir cuál usar puede parecer una cuestión difícil, pero la realidad es que ambas son igual de potentes y combinables por lo que no te preocupes si te enfrentas a esta decisión. Ante la pregunta: ¿cuál es mejor opción? La respuesta es ninguna. O las dos. Porque realmente una no es mejor que la otra.
En 2021, se anunciaba que Kubernetes dejaría de ser compatible con Docker como una opción de tiempo de ejecución de contenedor, pero a día de hoy, ambas siguen siendo complementarias.
Antes de entrar a detalle en cada una de ellas, déjame aclararte la tecnología fundamental que une a las dos: los contenedores.
¿Qué es un contenedor?
Es una unidad ejecutable de software que empaqueta el código de la aplicación con sus dependencias por lo que puede ejecutarse en cualquier infraestructura de IT. El contenedor se abstrae de la plataforma donde se ejecuta y eso le permite ser modulable en todos los entornos.
En ARENA Tech solemos usar contenedores para desarrollar aplicaciones de forma rápida y consistente en sistemas distribuidos y entorno multiplataforma. El hecho de que los contenedores sean portables elimina muchos de los problemas que surgen entre los diferentes framewoks y el software de los servidores.
Gracias a los contenedores, el desarrollo es más sencillo. Incluso cuando son pequeños y livianos, los cuales son especialmente recomendables en arquitecturas de microservicios, es decir, aquellas en las que las aplicaciones están formadas por servicios más pequeños y poco cohesionados.
Crear un contenedor es un gran paso, además del primero, de cara a modernizar las aplicaciones locales de las entidades financieras e integrar estas con los servicios en la nube.

¿Qué es Docker?
Docker es una plataforma de contenedorización de código abierto. Podríamos definirlo como un conjunto de herramientas que hace que sea más fácil, seguro y ágil crear, implementar y administrar contenedores, independientemente de si se usa Windows, Linux o MacOS.
Son muchas las características a destacar de Docker, pero si tuviéramos que nombrar solo una esa sería su versatilidad.
Los contenedores Docker pueden ejecutarse en cualquier escritorio, centro de datos, en la nube, etc. Usando contenedores como microservicios podemos construir una aplicación la cual sin dejar de ejecutarse continuamente podemos realizar una actualización o reparación de alguna parte de ella.
Como comentábamos al principio de este artículo, Kubernetes ya no brinda soporte especial para Docker en tiempo de ejecución, pero aun así es muy útil para ejecutar y administrar contenedores creados con Open Container Initiative (OCI), el formato de imagen propio de Docker que le permite usar Dockerfiles y crear imágenes de Docker.
¿Qué es Kubernetes?
Kubernetes es una plataforma de orquestación de contenedores de código abierto que sirve para programar y automatizar la implementación, administración y escalado de aplicaciones en contenedores.
Kubernetes se hizo popular, en parte, gracias a su sólida funcionalidad y a una comunidad de código abierto que cuenta con grandes y múltiples colaboradores que dan soporte y portabilidad entre los principales proveedores de la nube como Azure o AWS. Con estos últimos trabajamos de manera muy estrecha en varios proyectos dentro de ARENA Tech.
Kubernetes cuenta con numerosas ventajas, entre las que destacan la orquestación de almacenamiento, la capacidad de auto reparación y la implementación automatizada.
Ahora que sabemos un poquito más sobre Dockers y Kubernetes, volvamos a la pregunta clave de este artículo. ¿Cuál elijo?
Kubernetes y Docker: ¿cuál es la solución perfecta?
Si algo hemos tratado de dejar claro a lo largo de este artículo es que ambas son tecnologías distintas, pero no por ello antagónicas. Al contrario. La clave de Kubernetes y Docker es que son complementarias e indispensables, sobre todo, si se usan juntas.
Docker proporciona la pieza de contenedorización, lo que permite a los desarrolladores empaquetar fácilmente aplicaciones en contenedores pequeños y aislados a través de la línea de comandos. Luego, los desarrolladores pueden ejecutar esas aplicaciones sin tener que preocuparse por los problemas de compatibilidad. Si una aplicación se ejecuta en un solo nodo durante la prueba, se ejecutará en cualquier lugar.
Es entonces cuando entra en juego Kubernetes. Cuando aumenta la demanda, esta tecnología te permite orquestar los contenedores Docker. Puedes programarlos e implementarlos automáticamente garantizando su alta disponibilidad.
Además de ejecutar contenedores, Kubernetes ofrece los beneficios del balanceo de carga, la recuperación automática y las implementaciones y reversiones automatizadas. A esto se le suma que tiene una interfaz gráfica de usuario que facilita su uso.
Si a estas alturas del artículo te estás preguntando cuál es mejor para tu entidad, desde nuestro conocimiento y tras más de 13 años trabajando exclusivamente en el sector financiero, permítenos darte un consejo: si tu compañía quiere escalar su infraestructura en el futuro, utiliza kubernetes desde el principio.
No obstante, si ya usas Docker, Kubernetes hará uso de los contenedores y las cargas de trabajo existentes mientras solucionas los problemas que implica la escalabilidad.
En resumen, Kubernetes y Docker no es cuestión de uno u otro. Es cuestión de hacerlos compatibles y dejar su implementación en manos de expertos en tecnología y especialistas en el sector bancario como el gran equipo IT que forma parte de ARENA Tech.