Una Breve Historia de los Contenedores: desde los años 70 a Docker 2016

1979: Unix V7     

Durante el desarrollo de Unix V7 en 1979 se introdujo el sistema chroot, cambiando el directorio raíz de un proceso y sus hijos a una nueva ubicación en el sistema de archivos. Este avance fue el inicio del aislamiento del proceso: segregar el acceso a archivos para cada proceso. Chroot se añadió a BSD en 1982.

2000: FreeBSD Jails

Casi dos décadas después, en el año 2000, un pequeño proveedor de hosting de entorno compartido presentó FreeBSD jails para lograr una clara separación entre sus servicios y los de sus clientes por seguridad y facilidad de administración. FreeBSD Jails permite a los administradores separar un sistema informático FreeBSD en varios sistemas independientes, más pequeños, denominados “cárceles”, con la capacidad de asignar una dirección IP para cada sistema y configuración.

2001: Linux VServer

Al igual que FreeBSD Jails, Linux VServer es un mecanismo de “cárcel” que puede separar los recursos (sistemas de archivos, direcciones de red, memoria) en un sistema informático. Introducido en 2001, este sistema operativo de virtualización se implementa mediante la revisión del kernel de Linux. Los parches experimentales todavía están disponibles, pero el último parche estable fue lanzado en 2006.

2004: Oracle Solaris Containers 

Oracle lanzó un contenedor Solaris que combinaba controles de recursos del sistema y una separación de límites proporcionados por zonas, que fueron capaces de aprovechar características como instantáneas y clonación de ZFS.

2005: Open VZ (Open Virtuzzo)

Se trata de una tecnología de virtualización a nivel de sistema operativo que utiliza un kernel Linux parcheado para virtualización, aislamiento, administración de recursos y checkpointing. El código no fue lanzado como parte del kernel oficial de Linux.

2006: Process Containers

Process Containers (lanzado por Google en 2006) fue diseñado para limitar, contabilizar y aislar el uso de recursos (CPU, memoria, I/O de disco, red) de una colección de procesos. Fue renombrado “Grupos de control (cgroups)” un año después y finalmente se fusionó con el kernel 2.6.24 de Linux.

2008: LXC

LXC (LinuX Containers) fue la primera y más completa implementación del gestor de contenedores Linux. Se dió en el año 2008 utilizando cgroups y namespaces de Linux, y funcionaba en un solo kernel de Linux sin necesidad de parches.

2011: Warden

CloudFoundry comenzó Warden en 2011, utilizando LXC en las etapas iniciales y posteriormente lo reemplazó con su propia implementación.

Warden puede aislar entornos en cualquier sistema operativo, ejecutándose como un daemon y proporcionando una API para la gestión de contenedores. Desarrolló un modelo cliente-servidor para administrar una colección de contenedores a través de varios hosts, Warden incluye un servicio para administrar cgroups, espacios de nombres y el ciclo de vida del proceso.

2013: LMCTFY

Let Me Contain That For You (LMCTFY) se lanzó en 2013 como una versión de código abierto de los contenedores de Google, proporcionando contenedores de aplicaciones Linux. Las aplicaciones pueden hacerse “conscientes del contenedor”, crear y administrar sus propios subcontenedores. El despliegue activo en LMCTFY se detuvo en 2015 después de que Google comenzó a aportar conceptos básicos de LMCTFY a libcontainer, que ahora forma parte de la Open Container Foundation.

2013: Docker and the Future

Todos estos sistemas tenían sus adoptantes y devotos, pero cuando Docker emergió en 2013, los contenedores explotaron en popularidad. El crecimiento de Docker y el uso de contenedores van de la mano. Al igual que Warden, Docker también usó LXC en sus etapas iniciales y más tarde lo reemplazaron por libcontainer. 

Con Docker, los desarrolladores pueden crear y ejecutar rápidamente contenedores. Con el lanzamiento de Docker Hub, los desarrolladores pueden descargar y ejecutar los contenedores de aplicaciones aún más rápido.

Referencias (http://blog.aquasec.com/)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.