Tecnología

La guía nerdish para la orquestación de contenedores

Hoy en día, incluso un pequeño dispositivo informático como el teléfono inteligente tiene una capacidad de procesamiento masiva que puede realizar miles de millones de cálculos por segundo. Desde 1960, la comunidad de TI se ha preocupado por una pregunta creciente, si estos recursos informáticos asignados físicamente se utilizan de manera eficiente? Para resolver este problema causado por los recursos infrautilizados de los dispositivos informáticos, se introdujo la tecnología de virtualización en el campo de la informática. La virtualización se puede definir como el proceso de crear objetos de recursos lógicos a partir de recursos físicos de la computadora rompiendo el vínculo inicial entre el software y el hardware y aislándolos del sistema central. Con la adopción de la virtualización a la informática, los investigadores de TI podrían crear LAN virtuales (VLAN) que operan sobre redes informáticas físicas a máquinas virtuales que se ejecutan sobre máquinas informáticas físicas al lograr elasticidad, mayor disponibilidad, movilidad y escalabilidad. , seguridad y, lo que es más importante, eficiencia.

¿Qué es la contenerización?

Computación en la nube es una aplicación de tecnología de virtualización para crear un gran grupo de recursos informáticos virtualizados y permitir que los clientes suministren máquinas virtuales (VM) bajo demanda de manera rentable. Pero las máquinas virtuales requieren ejecutar su propio sistema operativo invitado completo para actuar como un dispositivo informático y este proceso de arranque del sistema operativo requiere 1 minuto o, en algunos casos, más de 10 minutos. Este retraso en el tiempo de inicio fue un problema para los servicios de Cloud Computing como PaaS y SaaS. Para superar este problema, se presentó a los proveedores de servicios en la nube un intento de virtualización llamado contenedorización.

Contenedores son similares a las máquinas virtuales, pero requieren menos tiempo, son livianos, portátiles y requieren menos recursos para ejecutar la aplicación al superar los problemas de dependencia y las demoras causadas por la capa del sistema operativo. La diferencia entre una máquina virtual y un contenedor se puede presentar a continuación.

Máquina virtual Envase
VM necesita ejecutar procesos de hipervisor y el inicio del sistema operativo (arranque) antes de ejecutar una aplicación. La aplicación se puede ejecutar directamente sin esperar a otros procesos.
Archivo de imagen virtualizado de gran peso Archivo de imagen virtualizado ligero
Cada máquina virtual tiene su propio sistema operativo Todos los contenedores comparten el mismo sistema operativo
Nivel de sistema operativo completamente aislado Aislamiento de nivel de procesos, pero seguro
Virtualización de hardware a través de un hipervisor Virtualización a nivel de SO a través de un orquestador de contenedores (Container Engine).
Requisito de memoria asignada Comparativamente menos requisitos de memoria
Comparativamente menos rendimiento Mayor rendimiento nativo para aplicaciones
VM vs contenedor
Arquitectura de VM frente a contenedor
Arquitectura de VM frente a contenedor

Evolución de la contenerización

El primer intento de virtualización notable en la historia de TI es Instalación de máquina virtual / 370 (VM / 370). En la década de 1960, los ingenieros de IBM implementaron la primera máquina virtual en una computadora central que puede usar diferentes sistemas operativos por parte de múltiples usuarios sobre el sistema operativo VM / 370 que actúa como el sistema operativo host. Sin embargo, el concepto de virtualización moderno que utiliza un software de agente de virtualización especializado llamado Virtual Machine Monitor (VMM), actualmente conocido como hipervisor, fue presentado al mundo por Gerald J. Popek y Robert P. Goldberg a través de su artículo llamado «Requisitos formales para arquitecturas virtualizables de tercera generación» en 1974.

En la década de 1980 se introdujo la virtualización basada en lenguajes de programación y el ejemplo más ideal para ello es Smalltalk-80 de Xerox PARC. Luego, en la década de 1990, Sun Microsystems lanzó su máquina virtual de Java al permitir que los desarrolladores web de la World Wide Web recién nacida ejecuten la codificación web de una manera portátil y segura. A continuación, un proyecto de la Universidad de Stanford lideró el inicio de una legendaria empresa de virtualización que dirigió la virtualización a su siguiente fase llamada computación en la nube.

Cloud Computing se convirtió en un concepto muy innovador y muchas nuevas tecnologías comenzaron a desarrollarse a través de sus raíces. Los contenedores también son una tecnología que también intercepta la historia de Linux. La historia de la contenerización se puede señalar a continuación,

  • En 1979 chroot, un sistema operativo UNIX que es capaz de aislar (sandbox) el espacio en disco para cada proceso introducido.
  • Derrick Woolworth desarrolló un sistema operativo llamado Cárceles de FreeBSD en 2000 que también puede aislar el sistema de archivos, la red y los usuarios para cada proceso informático.
  • Además, a las capacidades de FreeBSD, LinuX VServer que se introdujo en 2001 pudo dedicar la potencia de la CPU y la memoria de la computadora para la virtualización a nivel de proceso.
  • Contenedores Solaris fue lanzado en 2004 que tiene la capacidad de realizar funciones de virtualización, instantáneas y clonación basadas en zonas.
  • En 2005 Virtuzzo abierto (VZ abierto), se introdujo una metodología de virtualización a nivel de sistema operativo para Linux.
  • Para controlar y aislar CPU, E / S de disco, red de memoria para un grupo de procesos, Google desarrolló Contenedores de proceso en 2006.
  • El primer administrador de contenedores, Contenedores de Linux (LXC) se introdujo en 2008.
  • Waden, una plataforma de administración de contenedores que permite administrar contenedores a través de API, fue desarrollada y lanzada en 2011 por CloudFoundry.
  • La versión de código abierto de la herramienta de administración de contenedores de Google llamada Déjame contener eso para ti (LMCTFY) lanzado al público en 2013.
  • La ballena azul de los contenedores, Estibador llegó a la industria de la nube en 2013 con su propio ecosistema libcontainer.
  • En 2016, Kubernetes que fue desarrollado originalmente por Google se entregó a Cloud Native Computing Foundation (CNCF). Desde entonces, esta herramienta de orquestación en la nube de código abierto permitió una orquestación de contenedores amigable con la nube en casi todos los proveedores de IaaS en la nube.

Beneficios de usar contenedores

Los siguientes hechos se pueden enumerar como los beneficios de usar instancias de aplicaciones virtualizadas basadas en contenedores.

  • La aplicación está totalmente aislada del sistema operativo host y no tiene otras aplicaciones no relativas que se ejecuten simultáneamente en el entorno del contenedor.
  • Mediante el uso de herramientas de orquestación de contenedores, los contenedores se pueden configurar para realizar un escalado elástico de recursos en función de la demanda.
  • Los contenedores son imágenes virtualizadas ligeras y el rendimiento es mejor que el de una máquina virtual tradicional.
  • Replicar o clonar la aplicación idéntica se ejecuta en el contenedor con fines de respaldo y prueba, y consume menos tiempo y recursos.
  • DevOps o el mantenimiento y la actualización de varias aplicaciones al mismo tiempo se pueden realizar en un solo panel de orquestación en la nube.
  • Puede proporcionar una mayor disponibilidad a la aplicación, proporcionando una arquitectura de contenedor redundante a través del orquestador de contenedor.

¿Qué es la orquestación de contenedores?

Container Orchestration es el método de administrar y controlar contenedores y su ciclo de vida con automatización al proporcionar las siguientes características.

  • Despliegue y aprovisionamiento de contenedores en un entorno virtualizado.
  • Proporciona un escalado elástico para los recursos del contenedor como CPU, RAM, espacio en disco.
  • Supervisión del estado de los contenedores
  • Demostrando redundancia y disponibilidad a los contenedores
  • Gestión de contenedores basada en API
  • Contenedores de clonación e instantáneas
  • Equilibrio de carga entre contenedores.

Container Orchestration ha abordado muchos problemas candentes de la virtualización, como la rápida elasticidad de la escalabilidad del servidor. Sin embargo, la supervisión eficiente de contenedores sigue siendo un desafío en la tecnología de orquestación de contenedores que debería abordarse en un futuro próximo.

Herramientas de orquestación de contenedores

El sistema de orquestación de contenedores es una plataforma basada en la nube que automatiza el aprovisionamiento, el mantenimiento y el depósito del servidor o las aplicaciones en la nube en contenedores. En otras palabras, estas herramientas también pueden denominarse sistemas operativos (SO) en los centros de datos. El investigador ha comparado tres herramientas de orquestación de contenedores que se utilizan ampliamente en la siguiente tabla.

Logotipo de Kubernetes
Herramienta Kubernetes Estibador Amazon ECS
Tipo de software Fuente abierta Freemium Proveedor bloqueado.
Desarrollador Base de computación nativa de Google / Cloud Docker Inc. Servicios web de Amazon
Año de lanzamiento 2014 2013 N / A
Escalabilidad Escalado automático Sin escala automática Escalado automático
Instalación Fácil Requiere tiempo Fácil
Tolerancia a fallos Elevado Bajo Elevado
Balanceo de carga Automatizado (interno) Servicio definido Automatizado (interno)
Capacidades API API de cliente proporcionada Limitado Previsto
Soporte comunitario Activo y de rápido crecimiento Bien Activo
Soporte de GCP Administrado y nativo Se puede instalar Para nada
Comparación de herramientas de orquestación de contenedoresnorte

Entre esas herramientas, Kubernetes es el héroe actual de la orquestación de contenedores. IaaS de nube popular como AWS, GCP, Digital Ocean proporciona su servicio Kubernetes administrado y en GCP, se llama Google Kubernetes Engines (GKE).

.

Publicaciones relacionadas

Botón volver arriba