Los contenedores son una versión liviana del espacio de usuario del sistema operativo Linux; de hecho, son el "mínimo desnudo". Sin embargo, sigue siendo un sistema operativo completo, y por lo tanto, la calidad de ese contenedor es tan importante como la de un sistema operativo completo. Es por eso que durante mucho tiempo hemos ofrecido , para que los usuarios puedan tener contenedores certificados, modernos y actualizados de nivel empresarial. Ejecutar (container images) RHEL en hosts de contenedores (container hosts) RHEL garantiza compatibilidad y portabilidad entre entornos, sin mencionar que son herramientas ya familiares. Sin embargo, había un problema. No podías simplemente transferir esa imagen a otra persona, incluso si se trataba de un cliente o socio que usaba Red Hat Enterprise Linux.

Pero ahora todo ha cambiado
Con el lanzamiento de la imagen base universal de Red Hat (UBI), ahora se puede obtener la confiabilidad, seguridad y alto rendimiento de las imágenes de contenedores oficiales de Red Hat, independientemente de si tienes suscripción o no. Esto significa que puedes construir una aplicación contenida en UBI, subirla a un registro de contenedores de tu elección y compartirla con el mundo. Red Hat Universal Base Image permite construir, compartir y colaborar en aplicaciones contenidas en cualquier entorno, donde desees.

Gracias a UBI, existe la posibilidad de publicar y ejecutar tus aplicaciones prácticamente en cualquier infraestructura. Pero si las ejecutas en plataformas de Red Hat, como Red Hat OpenShift y Red Hat Enterprise Linux, puedes obtener beneficios adicionales (más oro!). Y antes de entrar en una explicación más detallada sobre UBI, permitame ofrecer un breve FAQ sobre por qué necesitas la suscripción RHEL. Entonces, ¿qué pasará al ejecutar una imagen UBI en la plataforma RHEL/OpenShift?

Y ahora que el marketing está contento, hablemos más a fondo sobre UBI
Razones para aplicar UBI
Lo que debes sentir para entender que UBI te será útil:
- Mis desarrolladores quieren usar imágenes de contenedores que se puedan distribuir y ejecutar en cualquier entorno
- Mi equipo de operaciones quiere una imagen base soportada con un ciclo de vida de nivel empresarial
- Mis arquitectos quieren ofrecer a mis clientes/usuarios finales
- Mis clientes quieren tener soporte empresarial para todo su entorno de Red Hat sin complicaciones
- Mi comunidad quiere compartir, ejecutar y publicar aplicaciones en contenedores prácticamente en cualquier lugar
Si al menos uno de los escenarios es adecuado para usted, definitivamente debería prestar atención a UBI.
Más que solo una imagen base
UBI es menos que un sistema operativo completo, pero UBI tiene tres cosas importantes:
- Conjunto de tres imágenes base (ubi, ubi-minimal, ubi-init)
- Imágenes con entornos de ejecución listos para varios lenguajes de programación (nodejs, ruby, python, php, perl, etc.)
- Conjunto de paquetes relacionados en el repositorio YUM con las dependencias más comunes

UBI fue creado como base para aplicaciones cloud-native y web desarrolladas y entregadas en contenedores. Todo el contenido en UBI es un subconjunto de RHEL. Todos los paquetes en UBI provienen de canales de RHEL y se mantienen de manera similar a RHEL al ejecutarse en plataformas Red Hat soportadas, como OpenShift y RHEL.

Proporcionar soporte de calidad para contenedores requiere una considerable cantidad de esfuerzo por parte de ingenieros, expertos en seguridad y otros recursos adicionales. No solo se necesita probar las imágenes base, sino también analizar su comportamiento en cualquier host soportado.
Para facilitar las tareas relacionadas con la actualización, Red Hat está desarrollando y apoyando activamente, lo que permite ejecutar UBI 7, por ejemplo, en hosts RHEL 8, y UBI 8 en hosts RHEL 7. Esto brinda a los usuarios la flexibilidad, confianza y tranquilidad necesarias durante el proceso, por ejemplo, de actualizaciones de plataformas en imágenes de contenedores o de los hosts utilizados. Ahora todo esto se puede dividir en dos proyectos independientes.
Tres imágenes base

