¡Compártelo!

Pon un Red Hat OpenShift en tu vida…¿¡pero no era Kubernetes!?

Cuantas veces hemos escuchado la misma situación, las empresas quieren y necesitan ser más ágiles, entrar en nuevos paradigmas de desarrollo y operaciones, y es cuando surgen las palabras mágicas: «Microservicios», «Contenedores», «DevOps», «Kubernetes»… y, cómo no, «Red Hat OpenShift». Vamos a tratar de explicaros en este artículo qué es OpenShift, para qué se usa, qué lo hace diferente e igual a Kubernetes y por qué deberías tener un Red Hat OpenShift en tu vida… o un Kubernetes 😉

Contenedores de software y orquestadores

No sería de extrañar que en tu entorno de producción además de sistemas legacy, sistemas físicos, la Cloud o entornos virtualizados también te hayas adentrado en los contenedores. Esta tecnología que ya lleva unos cuantos años entre nosotros se ha abierto camino rápidamente por su facilidad de despliegue, su escalabilidad y su agilidad y un mejor aprovechamiento de los recursos de las máquinas.

Hasta aquí todo son ventajas. Pero no es lo mismo administrar 10 o 15 contenedores, que tener que administrar cientos o miles de ellos. Y ahí es donde surgió la necesidad de un orquestador.

El orquestador más conocido y que ha marcado la evolución tecnológica hasta la fecha ha sido Kubernetes, una herramienta de código abierto creada por Google en 2014 desarrollada con el lenguaje de programación Go. Tras Kubernetes han aparecido nuevas plataformas, otros orquestadores como OKD, Rancher, Cloud Foundry, Tanzu y, sin lugar a dudas, el gran líder del mercado, Red Hat OpenShift.

Pero, ¿en qué se parecen Kubernetes y OpenShift? ¿Son lo mismo? ¿Por qué debería elegir uno u otro? Vamos a darte toda la información para que tú mismo puedas contestar esas preguntas. Si te has informado acerca de las distintas plataformas de orquestación, todas ellas parecen nacer, beber o inspirarse en Kubernetes, así que lo primero será saber qué es Kubernetes.

¿Qué es Kubernetes?

Kubernetes permite a los desarrolladores controlar, gestionar más fácilmente y mantener las cargas de trabajo de procesamiento de software para una mejor implementación y escalabilidad. Nuestro compañero David Bernal escribió un magnífico artículo donde encontrarás todo el detalle sobre esta tecnología.

Kubernetes (lo puedes encontrar como K8s) dispone de multitud de funciones, lo que le permite adaptarse a cualquier entorno y proyecto. Está desarrollado sobre software de código libre y, por ello, podrás encontrar diferentes distribuciones. Kubernetes cuenta con una comunidad tremendamente activa, en la que participan usuarios particulares y parte de la industria, con un papel muy relevante de Red Hat, que realiza innumerables aportaciones de código al proyecto.

Toda esa flexibilidad, agilidad y apertura son un magnífico motor de innovación. Pero seguro que estarás pensando: «Yo no puedo poner en mi entorno productivo algo sin soporte«. «Y si algo ocurre, ¿a quién puedo reclamar?». «¿Seré capaz de mantener Kubernetes y todas sus piezas?».

Es en este punto es donde compañías como Red Hat acuden al rescate ofreciendo una solución 100% Kubernetes pero añadiendo el soporte empresarial y algunas características adicionales, que ahora vamos a repasar.

¿Qué es Red Hat OpenShift?

Red Hat OpenShift es la plataforma de contenedores de nivel empresarial desarrollada por Red Hat, basada en Kubernetes y escrita en Go y AngularJS, que apareció allí por el año 2011.

