Un contenedor es una tecnología de virtualización diseñada para crear y ofrecer un formato portátil para las aplicaciones; en otras palabras, para facilitar la implementación de una aplicación en distintas plataformas. Un contenedor empaqueta todos los elementos necesarios para la aplicación —el propio código de la aplicación, las dependencias, como las bibliotecas que necesita para ejecutarse, y el entorno de ejecución de la aplicación y sus dependencias— en un formato que puede transportarse y ejecutarse de forma independiente en distintas plataformas. Los contenedores abstraen una aplicación del entorno de ejecución habitual del sistema operativo.

Docker es el formato de implementación de contenedores más conocido; sin embargo, existen otras tecnologías de contenedores, como rkt/CoreOS, containerd, los contenedores Hyper‑V y tecnologías de más bajo nivel, como cgroups y namespaces (ambas se utilizan para aislar aplicaciones de forma similar a los motores de contenedores, pero no ofrecen portabilidad aislada del mismo modo que los contenedores). Puede utilizar herramientas de plataforma como Docker o rkt para gestionar los contenedores directamente, pero la mayoría de las implementaciones utilizan una herramienta de orquestación como Kubernetes para gestionar los contenedores. Aunque no es imprescindible, Kubernetes se está convirtiendo en la herramienta estándar para las implementaciones de contenedores en entornos 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 e independientes, lo que facilita la separación de responsabilidades entre los propietarios de la infraestructura y los desarrolladores. Esto resulta beneficioso durante el desarrollo, ya que permite que distintos equipos trabajen en paralelo en los diversos componentes, y durante el despliegue, porque posibilita trasladar un contenedor determinado entre plataformas. Los contenedores también ofrecen una herramienta más eficiente para los responsables de las aplicaciones y la infraestructura, ya que pueden proporcionar plataformas inmutables que permiten a los desarrolladores publicar contenedores de aplicaciones conforme a un conjunto de requisitos conocidos sin tener que responsabilizarse de dichos requisitos.

El término contenerización de aplicaciones suele utilizarse para referirse al proceso de migrar una aplicación desde un entorno de ejecución estándar de Linux a un formato autónomo que pueda ejecutarse en numerosos entornos. Muchas empresas ya están muy avanzadas en su proceso de contenerización y han comenzado a migrar a contenedores básicos o a una estrategia más completa de gestión de contenedores mediante una herramienta como Kubernetes.

¿Cómo puede ayudar NGINX?

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

Póngase en contacto con nosotros hoy mismo para descubrir cómo podemos ayudarle a ofrecer aplicaciones modernas.