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 capacitados . Un avance rápido hasta el día de 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 asombrosa aunque compleja tecnología.
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 contenedorizació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 veremos rápidamente 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
La contenedorización de aplicaciones 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 iniciar una máquina virtual completa para cada aplicació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 contenedor se denomina imagen y los motores de contenedor implementan estas imágenes en los hosts. Los contenedores pueden funcionar en sistemas bare-metal, instancias en la nube y máquinas virtuales, así como en sistemas Linux, Windows y Mac OS.
La contenedorización de aplicaciones, como se le llama a menudo, funciona con microservicios y aplicaciones distribuidas con cada contenedor operando independientemente de los demás y utilizando recursos mínimos 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 creación de contenedores 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á hecha 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 en 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 forman esencialmente 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 sucede 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 hay necesidad de instalar permanentemente esa capa adicional del sistema operativo virtual en la máquina receptora. En consecuencia, una aplicación en contenedor 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. Esto, sin embargo, debe manejarse con cuidado ya que el contenedor tiene acceso al kernel del dispositivo del usuario.
Aún así, la contenerizació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 puede retirarse 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 limitarse, 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 expande 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 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 mediante 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 puso en marcha 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 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, una versión gratuita de código abierto de la tecnología se puso a disposición 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 (PRUEBA GRATUITA)
El SolarWinds Server y Application Monitor fue diseñado para servidores administradores ayudar a supervisar, sus parámetros de funcionamiento, sus procesos y las aplicaciones que se ejecutan en ellos. Puede escalar fácilmente desde redes muy pequeñas hasta grandes con cientos de servidores, tanto físicos como virtuales, distribuidos en varios sitios. La herramienta también puede monitorear servicios alojados en la nube como los de Amazon Web Services y Microsoft Azure, así como la mayoría de las variantes de plataformas de contenedorización.
Este producto es particularmente adecuado para monitorear implementaciones de Docker. La solución está diseñada para monitorear cualquier aplicación que utilice la arquitectura de contenedor de Docker para ayudar a comprender mejor su disponibilidad y rendimiento. Puede utilizar la supervisión de Docker del producto para validar que la aplicación funciona como se esperaba y que los servicios necesarios tienen los recursos adecuados. También puede ayudarlo a correlacionar y administrar las métricas de rendimiento de la aplicación junto con la supervisión de contenedores de Docker y las métricas de host para visualizar el rendimiento que puede ayudar a solucionar problemas de rendimiento.
El SolarWinds Server y supervisión de aplicaciones es muy fácil de configurar y de su configuración inicial es sólo realizan con la misma facilidad con la ayuda de su proceso de auto-descubrimiento. Es un proceso de dos pasos. El primer paso descubrirá servidores y el segundo encontrará aplicaciones. Esto puede llevar tiempo, pero puede acelerarse proporcionando a la herramienta una lista de aplicaciones específicas para buscar. Una vez que la herramienta está en funcionamiento, la GUI fácil de usar hace que su uso sea muy sencillo. Puede optar por mostrar la información en formato de tabla o gráfico.
Los precios de SolarWinds Server y Application Monitor comienzan en $ 2 995 y varían según la cantidad de componentes, nodos y volúmenes monitoreados. Una versión de prueba gratuita de 30 días está disponible para descargar, en caso de que desee probar el producto antes de comprarlo.
2. Administrador de aplicaciones ManageEngine
Puede que ManageEngine no sea tan conocido como SolarWinds, pero es otro nombre que goza de una excelente reputación entre los administradores de redes y bases de datos. El administrador de aplicaciones ManageEngine se ocupa de la gestión de aplicaciones. Probablemente lo habías descubierto por ti mismo. Sin embargo, este es un nombre un tanto engañoso, ya que es tanto una plataforma de supervisión como una herramienta de gestión.
Esta herramienta ofrece monitoreo integrado del rendimiento de las aplicaciones para todas sus necesidades de monitoreo de aplicaciones y servidores. También puede hacerlo para los componentes de la infraestructura subyacente, como servidores de aplicaciones, bases de datos, componentes de mensajería y middleware, servidores web, servicios web, paquetes ERP, sistemas virtuales y recursos en la nube. En pocas palabras, esta es una plataforma que lo abarca todo.
El administrador de aplicaciones ManageEnginetiene una extensión específica para monitorear contenedores de Kubernetes y Docker. Por ejemplo, la administración de Docker de la herramienta no solo ofrece información sobre el estado y el rendimiento de los contenedores de Docker, sino que también permite el monitoreo del host de Docker a través de un robusto motor de monitoreo, alertas y análisis. En cuanto a sus capacidades de monitoreo de clúster de Kubernetes, le permitirán descubrir automáticamente las partes y mapear las relaciones entre los objetos en los nodos, espacios de nombres, implementaciones, conjuntos de réplicas, pods y contenedores del clúster de Kubernetes. También monitoreará las estadísticas del clúster de Kubernetes e identificará fallas y sus fuentes con facilidad. Al usarlo, obtendrá visibilidad de los datos operativos, como la cantidad de recursos utilizados, los espacios de nombres por clúster y por pod, y hará un seguimiento de la capacidad y la utilización de recursos de su clúster y profundizará en partes específicas del clúster.
El Administrador de Aplicaciones de ManageEngine está disponible en varias ediciones. Hay una edición gratuita con funciones limitadas , así como versiones pagas Professional y Enterprise . Los precios comienzan en $ 945 y los detalles se pueden obtener comunicándose con ManageEngine. También está disponible una versión de prueba gratuita de 30 días.
3. Monitor de red de PRTG
El monitor de red PRTG de Paessler AG es otro gran producto. Si bien es, en su base, una herramienta de análisis de red SNMP, incluye mucha más funcionalidad, como estamos a punto de discutir. Su velocidad de instalación es otro punto fuerte del producto. Según Paessler, se puede configurar en un par de minutos. Y aunque su experiencia puede variar, la instalación es generalmente más rápida que la de la mayoría de los competidores gracias en parte al motor de descubrimiento automático de la herramienta. El producto también ofrece una variedad de interfaces de usuario. Puede elegir entre una consola empresarial nativa de Windows, una interfaz web basada en Ajax y aplicaciones móviles para Android e iOS. Las alertas y los informes son excelentes y el producto cuenta con una amplia gama de informes que pueden verse como HTML o PDF o exportarse a CSV o XML para ser procesados externamente.
Gracias a un concepto bastante exclusivo llamado sensores, un tipo de complementos de funcionalidad que ya están integrados en el producto, se pueden monitorear métricas adicionales con PRTG Network Monitor . Hay alrededor de doscientos sensores disponibles con el producto para monitorear virtualmente cualquier parámetro de red. Cuando se trata de monitorear contenedores, especialmente Docker, PRTG tiene justo lo que necesita en su sensor de estado de contenedor Docker que, como era de esperar, monitorea el estado de un contenedor Docker. Este sensor mostrará varios parámetros, como el estado general del contenedor (crear, ejecutar, pausar, reiniciar, salir), su tiempo de actividad, código de salida, uso de CPU y memoria disponible tanto en bytes como en porcentaje.
El PRTG Network Monitor está disponible en una versión libre que se limita a ningún seguimiento a más de 100 sensores. Cada parámetro que desea monitorear cuenta como un sensor. Por ejemplo, monitorear el ancho de banda en cada interfaz de un enrutador de 4 puertos usará hasta 4 sensores y monitorear la CPU y la memoria en ese mismo enrutador usará hasta 2 más. Cada sensor adicional que instale también cuenta. Para más de 100 sensores, que probablemente necesitará, necesitará una licencia. Sus precios comienzan en $ 1 600 por hasta 500 sensores, incluido el primer año de mantenimiento. También está disponible una versión de prueba gratuita de 30 días.
4. Dynatrace
Dynatrace es otra oferta de software como servicio (SaaS) basada en la nube. Puede detectar, resolver y optimizar aplicaciones de forma automática. Descubrir y mapear un ecosistema de aplicaciones complejo es simplemente una cuestión de instalar Dynatrace OneAgent . El servicio le brindará una vista de alta fidelidad de toda su pila de aplicaciones, desde el rendimiento de las aplicaciones, la infraestructura de la nube y la experiencia del usuario. Le ayudará a detectar problemas sin esfuerzo junto con sus impactos comerciales y la causa raíz.
Dynatrace también afirma tener la cobertura más amplia de cualquier solución de monitoreo en términos de idiomas admitidos, arquitecturas de aplicaciones, nube, en las instalaciones o híbridas, aplicaciones empresariales, monitoreo SaaS, contenedorización y más. La herramienta detecta y supervisa automáticamente los microservicios dinámicos que se ejecutan dentro de los contenedores. Le muestra cómo se están desempeñando, cómo se comunican entre sí y lo ayuda a detectar rápidamente los microservicios de bajo rendimiento. Una vez que haya terminado de descubrir su infraestructura, podrá ver los procesos en contenedores a través del panel de la herramienta en tiempo real. El software también puede monitorear el desempeño de aplicaciones y microservicios ubicados dentro de los contenedores.
El análisis de registros es otra característica útil proporcionada con Dynatrace . Puede ver todos los mensajes de registro asociados con una aplicación dentro de un archivo de registro. Cada entrada de registro le proporciona información adicional que se puede utilizar para filtrar su búsqueda. Por ejemplo, las entradas del registro mostrarán la imagen del contenedor, el ID que registró el mensaje y la salida utilizada.
El precio de Dynatrace no está disponible, pero se puede obtener registrándose para la prueba gratuita de 15 días. Una vez que se registre para la prueba, solo es cuestión de instalar el agente en sus servidores y podrá comenzar a monitorear en 5 minutos.
5. Lógica de sumo
Sumo Logic es una solución de monitoreo de registros y aplicaciones que es compatible con plataformas de contenedorización como Docker. El producto se creó para agregar grandes volúmenes de datos de registro de prácticamente cualquier fuente. Pero la recopilación de datos de registro es solo el comienzo. El servicio también puede ayudarlo a utilizar los datos recopilados para monitorear el rendimiento, mejorar las aplicaciones y, potencialmente, incluso abordar problemas de seguridad y cumplimiento.
Sumo Logic puede monitorear contenedores en tiempo real. Su vista de tablero se divide en cuadros métricos y gráficos. En un panel, puede ver un gráfico sobre los 10 contenedores principales por consumo de CPU o los 10 contenedores principales por tráfico enviado y recibido, así como la cantidad de contenedores creados y la cantidad de hosts. La analítica avanzada es otra característica que hace que este sea un producto particularmente sólido. Su capacidad de análisis puede detectar automáticamente anomalías en su infraestructura de contenedores y, por lo tanto, automatizar el proceso de identificación de problemas de rendimiento.
Sumo Logic está disponible en tres planes diferentes. Existe el plan gratuito que está dirigido a personas y equipos que buscan probar Sumo Logic para proyectos más pequeños, por un período de tiempo ilimitado. El siguiente es el plan Professional a $ 90 / mes por 1GB de datos de registro diario promedio. Y en la parte superior, tiene el plan Enterprise con todas las funciones a $ 150 / mes por 1GB de datos de registro diarios promedio. Tenga en cuenta que hay una prueba de 30 días disponible en ambos planes pagos.
Terminando
La creación de contenedores puede ser algo difícil de conceptualizar. Sin embargo, podría ser la respuesta a sus requisitos de infraestructura para la entrega de servicios a dispositivos remotos. Esperamos haber podido arrojar algo de luz sobre este complicado tema. Si bien es posible que no lo hayamos convertido en expertos, nuestro objetivo era brindarle suficiente información básica para que pueda comprender mejor la tecnología a medida que comienza a explorarla.