Menú

¿Qué son los contenedores?

Temas
Soluciones de DevOps

Compartir esta página

Los contenedores son una forma de virtualización del sistema operativo. Un solo contenedor se puede usar para ejecutar cualquier cosa, desde un microservicio o un proceso de software a una aplicación de mayor tamaño. Dentro de un contenedor se encuentran todos los ejecutables, el código binario, las bibliotecas y los archivos de configuración necesarios. Sin embargo, en comparación con los métodos de virtualización de máquinas o servidores, los contenedores no contienen imágenes del sistema operativo. Esto los hace más ligeros y portátiles, con una sobrecarga significativamente menor. En implementaciones de aplicaciones de mayor tamaño, se pueden poner en marcha varios contenedores como uno o varios clústeres de contenedores. Estos clústeres se pueden gestionar mediante un orquestador de contenedores, como Kubernetes.

Beneficios de los contenedores

Los contenedores son una forma optimizada de crear, probar, poner en marcha y volver a poner en marcha aplicaciones en varios entornos, desde un portátil local de un desarrollador hasta un centro de datos on-premises e incluso en la nube. Algunos de los beneficios de los contenedores son:

  • Menos sobrecarga
    Los contenedores requieren menos recursos del sistema que los entornos de máquinas virtuales tradicionales o de hardware porque no incluyen imágenes del sistema operativo.
  • Mayor portabilidad
    Las aplicaciones que se ejecutan en contenedores se pueden poner en marcha fácilmente en sistemas operativos y plataformas de hardware diferentes.
  • Operativa más consistente
    Los equipos de DevOps saben que las aplicaciones en contenedores van a ejecutarse igual, independientemente de dónde se pongan en marcha.
  • Mayor eficiencia
    Los contenedores permiten poner en marcha, aplicar parches o escalar las aplicaciones con mayor rapidez.
  • Mejor desarrollo de aplicaciones
    Los contenedores respaldan los esfuerzos ágiles y de DevOps para acelerar los ciclos de desarrollo, prueba y producción.

Casos de uso de contenedores

Estas son algunas de las formas más habituales en las que las organizaciones usan los contenedores:

  • Rehospedaje de las aplicaciones existentes en arquitecturas de nube modernas
    Algunas organizaciones utilizan contenedores para migrar las aplicaciones existentes a entornos más modernos. Aunque esta práctica ofrece algunos de los beneficios básicos de la virtualización de sistemas operativos, no ofrece todas las ventajas de una arquitectura de aplicaciones modular basada en contenedores.
  • Refactorización de las aplicaciones existentes para contenedores
    Aunque la refactorización requiere mucho más que la migración del rehospedaje, ofrece todos los beneficios de un entorno de contenedores.
  • Desarrollo de nuevas aplicaciones nativas del contenedor
    Al igual que la refactorización, este método permite disfrutar de todos los beneficios de los contenedores.
  • Más compatibilidad con las arquitecturas de microservicios
    Las aplicaciones distribuidas y los microservicios se pueden aislar, poner en marcha y escalar más fácilmente utilizando elementos básicos de contenedores individuales.
  • Soporte de DevOps para la integración y la puesta en marcha continuas (CI/CD)
    La tecnología de contenedores permite la creación, la prueba y la puesta en marcha optimizadas a partir de las mismas imágenes de contenedores.
  • Una puesta en marcha más sencilla de tareas y trabajos repetitivos
    Los contenedores se ponen en marcha para dar soporte a uno o varios procesos parecidos que, a menudo, se ejecutan en segundo plano, como las funciones ETL o los lotes de tareas.

¿Qué relación tienen Docker y Kubernetes con los contenedores?

Probablemente, los usuarios que trabajen en entornos de contenedores conozcan dos herramientas y plataformas muy conocidas que se utilizan para crear y gestionar contenedores. Estas herramientas son Docker y Kubernetes.

