CONTENEDORES

¿Qué son los contenedores?

Los contenedores son una forma de virtualización del sistema operativo. [1] Estos paquetes de software permiten funcionar de manera mas rápida, desplegar software con eficiencia y funcionar a una escala sin precedentes ya que no contienen imágenes del sistema operativo

¿Por qué usar contenedores?

Se usa Contenedores principalmente por su capacidad para proporcionar un entorno aislado y consistente para ejecutar aplicaciones.
Según Pahl, "los contenedores permiten una implementación más rápida, eficiente y repetible de aplicaciones en la nube, lo que es fundamental para los entornos de desarrollo y operaciones modernos". [2]

¿Cuáles son las diferencias entre contenedores y virtualización?

La principal diferencia se debe a que los contenedores comparten el sistema operativo host o kernel del sistema y su tamaño es menor. En cambio, cada VM incluye su propio sistema operativo, lo cual genera una sobrecarga y consume una gran cantidad de recursos.

Los contenedores virtuaizan el SO para que una aplicacion se pueda implementar en cualquier plataforma, y las maquinas virtuales virtualizan las maquinas fisicas para que utilizar los recursos de hardware. [3]

¿Cuáles son las seguridades que dispone e implementa contenedores?

Los componentes de seguridad puede variar dependiendo de las herramientas y plataformas especificas que se utilice para administrar sus contenedores.

Las principales seguridades incluyen: [4]

Aislamiento de contenedores

Namespaces y Cgroups

Firmas de Imagen y Escaneo de Vulnerabilidades

Políticas de Seguridad y Control de Acceso

Redes seguras

Actualizaciones y Parches:

¿Cuáles son los casos de uso de contenedores?

Algunas empresas usan contenedores para migrar sus aplicaciones a entornos mas modernos. [1]

Por ejemplo, Spotify uso contenedores para la transición de su infraestructura monolítica a una arquitectura microservicios.

Desarrollo de aplicaciones nativas de contenedores. [1]

Un ejemplo es Netflix que utiliza contenedores y Kubernetes para crear una infraestructura se streaming altamente escalable.

¿Qué es Docker, su arquitectura?

Docker es una plataforma que permite a los desarrolladores automatizar el despliegue, escalado y ejecución de aplicaciones en contenedores. Los contenedores encapsulan una aplicación y sus dependencias en una sola unidad ejecutable que se puede ejecutar de manera consistente en diferentes entornos.

Arquitectura [5]

Docker Images

Son plantillas inmutables que contienen todo lo necesario para ejecutar una aplicación, incluyendo el código, el runtime, las bibliotecas y las configuraciones.

Docker Containers

Son instancias ejecutables de imágenes de Docker. Un contenedor incluye todo lo necesario para ejecutar una aplicación.

Docker Registries

Son repositorios donde se almacenan y distribuyen las imágenes de Docke

¿Qué es Kubernet, su arquitectura?

Kubernetes es una plataforma de código abierto para la orquestación de contenedores que automatiza el despliegue, la escala y la operación de aplicaciones en contenedores.

Su principal componente es que el clúster puede reagrupar a los servidores virtuales y físicos. [6]

Arquitectura [6]

Master Node

Es el responsable de gestionar el clúster y coordinar los contenedores.

Worker Nodes

Son las máquinas donde se ejecutan las aplicaciones en contenedores

Pods

Un pod puede contener uno o varios contenedores que comparten el mismo almacenamiento, red y especificaciones de cómo ejecutar los contenedores.

Services

Es una abstracción que define un conjunto lógico de pods y una política para acceder a ellos.

Namespaces

Divide un clúster de Kubernetes en múltiples entornos virtuales, permitiendo una mejor gestión y aislamiento de recursos entre diferentes equipos o proyectos.