Redes

Explicación de la contenedorización: las mejores herramientas y soluciones de monitoreo de contenedores en 2020

La creación de contenedores en las redes era, hasta hace poco, una tecnología relativamente oscura que solo era conocida y dominada por unos pocos especialistas altamente calificados . Avance rápido hasta hoy y las cosas han cambiado, mucho. La contenedorización en las redes, que no debe confundirse con la contenedorización en el transporte, aunque existen similitudes obvias, se ha convertido en la corriente principal y todos y cada uno de los profesionales de las redes deben tener al menos un conocimiento básico de esta tecnología asombrosa aunque compleja.

Nuestro objetivo no es de ninguna manera convertirlo en un experto en contenedores, sino más bien brindarle suficiente información para comprender qué es la tecnología, cómo funciona, qué productos están disponibles y cómo se puede monitorear.

Comenzaremos describiendo brevemente la contenerización y en qué se diferencia de la virtualización, otra tecnología con objetivos similares. Luego, analizaremos los pros y los contras de la tecnología y echaremos un vistazo rápido a cómo se puede usar en los contextos de BYOD, Saas y MDM. A continuación, exploraremos qué software de contenedorización está disponible antes de revisar algunas de las mejores herramientas que puede utilizar para monitorear su entorno de contenedorización.

Containerización en pocas palabras

Contenerización aplicación es un método de virtualización a nivel de sistema operativo que se utiliza para implementar y ejecutar aplicaciones distribuidas sin la necesidad de poner en marcha una máquina virtual completa para cada aplicación licación . Por lo tanto, múltiples aplicaciones o servicios aislados pueden ejecutarse en un solo host y acceder al mismo kernel del sistema operativo.

Los contenedores de aplicaciones incluyen los componentes de tiempo de ejecución , como archivos, variables de entorno y bibliotecas, necesarios para ejecutar el software deseado. Los contenedores de aplicaciones suelen consumir menos recursos que una implementación comparable en máquinas virtuales porque los contenedores comparten recursos sin la necesidad de un sistema operativo completo para admitir cada entorno . El conjunto completo de información para ejecutar en un recipiente se llama una imagen y motor de contenedores s desplegar estas imágenes en hosts. Los contenedores pueden funcionar en sistemas bare-metal, instancias en la nube y máquinas virtuales, así comoa través de Linux, Windows y Mac OS sistemas .

Contenerización aplicación, como se le llama a menudo, trabaja con microservicios y aplicaciones distribuidas con cada contenedor operat ing de forma independiente de los demás y nos ing mínimo de recursos del host. Cada microservicio se comunica con otros a través de interfaces de programación de aplicaciones, y la capa de virtualización de contenedores puede escalar los microservicios para satisfacer la demanda de un componente de la aplicación y distribuir la carga.

¿En qué se diferencia la contenedorización de la virtualización?

Aunque tanto la contenedorización como la virtualización tienen un propósito similar, son bastante diferentes en la forma en que operan. En la virtualización, por ejemplo, la esencia del sistema operativo está diseñada para ejecutarse como una aplicación mientras aparece como un host virtual distinto. Este sistema operativo, a su vez, está disponible para cualquier aplicación instalada en el host virtual. Por el contrario, los contenedores agrupan las partes del sistema operativo con cada aplicación y solo los elementos, bibliotecas y módulos necesarios para cada aplicación se incluyen con ellos.

Otra forma de verlo es que las máquinas virtuales configuran identidades separadas para un host y le permiten aparecer como si fueran varias máquinas físicas. La virtualización crea una abstracción del hardware. Con la contenerización, son, en cambio, las aplicaciones las que se abstraen. En general, ambas tecnologías proporcionan cierto grado de aislamiento entre entornos, pero lo logran de una manera muy diferente.

En la contenedorización, el contenedor y su sistema operativo esencialmente forman una especie de red, lo que permite que una aplicación se entregue a una máquina que de otro modo sería incompatible. Pero al contrario de lo que ocurre en la virtualización, las aplicaciones pueden compartir contenedores y solo se requiere una instancia del sistema operativo.

Pros y contras de la contenerización

Una de las mayores ventajas de la contenedorización sobre la virtualización es que no es necesario instalar de forma permanente esa capa adicional del sistema operativo virtual en la máquina receptora. En consecuencia, una aplicación en contenedores suele ser mucho más portátil, ya que elimina los requisitos de software, servicios o sistemas operativos preinstalados en la computadora de destino. Además, las aplicaciones en contenedores se pueden ejecutar en hosts sin sistema operativo y servidores remotos o en la nube con entornos desconocidos.

