A continuación, vamos a explicar la relación que existen entre DevOps, Docker, Kubernetes y Linux RedHat OpenShift de una forma simple y el impacto que ahora tienen en las empresas.

Cuando aparece el término DevOps, muchos entienden que sólo se trata de una nueva palabra de moda para llamar a los programadores, pero en realidad es mucho más que eso, que corresponde a la unión de dos palabras:

Desarrollo (Development): Es el equipo que diseña y programa un software.

Operaciones (Operations): Es el equipo que asegura que el software funcione en producción.

Por lo tanto, DevOps no es un cargo, es una cultura y una metodología de trabajo que permite unir tanto a la gente de desarrollo y operaciones, con la finalidad de entregar aplicaciones de mejor calidad en un menor tiempo y evitando una serie de complicaciones típicas de los entornos de desarrollo y operaciones.

El problema tradicional de los desarrolladores de software es que al desarrollar una aplicación en su computador ésta funciona perfectamente, pero cuando es instalada en un entorno de producción la aplicación no funciona y para solucionar el problema se invierte demasiado tiempo y esfuerzos en detectar el origen y la solución, hasta que la aplicación funcione correctamente.

Esto se debe a que el entorno de trabajo del desarrollador no es exactamente el mismo entorno de producción, distintas versiones del sistema operativo, distintas versiones de la aplicativo, de las bibliotecas, dependencias, etc.

Es aquí donde aparece el concepto de Docker qué permite empaquetar una aplicación junto con todo su entorno, todas sus dependencias y librerías en una unidad estándar y portátil, lo que permite llevar la aplicación a un entorno de producción teniendo la seguridad que funcionará sin problemas.

Antiguamente algunas empresas implementaban la aplicación individual en un sistema operativo virtual para llevarlo a un entorno de producción, el problema es que el sistema operativo virtual ocupaba mucho espacio, requerimiento de licencias y consumo de muchos recursos del servidor base. Que, si bien era funcional en términos operativos, a nivel de recursos era totalmente ineficiente, porque obligaba a las empresas hacer grandes inversiones en hardware y licenciamiento para mantener un entorno de producción ineficiente y altamente costoso.

En Docker es solamente una aplicación encapsulada, qué es bastante pequeña y totalmente funcional, que permite realizar réplicas, escalamientos, backups o actualizaciones bastante rápido, evitando los antiguos problemas de mover una máquina virtual completa de varios gigas, que complicaba a la gente de operaciones por los espacios y requerimientos en sus servidores y centros de datos.

Cuando se empezó a masificar el uso de Docker en entornos de producción, la administración de estos Dockers empezó a ser más compleja y se empezó a ocupar los Kubernetes qué son la herramienta de administración y gestión de los Dockers.

Esta herramienta permite gestionar que Dockers tienen que estar en funcionamiento y si alguno de ellos falla se puede configurar otros Dockers que los reemplazarán en forma automática, para que las aplicaciones se mantengan en forma operativa funcionando sin interrupciones.

También gestiona la comunicación entre sí para temas de actualizaciones, backups, seguridad y gestión de recursos tanto de tráficos, de CPU y memoria para que las aplicaciones funcionen de la forma mas óptima posible.

Tanto Dockers Como Kubernetes son tecnologías Open Source (Código abierto), razones principales de su éxito y su adopción masiva en el entorno empresarial y corporativo.

En el mundo empresarial existen dos grandes competidores en la utilización de estos esquemas de trabajo de DevOps, Kubernetes y Dockers que son VMware y Linux Red Hat.

VMware VSphere Esxi que permite crear y administrar maquinas virtuales en un ecosistema propietario y cerrado donde se implementaban los Kubernetes y Dockers y por su parte Linux RedHat Virtualization que permite exactamente lo mismo que VMware, pero con la diferencia que ocupa un Hipervisor Open Source (KVM) que forma parte del núcleo de Linux y todo en un entorno de código abierto es decir en un ecosistema publico y abierto.

Ante la necesidad de tener una herramienta open para la gestión y administración de Dockers y Kubernetes, se desarrolla el producto Red Hat OpenShift, que técnicamente es una Plataforma de Aplicaciones (PaaS), es decir un entorno listo para que los equipos de desarrollo desplieguen las aplicaciones. Que se enfoca en desarrolladores y equipos DevOps que buscan la agilidad y gestión de todo el ciclo de vida de las aplicaciones.

Luego que VMware aumentara sus costos y modelos de licenciamiento para la implementación de Dockers y Kubernetes, el principal beneficiario de una migración de miles de usuarios a nivel mundial ha sido Linux Red Hat, debido a que cuenta con todo un ecosistema qué reemplaza y mejora el rendimiento tanto a nivel de virtualización con Linux Red Had Virtualization y Linux Red Hat OpenShift para la gestión de Dockers y Kubernetes, lo que ha ayudado a los DevOps no solo tener una eficiencia operativa impresionante, sino a las empresas a ser mas eficientes, mas productivas y a un menor costo en un único ecosistema totalmente integrado.

Mención aparte es Red Hat OpenShift Dev Spaces que es una herramienta que permite tener un entorno de desarrollo (IDE) totalmente colaborativo para equipos de desarrollo basado en la nube que se ejecuta directamente en OpenShift que profundizaremos en un siguiente articulo.

Para más detalles técnicos o si necesitas explorar nuevas alternativas, contáctanos.