¿Qué son las aplicaciones en contenedores?

Las aplicaciones en contenedores se ejecutan en paquetes de código aislados denominados contenedores. Los contenedores incluyen en un único ejecutable ligero todas las dependencias que puede necesitar una aplicación para ejecutarse en cualquier sistema operativo host, como bibliotecas, binarios, archivos de configuración y frameworks.

El proceso de creación de aplicaciones en contenedores permite desarrollarlas de forma más rápida, eficiente y segura, ya que separa las distintas funciones de las dependencias de hardware y de otros programas de software. Los contenedores se pueden ejecutar en cualquier sistema operativo host y están aislados de otros objetos de software y hardware, lo que los convierte en herramientas versátiles para crear aplicaciones que se pueden compilar una vez y ejecutar en cualquier lugar.

En Google, todo se ejecuta por contenedores, desde la Búsqueda de Google hasta YouTube y Gmail. Las plataformas de código abierto Kubernetes y Knative se desarrollaron en Google y son algunas de las herramientas más utilizadas para gestionar contenedores y aplicaciones.  

Ventajas de las aplicaciones en contenedores

Aislamiento

Como las aplicaciones en contenedores se encuentra en entornos aislado, lejos de otras aplicaciones y componentes del sistema, los fallos de la aplicación no afectarán a otras aplicaciones ni al sistema local, lo que puede limitar el alcance de los incidentes relacionados con errores.

Portabilidad

Las aplicaciones en contenedores funcionan independientemente del sistema operativo y, por lo tanto, se pueden migrar a casi cualquier entorno, como servidores físicos, máquinas virtuales, la máquina personal de un desarrollador o la nube.

Ligera

A diferencia de las máquinas virtuales, los contenedores no integran una versión del sistema operativo, por lo que son mucho más ligeros y eficientes que otros métodos de virtualización.

Eficiencia

Las aplicaciones en contenedores pueden compartir los recursos y el kernel de computación de una máquina, y las capas de las aplicaciones dentro de un contenedor se pueden compartir entre varios contenedores. Las aplicaciones en contenedores requieren menos recursos, por lo que pueden ejecutarse varios contenedores en la misma máquina o en el mismo entorno virtual.

Escalabilidad

Se pueden añadir más instancias de contenedor rápidamente para gestionar el aumento de las cargas de las aplicaciones.

¿Cómo funciona la tecnología de creación en contenedores de aplicaciones?

Las aplicaciones en contenedores ejecutan un paquete de software ejecutable (el contenedor) que incluye todas las dependencias de la aplicación necesarias para que esta se ejecute en un sistema operativo host. La aplicación en contenedor tiene varios objetos, incluidos todos los componentes (por ejemplo, frameworks o bibliotecas) que conforman la imagen del contenedor, que después ejecuta el motor de contenedores. La imagen del contenedor es el plano o arquitectura del sistema de contenedores. Cuando se ejecuta la aplicación, el contenido de la imagen se copia en una instancia de contenedor y se puede usar en cualquier número de contenedores dentro de la aplicación. Las imágenes de contenedor se crean de acuerdo con un estándar del sector denominado Open Container Initiative (OCI) que facilita el uso compartido y la compatibilidad de los contenedores.

Los motores de contenedores son el tiempo de tiempo de ejecución del contenedor y la plataforma desde la que se ejecutan las aplicaciones en contenedores. Los motores de contenedores aceptan los comandos para crear, gestionar e iniciar contenedores a través de herramientas de cliente. Los motores de contenedores más populares son herramientas como Docker o CRI-O.

Las herramientas de orquestación se usan para gestionar aplicaciones en contenedores, especialmente en entornos con muchos contenedores. Las herramientas de orquestación, como Kubernetes, despliegan, gestionan y escalan contenedores

Comparación de contenedores y máquinas virtuales

Los contenedores y las máquinas virtuales tienen funciones similares, pero los contenedores suelen utilizar menos recursos y son más flexibles. 

Las máquinas virtuales permiten que varias aplicaciones y sistemas operativos compartan los recursos de un solo ordenador o servidor físicos y se ejecuten de forma simultánea (por ejemplo, Windows y Linux compartidos en el mismo ordenador). Las máquinas virtuales almacenan sus archivos y dependencias, así como su propia copia del sistema operativo.

A diferencia de las máquinas virtuales, los contenedores no contienen una copia del sistema operativo. Por este motivo, la principal diferencia entre los contenedores y las máquinas virtuales es que los contenedores utilizan los recursos de computación de forma más eficiente. Sin embargo, el tiempo de ejecución de los contenedores se instala en el sistema operativo del ordenador o del servidor, lo que permite que todos los contenedores compartan el mismo sistema operativo.

Tipos de contenedores de aplicaciones

En el nivel más básico, los contenedores se dividen en dos tipos: contenedores del sistema y contenedores de aplicaciones

Contenedores de aplicaciones

Los contenedores de aplicaciones son soluciones sin reconocimiento del estado que suelen ejecutar un solo proceso. Cuando hablamos de aplicaciones en contenedores, hablamos de ejecutar contenedores de aplicaciones en los que cada contenedor gestiona un proceso, con varios contenedores orquestados por una herramienta como Kubernetes. 

Los contenedores de aplicaciones abundan en el mercado. Docker se considera el más popular, aunque hay muchos más. La importación de conversiones offline gestiona el desarrollo de contenedores de código abierto. 

Contenedores del sistema

Los contenedores de sistemas, también conocidos como contenedores de sistemas operativos, son más antiguos y funcionan de manera muy similar a las máquinas virtuales, aunque sin la misma sobrecarga informática. Se comportan como un sistema independiente y no incluyen la imagen de contenedor ni requieren software especializado. Los contenedores del sistema se solían usar en aplicaciones monolíticas y antiguas.

Estos son algunos de los tipos de motores y herramientas más habituales de las aplicaciones en contenedores:

Docker

La plataforma de código abierto más popular para la creación en contenedores. Docker permite crear y gestionar contenedores basados en Linux.

LXC

El proyecto de software libre LinuxContainers.org, LXC, permite que una aplicación ejecute varios sistemas Linux de forma simultánea con un solo kernel de Linux como sistema operativo.

rkt

rkt, también conocido como Rocket, es un motor de contenedores basado en aplicaciones que permite controlar de forma pormenorizada los contenedores o componentes específicos de un sistema de contenedores Docker.

CRI-O

Una interfaz de tiempo de ejecución de contenedores (CRI) para la plataforma de gestión de contenedores Kubernetes, que se utiliza para habilitar tiempos de ejecución compatibles con la importación de conversiones offline. A menudo se utiliza como sustituto de Docker cuando se usa Kubernetes.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Habla con un especialista del equipo de ventas de Google Cloud y explícale tu reto único al detalle.

Da el siguiente paso con la creación en contenedores

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Consola
Google Cloud