Barbara, el Kubernetes del Edge

24 de junio de 2022, by Jaime Vélez

A medida que crece la tendencia del microservicio, se extiende el uso de contenedores. Para escalar su despliegue, es necesario orquestar todo el proceso y es aquí donde surge Kubernetes, herramienta de moda entre DevOps y referente en el mundo cloud de los últimos años.

La evolución de las aplicaciones: de sistemas monolíticos a microservicios

Hasta ahora, las empresas habían construido sus aplicaciones, unas sobre otras, en sistemas monolíticos en función de sus nuevas necesidades de negocio, que desplegaban on-premise o en los últimos años, en el Cloud. La definición clásica de una aplicación monolítica se refiere a un conjunto de componentes acoplados totalmente y que tienen que ser desarrollados, desplegados y gestionados como una única entidad. Prácticamente encajonados en un mismo proceso muy difícil de escalar, siendo la única manera de hacerlo: verticalmente añadiendo más CPU (memoria). 

En contraposición, ha surgido en los últimos tiempos el concepto de microservicios que permite el encapsulamiento en contenedores de varias pequeñas aplicaciones que pueden comunicarse entre sí para ofrecer una funcionalidad conjunta.

A día de hoy todo parece ir encaminado a la dockerización, como popularmente se refiere al hecho de empaquetar una aplicación software para ser distribuida y ejecutada mediante el uso de contenedores.

Con este nuevo sistema, no es necesario modificar todo a la vez, ya que podemos actualizar cada uno de estos contenedores por separado y reemplazarlos ‘en caliente’ en el entorno de producción, con las ventajas que esto supone a la hora de escalar.

Al crecer el número de microservicios en nuestro sistema de forma exponencial, se complica su gestión, ya que necesitamos un sistema de coordinación para el despliegue, la supervisión, el reemplazo, el escalado automático y, en definitiva, la administración de los distintos servicios que componen nuestra arquitectura distribuida.

Para resolver este reto Google presentó en 2014 Kubernetes, que se ha convertido de facto en el estándar para implementar y desplegar aplicaciones distribuidas.

¿Qué es Kubernetes y cómo funciona?

Kubernetes es un software de código abierto que sirve para implementar y administrar contenedores a gran escala. Kubernetes facilita la automatización y la configuración declarativa y nos ayuda a decidir en qué nodo se ejecutará cada contenedor, en función de los recursos necesarios y otras restricciones. Además, podemos mezclar cargas de trabajo críticas y best-effort con el objetivo de potenciar el ahorro de recursos, despliegues y rollbacks automáticos.

Kubernetes se basa en la experiencia de Google corriendo aplicaciones en producción a gran escala durante más de una década, junto a las mejores ideas y prácticas de la comunidad.

Kubernetes orquesta la infraestructura de cómputo, redes y almacenamiento para que las cargas de trabajo de los usuarios no tengan que hacerlo. Esto ofrece la simplicidad de las Plataformas como Servicio (PaaS) con la flexibilidad de la Infraestructura como Servicio (IaaS) y permite la portabilidad entre proveedores de infraestructura.

Cómo funciona Kubernetes

A medida que las aplicaciones crecen para abarcar varios contenedores implementados en varios servidores, administrarlas se hace también cada vez más complejo. Para controlar esta complejidad, Kubernetes proporciona una API de código abierto que controla la forma y el lugar donde se ejecutan esos contenedores.

Kubernetes organiza los clústeres de máquinas virtuales y programa los contenedores para que se ejecuten en esas máquinas en función de los recursos de proceso disponibles y de los requisitos de recursos de cada contenedor. Los contenedores se agrupan en pods (la unidad operativa básica de Kubernetes) que se pueden escalar hasta el estado deseado.

Kubernetes también administra automáticamente la detección de servicios, incorporando equilibrio de carga y realiza un seguimiento de la asignación de recursos y los escala en función del uso de la capacidad de proceso. Además, comprueba el estado de los recursos individuales y permite que las aplicaciones se recuperen automáticamente reiniciando o replicando los contenedores.

Edge Computing, Inteligencia Artificial y aplicaciones

El Edge Computing es un modelo de computación que consiste en procesar datos en los extremos de la red. Es decir, en nodos mucho más cercanos a donde se capturan los datos.

