La automatización de redes, como la mayoría de los tipos de automatización, es pensada o considerada como una manera de “hacer las cosas más rápido”.
Mientras que hacer las cosas más rápido es bueno, reducir el tiempo de las implementaciones y los cambios de configuración, no siempre representan un problema prioritario ni que debe resolverse.
Incluyendo la rapidez, analizaremos algunas de las razones por las que las organizaciones de todas las formas y tamaños deben gradualmente adoptar la automatización en el contexto de las redes.
Arquitecturas simplificadas
Hoy en día, la mayoría de los dispositivos de red están configurados de manera única o diferente, con configuraciones no estándares. Por lo tanto, los ingenieros de redes deben resolver problemas tanto de protocolos como de aplicaciones.
Estos cambios “únicos” en la red hacen que la misma no solo sea más difícil de mantener y administrar, sino también más difícil de automatizar.
En vez de tratar la Automatización como un proyecto secundario, es necesario que ésta sea considerada en el mismo momento que las redes diseñan o implementan. Esto incluye asegurarse, al momento de adquirir tecnologías y servicios, de que los mismos cuentan con las facilidades de Programabilidad y Automatización.
Algunas preguntas que deben hacerse son, por ejemplo:
¿Qué features son comunes a todas las plataformas por adquirir?
¿Qué tipo de API o herramientas de automatización funcionan en la arquitectura?
¿Hay documentación sólida de la API?
¿Qué librarías o bibliotecas existen para un producto dado?
¿Qué conocimientos tiene el fabricante y el proveedor de servicios?
Cuando estas preguntas se responden en el proceso de diseño, la arquitectura resultante se vuelve más simple, repetible y más fácil de mantener y automatizar.
Resultado determinístico
En las empresas consideradas Large Enterprise y Services Providers, cada vez que debe hacerse un cambio en la arquitectura de red se realizan -o deberían realizarse- reuniones de planeamiento para analizar el impacto de los cambios y las estrategias de Rollback (vuelta atrás). El impacto de escribir mal un comando de configuración resulta catastrófico para la continuidad de los servicios que se brindan a través o sobre la arquitectura de red.
Imaginemos 3, 5 o 30 ingenieros en una “ventana de mantenimiento”, operando en la línea de comandos de cada dispositivo, o aun a través de una interfaz gráfica. La probabilidad de cometer errores es muy alta y lo que es peor: no hay forma de garantizar que en intentos posteriores no se cometa el mismo error. Esta metodología, respecto de la probabilidad de cometer errores, tiene un resultado aleatorio.
La Programabilidad y Automatización es una metodología que, debido a etapas de testing y corrección antes de aplicar, convierten la tarea anterior en una de resultado determinístico. Esto garantiza que un error no se cometa dos veces.
El resultado determinístico asociado a la Programabilidad y Automatización es una característica aún más importante que la rapidez.
Business Agility
Desde la aparición y adopción de lo que conocemos como “Server Virtualization”, los ingenieros o administradores tienen la capacidad de implementar nuevas aplicaciones casi instantáneamente. Y cuanto más rápido y seguro se implementan nuevas aplicaciones, más aparecen las dudas y consultas acerca de por qué se demora tanto tiempo en configurar los recursos de red tales como VLANs, routers, firewalls, políticas, etc. Queda claro entonces como la Automatización de las redes permite actuar de forma rápida y segura, en sintonía con la automatización de aplicaciones para agilizar la entrega de servicios.
Tipos de Automatización aplicados en el contexto de las redes
Como he mencionado anteriormente, algunos administradores asocian o igualan la automatización con la velocidad de implementación. Por este motivo, es que se entienden el por qué no se aprecia aún el valor de la automatización de las redes. A continuación, explicaré distintos tipos de automatización que permiten tener una visión más completa de la misma:
Device Provisioning
Si bien esta expresión es utilizada de manera amplia, se define como Provisioning a la tarea de crear archivos de configuración, llamados config-file, para diferentes dispositivos y a la posterior instalación (pushing) en los dispositivos. Como existen diferentes formatos o estructura de config-files, según dispositivo y fabricante, es necesario separar el contenido de la estructura. Esto se logra combinando técnicas de creación de templates y de generación de contenido (modelo de datos).
Provisioning permite, por ejemplo, generar de forma rápida y segura decenas o cientos de config-files y la instalación de estos en los dispositivos.
Data Collection
La forma tradicional y más conocida de obtener información de funcionamiento de los dispositivos de red es a través de un protocolo llamado SNMP (Simple Network Management Protocol). Las técnicas actuales de programabilidad y automatización (APIs, Templates, etc.) permiten no solo obtener la misma información que obtiene SNMP, sino también, por ejemplo, ver cómo está escrita la sección OSPF de un config-file determinado. Data Collection es clave para extraer cualquier tipo de información de forma estructurada de los dispositivos de red para su análisis posterior.
Migrations
La migración de una plataforma a otra nunca es una tarea simple. Mucho menos si se trata de una migración entre distintos fabricantes. La creación de scripts y templates permiten tener una plataforma de migración independiente de modelos y fabricantes.
Compliance & validations
Configurations compliance y configurations validations es una de las tareas más importantes que se realizan durante la automatización. Se trata de realizar Data Collections en los dispositivos de networking y luego verificar si la configuración de los mismos está de acuerdo a reglas de control. Las Vlans creadas, direcciones IP, protocolos de routing, adyacencias son solo algunas de las verificaciones que se pueden hacer sobre la información colectada de un equipo de red en producción.
Configuration Management
Es la forma más común y conocida de automatización. Configuration Management se refiere a la tarea de preparación y cambios de configuración en los dispositivos de red. Desde la creación o modificación de Vlans hasta la configuración de una VPN, pasando por el más complejo esquema de ruteo, forman parta de las tareas que se realizan durante este tipo de automatización.
Configuration Management y Compliance & Validation son etapas estrictamente relacionadas durante el proceso de automatización, dado que, por lo general, luego de validar, es necesario cambiar configuraciones.
Reporting
Todas las etapas anteriores requieren que se documenten debidamente y al mismo tiempo que el proceso de automatización se ejecuta y evoluciona, la documentación se mantenga actualizada. Construir y mantener documentación de manera manual, aunque con menos riesgo, son tareas que tienen el mismo defecto que la configuración manual de dispositivos de red. Es decir, son altamente sensibles a los errores.
Como se puede observar, automatizar en el contexto de las redes, significa mucho más que simplemente hacer cambios de configuración de manera rápida. Automatización es una metodología formada por conocimiento y herramientas que permite satisfacer la demanda creciente en el contexto de networking: las redes no se configuran, se programan.