Un contenedor es una tecnología de virtualización diseñada para crear y dar soporte a un factor de forma portátil para las aplicaciones; es decir, facilita la implementación de una aplicación en diversas plataformas. Un contenedor empaqueta todos los requisitos de la aplicación, como el código de la aplicación, las dependencias necesarias (por ejemplo, bibliotecas) y el entorno de ejecución, en un formato que puede transportarse y ejecutarse de forma independiente en distintas plataformas. Los contenedores proporcionan una abstracción de la aplicación respecto al entorno de ejecución típico del sistema operativo, permitiendo que esta se ejecute de manera consistente en diferentes entornos.

Docker es el formato de implementación de contenedores más conocido; sin embargo, existen otras tecnologías de contenedores como rkt/CoreOS, containerd, contenedores Hyper-V y tecnologías de nivel inferior como cgroups y namespaces (ambos se utilizan para el aislamiento de aplicação de forma similar a los motores de contenedores, pero no proporcionan portabilidad aislada de la misma manera que lo hacen los contenedores). Puede utilizar herramientas de plataforma como Docker o rkt para administrar contenedores directamente, pero la mayoría de las implementaciones utilizan una herramienta de orquestación como Kubernetes para la administración de contenedores. Si bien no es obligatorio, Kubernetes se está convirtiendo en la herramienta estándar para implementaciones de contenedores de nivel de producción.

Los contenedores se han convertido en una opción arquitectónica muy popular porque permiten dividir una aplicación en componentes más pequeños y discretos, facilitando la separación entre los propietarios de la infraestructura y los desarrolladores. Este enfoque es beneficioso durante el desarrollo, ya que permite que equipos diferentes trabajen en paralelo en distintos componentes, y también durante la implementación, ya que asegura la transportabilidad de un contenedor entre diversas plataformas. Además, los contenedores proporcionan una herramienta más eficiente para los administradores de aplicaciones e infraestructuras, ya que permiten crear plataformas inmutables que permiten a los desarrolladores publicar contenedores de aplicaciones con requisitos conocidos, sin necesidad de ser responsables de esos requisitos.

El término contenerización de aplicação se utiliza a menudo para indicar el proceso de migración de una aplicação desde un entorno de ejecución de Linux estándar a un formato autónomo que puede ejecutarse en muchos entornos. Muchas empresas ya están bien avanzadas en su proceso de contenedorización y ya han comenzado la migración a contenedores básicos o a una estrategia de gestión de contenedores más integral utilizando una herramienta como Kubernetes.

¿Cómo puede ayudar NGINX?

Todos los productos NGINX pueden ejecutarse en contenedores (incluidos NGINX Open Source , NGINX Plus (opcionalmente con NGINX App Protect ), NGINX Unit , NGINX Service Mesh y NGINX Ingress Controller ) o están basados en tecnologías de contenedores ( NGINX Controller ).

Contáctenos hoy para saber cómo podemos ayudarlo a ofrecer aplicaciones modernas .