Seleccionar página

Red Hat OpenShift: magia empresarial para DevOps

Una solución de Plataforma como Servicio (PaaS)

En la actualidad, los negocios basados en tecnología consideran la automatización como un elemento clave del éxito. Las soluciones tradicionales no son lo suficientemente rápidas para adaptarse a los continuos cambios que el negocio demanda en las aplicaciones. Y esta es una de las principales razones por las que cada vez más negocios, grandes y pequeños, adoptan la automatización y las prácticas DevOps.

La tecnología ha ido evolucionando desde el alojamiento de aplicaciones en servidores físicos hacia las máquinas virtuales y hoy en día, hacia PaaS, acrónimo de la nueva generación de plataformas en la nube, donde podemos desplegar en producción aplicaciones de una manera rápida y automatizada. La propia plataforma proporciona la instalación y configuración de componentes de infraestructura como servidores web, middleware, y bases de datos. Así, el usuario «sólo» necesita importar el código de la aplicación y la estructura de la base de datos, siendo el resto gestionado por la propia plataforma PaaS.

Gráficamente podemos resumir así la diferencia entre alojar aplicaciones en máquinas físicas (CPD propio), IaaS (Infraestructura como Servicio), PaaS (Plataforma como Servicio) y consumir el Software como Servicio (SaaS). Tenemos en azul las tareas en nuestro tejado y en gris las tareas delegadas, tomando como referencia las distintas responsabilidades involucradas.

Separación de responsabilidades entre los métodos de entrega en base a material de Young Chou

Separación de responsabilidades entre los métodos de entrega en base a material de Young Chou

Si se prefiere, también se puede recurrir al conocido paralelismo con «Pizza as a Service», aunque enriquecido con los escenarios de «Containers as a Service» y «Funcion as a Service»: ¡ Pizza as a Service 2.0 !

Por descontado, las alternativas en las Plataformas como Servicio son numerosas y en continua evolución. Puesto que la demanda empresarial de soluciones basadas en contenedores está consolidada, os invitamos a sobrevolar una apuesta segura: Red Hat® OpenShift®.

La versión corta (extraída de la propia página de Red Hat) establece que «OpenShift es una plataforma de aplicaciones en contenedores que aporta Docker y Kubernetes a la empresa. Independientemente de la arquitectura de sus aplicaciones, OpenShift le permite crear, desarrollar e implementar de manera rápida y sencilla en casi cualquier infraestructura, ya sea de nube pública o privada.»

Impresionante. Levantemos el capó y veamos qué hay debajo …

Arquitectura -básica- OpenShift

La plataforma de contenedores OpenShift incluye numerosos componentes conectados entre ellos, una complejidad que puede resultar intimidatoria. La buena noticia: si alguno de ellos falla, el resto de componentes aguanta el tipo y sigue funcionando. La mala noticia: la curva de aprendizaje no es despreciable, busque un amigo.

La mayor parte de los componentes de arquitectura son comunes en OpenShift y Kubernetes, por ejemplo: los maestros OpenShift, los nodos OpenShift o el Etcd como almacén de clave-valor. De entre los componentes exclusivos de OpenShift os destacamos: el router para el encaminado de tráfico (Ingress en Kubernetes) o el registro interno de OpenShift.

El siguiente diagrama resume la arquitectura de la plataforma de contenedores OpenShift:

Arquitectura de la plataforma de contenedores OpenShift

Arquitectura de la plataforma de contenedores OpenShift

A partir de la versión 3, OpenShift se ha construido utilizando Docker y Kubernetes sobre la base de Red Hat Enterprise Linux, lo que en ocasiones veremos referenciado como Kubernetes++. Su enfoque empresarial le lleva a introducir funcionalidades que proporcionan un PaaS estable y listo para las exigencias de nuestra Producción (o Explotación).

En particular, os destacamos las siguientes funcionalidades de OpenShift:

  • Autenticación: OpenShift incluye varios métodos de autenticación que permiten acceso granular a los proyectos Openshift:
    • Local
    • LDAP
    • GitHub
    • Autenticación “Request header”
    • Autenticación “keystone”
  • Multi-tenancy: Admite control de accesos multi-usuario y multi-proyecto, una necesidad en empresas de tamaño medio y grande que permiten la colaboración de diferentes grupos.
  • Registro de Imágenes Interno: OpenShift utiliza un registro interno para almacenar imágenes que están listas para ser desplegadas en nodos OpenShift. Por ejemplo, la construcción de imágenes con el marco S2I (source to image) utiliza este componente.
  • Consola Web: OpenShift proporciona una rica interfaz web de fácil uso y capaz de crear, construir, desplegar, actualizar y diagnosticar tanto proyectos OpenShift como microservicios que se ejecutan en la plataforma.
  • Integración SCM: OpenShift está completamente integrado con el control de versiones Git, herramienta vinculada también al constructor de imágenes.
  • Constructor de Imágenes: Proceso que se utiliza para transformar o generar imágenes que después pueden ser ejecutadas.
  • Integración CI/CD: OpenShift proporciona una integración con Jenkins pipelines para facilitar las labores de contrucción.
  • Extensiones de Kubernetes adicionales:
    • Configuración de Despliegues (DC): Un conjunto de PODs creados desde la misma imagen del contenedor.
    • Configuración de Construcciones (BC): Utilizado por S2I para construir una imagen desde el código fuente en Git.
    • Rutas: Servicio DNS utilizado por el router de OpenShift como proxy inverso (facilitando el acceso a las aplicaciones desde fuera de OpenShift).
  • API REST: Además de la API de Kubernetes, OpenShift proporciona su propia interfaz API para hacer uso de todas sus funcionalidades de automatización y la integración transparente con plataformas externas, otros frameworks de automatización, y soluciones DevOps.

 

Teniendo Kubernetes, ¿Por qué utilizar OpenShift?

Kubernetes es un producto de código abierto que permite sistematizar la gestión y el despliegue de contenedores Docker, con el valor añadido de operar en múltiples nodos (agrupaciones de contenedores). La propuesta de valor de Red Hat al respecto es clara: impulsar OpenShift como plataforma cluster de gestión y orquestación de contenedores, que integra nativamente Docker y Kubernetes, vestida de producto empresarial con soporte.

OpenShift como extensión empresarial de Kubernetes

OpenShift como extensión empresarial de Kubernetes

Repitiendo así el exitoso modelo de negocio de Red Hat Linux, disponemos de OKD (Origin) como distribución de Kubernetes sostenida por la comunidad  y OpenShift como propuesta empresarial que lo extiende con soporte y mejoras como el Catálogo de servicios, el Portal de auto-servicio, la automatización de construcción y depliegue de aplicaciones, el registro de contenedores o el enrutado de aplicaciones que suavizan la curva de aprendizaje al abstraernos de la complejidad de Kubernetes.

Pero, ¿Qué demandas atendemos con esta plataforma? El habitual diseño software de 3-capas (web, aplicación y base de datos) está evolucionado hacia arquitecturas de microservicios, que se están consolidando como el nuevo estándar y cuya adopción es ya significativa. Se trata de unas arquitecturas más flexibles, adaptables y …. exigentes que la referida arquitectura monolítica de N-capas. OpenShift nos ayuda a atender este tipo de necesidades, que son el escenario ideal para los ambientes basados en contenedores porque se ajustan mejor a lo que hoy se conoce como “Cloud Nativo”.

Además, los ciclos de trabajo ágiles aumentan la presión sobre la demanda en infraestructuras, especialmente en su provisión y control. Es lo que elegantemente llamamos «orquestación» y que OpenShift implementa para poder ofrecérselo a los grupos de desarrollo (Dev) y operaciones (Ops).

 

En Panel Sistemas trabajamos bajo un modelo integrado, automatizado y sostenible de buenas prácticas en la creación de software y servicios para grandes proyectos, al que llamamos fabricación ecoLÓGICA de Software.
Incidiendo en la sostenibilidad, DevOps es la siguiente evolución en eficiencia y Openshift es la consistente respuesta de Red Hat para esta realidad.

 

Si te ha picado la curiosidad, te recomendamos extender esta lectura con nuestro caso de éxito «Mantenimiento y mejoras de la plataforma de Integración Continua de BMW» (2 minutos) y con el vídeo resumen (30 minutos) de la sesión de «Madrid DevOps Enero 2019: How to setup a telco in the cloud» en la que se revisan las herramientas utilizadas para la provision de servicios de X by Orange, con OpenShift entre ellas.

Como bola extra, completando el círculo virtuoso de los productos bien soportados, os reseñamos que se está utilizando AsciiDoc para los fuentes de la documentación de OpenShift. Todo un acierto y una opción que os recomendamos explorar a partir de la interesante sesión (vídeo) «AsciiDoctor: recupera la ilusión por documentar» que Jorge Aguilera compartió con nosotros en el marco de los #101PanelTechDays.

NOTA: Red Hat, Red Hat Enterprise Linux, OpenShift son marcas registradas de Red Hat, Inc., en Estados Unidos y en otros países.

 

Miguel Ángel Nicolao

Miguel Ángel Nicolao

Miguel Ángel es CIO, Director de Innovación y co-fundador de Panel Sistemas. Sigue a @mnicolao11 en Twitter, o visita su perfil en Linkedin. También puedes contactar con él vía e-mail en esta dirección.

Déjanos tu comentario

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This