¿Qué es un registro de contenedores?

Vista aérea de Tokio

Autores

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

¿Qué es un registro de contenedores?

Un registro de contenedores es un repositorio de datos (o varios repositorios) que almacena imágenes de contenedores para su almacenamiento y acceso. Las imágenes de contenedores son archivos estáticos inmutables que contienen código ejecutable y se ejecutan de forma aislada en la infraestructura de TI.

Una ventaja clave de los registros de contenedores es su fácil conexión con los sistemas o plataformas de orquestación de contenedores, como Kubernetes y Docker.

Durante el desarrollo de aplicaciones basadas en contenedores, los equipos también pueden utilizar registros de contenedores en una capacidad de DevOps, lo que permite una integración optimizada con flujos de trabajo de integración continua (CI) y flujos de trabajo de entrega continua (CD). Ambos flujos de trabajo son actividades básicas dentro del desarrollo de software. CI y CD se basan en la automatización y están diseñados para adaptarse a cambios frecuentes de código. Difieren principalmente en que CI prepara el código para su eventual publicación, mientras que CD se refiere a la publicación real del código. Los registros de contenedores admiten ambos flujos de trabajo.

Hay dos tipos de registros de contenedores:

  • Los registros públicos ofrecen formas de optimizar la transferencia de datos y un control de acceso relajado, pero carecen de protocolos de seguridad avanzados.
  • Los repositorios privados suelen utilizarse en situaciones que requieren operaciones más seguras y una protección más rigurosa de las cargas de trabajo.
Vista aérea de autopista

Mantenga su cabeza en la nube

Reciba el boletín semanal Think para obtener orientación de expertos sobre cómo optimizar la configuración multinube en la era de la IA.

¿Cómo funcionan los registros de contenedores?

Un registro de contenedores almacena las imágenes de los contenedores, lo que permite a los usuarios subir imágenes al registro (un proceso llamado "inserción") o descargarlas a un sistema diferente (un proceso llamado "extracción").

Un registro de contenedores puede utilizarse solo o junto con otros registros de contenedores. Si se combinan varios contenedores en una única unidad operativa para la prestación de servicios en la nube, su funcionalidad imita la de un ecosistema cuyos habitantes trabajan en estrecha colaboración para ofrecer un output compartido.

Almacenamiento de objetos

Los registros de contenedores utilizan el almacenamiento de objetos para manifestar metadatos sobre imágenes de contenedores. Aunque esto proporciona un medio para transferir con éxito tales metadatos, es, por naturaleza, limitado. Por ejemplo, en el caso de datos que puedan implicar varias imágenes, existen límites en el número de etiquetas de listado disponibles.

Contenedores de dependencias

Los contenedores de dependencias son otro método de almacenamiento. Permiten gestionar, registrar y resolver las dependencias de una aplicación. En el contexto de la programación, las dependencias describen situaciones en las que un objeto o proceso debe producirse antes de que otro objeto pueda funcionar según lo ordenado.

Estas dependencias se gestionan mediante contenedores de dependencias, que ayudan a simplificar las pruebas, mejorar la escalabilidad y minimizar la necesidad de acoplar códigos (una interdependencia demasiado fuerte entre los objetos que se programan), lo que puede provocar la introducción de errores y problemas de control de versiones.

Autenticación

Dada la necesidad apremiante y continua de seguridad en línea, la autenticación de las personas a las que se concede acceso a los repositorios es de vital importancia. Eso depende de una serie de permisos específicos del registro de contenedores. Los permisos definen quién está autorizado a utilizar los recursos de ese registro de contenedores.

Tiempos de ejecución de contenedores

El concepto de tiempos de ejecución es vital. Los tiempos de ejecución de contenedores son el software que permite que los contenedores funcionen dentro de un sistema host. Los tiempos de ejecución utilizan una serie de pasos para crear contenedores. Estos pasos abarcan todo el proceso de formación de contenedores e inicialización de su entorno según la guía de una imagen de contenedor que contiene la aplicación y sus dependencias.

