OpenShift es una pla­ta­fo­r­ma de apli­ca­cio­nes basada en Ku­be­r­ne­tes. El software se utiliza para construir entornos de de­sa­rro­llo y apli­ca­cio­nes de­s­ce­n­tra­li­za­das y es­ca­la­bles. Sobre la base de OpenShift, se pueden im­ple­me­n­tar so­lu­cio­nes pro­pie­ta­rias Platform as a Service- (PaaS), Software as a Service- (SaaS) y Co­n­tai­ne­rs as a Service- (CaaS).

El software permite la gestión completa del ciclo de vida de las apli­ca­cio­nes, in­clu­ye­n­do el de­sa­rro­llo, la im­pla­n­ta­ción, las ope­ra­cio­nes y el ma­n­te­ni­mie­n­to. Más de dos mil empresas de todo el mundo confían en OpenShift para alojar sus apli­ca­cio­nes en entornos de nube híbrida. Vamos a explicar cómo funciona OpenShift y qué hace que el software sea especial.

¿Qué versiones de OpenShift están di­s­po­ni­bles?

OpenShift no es un único producto.De hecho, la empresa Red Hat publica varias versiones como software de código abierto bajo la licencia Apache. La versión “estrella” es la “Red Hat OpenShift Container Platform” (OCP). Se instala como un clúster de Ku­be­r­ne­tes en la in­frae­s­tru­c­tu­ra de nube híbrida de una empresa. Por lo tanto, un único clúster de OpenShift puede abarcar varios entornos de nube pública y privada.

Además de la OpenShift Container Platform (OCP), existe la versión co­mu­ni­ta­ria “OKD”, que antes tenía el nombre de “OpenShift Origin”. OKD es una di­s­tri­bu­ción pe­r­so­na­li­za­da de Ku­be­r­ne­tes que se basa en Ku­be­r­ne­tes para la gestión de clústeres y co­n­te­ne­do­res co­m­pa­ti­bles con la Open Container Ini­tia­ti­ve (OCI). También incluye ca­pa­ci­da­des de gestión del ciclo de vida de las apli­ca­cio­nes y he­rra­mie­n­tas DevOps. Cu­rio­sa­me­n­te, OKD es la base “upstream” para el de­sa­rro­llo de las demás versiones de OpenShift, de forma similar a como el proyecto de código abierto Chromium sirve de base para el de­sa­rro­llo del navegador Chrome.

Además de OCP y OKD como so­lu­cio­nes “locales” que se alojan en su propia in­frae­s­tru­c­tu­ra, existen también varias so­lu­cio­nes “ge­s­tio­na­das”. Estas se ejecutan en varias nubes públicas de grandes pro­vee­do­res, así como en la in­frae­s­tru­c­tu­ra de nube de Red Hat. Estamos hablando pri­n­ci­pa­l­me­n­te de la versión 4.8 de OCP, que es la versión actual en el momento de escribir este artículo. Echemos un vistazo a las distintas versiones de OpenShift:

Productos OpenShift De­s­cri­p­ción Pla­ta­fo­r­ma
Red Hat OpenShift Container Platform (OCP) Solución em­pre­sa­rial “on-premise” para utilizar en tu propia in­frae­s­tru­c­tu­ra de nube híbrida Red Hat En­te­r­pri­se Linux CoreOS (RHCOS)
OKD Producto co­mu­ni­ta­rio “on-premise” community product, base de OCP Red Hat En­te­r­pri­se Linux (RHEL) o CentOS
OpenShift Online Solución SaaS ge­s­tio­na­da Red Hat Cloud
OpenShift Dedicated Solución PaaS ge­s­tio­na­da; Red Hat se encarga de la ad­mi­ni­s­tra­ción completa del sistema Amazon AWS o Google Cloud

¿Cómo funciona OpenShift?

OpenShift es un conjunto de pla­ta­fo­r­mas de apli­ca­cio­nes basadas en Ku­be­r­ne­tes. El software incluye un buen número de co­m­po­ne­n­tes básicos, así como una variedad de fu­n­cio­na­li­da­des adi­cio­na­les. OpenShift puede alojarse en una amplia variedad de entornos, in­clu­ye­n­do máquinas “bare metal”, nubes públicas y privadas, y di­s­po­si­ti­vos “edge”.

