Elaborado por Materia para OpenMind Recomendado por Materia
5
Inicio La contenización de la computación en la nube
12 noviembre 2015

La contenización de la computación en la nube

Tiempo estimado de lectura Tiempo 5 de lectura

En los últimos años, la virtualización (software que separa las infraestructuras físicas para crear distintos recursos dedicados) ha erradicado el centro de datos, permitiendo la transformación de las TI (tecnologías de la información) y actuando como el “ingrediente secreto” de la computación en la nube. Pero ¿qué será lo próximo? Según afirmó el pasado año un orador en la Cumbre de colaboración en Linux, “el mundo de la computación en la nube se fundamenta en hipervisores (un hipervisor, también denominado gestor de máquina virtual, es un programa que permite que varios sistemas operativos compartan un único procesador en hardware). Los contenedores pueden proporcionar más servicios utilizando el mismo hardware que ahora se emplea para las máquinas virtuales, y esto supone más ventajas tanto para los centros de datos, como para los servicios en la nube”.

Virtual Machines frente a Containers / Fuente: Docker

Docker es una nueva tecnología de contenedor que hace posible que un mayor número de apps funcione en los mismos servidores y al mismo tiempo, simplifica muchísimo el empaquetamiento y envío de programas. Se trata de una plataforma abierta para desarrolladores y administradores de sistemas para construir, enviar y ejecutar aplicaciones distribuidas.

La forma correcta de considerar Docker es contemplar cada contenedor como un encapsulamiento de un programa con todas sus dependencias. El contenedor puede ser lanzado en (casi) cualquier host y dispone de todo lo necesario para operar. De esta manera, el uso de contenedores permite utilizar pilas de software pequeñas y modulares y sigue el principio Docker de “un problema por contenedor”.

Componentes de Docker

  • Motor Docker: un tiempo de ejecución ligero y portátil y una herramienta de empaquetamiento.
  • Centro Docker: un servicio en la nube para compartir aplicaciones y automatizar flujos de trabajo.

Docker crea una rutina de tiempo de ejecución protegida en el ordenador en el que se sitúa. Ocupa un espacio de memoria definido y solo tiene acceso a recursos específicos. Un contenedor configura la red para una aplicación de manera estándar y transporta como capas discretas todo el software relacionado que necesita.

Ventajas de los contenedores Docker

Los hipervisores VM hypervisors están “basados en hardware virtual de emulación. Esto significa que en términos de requerimientos de sistema son exigentes”, mientras que los contenedores utilizan sistemas operativos compartidos. Asimismo, implica que en términos de recursos de sistema resultan mucho más eficientes que los hipervisores. En lugar de virtualizar hardware, los contenedores se sitúan por encima de una única instancia de Linux. A su vez, esto significa que el usuario puede desechar el 99,9 % de la basura VM que resulta inútil, dejando una pequeña cápsula limpia que contiene la aplicación. He aquí algunas de las ventajas que supone el uso de contenedores Docker:

  • Con un sistema de contenedores perfectamente ajustado, el usuario puede tener de cuatro a seis veces el número de instancias de aplicación de servidor tantas veces como resulta posible utilizar hipervisores VM en el mismo hardware.
  • La diferencia fundamental entre los contenedores y los VM es que mientras el hipervisor extrae un dispositivo completo, los contenedores solo extraen el núcleo del sistema operativo.
  • Puesto que Docker se asocia con otros poderes de contenedor, incluyendo Canonical, Google, Red Hat y Parallels, en su contenedor de librería de componentes de fuente abierta clave radica la mayor parte de la estandarización necesaria para los contenedores.
  • Los desarrolladores pueden utilizar Docker para empaquetar, enviar y ejecutar cualquier aplicación como un LXC (contenedor Linux) ligero, portátil y autosuficiente que puede ejecutarse prácticamente en cualquier sitio.
  • Los contenedores Docker se despliegan fácilmente en la nube.
  • Con Docker, los desarrolladores pueden construir cualquier app en cualquier lenguaje utilizando una cadena de herramientas.
  • Las app que utilizan Docker son totalmente portátiles y pueden ejecutarse en cualquier parte.
  • Docker permite que las apps se ensamblen rápidamente a partir de componentes y elimina las fricciones que se producen entre el desarrollador, el departamento de calidad y los entornos de producción.
  • Mediante el uso de contenedores Docker, las TI pueden entregar los elementos más rápidamente y ejecutar la misma app, sin cambios, en laptops, VM de centro de datos y cualquier nube.