Se trata de un plataforma de gestión y orquestación de contenedores que facilita el desarrollo y el despliegue de aplicaciones. Ofrece una plataforma que facilita enormemente el trabajo al equipo de desarrollo, con características de Cloud Computing (PaaS) e integrando las principales herramientas del ciclo de vida del desarrollo, ya sea dentro o fuera del clúster. Asimismo, proporciona mecanismos de Cloud computing y operaciones automatizadas para que el equipo de operaciones pueda gestionar el entorno de forma segura y ágil.

En resumen, Red Hat OpenShift agrupa las necesidades de los dos mundos. La agilidad y autonomía que requieren los desarrolladores, a la vez que proporciona la estabilidad y la seguridad que requieren los equipos de operaciones, permitiendo un ciclo completo, robusto y automatizado de DevOps.

Red Hat OpenShift vs. Kubernetes

Pero más allá de todo esto y del soporte empresarial que ofrece Red Hat con OpenShift, que ya es mucho, ¿cuáles son las principales diferencias entre Kubernetes y Red Hat OpenShift?

Distribución de Kubernetes

Para entender las diferencias entre Kubernetes y OpenShift, primero tenemos que aclarar el término «distribución de Kubernetes». Si se instala Kubernetes directamente desde el proyecto Kubernetes de código abierto, se obtienen solo los componentes principales (servidor API, gestor de controladores, planificador, Kubelet, kube-proxy).

Sin embargo, para que Kubernetes sea realmente utilizable, se necesitan muchos otros componentes, como etcd, controlador de entrada, servidor de registro, recolector de métricas (por ejemplo, Prometheus), red definida por software (SDN) y muchos más. Esto es muy similar a Linux. El núcleo de Linux por sí solo no sirve de mucho; se necesita una distribución de Linux completa que proporcione un shell, gestión de paquetes, proceso de arranque y mucho más.

Esencialmente, OpenShift se basa al 100% en Kubernetes, pero como distribución de Kubernetes viene con todo lo necesario para que el clúster sea totalmente funcional, operativo y productivo. Algunas de sus principales características adicionales son el mecanismo de instalación y actualización, una SDN (red definida por software), controladores de entrada, autenticación, almacenamiento persistente, monitorización o copia de seguridad.

Panel Cluster Status de Red Hat OpenShift
Panel Cluster Status de Red Hat OpenShift. Fuente: Red Hat OpenShift

Kubernetes Enterprise

Con Red Hat OpenShift obtenemos un soporte de alta calidad para solucionar cualquier problema. Mediante el pago de una suscripción anual, el soporte profesional de Red Hat se hará cargo de cualquier incidencia con nuestra implementación de Red Hat OpenShift. Mientras que Kubernetes es un proyecto de código abierto, por tanto, en caso de que suframos algún problema o error habrá que acudir a la comunidad, sin garantías ni SLA’s para su resolución, lo que no parece la mejor opción para un entorno productivo.

CI/CD on rails

Cuando necesitamos desplegar una aplicación en un entorno de contenedores suele ser una tarea compleja, ya que disponemos de distintas herramientas que cumplen su función dentro del ciclo de DevOps (Code, Build, Test, Release) y, por tanto, la probabilidad de error en alguna de las etapas se multiplica, se ralentiza el despliegue y se reduce la calidad.

Kubernetes ha ido mejorando en este aspecto, pero sigue siendo una ardua tarea, mientras que OpenShift nos provee de un entorno productivo que facilita la implementación de una plataforma PaaS que canaliza todo el ciclo de vida de la aplicación.

Automáticamente, Red Hat OpenShift se responsabiliza de cada paso, desde el desarrollo hasta la implementación y monitorización. Es decir, desde que recoge el código en nuestro repositorio, pasando por la construcción, testing y despliegue, y llegando a la gestión de los contenedores y la monitorización de los mismos.

No obstante, como usuario de la plataforma y gracias a su gran flexibilidad, siempre se puede elegir si se quieren utilizar las funciones de construcción integradas o bien construir fuera del clúster. Esto se puede elegir para cada despliegue, por lo que se pueden usar ambos tipos en un clúster.

