Iniciar sesión / Registrar Cuenta

Durante mis casi seis años de trabajo con OpenShift, me han hecho muchas preguntas acerca de la naturaleza de este producto. Con el cambio 3.x de la arquitectura anterior a Kubernetes, la pregunta pasó de qué es OpenShift a cuáles son sus diferencias con Kubernetes. Hoy lo que haremos es adentrarnos un poco en ese tema.

Kubernetes es el "kernel"

En el sistema operativo CoreOS, consideramos Kubernetes como el "kernel" de los sistemas distribuidos. Nos percatamos de que un programador de tareas diseñado adecuadamente, que opere en múltiples máquinas y que sea capaz de conciliar el estado de las cargas de trabajo gestionadas, naturalmente fomentaría la colaboración casi de la misma manera en que el kernel de Linux lo hacía para las cargas de trabajo de programación en un solo host. De acuerdo con esta lógica, sabíamos que los productos se diferenciarían entre sí en función de las cuestiones de mayor interés para sus usuarios.

Se trata del mismo kernel de Linux que se ejecuta en muchos teléfonos, computadoras portátiles, servidores e, incluso, la Raspberry Pi, aunque con diversos niveles de parches para admitir el hardware en el que se instala directamente el kernel.

En este mismo modelo, Kubernetes es el mismo en todas sus distribuciones, aunque con diversos niveles de parches para admitir la capa en la que se instala directamente Kubernetes. Las distribuciones de Linux en las que cada versión de Kubernetes ejecuta sus cargas de trabajo.

OpenShift es la distribución

Esta es una diferencia significativa. El equipo responsable de OpenShift se enorgullece de haber generado una distribución de Kubernetes centrada en la experiencia de los desarrolladores, quienes deben crear la próxima generación de aplicaciones nativas de la nube. El equipo encargado de Tectonic (la distribución de Kubernetes de CoreOS) centró su atención en la experiencia de los administradores y los equipos de operaciones, quienes debían solucionar rápidamente los problemas con el sistema operativo y el propio Kubernetes. De hecho, con el próximo lanzamiento de OpenShift 4.0, brindaremos interfaces para ambos tipos de usuarios, lo que nos permitirá contar con una plataforma que satisfaga estas necesidades especializadas.

Aunque todo el mundo podría diseñar Linux desde cero (Linux from Scratch), eligiendo todas las piezas y ensamblándolas de manera personalizada según las preferencias de cada usuario, la mayoría no lo hace. El nivel de abstracción que la mayoría de los usuarios elige implica que no obtienen mucho valor de manejar (o incluso saber) las diferencias entre las versiones 2.31 y 2.33 de Util-Linux. Si analizamos esto un poco más, vemos que los usuarios solo se preocupan por contar con un nivel mínimo de funcionalidad (p. ej., saben qué comandos o API estarán disponibles siempre que superen un número de versión mínimo) y también porque se proporcione una lista de características.

Esto es muy similar a OpenShift. Empaquetamos Kubernetes e incluimos herramientas adicionales como las características que consideramos importantes y que nuestros usuarios requieren. Al igual que CoreOS y CentOS, las distribuciones de Kubernetes también cuentan con diferentes conjuntos de herramientas para satisfacer las necesidades de los distintos usuarios. En Red Hat, nos centramos en proporcionar las herramientas que ayudan a los desarrolladores y a los equipos de operaciones a tener éxito. Esto explica por qué, por ejemplo, actualmente incluimos Istio como una versión de prueba en OpenShift. Creemos que es una herramienta de la que pueden depender muchos usuarios y, por lo tanto, debería incluirse como una de las funciones esenciales en la distribución básica.

OKD en comparación con Red Hat OpenShift

Hagamos un repaso.

¿OpenShift es un sistema de software open source? Definitivamente. Todos los elementos en OpenShift se desarrollan en el marco de la comunidad open source y se pueden ver en GitHub. Allí, encontrará una gran cantidad de repositorios que abarcan muchas de las preocupaciones en torno a cómo mantener un clúster de Kubernetes en funcionamiento.

Empaquetamos los elementos de software que se necesitan para ejecutar Kubernetes en un proyecto. Este proyecto es una distribución de Kubernetes denominada OKD, anteriormente conocida como "Origin". En este aspecto, Kubernetes y OKD son similares en el sentido de que ambos son proyectos open source, en el que Kubernetes es uno de los varios proyectos upstream de OKD; así como el kernel de Linux, GNU Bash, GCC y el servidor HTTP Apache son proyectos upstream de la distribución de Linux Fedora. Cuando queremos mejorar OpenShift o incorporarle características nuevas, realizamos ese trabajo upstream si este terminará en Kubernetes y trabajamos desde los lanzamientos de Kubernetes cuando creamos OpenShift.

Luego, Red Hat empaqueta el proyecto OKD, junto con otros proyectos, como Maistra, diferentes operadores y otros recursos en el producto Red Hat OpenShift Container Platform. Una vez que se completa la tarea de cerrar una versión de Kubernetes, se empieza a trabajar en el empaquetado de OKD y, a continuación, de OpenShift.

Red Hat OpenShift se desarrolla a partir de todo esto, sometiéndose a pruebas internas exhaustivas para comprobar que todos los elementos se hayan integrado correctamente y que los equipos estén preparados para satisfacer las necesidades de los clientes que ejecutan el software en la etapa de producción. Esto explica en parte por qué hay un intervalo entre el lanzamiento del proyecto upstream y la subsiguiente versión empresarial de OpenShift (habilitación interna). Nuestros clientes quieren aprovechar nuestra experiencia, ya que saben que podemos ofrecer soporte integral para los elementos que enviamos como parte de OpenShift.

De la misma manera en que se puede diseñar Linux desde cero, es posible la optimización para instalar (Kubernetes the Hard Way), pero sería mejor dejar esta tarea en manos de las personas con el tiempo y la paciencia necesarios, además del nivel de riesgo que no requiere soporte empresarial. Para aquellos individuos concentrados en sus propias aplicaciones que desean aprovechar la experiencia de Red Hat, recomendamos elegir OpenShift Container Platform.