Contenedores Docker y computación en la nube

Amazon Web Services y Microsoft están efectuando cambios rápidamente para lograr que los contenedores Docker se incluyan en sus respectivos hosts de nube. Los contenedores, en ocasiones descritos como virtualización ligera, prometen desplazar el software más fácilmente y nivelar el terreno de juego entre nubes.

En el futuro, se espera que los contenedores estén anidados. Un componente de software que conforma una capa en un contenedor puede ser llamado por otro situado en una localización remota. Resulta posible pasar una actualización de la misma capa sobre cualquier otro contenedor que utilice el mismo componente.

La contenización se va a convertir en un elemento atractivo a ojos de la próxima generación de desarrolladores, en parte porque puede ajustarse de cualquier manera mediante una sofisticada gestión y herramientas de virtualización . Existen pruebas de IBM indicando que los contenedores se despliegan más rápidamente y se ejecutan de manera más eficiente que las máquinas virtuales. Asimismo, pueden empaquetarse en los servidores alcanzando mayor densidad. En la nube esto es un elemento muy positivo, ya que la eficiencia global constituye la prueba decisiva que indica quién sobrevivirá y quién no.

La contenización “es una forma importante de lograr la estandarización en el nivel de máquina subvirtual, permitiendo que las apps portátiles se empaqueten de forma ligera y que puedan ser consumidas de forma sencilla y fiable por parte de nubes PaaS en cualquier sitio,“, afirmó el analista de software IDC Al Hilwa en el evento DockerCon 2014.

Por otra parte, si el usuario opta por ello, las cargas de trabajo Docker pueden desplegarse en máquinas virtuales. Resulta razonable pensar que los contenedores y las máquinas virtuales se utilicen estrechamente en algunas configuraciones de nubes. En otras, los contenedores se ejecutarán individualmente desde cero para lograr la máxima eficacia.

En un futuro previsible, la visualización presenta varias ventajas de gestión en el centro de datos de la empresa, combinada con aplicaciones heredadas. Dichas aplicaciones pueden ser independientes del hardware desde el que fueron lanzadas y pueden gestionarse mediante recursos agrupados. Las cargas de trabajo puedan repartirse mientras se ejecutan para maximizar la utilización de servidores, mientras que los contenedores no pueden. Pero el centro de datos definido mediante software no excluye necesariamente los contenedores Linux. Pueden ajustarse a lo largo de varios VM.

Resulta más probable que las siguientes generaciones de aplicaciones, muchas de las cuales se ejecutaron en la nube, se construyan teniendo en mente contenedores en lugar de emplear virtualización. En los casos en que las aplicaciones estén compuestas por ensamblajes de muchas piezas móviles y distribuidas, el uso de contenedores puede resultar más adecuado.

Eric Brewer, Vicepresidente de infraestructura de Google,  ha afirmado que los contenedores resultan fundamentales para la forma en que Google utiliza la computación en la nube. “Todo lo que hay en Google, desde la búsqueda hasta Gmail, se empaqueta y se ejecuta en un contenedor Linux. Cada semana lanzamos más de 2.000 millones de instancias de contenedor en nuestros centros de datos globales y la potencia de los contenedores ha permitido conseguir servicios más fiables y una escalabilidad superior y más eficaz.

A medida que surja una mejor comprensión de los atributos de la contenización, las herramientas para crearlos y gestionarlos pasarán a primer plano. Es demasiado pronto para saber cómo se gestionará o se migrará utilizando contenedores de forma flexible o  las tareas que podrán llevar a cabo. Pero el paso de gigante que representa el movimiento hacia la virtualización en el centro de datos parece que va a repetirse y, en esta ocasión, será a través de la contenización en la nube.

Este texto está publicado en el perfil de LinkedIn de Ahmed Banafa

Ahmed Banafa

Faculty | Autor| Conferenciante| IoT Expert

Comentarios sobre esta publicación

El nombre no debe estar vacío
Escribe un comentario aquí…* (Máximo de 500 palabras)
El comentario no puede estar vacío
*Tu comentario será revisado antes de ser publicado
La comprobación captcha debe estar aprobada