Operator Hub de Red Hat OpenShift
Operator Hub de Red Hat OpenShift. Fuente: Red Hat OpenShift

Administración avanzada

Inicialmente, administrar Kubernetes ya suele ser algo tedioso y complicado. Si nuestro clúster es pequeño, quizá podamos gestionar mediante su interfaz de usuario básica. Pero si este crece mucho, vamos a necesitar agregar nuevos componentes a nuestro orquestador Kubernetes, como pueden ser Istio, Prometheus, Grafana… Herramientas que nos facilitarán la gestión multiclúster, en la nube, la monitorización, automatización, despliegue, etc.

Red Hat OpenShift dispone de una interfaz cómoda y sencilla, pudiéndose administrar vía CLI pero también vía Web, ofreciendo capacidades para realizar algunas operaciones avanzadas en el clúster y pudiendo integrar los clústeres con una pila EFK o con Istio o utilizando Ansible como automatizador.

Escalable y flexible

La adición de nuevos nodos en Kubernetes supone un esfuerzo y complejidad, que Red Hat OpenShift reduce significativamente. Ya sea mediante Terraform o con Ansible, desplegar nuevos nodos en el clúster, en máquina física, virtual, Openstack o en cualquiera de las nubes, es rápido, sencillo y seguro.

Panel de virtualización de Red Hat OpenShift
Panel de virtualización de Red Hat OpenShift. Fuente: Red Hat OpenShift

Seguridad y certificaciones

Una de las grandes diferencias entre Kubernetes y Red Hat OpenShift radica en la gestión de la seguridad. Al tratarse de una distribución dirigida al Enterprise, se ha cuidado especialmente que Red Hat OpenShift supla con creces las deficiencias de seguridad que podemos encontrar en Kubernetes, así como dotar a la plataforma de las certificaciones de seguridad más importantes de la industria.

Lo mejor de ambos mundos

Kubernetes y Red Hat OpenShift se han retroalimentado de forma constante y muchas de las más actuales mejoras que dispone Kubernetes vinieron originalmente de OpenShift. Como es RBAC (control de acceso basado en roles), una funcionalidad que estaba presente desde la primera versión de OpenShift y que se ha integrado en Kubernetes a lo largo de distintas versiones.

Dado que OpenShift se basa al 100% en Kubernetes, todas las cargas de trabajo nativas de Kubernetes también son compatibles, como el objeto Deployment o Ingress. Por tanto, optar por Red Hat OpenShift nos da la garantía de contar con el soporte empresarial a la vez que evitamos el vendor lock-in.

¿Elegir OpenShift o Kubernetes?

Como habrás visto, la característica central de diferenciación entre las dos plataformas es que la plataforma de contenedores OpenShift incluye la plataforma y las características de Kubernetes (así como las características de Docker). Pero Kubernetes no incluye los servicios de OpenShift.

Además, aunque ambos son programas de código abierto, también has visto que OpenShift es un servicio de plataforma de pago de Red Hat, mientras que Kubernetes es un servicio gratuito que se puede descargar desde GitHub.

Kubernetes es flexibilidad, libertad y sin coste, lo cual puede ser una gran opción para iniciarse en este mundo de la orquestación de contenedores, para entornos no críticos o como plataforma de pruebas.

Por su parte, Red Hat OpenShift es sólido, robusto, seguro, confiable y Enterprise. Así que si estás dispuesto a asumir el coste de la suscripción, te llevarás una plataforma Kubernetes empresarial con enormes mejoras en la gestión, seguridad y ciclo de vida.

La decisión está en tu mano, ¿pastilla roja o pastilla azul?

En Profile, tenemos amplia experiencia en la implementación y gestión de clústeres de contenedores orquestados con Kubernetes, Red Hat OpenShift y alternativas como OKD, o las distribuciones ofrecidas por los principales proveedores Cloud como AKS, EKS, GKE, así que estaremos encantados de ayudarte a decidir por la opción que mejor se ajuste a tus necesidades.

Artículos ​ relacionados