Una vez formados los contenedores, el tiempo de ejecución sigue implicado activamente: se administran los ciclos de vida de los contenedores, se hace un seguimiento de su viabilidad continua y se eliminan sus recursos cuando ya no se necesitan.

Equilibrio de carga

Los registros de contenedores también admiten el equilibrio de carga. En el equilibrio de carga nativo del contenedor, el tráfico del equilibrador se enruta directamente a las áreas destinadas a recibir ese tráfico. De esta manera, los registros de contenedores trabajan mano a mano con los equilibradores de carga, eliminando la necesidad de que el tráfico pase por un bucle de red adicional.

AI Academy

Cómo prepararse para la IA con la nube híbrida

El plan de estudios, dirigido por los principales líderes de pensamiento de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Beneficios del registro de contenedores

Los registros de contenedores ofrecen numerosos beneficios, entre los que se incluyen los siguientes:

Claridad operativa

Los registros de contenedores proporcionan una mayor claridad operativa al tener un lugar dedicado para almacenar las imágenes para su almacenamiento a largo plazo. Los artistas de producción y los desarrolladores de software luchan a menudo por tener una sobrecarga de activos. Los registros de contenedores alivian este problema al confinar los activos a una única ubicación.

Rendimiento optimizado

Los registros de contenedores ayudan a prevenir retrasos en el rendimiento que podrían surgir cuando no se conoce la ubicación exacta de las imágenes, especialmente en momentos de alta prioridad. Los registros de contenedores resuelven ese problema proporcionando un inventario que se puede verificar y confirmar en cualquier momento.

Una única fuente fiable

Los registros crean una única fuente fiable para cualquier componente o aplicación, por lo que siempre hay transparencia en la composición de ese componente o aplicación. El uso de registros de contenedores garantiza que la iteración más reciente esté lista para su uso o replicación, para un control de versiones óptimo.

Seguridad mejorada

Los registros de contenedores tienen una característica de medidas de seguridad mejoradas para las imágenes. Los protocolos de acceso ayudan a mantener las imágenes protegidas desde el punto de vista de la seguridad. Mientras tanto, el escaneo de vulnerabilidades permite a los usuarios ver en profundidad sus imágenes y detectar problemas ocultos en ellas.

Casos de uso de registros de contenedores

Las siguientes actividades hacen un uso extensivo de los registros de contenedores:

desarrollo de software

El desarrollo de software es el principal caso de uso de los registros de contenedores, razón por la que se crearon en primer lugar: para ayudar a los desarrolladores de software ofreciéndoles un espacio de trabajo para almacenar, acceder y compartir imágenes.

Distribución de software empresarial

Los registros de contenedores privados suelen considerarse una infraestructura necesaria para las organizaciones que diseñan y entregan aplicaciones de software de forma interna. Los registros privados dan a los usuarios un mayor nivel de control sobre las cadenas de suministro de software.

Microservicios

Muchos registros de contenedores ayudan a los usuarios de microservicios aclarando el proceso de localización y conexión a microservicios específicos en un clúster de contenedores. Estos registros ofrecen servicios de sistema de nombres de dominio que dan nombres de imágenes e IP virtuales.

Implementación de aplicaciones

Los registros de contenedores ayudan a fomentar la iteración rápida de las aplicaciones debido a la naturaleza modular y ligera de los registros. Otros beneficios de la implementación son la portabilidad y la coherencia de los registros.

Investigación científica

Los registros de contenedores se están personalizando para fines científicos especializados, como respaldar datos genéticos y potenciar la investigación genómica. Los resultados de la investigación se pueden reproducir fácilmente en otros formatos, lo que permite compartir código clave y artefactos.

Docker y Kubernetes

Hay dos proveedores principales de orquestación de contenedores que dominan el uso del registro de contenedores:

Docker

Docker es un sistema de orquestación de contenedores desarrollado e introducido en 2013 para ayudar a reducir la complejidad de crear, implementar y ejecutar aplicaciones. Docker ha ganado popularidad recientemente por ser visto como una forma fácil de crear contenedores ligeros, portátiles y autónomos que pueden ejecutarse en cualquier plataforma a pesar de la infraestructura. Esa reputación de facilidad de uso ha ayudado a Docker a convertirse en una opción de referencia para quienes implementan aplicaciones dedicadas a la inteligencia artificial (IA) y el machine learning (ML).

Del mismo token, los contenedores Docker ofrecen una portabilidad suprema, lo que permite moverlos de una máquina a otra, independientemente de su infraestructura. Una vez más, vemos un beneficio en el hecho de que, con Docker, es relativamente sencillo introducir aplicaciones de IA y ML en entornos alternativos, como máquinas locales, dispositivos periféricos o servidores en la nube.

Kubernetes

Kubernetes es una plataforma de código abierto para la orquestación de contenedores. También iniciado en 2013 y llamado así por un término griego que significa "piloto", Kubernetes se utiliza para automatizar varios procesos de software, como la gestión, la implementación y el escalado.

En un servicio de Kubernetes, uno o más ordenadores (que pueden ser máquinas virtuales o servidores bare metal) están enlazados en un clúster, donde se pueden ejecutar cargas de trabajo de contenedores de diferentes tamaños y tipos. Kubernetes a menudo se implementa con gráficos de Helm, que son colecciones de archivos que funcionan para describir los diversos recursos de un clúster de Kubernetes y luego empaquetan esos recursos combinados como una aplicación.

Kubernetes permite el uso de aplicaciones de ML en contenedores y un escalado sencillo, y es compatible con marcos y herramientas de ML. Kubernetes también se puede utilizar como plataforma para cargas de trabajo de entrenamiento de IA.

Docker y Kubernetes son similares en muchos aspectos. Sin embargo, difieren en la escala que cada uno posee porque Docker es, en esencia, un tiempo de ejecución de contenedores, mientras que Kubernetes es una plataforma completa diseñada para acomodar la ejecución y administración de contenedores desde múltiples tiempos de ejecución de contenedores. Como indicador de la diferencia entre ambos, considere que Kubernetes es lo suficientemente grande como para que Docker sea solo uno de los múltiples tiempos de ejecución de contenedores que Kubernetes admite.

Otros proveedores líderes de registros de contenedores