Consejo

Ana­li­za­mos las si­mi­li­tu­des y di­fe­re­n­cias de OpenShift y Ku­be­r­ne­tes en otro artículo.

¿De qué elementos se compone OpenShift?

OpenShift se basa en una pila de software, que es una pila de te­c­no­lo­gías in­te­r­co­ne­c­ta­das. En el nivel más bajo, se utiliza una di­s­tri­bu­ción especial de Linux como sistema operativo. El “Red Hat En­te­r­pri­se Linux CoreOS” (RHCOS) utilizado aquí se instala en hardware físico o vi­r­tua­li­za­do.

Nota

En versiones an­te­rio­res de OpenShift, se utilizaba “Red Hat En­te­r­pri­se Linux” (RHEL) en lugar de RHCOS.

Basado en el sistema operativo RHCOS, Ku­be­r­ne­tes se utiliza como or­ga­ni­za­dor de co­n­te­ne­do­res y clústeres. Ku­be­r­ne­tes se encarga del de­s­plie­gue, el escalado y la gestión de las apli­ca­cio­nes en co­n­te­ne­do­res. Los ope­ra­do­res de Ku­be­r­ne­tes se utilizan como la siguiente capa de la pila de software. Son apli­ca­cio­nes “nativas de Ku­be­r­ne­tes” pre­co­n­s­trui­das y fáciles de instalar. Además de los ope­ra­do­res, se utiliza un registro de co­n­te­ne­do­res al co­n­fi­gu­rar y ejecutar un clúster de OpenShift.

¿Qué tipo de Ku­be­r­ne­tes se incluye en OpenShift?

OpenShift se basa en una di­s­tri­bu­ción especial de Ku­be­r­ne­tes, que utiliza CRI-O en lugar de Docker o co­n­tai­ne­rd como tiempo de ejecución de co­n­te­ne­do­res. Al de­s­pre­n­de­r­se de Docker como te­c­no­lo­gía su­b­ya­ce­n­te, se obtienen ventajas en términos de seguridad y co­m­pa­ti­bi­li­dad con otros formatos de co­n­te­ne­do­res.

¿Qué es un operador en OpenShift?

Un operador de Ku­be­r­ne­tes supervisa la salud de toda una apli­ca­ción. Con la in­s­ta­la­ción, el fu­n­cio­na­mie­n­to y el ma­n­te­ni­mie­n­to, los ope­ra­do­res cubren el ciclo de vida completo de una apli­ca­ción Ku­be­r­ne­tes. En palabras de la do­cu­me­n­ta­ción de OpenShift:

Cita

“An Operator is a method of packaging, deploying, and managing a Ku­be­r­ne­tes-native ap­pli­ca­tion. A Ku­be­r­ne­tes-native ap­pli­ca­tion is an ap­pli­ca­tion that is both deployed on Ku­be­r­ne­tes and managed using the Ku­be­r­ne­tes APIs and kubectl tooling.“ – Fuente: https://cloud.redhat.com/learn/topics/operators

“Un operador es un método para em­pa­que­tar, desplegar y gestionar una apli­ca­ción nativa de Ku­be­r­ne­tes. Una apli­ca­ción nativa de Ku­be­r­ne­tes es una apli­ca­ción que se despliega en Ku­be­r­ne­tes y se gestiona mediante las API de Ku­be­r­ne­tes y las he­rra­mie­n­tas kubectl.” –(tra­du­c­ción de IONOS)

Hay una gran variedad de ope­ra­do­res en la pla­ta­fo­r­ma Ope­ra­to­rHub. Por ejemplo, varios sistemas de bases de datos pueden in­te­grar­se sin problemas en el clúster OpenShift con un esfuerzo mínimo. Además, se utilizan ope­ra­do­res de in­frae­s­tru­c­tu­ra para gestionar el clúster.

Resulta que los ope­ra­do­res son ese­n­cia­les para la fu­n­cio­na­li­dad de OpenShift. Un operador de Ku­be­r­ne­tes es una es­pe­cia­li­za­ción del co­n­tro­la­dor de Ku­be­r­ne­tes a nivel de apli­ca­ción. Un co­n­tro­la­dor de Ku­be­r­ne­tes supervisa co­n­ti­nua­me­n­te el estado de un recurso y ajusta varios pa­rá­me­tros según sea necesario para mantener un estado definido.

¿Qué es un registro en OpenShift?

Un registro de co­n­te­ne­do­res almacena imágenes de co­n­te­ne­do­res que se crean co­n­ti­nua­me­n­te a medida que se construye el software. Las imágenes se versionan, se someten a co­m­pro­ba­cio­nes de seguridad y se guardan en el registro. Cu­rio­sa­me­n­te, en OpenShift el propio registro se im­ple­me­n­ta como un operador.

“Quay” es un registro de­sa­rro­lla­do por Red Hat centrado en la seguridad. Las imágenes ne­ce­sa­rias durante la in­s­ta­la­ción del clúster de OpenShift se obtienen de Quay. Al hacerlo, Quay puede gestionar otros elementos de co­n­s­tru­c­ción además de las imágenes de los co­n­te­ne­do­res. En palabras de la do­cu­me­n­ta­ción de Red Hat:

Cita

“Quay is a container registry for storing co­n­tai­ne­rs, Helm charts, and other container-related content.” – Fuente: https://www.redhat.com/sysadmin/in­tro­du­c­tion-quay
“Quay es un registro de co­n­te­ne­do­res para almacenar co­n­te­ne­do­res, gráficos de Helm y otros co­n­te­ni­dos re­la­cio­na­dos con los co­n­te­ne­do­res.” – (tra­du­c­ción de IONOS)
 

Siguiendo el modelo de producto es­ca­lo­na­do de OpenShift OCP y OKD, existen varias versiones de Quay:

Registro Ex­pli­ca­ción Pla­ta­fo­r­ma
Red Hat Quay Se ejecuta en su propia in­frae­s­tru­c­tu­ra in­fo­r­má­ti­ca, incluidas las nubes privadas; integrado en OpenShift por un operador Entorno propio de la nube, incluida la nube privada
Red Hat Quay.io Ge­s­tio­na­do por Red Hat con soporte de nivel em­pre­sa­rial Cloud

¿Cómo está es­tru­c­tu­ra­do OpenShift?

OpenShift está co­n­s­trui­do sobre Ku­be­r­ne­tes como un clúster de co­n­te­ne­do­res. A nivel de clúster, OpenShift incluye dos niveles:

  1. Plano de control

El plano de control está compuesto por las llamadas “máquinas del plano de control”. También se conocen como “master machines” y gestionan el clúster de OpenShift Container Platform.

  1. Máquinas de trabajo

Las máquinas de trabajo, que también se conocen como “compute machines”, realizan el trabajo real del clúster OpenShift. Las “master machines” asignan tareas a las Máquinas de trabajo y su­pe­r­vi­san su ejecución.

¿Qué servicios se ejecutan en las máquinas de trabajo?

Una máquina de trabajo ejecuta los si­guie­n­tes servicios y, por tanto, se incluye en el clúster de OpenShift:

  • CRI-O, como entorno de ejecución de co­n­te­ne­do­res,
  • Kubelet, como un servicio que acepta y procesa so­li­ci­tu­des para iniciar y detener cargas de trabajo,
  • un proxy de servicio, que se encarga de la co­mu­ni­ca­ción entre las máquinas de trabajo.

La mayor es­pe­cia­li­za­ción de las máquinas de trabajo resulta del estado de los co­n­te­ne­do­res en fu­n­cio­na­mie­n­to y del software que contienen.

¿Qué co­m­po­ne­n­tes co­n­s­ti­tu­yen el plano de control?

Veamos a co­n­ti­nua­ción y en detalle la es­tru­c­tu­ra del plano de control. Di­s­ti­n­gui­mos entre los co­m­po­ne­n­tes de la im­ple­me­n­ta­ción de Ku­be­r­ne­tes y los co­m­po­ne­n­tes es­pe­cí­fi­cos de OpenShift:

Co­m­po­ne­n­te Ku­be­r­ne­tes Ex­pli­ca­ción
Ku­be­r­ne­tes API Server El servidor de la API de Ku­be­r­ne­tes comprueba y configura los datos de los pods, servicios y co­n­tro­la­do­res de re­pli­ca­ción. Además, la API actúa como interfaz central para los datos del estado global del clúster.
etcd El servicio etcd contiene el estado master pe­r­si­s­te­n­te. Los demás co­m­po­ne­n­tes su­pe­r­vi­san a etcd para ver si hay cambios y ajustan su estado según sea necesario.
Ku­be­r­ne­tes Co­n­tro­ller Manager El gestor de co­n­tro­la­do­res de Ku­be­r­ne­tes supervisa el etcd en busca de cambios en objetos como la re­pli­ca­ción, el espacio de nombres y los co­n­tro­la­do­res de cuentas de servicio, y utiliza la API para conseguir el estado deseado. Hay un clúster de varios de estos procesos, con uno activo como líder.
Ku­be­r­ne­tes Scheduler El pro­gra­ma­dor de Ku­be­r­ne­tes detecta los pods recién creados a los que aún no se les ha asignado un nodo y elige el mejor nodo para alojar el pod.

Los co­m­po­ne­n­tes del plano de control es­pe­cí­fi­cos de OpenShift se im­ple­me­n­tan como ope­ra­do­res:

Co­m­po­ne­n­te OpenShift Ex­pli­ca­ción Ge­s­tio­na­do por
OpenShift API Server El servidor de API de OpenShift comprueba y configura los recursos de OpenShift, como los proyectos, las rutas y las pla­n­ti­llas. OpenShift API Server Operator
OpenShift Co­n­tro­ller Manager El gestor de co­n­tro­la­do­res de OpenShift supervisa el etcd en busca de cambios en los objetos de OpenShift, como los proyectos, las rutas y los objetos co­n­tro­la­do­res de pla­n­ti­llas, y utiliza la API para conseguir el estado deseado. OpenShift Co­n­tro­ller Manager Operator
OpenShift OAuth API Server El servidor de la API OAuth de OpenShift valida y configura los datos para la au­te­n­ti­ca­ción en la pla­ta­fo­r­ma de co­n­te­ne­do­res OpenShift. Esto incluye usuarios, grupos y tokens OAuth. Cluster Au­the­n­ti­ca­tion Operator
OpenShift OAuth Server Los usuarios solicitan un token al servidor OAuth de OpenShift para au­te­n­ti­car­se en la API. Cluster Au­the­n­ti­ca­tion Operator

¿Para qué es­ce­na­rios de apli­ca­ción se utiliza OpenShift?

La pla­ta­fo­r­ma de co­n­te­ne­do­res OpenShift se utiliza pri­n­ci­pa­l­me­n­te para construir entornos de apli­ca­ción y de­sa­rro­llo. Esto permite im­ple­me­n­tar so­lu­cio­nes PaaS, SaaS y CaaS propias de la empresa. Debido a la potencia y co­m­ple­ji­dad del software, OpenShift se utiliza pri­n­ci­pa­l­me­n­te para proyectos de larga duración de grandes or­ga­ni­za­cio­nes.

Entre los usuarios de OpenShift se en­cue­n­tran in­s­ti­tu­cio­nes gu­be­r­na­me­n­ta­les y de in­ve­s­ti­ga­ción a nivel nacional, así como empresas con actividad in­te­r­na­cio­nal, como bancos y compañías de seguros. Todos los grupos de usuarios me­n­cio­na­dos se be­ne­fi­cian de las im­pla­n­ta­cio­nes en la nube híbrida. El de­s­plie­gue a través de los límites de la nube privada y pública permite alojar partes de la in­frae­s­tru­c­tu­ra según los re­qui­si­tos de las no­r­ma­ti­vas locales.

Otro aspecto im­po­r­ta­n­te que habla a favor del uso de OpenShift es su alto nivel de seguridad. Evitar las in­tru­sio­nes in­fo­r­má­ti­cas y las fugas de datos es esencial para las grandes empresas in­te­r­na­cio­na­les. Las brechas de seguridad pueden provocar un daño pe­r­ma­ne­n­te a la imagen de la empresa y cua­n­tio­sas pérdidas eco­nó­mi­cas.

Las fu­n­cio­na­li­da­des incluidas en OpenShift permiten flujos de trabajo de de­sa­rro­llo rápidos. Esto conduce a una reducción radical de los tiempos de de­sa­rro­llo sobre el terreno; los equipos de software internos pueden gestionar có­mo­da­me­n­te sus recursos por sí mismos e impulsar co­n­ti­nua­me­n­te el de­sa­rro­llo.

Si una empresa utiliza una de las ofertas di­s­po­ni­bles de Managed OpenShift, elimina la necesidad de ad­mi­ni­s­trar se­r­vi­do­res y sistemas ope­ra­ti­vos. En lugar de preo­cu­par­se por las ac­tua­li­za­cio­nes y las copias de seguridad, la empresa puede centrarse en lo esencial: innovar y crear valor para los clientes.

Evi­de­n­te­me­n­te, OpenShift no es adecuado para las pequeñas empresas o los de­sa­rro­lla­do­res pa­r­ti­cu­la­res. Para atender sus ne­ce­si­da­des, es mejor recurrir a una de las al­te­r­na­ti­vas a OpenShift o al­te­r­na­ti­vas a Ku­be­r­ne­tes.

¿Cuál es el conjunto de ca­ra­c­te­rí­s­ti­cas de OpenShift?

Una de las pri­n­ci­pa­les ventajas de OpenShift respecto a Ku­be­r­ne­tes “de serie” son las fu­n­cio­na­li­da­des de uso inmediato. Estas van más allá de la mera gestión de clústeres de Ku­be­r­ne­tes. Entre otras cosas, OpenShift incluye fu­n­cio­na­li­da­des para:

  • Redes definidas por software o Software-defined Ne­t­wo­r­ki­ng (SDN)
  • En­ru­ta­mie­n­to
  • Au­te­n­ti­ca­ción
  • Mo­ni­to­ri­za­ción y registro

Para gestionar la pla­ta­fo­r­ma, OpenShift incluye una potente interfaz web, además de las obligadas he­rra­mie­n­tas de línea de comandos. Los flujos de trabajo de de­sa­rro­llo y DevOps se aceleran uti­li­za­n­do “Red Hat OpenShift Pipelines”. Se utiliza el marco de código abierto Tekton para la “In­te­gra­ción continua/De­sa­rro­llo continuo” (CI/CD). Además de las apli­ca­cio­nes en co­n­te­ne­do­res, se pueden utilizar los modernos enfoques “se­r­ve­r­le­ss” o sin servidor basados en “Se­r­ve­r­le­ss Ku­be­r­ne­tes” (Knative).

Otro enfoque de OpenShift es la provisión de ar­qui­te­c­tu­ras de mi­cro­se­r­vi­cios di­s­tri­bui­dos. También conocido como “Red Hat Service Mesh,” este patrón de apli­ca­ción se basa en el proyecto de código abierto “Istio”. Para hacer frente a la co­m­ple­ji­dad asociada a las ar­qui­te­c­tu­ras de mi­cro­se­r­vi­cios, OpenShift incluye otras he­rra­mie­n­tas: “Pro­me­theus” se utiliza para gestionar la mo­ni­to­ri­za­ción y las no­ti­fi­ca­cio­nes, mientras que “Jaeger” permite el se­gui­mie­n­to de las tra­n­sac­cio­nes. “Kiali” se utiliza para vi­sua­li­zar la matriz de servicios.

¿Cuáles son las ventajas y de­s­ve­n­ta­jas de OpenShift?

Una de las mayores ventajas de utilizar OpenShift es poder ejecutar el software en un entorno de nube híbrida. En este caso, un único clúster de OpenShift abarca los límites de varias nubes privadas y públicas. Los clústeres de OpenShift que utilizan Red Hat En­te­r­pri­se Linux CoreOS (RHCOS) como único sistema operativo se be­ne­fi­cian de procesos au­to­ma­ti­za­dos a la hora de ac­tua­li­zar y hacer mejoras.

La te­c­no­lo­gía integrada de Red Hat y las he­rra­mie­n­tas y procesos de gestión in­co­r­po­ra­dos a la pla­ta­fo­r­ma dan lugar a una gran ex­pe­rie­n­cia de usuario. El modelo de de­sa­rro­llo de código abierto y las fu­n­cio­na­li­da­des DevOps in­co­r­po­ra­das permiten procesos de de­sa­rro­llo rápidos. El mayor uso de ope­ra­do­res como formato de apli­ca­ción universal co­n­tri­bu­ye a la es­ta­n­da­ri­za­ción y si­m­pli­fi­ca las pe­r­so­na­li­za­cio­nes que antes eran complejas.

El uso de CRI-O como tiempo de ejecución de co­n­te­ne­do­res en lugar de Docker conduce a una mayor seguridad de la pla­ta­fo­r­ma. La interfaz web de fácil manejo se considera más potente y clara que el panel de control co­m­pa­ra­ble de Ku­be­r­ne­tes. OpenShift también destaca en la línea de comandos con el comando oc, que facilita el uso de la pla­ta­fo­r­ma.

Por supuesto, las me­n­cio­na­das ca­ra­c­te­rí­s­ti­cas es­pe­cia­les de OpenShift también provocan algunos in­co­n­ve­nie­n­tes. Por un lado, los usuarios acérrimos de Ku­be­r­ne­tes echan de menos los potentes gráficos de Helm, que describen la co­n­fi­gu­ra­ción de la in­frae­s­tru­c­tu­ra. Además, no todos los co­n­te­ne­do­res Docker Hub pueden uti­li­zar­se en OpenShift debido a la estricta co­n­fi­gu­ra­ción de seguridad. El hecho de centrarse en la di­s­tri­bu­ción de Linux propia de Red Hat, Red Hat En­te­r­pri­se Linux CoreOS (RHCOS), también tiene un efecto limitante; Ku­be­r­ne­tes es más flexible en este sentido.

¿En qué in­frae­s­tru­c­tu­ra se puede ejecutar OpenShift?

OpenShift puede eje­cu­tar­se: en casi cualquier nivel de in­frae­s­tru­c­tu­ra in­fo­r­má­ti­ca, desde máquinas “en bruto” en tu propio centro de datos, hasta hardware vi­r­tua­li­za­do en entornos de nube privada y pública, y di­s­po­si­ti­vos extremos. Di­s­ti­n­gui­mos entre las so­lu­cio­nes “ge­s­tio­na­das”, en las que la gestión de la pla­ta­fo­r­ma OpenShift corre a cargo del proveedor, y las in­s­ta­la­cio­nes “au­to­ge­s­tio­na­das” ad­mi­ni­s­tra­das por el cliente:

¿Cuáles son las opciones para ejecutar OpenShift ge­s­tio­na­do?

Producto In­fra­s­tru­c­tu­ra Ge­s­tio­na­do por Fi­na­n­cia­do por
Microsoft Azure Red Hat OpenShift Microsoft Azure Red Hat y Microsoft Red Hat y Microsoft
Red Hat OpenShift Dedicated Amazon AWS o Google Cloud Red Hat Red Hat
Red Hat OpenShift en IBM Cloud IBM Cloud IBM Red Hat y IBM
Red Hat OpenShift Service en AWS Amazon AWS Red Hat y AWS Red Hat y AWS

¿Cuáles son las opciones para ejecutar OpenShift au­to­ge­s­tio­na­do?

Producto In­fra­s­tru­c­tu­ra Ge­s­tio­na­do por Fi­na­n­cia­do por
Red Hat OpenShift Platform Plus Nube privada, nube pública, máquina física, máquina virtual, Edge Cliente Red Hat / Proveedor de in­frae­s­tru­c­tu­ras
Red Hat OpenShift Container Platform Nube privada, nube pública, máquina física, máquina virtual, Edge Cliente Red Hat / Proveedor de in­frae­s­tru­c­tu­ras
Red Hat OpenShift Ku­be­r­ne­tes Engine Nube privada, nube pública, máquina física, máquina virtual, Edge Cliente Red Hat / Proveedor de in­frae­s­tru­c­tu­ras
Ir al menú principal