Docker es un popular entorno en tiempo de ejecución que se usa para crear y construir software dentro de contenedores. Usa imágenes de Docker (instantáneas de copia en escritura) para poner en marcha aplicaciones o software en contenedores en varios entornos, desde el desarrollo hasta las pruebas y la producción. Docker se basa en estándares abiertos y funciona en la mayoría de los entornos operativos más comunes, incluidos Linux, Microsoft Windows y otras infraestructuras locales o basadas en la nube.

Sin embargo, las aplicaciones en contenedores pueden ser complicadas. Durante la producción, muchas pueden requerir cientos o miles de contenedores independientes. Es en este punto donde los entornos en tiempo de ejecución de contenedores, como Docker, se benefician del uso de otras herramientas para orquestar o gestionar todos los contenedores en funcionamiento.

Una de las herramientas más populares para este fin es Kubernetes, un orquestador de contenedores que reconoce varios entornos en tiempo de ejecución de contenedores, incluido Docker.

Kubernetes orquesta el funcionamiento de varios contenedores juntos de forma armónica. Gestiona áreas como el uso de recursos de infraestructura subyacentes para aplicaciones en contenedores (por ejemplo, la cantidad de recursos de computación, red y almacenamiento necesarios). Las herramientas de orquestación como Kubernetes facilitan la automatización y el escalado de cargas de trabajo basadas en contenedores para entornos de producción activos.

Contenedores frente a máquinas virtuales (VM)

En ocasiones, las personas confunden la tecnología de contenedores con máquinas virtuales (VM) o con la tecnología de virtualización de servidores. Aunque existen algunas similitudes básicas, los contenedores son muy diferentes de las máquinas VM.

Las VM se ejecutan en un entorno de hipervisor en el que cada máquina virtual debe incluir su propio sistema operativo invitado dentro del mismo, junto con sus archivos binarios, bibliotecas y archivos de aplicaciones correspondientes. Esto consume una gran cantidad de recursos y genera mucha sobrecarga, especialmente cuando se ejecutan varias VM en el mismo servidor físico, cada una con su propio sistema operativo invitado.

Por el contrario, cada contenedor comparte el mismo sistema operativo host o kernel del sistema y tiene un tamaño mucho menor, a menudo de solo unos megabytes. Esto suele implicar que un contenedor puede tardar unos segundos en iniciarse (en comparación con los gigabytes y los minutos necesarios que requiere una VM típica).

NetApp y contenedores

En NetApp, creemos en la conveniencia de la tecnología de contenedores y trabajamos en herramientas demostradas e innovaciones que ofrezcan y gestionen el almacenamiento persistente de todo tipo de aplicaciones sea cual sea su ubicación. Un ejemplo clave de este trabajo es el desarrollo de Trident. Gracias a Trident, las aplicaciones en contenedores pueden consumir almacenamiento persistente bajo demanda más fácilmente que nunca antes.

Trabajamos activamente en diferentes formas de acelerar DevOps ofreciendo aún más velocidad y agilidad en el desarrollo de software. Debería ser fácil utilizar los recursos de la infraestructura, como almacenamiento. Esto es una prioridad para NetApp, que ofrece soluciones de gestión de contenedores y otras soluciones que ayudan a las aplicaciones a escalar y abarcar una gran variedad de plataformas más fácilmente.

Soluciones y productos relacionados

Soluciones de DevOps

Casos de éxito de clientes del líder mundial en gestión y almacenamiento de datos

Convertimos las comunicaciones de seguridad en información de los clientes

Bandwidth, un proveedor de plataforma de API, ofrece servicios de voz, mensajería y emergencias que utilizan millones de personas cada día. Los desarrolladores de Bandwidth trabajan sin descanso para innovar en la evolución de la plataforma de la empresa e introducir en menos tiempo nuevos servicios en el mercado.

Conservar los archivos omnipresentes con la tecnología flash de NetApp y MetroCluster IP

PostFinance utiliza herramientas y tecnologías avanzadas que se desarrollan o adaptan específicamente al mercado suizo. Los sistemas de NetApp® proporcionan los datos de archivos para realizar transacciones bancarias seguras y aceleran el desarrollo de productos y servicios financieros con un almacenamiento persistente.  

Persona mirando un monitor y analizando
Drift chat loading