El mercado de los proveedores de registros de contenedores está en constante evolución, con jugadores que entran y salen del mercado en cualquier momento. No obstante, los proveedores enumerados aquí han construido una reputación duradera en este mercado:

  • Alibaba: Alibaba Group adopta el objetivo de "hacer más fácil hacer negocios en cualquier lugar". Cloud Container Registry de Alibaba permite la replicación de imágenes entre instancias (entidades operativas) que pertenecen a la misma cuenta. Cloud Container Registry de Alibaba está diseñado para gestionar imágenes a lo largo de sus respectivos ciclos de vida.
  • Amazon: Amazon Web Services (AWS) opera Amazon Elastic Container Registry (ECR), incorporando el uso de Amazon Inspector, que gestiona el escaneo de vulnerabilidades de las imágenes. ECR también permite la replicación entre cuentas y entre regiones, lo que facilita el acceso a las imágenes.
  • DockerHub: Docker ejecuta su propio recurso de imágenes conocido como DockerHub, que ofrece acceso gratuito a más de 100 000 imágenes compartidas por usuarios de Docker, proveedores de software y proyectos de código abierto. También hay disponible un servicio de registro de contenedores de pago para uso privado. DockerHub utiliza una interfaz de línea de comandos de Docker (CLI de Docker) que permite operaciones clave como inicio de sesión, inserción y extracción.
  • GitHub: ahora propiedad de Microsoft, GitHub se inició en 2007. La plataforma ha conseguido un amplio apoyo de los desarrolladores, que aprecian su capacidad para fomentar el intercambio de código, la colaboración y la gestión del código. (Cabe señalar que, aunque a menudo se confunde con software de código abierto, GitHub es de hecho software propietario).
  • GitLab: a menudo confundido con GitHub, GitLab fue fundado en 2014. El Container Registry de GitLab es un registro privado seguro para imágenes de contenedores. Se puede utilizar tanto para producir como para publicar imágenes. El Registro de contenedores de Gitlab funciona con software de código abierto. La última versión (ahora en versión Beta) presenta capacidades mejoradas de clasificación y filtrado.
  • Google: el registro de contenedores de Google Cloud "Artifact Registry" está integrado con las herramientas y los tiempos de ejecución de Google Cloud y admite el uso de canalizaciones automatizadas. Google también fue el creador de Kubernetes, y el proyecto ahora se gestiona gracias a los esfuerzos de los colaboradores y la marca registrada pertenece a la Cloud Native Computing Foundation. Los proveedores de servicios en la nube ahora ofrecen cada uno su propia versión de Kubernetes como servicio gestionado.
  • IBM: IBM Cloud Container Registry permite a los usuarios iniciar fácilmente su propio registro y comenzar a enviar imágenes privadas al registro para su uso con IBM Cloud Kubernetes Service. Los usuarios se benefician de la privacidad de tener su propio registro totalmente gestionado. El servicio, que puede probarse sin coste alguno, tiene la característica de precios de pago por uso, por lo que los usuarios solo pagan por lo que consumen.
  • Microsoft: la plataforma Azure de Microsoft incluye Azure Container Registry (ACR), que contiene imágenes de Docker e imágenes de Open Container Initiative (OCI) y admite artefactos OCI y gráficos Helm. La característica de registro conectado de ACR (parte del nivel de servicio premium del programa) crea una réplica local o remota que sincroniza imágenes de contenedores y artefactos OCI con el ACR basado en la nube. Los ACR pueden admitir imágenes de Windows y Linux. Una forma de interactuar con programas de computadora es escribiendo y dando entrada a líneas de texto, llamadas líneas de comando. Cuando un sistema operativo utiliza este método de interacción, se dice que incorpora una interfaz de línea de comandos (CLI). Aunque la mayoría de los usuarios de computadoras ahora dependen de interfaces gráficas de usuario (GUI), el uso de CLI aún es favorecido por algunos, especialmente por aquellos que desean automatizar programas escribiendo scripts. Azure brinda a los usuarios la flexibilidad de usar la popular CLI de Docker para ejecutar operaciones clave de imágenes de contenedores, como inicio de sesión, inserción y extracción.
  • Red Hat: Red Hat ha promovido la programación basada en Linux desde su creación en 1993. Su registro de contenedores, OpenShift Container Platform (OCP), permite a los usuarios obtener automáticamente acceso a repositorios de imágenes bajo demanda y les proporciona una ubicación estándar para enviar las imágenes resultantes de las compilaciones de sus aplicaciones.
Soluciones relacionadas
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud es una plataforma de contenedores OpenShift (OCP) totalmente gestionada.

Descubra Red Hat OpenShift
Soluciones de contenedores

Las soluciones de contenedores ejecutan y amplían cargas de trabajo en contenedores con seguridad, innovación de código abierto e implementación rápida.

Explore los contenedores
Servicios de consultoría en la nube 

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.

Servicio en la nube
Dé el siguiente paso

Modernice su infraestructura con las soluciones de contenedores de IBM. Ejecute, escale y gestione cargas de trabajo en contenedores en distintos entornos con flexibilidad, seguridad y eficiencia mediante la plataforma integral de contenedores de IBM.

Explore las soluciones de contenedores Cree su cuenta gratuita de IBM Cloud