Otra gran cosa acerca de la contenedorización es cómo la proximidad de los servicios del sistema operativo a las aplicaciones que los necesitan dentro del contenedor a menudo significa que puede brindar tiempos de respuesta más rápidos a los usuarios finales que una máquina virtual típica. Y también se necesitan muchas menos búsquedas en la red para entregar una aplicación en contenedores que para operar una máquina virtual a la que se accede de forma remota. Y por último, pero ciertamente no menos importante, la contenerización tiene varias ventajas sobre el software distribuido. De hecho, es esa categoría de servicio de red la principal razón del reciente auge de la contenerización.

Pero los contenedores no solo tienen ventajas y hay algunos casos en los que es posible que prefiera evitarlos. Para empezar, si bien la creación de contenedores funciona bien para los sistemas operativos Linux, no es tan compatible con Windows. Además, dado que los contenedores comparten el núcleo del sistema operativo, si alguna vez se vuelve vulnerable, todos los contenedores también lo serán.

La creación de redes es otra área que puede dificultar el trabajo con contenedores. Por ejemplo, debe mantener constantemente una buena conexión de red mientras intenta activamente mantener aislados los contenedores. Asimismo, el monitoreo también viene con su conjunto de desafíos. Dado que la contenedorización se usa generalmente para construir infraestructuras de múltiples capas, con una aplicación en un contenedor, debe monitorear más cosas de las que lo haría si estuviera ejecutando todas sus aplicaciones en una máquina virtual.

Containerización y BYOD

Traiga su propio dispositivo, o BYOD, se ha vuelto muy popular últimamente y muchas organizaciones permiten que sus empleados usen su propio teléfono inteligente o incluso computadoras portátiles en el contexto de su trabajo. La creación de contenedores puede ayudar con eso, ya que las aplicaciones pueden estar disponibles a través de la red para que los empleados accedan desde sus dispositivos personales. En estas situaciones, el contenedor actúa como un “inmunizador”, creando una barrera entre la aplicación corporativa y el dispositivo propiedad del usuario. Sin embargo, esto debe gestionarse con cuidado ya que el contenedor tiene acceso al kernel del dispositivo del usuario.

Aún así, la contenedorización ofrece un beneficio de seguridad obvio para la organización que entrega la aplicación, ya que elimina la necesidad de brindar acceso directo a la red al usuario, reduciendo así el riesgo de infección por virus en la infraestructura corporativa.

Otra ventaja de la contenedorización con respecto a BYOD tiene que ver con el control de licencias de software. Por ejemplo, una aplicación se puede retirar fácilmente del uso en cualquier momento. Dado que en realidad nunca se instaló en el dispositivo del usuario, se puede suspender si el propietario del dispositivo abandona la organización o si el dispositivo es robado, lo que permite reutilizar su licencia.

Y por último, pero no menos importante, dado que la comunicación entre aplicaciones que se ejecutan en contenedores separados se puede habilitar a través de API, la cantidad real de integración y coordinación o, en el otro extremo de la escala, aislamiento, se puede controlar fácilmente.

Containerización y SaaS

El software como servicio (SaaS) es otra área en la que la contenedorización puede aportar un valor obvio. Por ejemplo, los contenedores pueden ser limitados , lo que facilita el seguimiento y el control del acceso al software desde dispositivos remotos. Esto puede resultar muy útil para los proveedores que necesitan hacer que su software esté disponible desde la nube mediante suscripción. En tales casos , el contenedor crea una partición temporal en el dispositivo host y el proveedor puede suspender esa partición a voluntad .

Además, la posibilidad de entregar software a dispositivos incompatibles sin la necesidad de instalar servicios de soporte es particularmente útil para los servicios en la nube, ya que amplía el método de entrega de una aplicación más allá del uso de navegadores.

Gestión de contenedores y dispositivos móviles

La gestión de dispositivos móviles (MDM) es otra área en la que brilla la contenerización. En pocas palabras, MDM es básicamente lo mismo que BYOD, excepto que los dispositivos móviles son propiedad y están controlados por una organización en lugar de sus empleados. Pero los desafíos son los mismos. Por ejemplo, la contenedorización puede ser una excelente opción para la entrega de aplicaciones a dispositivos móviles, ya que se pueden perder o robar fácilmente.

Software de contenedorización

Echemos un vistazo breve a algunos de los software de contenedorización más comunes que están disponibles actualmente.

