La ventana de mantenimiento del futuro: Automatizando el ciclo de vida de las Funciones de Red con metodologías DevOps

Picture of Alejandro García

Alejandro García

Product Tech Lead en Whitestack

Aumentar la eficiencia, reducir costos y mejorar la velocidad de entrega son indispensables para mantenerse competitivo. A medida que la infraestructura y las funciones de red se complican, las ventanas de mantenimiento tradicionales se vuelven opciones cada vez menos viables. La respuesta está en las metodologías DevOps, donde la automatización y la integración continua son fundamentales.

- TABLA DE CONTENIDOS

Kubernetes y las CNFs

Kubernetes se ha convertido en el estándar de facto para la orquestación de contenedores. Sus características permiten coordinar múltiples contenedores en una infraestructura distribuida a través de una plataforma robusta y escalable.

Componentes de un clúster de Kubernetes.

Algunos de los desafíos operativos que logra resolver Kubernetes son los siguientes:

  • Escalabilidad automática: La arquitectura de Kubernetes contempla la ejecución de cargas de trabajo en múltiples nodos. Esto permite agilizar el escalamiento horizontal de las aplicaciones, gestionando automáticamente la distribución de los contenedores.
  • Tolerancia a fallos de las aplicaciones: Kubernetes monitorea proactivamente sus cargas de trabajo y detecta cuando ocurre alguna falla. En caso de que esto suceda, Kubernetes redistribuye los contenedores a otros nodos, permitiendo mitigar los efectos de estos fallos.
  • Actualizaciones sin downtime: El modelo de despliegues sobre Kubernetes modela nativamente la implementación gradual de cambios. Esto permite desplegar nuevas versiones de aplicaciones sin tiempo de inactividad, coordinando de manera automatizada la gestión de tráfico entre nuevos y viejos contenedores.

    El gran éxito de Kubernetes ha llevado a las funciones de red a desplegarse con contenedores. Esta nueva generación de funciones de red, llamadas CNFs, representan un nuevo paradigma totalmente cloud-native para el despliegue, la gestión y la operación.

Conoce la solución ideal para tu empresa

El Operator Framework

El Operator Framework eleva la automatización provista por Kubernetes a un nuevo nivel. Los operadores son extensiones de Kubernetes que automatizan tareas específicas de gestión y configuración de aplicaciones. Esto incluye tanto actividades de día 1 (instalación y configuración de aplicaciones) como de día 2 (re-configuración, respaldos, escalamiento, gestión y otras). El objetivo final de un operador es encapsular el conocimiento operacional dentro del mismo cluster de Kubernetes.

Los operadores de Kubernetes operan mediante un lenguaje declarativo, donde se define el estado deseado de un sistema en lugar de instrucciones paso a paso. El operador compara continuamente estas configuraciones que definen el estado deseado con el estado real para buscar discrepancias. Cuando las detecta, ejecuta un proceso de reconciliación, tomando las acciones necesarias para alinear la realidad con lo especificado por el usuario. Como todo esto es automático, este enfoque garantiza que el sistema siempre se dirija hacia el estado definido, incluso frente a fallos inesperados.

Funcionamiento de un operador de Kubernetes.

Todos los componentes del Operator Framework son open source. Esto ha fomentado el desarrollo y la publicación de operadores de Kubernetes para diversas tareas y aplicaciones, como bases de datos, herramientas de monitoreo y hasta utilidades para la configuración de la infraestructura física.

GitOps y la Automatización

GitOps es una metodología que utiliza un repositorio Git como la única fuente de verdad para el estado deseado de la infraestructura y las aplicaciones. Al combinar GitOps con Kubernetes y los operadores, se logra un flujo de trabajo completamente automatizado, desde la liberación del código hasta el despliegue y la gestión en producción.

El flujo completo de trabajo es como el siguiente:

Flujo de trabajo con metodología GitOps sobre Kubernetes.
  1. Un usuario realiza un cambio de configuración en un repositorio Git. Este cambio puede implicar una actualización de versión, una nueva configuración de red, aumento de recursos o de réplicas de aplicación, o cualquier otra cosa que pueda representarse como una configuración en un archivo.
  2. Cuando el cambio es aprobado y mezclado, un operador de Kubernetes (que está constantemente monitoreando el estado del repositorio) lo detecta, lo descarga y lo analiza.
  3. El operador identifica qué cambios realizó el usuario, y los aplica sobre el cluster de Kubernetes, siguiendo su modelo de despliegues en base a actualizaciones graduales.

La automatización del ciclo de vida de las CNFs a través de GitOps trae consigo numerosos beneficios:

  • Mayor eficiencia operativa: La automatización reduce la necesidad de intervención manual, liberando recursos y minimizando errores humanos.
  • Reducción del tiempo de inactividad: Las actualizaciones y el mantenimiento de las CNFs se pueden realizar de forma continua, sin interrupciones significativas.
  • Mayor agilidad y flexibilidad: Los cambios se pueden implementar rápidamente, permitiendo una respuesta más ágil a las necesidades del negocio.

Complementos a GitOps sobre Kubernetes

Si bien GitOps y Kubernetes ofrecen un marco robusto para la automatización y gestión del ciclo de vida de las funciones de red, existen otras prácticas y metodologías DevOps que pueden emplearse de manera complementaria. Estas alternativas pueden ser más adecuadas dependiendo de los requisitos específicos de cada entorno y organización.

  • Infraestructura como código (IaC): Muchas funciones de red aún son implementadas como máquinas virtuales en plataformas cloud (como OpenStack). El enfoque de IaC permite definir y provisionar la infraestructura virtual de esas funciones de red usando código declarativo. Esto facilita la creación, modificación y destrucción de entornos de manera consistente y repetible. Además, permite adoptar todas las ventajas de emplear código (como el versionamiento).
  • Automatización de la configuración: Las plataformas de automatización de configuración permiten gestionar y configurar equipos (servidores, dispositivos de red, máquinas virtuales y aplicaciones) de manera centralizada y remota. Para ello, las tareas de configuración se definen programáticamente, habilitando la estandarización y automatización, aún con múltiples servidores.
  • Pipelines de integración y entrega continua (CI/CD): Estos pipelines automatizan la construcción, prueba y despliegue de aplicaciones, buscando habilitar un flujo de trabajo continuo y confiable. Las plataformas que implementan estos pipelines típicamente se logran integrar con las herramientas de infraestructura como código y automatización de la configuración, para proveer un punto único de gestión de todas estas actividades.

La automatización y las metodologías DevOps están definiendo el futuro de las operaciones, tanto para aplicaciones masivas en general como para funciones de red en particular. Al adoptar la filosofía GitOps, la máxima exponente del movimiento DevOps hoy en día, las organizaciones pueden transformar la gestión de sus CNFs a un modelo con mayor eficiencia, agilidad y confiabilidad operativa. El resultado son redes más competitivas y resilientes, capaces de adaptarse a las demandas actuales con una velocidad sin precedentes.

Acerca de nosotros

Whitestack es una empresa líder en el despliegue productivo de soluciones basadas en tecnologías y código abierto, con un fuerte foco en la industria de telecomunicaciones. 

¡Contáctanos para conocer más!