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 rápidamente, 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.
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.
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.
Procesamiento por lotes
Los contenedores son adecuados para cargas de trabajo de procesamiento por lotes, lo que te permite ejecutar tareas en paralelo y escalar recursos según sea necesario.
Implementaciones de nube híbrida
Los contenedores te permiten implementar aplicaciones en entornos de nube híbrida, lo que brinda flexibilidad y portabilidad.
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 (VMs). Como 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 mucho más liviana para que trabajen los desarrolladores y equipos de operaciones de TI, además de una gran cantidad de beneficios.
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 uniforme, independientemente de si el entorno objetivo es un centro de datos privado, la nube pública o incluso la laptop personal del desarrollador.
Desarrollo ágil
Los contenedores permiten que los desarrolladores trabajen 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.
Ejecución en cualquier lugar
Los contenedores pueden ejecutarse prácticamente en cualquier lugar. Donde sea que quieras ejecutar tu software, puedes usar contenedores.
Habilita los microservicios
Los contenedores son una opción natural para las arquitecturas de microservicios, ya que proporcionan aislamiento, portabilidad y escalabilidad para los servicios individuales. Cada microservicio se puede empaquetar en su propio contenedor y, luego, implementarse de forma independiente.
Modernización de aplicaciones
Los contenedores pueden ayudar a modernizar las aplicaciones existentes, ya que las encapsulan en un formato portátil y escalable. Esto puede permitir que las organizaciones migren aplicaciones heredadas a la nube o adopten prácticas de desarrollo más ágiles.
Canalizaciones de CI/CD
Los contenedores se pueden usar para crear canalizaciones de CI/CD coherentes y reproducibles, lo que garantiza que las aplicaciones se creen, prueben y, luego, se implementen de forma confiable.
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.