Este modelo unido a la Inteligencia Artificial está en plena expansión en los sectores industriales y ya es considerada cómo una de las tendencias tecnológicas con más impulso de este 2022 como parte de las estrategias de digitalización industrial: la Inteligencia Artificial en el Edge (lo que se conoce como Edge AI). Esta tecnología se enfoca en el despliegue de algoritmos cerca de donde se originan los propios datos que estos mismos utilizan para sus cálculos. Para ello se utilizan nodos Edge que se sitúan y conectan localmente a las propias fuentes de datos. 

Sectores como el de la Distribución Eléctrica o la Industria del Agua se encuentran inmersos en procesos de transformación digital de gran parte de su negocio y el Edge AI es un habilitador para que estos procesos puedan llevarse a cabo. Es en estos entornos donde, para el desarrollo y despliegue de los algoritmos de explotación de datos, el uso de contenedores se ha ido extendiendo cada vez más. 

Sin embargo, trabajar con contenedores en entornos distribuidos y muchas veces remotos como proponen los modelos de Edge Computing o Edge AI, requiere tener una herramienta que permita el control de todo el ciclo de vida de los nodos Edge y de la inteligencia que corre en ellos.

Barbara como plataforma orquestadora de aplicaciones en el Edge

A medida que las aplicaciones contenerizadas y la computación se extienden hacia el Edge, surge la misma necesidad de gestión para el escalado que resuelve Kubernetes en la nube. Las distribuciones ligeras de Kubernetes son requeridas ahora en la computación Edge, ya que cada vez más organizaciones empujan las cargas de trabajo más cerca de los datos que generan las aplicaciones y los dispositivos. 

Barbara, la plataforma edge industrial cibersegura, permite a las organizaciones ejecutar contenedores en el Edge para maximizar los recursos y facilitar las pruebas, además de ofrecer la posibilidad de que los equipos de DevOps se muevan con mayor rapidez y eficacia.

Muy enfocada en lo que las organizaciones necesitan saber desde una perspectiva de plataforma, red e infraestructura, Barbara se posiciona cómo referente de la orquestación de aplicaciones en el Edge. 

Barbara Edge es capaz de orquestar contenedores en múltiples hosts, hacer un mejor uso del hardware para maximizar los recursos necesarios para ejecutar las aplicaciones empresariales y controlar y automatizar las implementaciones y actualizaciones de las aplicaciones.

Cómo trabajar con Barbara en entornos distribuidos como el Edge

Para agilizar el trabajo de despliegue y ejecución de aplicaciones en el Edge a gran escala, es fundamental tener una herramienta como Barbara que permita realizar, de forma segura, al menos las siguientes acciones:

  • Desplegar todos los contenedores necesarios en uno o múltiples nodos Edge a la vez
  • Orquestar la ejecución concurrente de todos los algoritmos y otras aplicaciones que corren en esos dispositivos
  • Conocer lo que ocurre durante todo el proceso, mediante pantallas de visualización de logs mediante gráficos de telemetría y pantallas de visualización de logs
  • Actualizar el firmware y software de sistema de los nodos Edge para mantenerse protegido contra vulnerabilidades de ciberseguridad

Con la plataforma Barbara las compañías pueden gobernar de manera cibersegura toda la inteligencia distribuida en nodos Edge, facilitando las labores de despliegue, depuración y actualización de las aplicaciones que los equipos de Data Scientists hayan desarrollado.

Barbara OS

¿Por qué usar Barbara?

Mantener en funcionamiento las aplicaciones en contenedores puede ser complejo, porque suelen incluir muchos contenedores implementados en diferentes máquinas. Barbara permite impulsar esos contenedores al estado deseado y administrar sus ciclos de vida de forma portátil, escalable y extensible.

Además Barbara permite agregar el control total del desarrollo, las operaciones y la seguridad lo que permite implementar las actualizaciones con más rapidez, sin comprometer la seguridad ni la confiabilidad, y ahorrar tiempo en la administración de la infraestructura, lo que es igual a ahorro de costes.

La plataforma Barbara está concebida para facilitar la gestión de grandes parques de nodos Edge distribuidos. 

Si estás trabajando en el despliegue de aplicaciones en el Edge en entornos industriales y quieres que te enseñemos cómo nuestra plataforma puede ayudarte en el proceso, no dudes en solicitarnos una demo.

Habla con nuestros expertos si quieres que estudiemos tu caso de uso