Ir a

¿Qué son los contenedores?

Los contenedores son paquetes de software que incluyen todos los elementos necesarios para ejecutar tus productos en cualquier entorno. Como virtualizan el sistema operativo, se pueden ejecutar en cualquier parte, desde un centro de datos privado hasta la nube pública o incluso el portátil personal de un desarrollador. En Google, todo se ejecuta en contenedores: desde Gmail hasta YouTube, pasando por la Búsqueda. Gracias a la creación en contenedores, nuestros equipos de desarrollo pueden avanzar con rapidez, desplegar software de manera eficiente y trabajar a una escala sin precedentes. Hemos aprendido mucho sobre cómo ejecutar las cargas de trabajo en contenedores y hemos compartido esos conocimientos con la comunidad en todo momento: desde la primera etapa en que contribuimos con los cgroups al kernel de Linux hasta que extrajimos los diseños de nuestras herramientas internas y compartimos su código con la comunidad en el proyecto Kubernetes.

Definición de los contenedores

Los contenedores son paquetes ligeros que incluyen el código de las aplicaciones junto con sus dependencias, como versiones concretas de entornos de ejecución de ciertos lenguajes de programación y bibliotecas indispensables para ejecutar los servicios de software.

Con los contenedores resulta muy fácil compartir recursos de CPU, memoria, almacenamiento y red a nivel de sistema operativo. Además, constituyen un mecanismo de empaquetado lógico en el que se pueden abstraer las aplicaciones del entorno en el que se ejecutan realmente.

¿Cuáles son las ventajas de los contenedores?

Separación de responsabilidades

La creación en contenedores permite separar de forma clara las responsabilidades, ya que los desarrolladores se centran en la lógica y las dependencias de las aplicaciones, mientras que los equipos de operaciones de TI se dedican a desplegarlas y gestionarlas sin preocuparse por detalles concretos, como versiones de software o configuraciones específicas.

Portabilidad de las cargas de trabajo

Como los contenedores se pueden ejecutar casi en cualquier lugar, resulta facilísimo desarrollarlos y desplegarlos en sistemas operativos Linux, Windows y Mac; en máquinas virtuales o servidores físicos; en equipos de desarrolladores o centros de datos on‑premise; y, por supuesto, en la nube pública.

Aislamiento de aplicaciones

Los contenedores virtualizan los recursos de CPU, memoria, almacenamiento y red a nivel de sistema operativo, lo que proporciona a los desarrolladores una vista del sistema operativo aislado lógicamente de las demás aplicaciones.

¿Contenedores o máquinas virtuales?

Es probable que sepas cómo funcionan las máquinas virtuales: un sistema operativo invitado, como Linux o Windows, se ejecuta en un sistema operativo anfitrión con acceso al hardware subyacente. Piensa en los contenedores como si fueran máquinas virtuales. Al igual que ellas, los contenedores permiten empaquetar las aplicaciones con bibliotecas y otras dependencias, de modo que proporcionan entornos aislados para ejecutar servicios de software. Sin embargo, como puedes ver a continuación, ahí acaban las similitudes, ya que los contenedores ofrecen una solución mucho más ligera y con innumerables ventajas para los desarrolladores y los equipos de operaciones de TI.

  • Los contenedores son mucho más ligeros que las máquinas virtuales.
  • Los contenedores virtualizan a nivel de sistema operativo y las máquinas virtuales, a nivel de hardware.
  • Los contenedores comparten el kernel del sistema operativo y no utilizan tanta memoria como la que necesitan las máquinas virtuales.

¿Para qué se usan los contenedores?

Los contenedores constituyen un mecanismo de empaquetado lógico en el que se pueden abstraer las aplicaciones del entorno en el que se ejecutan realmente. Esta desvinculación facilita el despliegue uniforme de las aplicaciones basadas en ellos con independencia de que el entorno de destino sea un centro de datos privado, la nube pública o incluso el portátil personal de un desarrollador.

Desarrollo ágil

Los contenedores permiten que los desarrolladores avancen con mucha más rapidez, ya que se pueden despreocupar de las dependencias y los entornos.

Operaciones eficientes

Los contenedores son ligeros y te permiten utilizar los recursos de computación indispensables, ni más ni menos. Así puedes ejecutar tus aplicaciones de manera eficiente.

Ejecución en cualquier lugar

Los contenedores se pueden ejecutar casi en cualquier lugar. Donde quieras ejecutar el software, podrás usar contenedores.

Google Kubernetes Engine (GKE) tiene el mismo bagaje que Kubernetes y es el primer servicio gestionado listo para producción que sirve para ejecutar aplicaciones en contenedores. Además, te ayuda a poner en práctica una estrategia de Kubernetes eficaz para tus cargas de trabajo en la nube.

Con Anthos, Google te ofrece una experiencia de Kubernetes uniforme con tus aplicaciones on‑premise y en diversas nubes. Gracias a Anthos, dispones de un método fiable, eficiente y seguro para ejecutar clústeres de Kubernetes en cualquier lugar.