Mínima - destinada a aplicaciones con todas las dependencias (Python, Node.js, .NET, etc.)
- Conjunto mínimo de contenido preinstalado
- Sin archivos ejecutables suid
- Mínima caja de herramientas de gestión de paquetes (instalación, actualización y eliminación)
Plataforma - para cualquier aplicación que se ejecute en RHEL
- Conjunto criptográfico unificado OpenSSL
- Completo stack YUM
- Incluidas las útiles utilidades básicas del sistema operativo (tar, gzip, vi, etc.)
Multi-Service - facilita la ejecución de múltiples servicios en un solo contenedor
- Configurado para iniciar systemd al arrancar
- Posibilidad de habilitar servicios en la etapa de construcción
Imágenes de contenedores con entornos de ejecución de lenguajes de programación ya listos
Además de las imágenes básicas que permiten instalar soporte para lenguajes de programación, UBI incluye imágenes preconstruidas con entornos de ejecución para varios lenguajes de programación. Muchos desarrolladores pueden simplemente tomar una imagen y comenzar a trabajar en la aplicación que están desarrollando.
Con el lanzamiento de UBI, Red Hat ofrece dos conjuntos de imágenes: basadas en RHEL 7 y RHEL 8. Se basan, respectivamente, en las Red Hat Software Collections (RHEL 7) y en Application Streams (RHEL 8). Estos entornos de ejecución se mantienen actualizados y reciben hasta cuatro actualizaciones al año, por lo que siempre hay oportunidad de trabajar con las versiones más recientes y estables.
Aquí está el listado de imágenes de contenedores UBI 7:

Aquí está el listado de imágenes de contenedores para UBI 8:

Paquetes asociados
El uso de imágenes listas para usar es realmente muy conveniente. Red Hat mantiene su actualidad y las actualiza junto con el lanzamiento de nuevas versiones de RHEL, así como en caso de actualizaciones críticas de CVE, de acuerdo con la política de actualizaciones. para que puedas tomar una de estas imágenes y empezar a trabajar de inmediato en la aplicación.

Pero a veces, al crear una aplicación, puede que de repente necesites algún paquete adicional. O, a veces, para hacer que la aplicación funcione, es necesario actualizar cierto paquete. Es por eso que las imágenes de UBI vienen con un conjunto de RPM que están disponibles a través de yum, y que se distribuyen a través de una red de entrega de contenido rápida y de alta disponibilidad (¡en un instante!). Cuando realizas una actualización de yum en tu CI/CD en ese crítico momento de lanzamiento, puedes estar seguro de que funcionará.
RHEL es la base
No nos cansamos de repetir que RHEL es la base de todo. ¿Sabes qué equipos en Red Hat trabajan en la creación de imágenes básicas? Por ejemplo, estos:
- El grupo técnico y de ingeniería es responsable de garantizar que las bibliotecas básicas, como glibc y OpenSSL, así como los entornos de programación, como Python y Ruby, ofrezcan un rendimiento estable y funcionen de manera confiable con cargas de trabajo al ser utilizados en contenedores.
- El equipo de seguridad de productos se encarga de corregir de manera oportuna errores y problemas de seguridad en las bibliotecas y entornos de programación, y su eficacia se evalúa mediante un índice especializado. .
- El equipo de gerentes de producto e ingenieros se encarga de agregar nuevas funciones y garantizar un ciclo de vida prolongado del producto, lo que genera confianza en las inversiones realizadas que pueden ser utilizadas como base.
Red Hat Enterprise Linux actúa como un excelente host y base para contenedores, pero para muchos desarrolladores, es importante la capacidad de trabajar con el sistema en diversos formatos, algunos de los cuales pueden ir más allá de los escenarios de uso admitidos por el sistema Linux. Aquí es donde entran en juego las imágenes universales UBI.
Supongamos que en este momento, usted simplemente está buscando una imagen base para comenzar a trabajar en una aplicación contenedorizada simple. O ya está más cerca del futuro y se mueve de contenedores independientes que funcionan en un motor de contenedores hacia una historia nativa de la nube utilizando operadores (construyendo y certificando Operadores) que funcionan en OpenShift. En cualquier caso, UBI proporcionará una excelente base para esto.

Los contenedores incluyen una versión liviana del espacio de usuario del sistema operativo en un nuevo formato de empaquetado. El lanzamiento de las imágenes UBI establece un nuevo estándar en la industria para el desarrollo de contenedores, permitiendo que los contenedores de clase empresarial sean accesibles para todos los usuarios, desarrolladores independientes de software y comunidades de código abierto. En particular, los desarrolladores de software pueden estandarizar sus productos utilizando una única base probada para todas sus aplicaciones contenedorizadas, incluyendo . Las empresas desarrolladoras que utilizan UBI también tienen acceso a la certificación Red Hat Container Certification y a la certificación Red Hat OpenShift Operator Certification, lo que a su vez permite verificar continuamente el software que se ejecuta en las plataformas de Red Hat, como OpenShift.

Cómo comenzar a trabajar con una imagen
En resumen, es muy sencillo. Podman está disponible no solo en RHEL, sino también en Fedora, CentOS y en varias otras distribuciones de Linux. Lo único que necesitas hacer es descargar la imagen de uno de los siguientes repositorios, y continuar.
Para UBI 8:
podman pull registry.access.redhat.com/ubi8/ubi
podman pull registry.access.redhat.com/ubi8/ubi-minimal
podman pull registry.access.redhat.com/ubi8/ubi-init
Para UBI 7:
podman pull registry.access.redhat.com/ubi7/ubi
podman pull registry.access.redhat.com/ubi7/ubi-minimal
podman pull registry.access.redhat.com/ubi7/ubi-init
Y también puedes consultar la guía completa de Universal Base Image
Fuente: habr.com