Estibador

Docker es, con mucho, el sistema de contenedorización más conocido. A diferencia de la mayoría de los entornos de contenedorización que solo se ejecutarán en la plataforma Linux, este también se ejecutará en Windows. Y para hacer las cosas aún más interesantes, este es un proyecto de código abierto que puede ser de uso absolutamente gratuito, aunque hay versiones pagas. La versión gratuita se conoce como Community Edition o Docker CE. Puede descargar el código para Docker CE desde un repositorio de GitHub. El software se puede instalar en Fedora, Ubuntu, CentOS y Debian Linux y también está disponible para Mac OS y Windows 10. Además, si tiene Windows Server 2016 y superior, ni siquiera tendrá que instalar Docker, ya que ya está incluido con el sistema operativo. En Windows y Windows Server, el sistema Docker depende de los servicios de Hyper-V para ejecutarse.

LXC

El siguiente en nuestra lista es LXC, una abreviatura de Linux Containers, uno de los sistemas de contenedorización más antiguos que, hasta el día de hoy, sigue siendo muy influyente a pesar de haber disminuido en popularidad a favor de Docker, que se lanzó unos tres años después. Como probablemente obtendría del nombre, esta plataforma solo está disponible para Linux. De hecho, ya está incluido en Ubuntu. Como nota al margen, necesitará un kernel de Linux 3.8 o más reciente para crear contenedores LXC. Este producto es de uso completamente gratuito. Pero con nada más que un entorno de línea de comandos como interfaz de administración, no es tan fácil de aprender y usar como Docker. Esto probablemente explica por qué Docker se ha convertido en la estrella del mundo de la contenerización.

Kubernetes

Como prometedor, Kubernetes es probablemente la única alternativa a Docker que puede tener la posibilidad de convertirse en el sistema de contenedorización número uno. Es otro proyecto de código abierto y fue creado y administrado por Google. Es parte de la familia de productos de Google Cloud y puede contar con su experiencia en Google para ayudar a que la plataforma se eleve a grandes alturas.

Los contenedores se crean con Google Kubernetes Engine (GKE), un entorno basado en la nube. Alternativamente, puede obtener una versión instalada para que se ejecute en sus propios hosts. Ese se llama GKE On-Prem. Este también es un proyecto de código abierto, por lo que el código está disponible para que cualquiera pueda crear su propia versión de la herramienta. Sorprendentemente, esto ha ocurrido principalmente a través de varias integraciones con herramientas de interfaz en lugar de a través de bifurcaciones del código original en plataformas de la competencia. Existe, por ejemplo, Azure Kubernetes Service, que está disponible en la plataforma en la nube de Azure.

CoreOS rkt

CoreOS rkt (pronunciado CoreOS rocket) es otro proyecto de contenedorización de código abierto. Este se inició en 2014 con el objetivo de proporcionar un reemplazo para Docker en el sistema de contenedorización más amplio llamado Container Linux, que no debe confundirse con los Contenedores de Linux de los que acabamos de hablar. El sistema CoreOS rkt se instala en Linux y está diseñado como un método para entregar aplicaciones desde servicios basados ​​en la nube. El contenedor Linux se llamó originalmente CoreOS Linux. Es un sistema operativo ligero. En cuanto a CoreOS rkt, es un sistema de contenedorización que entrega Container Linux a través de redes. Sin embargo, también se puede usar en ArchLinux, Fedora, NixOS, CentOS, Ubuntu y OpenSUSE.

OpenVZ

Las en nuestra lista es OpenVZ, una abreviatura de Open Virtuozzo. Este sistema se introdujo en 2005, lo que lo hace incluso más antiguo que LXC. Es un paquete de contenedorización que se ejecuta en Linux. La parte Virtuozzo del nombre proviene del precursor de este sistema que todavía está disponible en la actualidad. Virtuozzo fue desarrollado por una empresa privada y lanzado en 2000. Fue la primera implementación real de contenedores. Unos años más tarde, se puso a disposición una versión gratuita de código abierto de la tecnología como OpenVZ y todavía está disponible en la actualidad .

Monitoreo de sistemas en contenedores

La supervisión de sistemas en contenedores difiere ligeramente de la supervisión de máquinas virtuales, pero a menudo se pueden utilizar las mismas herramientas. Después de todo, un sistema en contenedores es, en su base, una aplicación que se ejecuta en un servidor.

1. Monitor de aplicaciones y servidor SolarWinds

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba