Ir a

¿Qué son los contenedores?

Los contenedores son paquetes de software que contienen todos los elementos necesarios para ejecutarse en cualquier entorno. De esta manera, los contenedores virtualizan el sistema operativo y se ejecutan en cualquier lugar, desde un centro de datos privado hasta la nube pública o incluso la laptop personal de un desarrollador. Todos los servicios de Google se ejecutan en contenedores, desde Gmail hasta YouTube y la Búsqueda. El uso de contenedores permite a nuestros equipos de desarrollo moverse con rapidez, implementar software de manera eficaz y operar a una escala sin precedentes. Aprendimos mucho sobre la ejecución de cargas de trabajo en contenedores y compartimos ese conocimiento con la comunidad durante el proceso: desde el principio, cuando contribuimos con cgroups al kernel de Linux, hasta la selección de diseños de nuestras herramientas internas para ofrecerlos como código abierto en el proyecto de Kubernetes.

Definición de contenedor

Los contenedores son paquetes ligeros de código de la aplicación junto con dependencias como versiones específicas de entornos de ejecución de lenguaje de programación y bibliotecas que se necesitan para ejecutar tus servicios de software.

Los contenedores hacen que sea sencillo compartir recursos de red, almacenamiento, memoria y CPU a nivel del sistema operativo y ofrecen un mecanismo de empaquetamiento lógico en el que las aplicaciones se pueden abstraer del entorno en el que se ejecutan.

¿Cuáles son los beneficios de los contenedores?

División de la responsabilidad

La creación de contenedores brinda una división clara de la responsabilidad, ya que los desarrolladores se enfocan en las dependencias y la lógica de las aplicaciones, y los equipos de operaciones de TI pueden concentrarse en la implementación y la administración en lugar de en detalles de las aplicaciones como la configuración y las versiones específicas de software.

Portabilidad de la carga de trabajo

Los contenedores se pueden ejecutar de forma virtual en cualquier lugar, lo que facilita significativamente el desarrollo y la implementación en sistemas operativos Linux, Windows y Mac, en máquinas virtuales o servidores físicos, en la máquina de un desarrollador o en centros de datos locales y, por supuesto, en la nube pública.

Aislamiento de aplicaciones

Los contenedores virtualizan recursos de red, almacenamiento, memoria y CPU a nivel del sistema operativo, lo que permite a los desarrolladores tener una vista del SO aislado de forma lógica de otras aplicaciones.

Contenedores frente a VM

Quizás ya conozcas las VM: un sistema operativo invitado como Linux o Windows que se ejecuta en un sistema operativo host con acceso al hardware subyacente. Se suele comparar a los contenedores con las máquinas virtuales (VM). Al igual que las máquinas virtuales, los contenedores te permiten empaquetar tu aplicación junto con bibliotecas y otras dependencias, y ofrecen entornos aislados para ejecutar los servicios de tu software. Sin embargo, como verás más adelante, no hay más similitudes, ya que los contenedores ofrecen una unidad de trabajo para los desarrolladores y equipos de operaciones de TI mucho más ligera, además de una gran cantidad de beneficios.

  • Los contenedores son mucho más ligeros que las VM.
  • Los contenedores virtualizan a nivel del SO, mientras que las VM virtualizan a nivel de hardware.
  • Los contenedores comparten el kernel del SO y usan una fracción de la memoria que requieren las VM.

¿Para qué se usan los contenedores?

Los contenedores ofrecen un mecanismo de empaquetado lógico en el que las aplicaciones se pueden abstraer del entorno en el que se ejecutan. Esta separación permite que las aplicaciones basadas en contenedores se implementen de manera fácil y coherente, sin importar si el entorno de destino es un centro de datos privado, la nube pública o incluso la laptop personal de un desarrollador.

Desarrollo ágil

Los contenedores permiten que los desarrolladores se muevan mucho más rápido, ya que no tienen que lidiar con los problemas de los entornos y las dependencias.

Operaciones eficientes

Los contenedores son ligeros y te permiten usar solo los recursos de procesamiento que necesitas. Esto posibilita que ejecutes tus aplicaciones de forma eficiente.

Ejecuta en cualquier lugar

Los contenedores pueden ejecutarse prácticamente en cualquier lugar. Donde sea que quieras ejecutar tu software, puedes usar contenedores.

Google Kubernetes Engine (GKE), que cuenta con el respaldo de los mismos expertos que desarrollaron Kubernetes, es el primer servicio administrado listo para la producción que permite ejecutar aplicaciones en contenedores y puede ayudarte a implementar una estrategia de Kubernetes exitosa en tus cargas de trabajo de nube.

Con Anthos, Google ofrece una experiencia coherente de Kubernetes para tus aplicaciones locales y en múltiples nubes. Cuando usas Anthos, obtienes una forma segura, confiable y eficiente de ejecutar tus clústeres de Kubernetes en cualquier lugar.