Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Sugerencia
Este contenido es un extracto del libro electrónico, ".NET Microservices Architecture for Containerized .NET Applications" (Arquitectura de microservicios de .NET para aplicaciones de .NET contenedorizadas), disponible en Documentación de .NET o como un PDF descargable y gratuito que se puede leer sin conexión.
La inclusión en contenedores es un enfoque de desarrollo de software en el que una aplicación o un servicio, sus dependencias y su configuración (extraídos como archivos de manifiesto de implementación) se empaquetan como una imagen de contenedor. La aplicación en contenedor se puede probar como una unidad e implementarse como una instancia de imagen de contenedor en el sistema operativo host (SO).
Al igual que los contenedores de envío permiten transportar mercancías por barco, tren o camión independientemente de la carga dentro, los contenedores de software actúan como una unidad estándar de implementación de software que puede contener diferentes código y dependencias. El software en contenedores de esta manera permite a los desarrolladores y profesionales de TI implementarlos en entornos con poca o ninguna modificación.
Los contenedores también aíslan las aplicaciones entre sí en un sistema operativo compartido. Las aplicaciones en contenedores se ejecutan sobre un host de contenedor que, a su vez, se ejecuta en el sistema operativo (Linux o Windows). Por lo tanto, los contenedores tienen una superficie significativamente menor que las imágenes de máquina virtual (VM).
Cada contenedor puede ejecutar una aplicación web completa o un servicio, como se muestra en la figura 2-1. En este ejemplo, el host de Docker es un host de contenedor y App1, App2, Svc 1 y Svc 2 son aplicaciones o servicios contenedorizados.
Figura 2-1. Varios contenedores que se ejecutan en un host de contenedor
Otra ventaja de la inclusión en contenedores es la escalabilidad. La creación de contenedores para tareas a corto plazo permite escalar horizontalmente con gran rapidez. Desde un punto de vista de la aplicación, crear instancias de una imagen (crear un contenedor) es similar a crear instancias de un proceso como un servicio o una aplicación web. Sin embargo, para la confiabilidad, al ejecutar varias instancias de la misma imagen en varios servidores host, normalmente quiere que cada contenedor (instancia de imagen) se ejecute en un servidor host o máquina virtual diferente en dominios de error diferentes.
En resumen, los contenedores ofrecen las ventajas de aislamiento, portabilidad, agilidad, escalabilidad y control en todo el flujo de trabajo del ciclo de vida de la aplicación. La ventaja más importante es el aislamiento del entorno proporcionado entre Dev y Ops.