Contenedorización (informática)
# Contenedorización (informática)

En ingeniería de software, la contenedorización es la virtualización a nivel del sistema operativo o la virtualización a nivel de la aplicación a través de múltiples recursos de red para que las aplicaciones de software puedan ejecutarse en espacios de usuario aislados llamados contenedores en cualquier entorno en la nube o no en la nube, independientemente del tipo o proveedor.

## Uso

Los contenedores son básicamente un entorno de computación usualmente en la nube, totalmente funcional y portátil, que rodea la aplicación y la mantiene independiente de otros entornos que se ejecutan en paralelo. Individualmente, cada contenedor simula una aplicación de software diferente y ejecuta procesos aislados agrupando archivos de configuración, bibliotecas y dependencias relacionadas. Pero, en conjunto, varios contenedores comparten un núcleo de sistema operativo (SO) común.

En los últimos tiempos, la tecnología de contenedorización ha sido ampliamente adoptada por plataformas de computación en la nube como Amazon Web Services, Microsoft Azure, Google Cloud Platform e IBM Cloud. El Departamento de Defensa de EE. UU. también ha impulsado la utilización de contenedores como una forma de desarrollar y desplegar más rápidamente actualizaciones de software, con su primera aplicación en su caza de superioridad aérea F-22.

## Tipos de contenedores

* Contenedores de sistema operativo
* Contenedores de aplicaciones

### Temas de seguridad

* Debido al sistema operativo compartido, las amenazas a la seguridad pueden afectar a todo el sistema en contenedores.
* En entornos en contenedores, los escáneres de seguridad generalmente protegen el sistema operativo pero no los contenedores de aplicaciones, lo que añade vulnerabilidad no deseada.

## Gestión de contenedores, orquestación, clustering.

La orquestación o gestión de contenedores se utiliza principalmente en el contexto de contenedores de aplicaciones. Las implementaciones que proporcionan dicha orquestación incluyen Kubernetes y Docker swarm.

## Gestión de clústeres de contenedores

Es necesario gestionar los clústeres de contenedores. Esto incluye funcionalidad para crear un clúster, actualizar el software o repararlo, equilibrar la carga entre instancias existentes, escalar iniciando o deteniendo instancias para adaptarse a la cantidad de usuarios, registrar actividades y monitorear los registros producidos o la aplicación misma mediante consultas. sensores. Las implementaciones de código abierto de dicho software incluyen OKD y Rancher. Un buen número de empresas ofrecen gestión de clústeres de contenedores como un servicio gestionado, como Alibaba, Amazon, Google, Microsoft, etc.

