Prólogo
Como persona que lee un libro sobre automatización de redes, eres claramente consciente de las ventajas de la automatización, del coste de los errores humanos y de la capacidad del software para realizar tareas rutinarias con precisión, diligencia, precaución y fiabilidad. La automatización puede añadir solidez y fluidez a tu red, evitar interrupciones y disminuir el impacto de los problemas de red y el tiempo medio hasta su resolución.
En mi trabajo como arquitecto y programador de la interfaz de usuario JUNOS, he predicado la automatización desde los primeros días. Sabíamos que la automatización sería un elemento diferenciador clave para nuestros clientes y queríamos permitir a los programadores de aplicaciones escapar del mundo del "screen scraping", en el que la salida de la interfaz de línea de comandos (CLI) diseñada para su legibilidad y digestión humana se filtra mediante expresiones regulares para extraer información útil, un proceso propenso a errores, frágil y difícil de mantener. Si se realiza un cambio en la CLI para añadir un nuevo elemento de datos a la salida o se cambia el formato de la salida, una expresión regular puede no coincidir correctamente, dando lugar a errores que no pueden detectarse fácilmente.
Incorporamos a JUNOS una API basada en XML que permitiera el acceso inmediato a los elementos de datos de una forma robusta, sencilla y preparada para el futuro. Las expresiones XPath pueden extraer valores de datos concretos ignorando nuevos contenidos o cambios en la forma de organizar los valores. Las expresiones complejas pueden encontrar valores precisos, como la dirección remota de cada enlace punto a punto que tenga una MTU grande y altas tasas de error.
También sabíamos que la automatización dependía del acceso completo a las capacidades del dispositivo. Si una API te permite hacer el 80% de lo que necesitas, pero tienes que recurrir al "screen scraping" para el 20% restante, el valor de la API disminuye enormemente. Al estratificar la CLI directamente sobre la infraestructura de la API, exponemos completamente todos los resultados operativos y de configuración de JUNOS, garantizamos que cada versión de JUNOS se distribuye con paridad de funciones entre la API y la CLI, y reducimos nuestro coste interno de mantenimiento de la API.
A medida que los clientes han ido implementando nuestros dispositivos en el mundo real, hemos visto una gran variedad en términos de automatización de la red. Cada operador de red se encuentra en algún punto del espectro de la automatización, entre una red de dispositivos mantenidos a mano y una red totalmente automatizada. Algunos se han comprometido completamente con la automatización, utilizando bases de datos externas como "base de datos de registro", promulgando políticas que establecen que cambiar la configuración de los dispositivos de red es un delito de despido. Pero muchas redes todavía se mantienen a mano, utilizando costosos recursos humanos para realizar cambios de configuración y depurar problemas de red.
Los esfuerzos de automatización suelen centrarse allí donde los beneficios son importantes, principalmente en situaciones en las que el coste del fallo es alto, el ritmo de cambio es elevado, la complejidad es alta o el número de dispositivos afectados es grande. Estos proyectos suelen ser clave para demostrar el valor de la automatización, y conducen a otros proyectos de automatización. Los movimientos "devops" y "netdevops" adoptan este enfoque, empezando por los mayores problemas actuales, resolviéndolos, y construyendo un ciclo identificar-resolver-probar.
Los centros de datos han hecho mucho por impulsar la automatización, utilizando herramientas de implementación de servidores como Puppet, Chef, Ansible y Salt. Estas herramientas convierten en trivial la implementación de servidores estereotipados, al tiempo que permiten la personalización de forma uniforme y predecible. Se acabaron los días en que un parche de software que faltaba podía provocar fallos únicos y oscuros. Cuando los cambios en tus servidores son sencillos e inmediatos, mientras que los cambios en tu infraestructura de red se hacen a mano, con las mayores tasas de error y retrasos asociados, el valor de la automatización se hace evidente.
Más recientemente, el lenguaje de modelado de datos YANG (basado en gran medida en el lenguaje de modelado de datos que creamos para JUNOS) ha fomentado la creación de modelos de datos para redes. El IETF está desarrollando modelos de datos YANG para muchas áreas, más de 160 según el último recuento. Además, el grupo OpenConfig está construyendo modelos centrados en las necesidades de la comunidad de proveedores de servicios. Los dispositivos de red ya soportan los modelos OpenConfig.
Evidentemente, no es razonable esperar que todos los operadores de red se pongan a programar, pero comprendiendo lo que puede hacerse mediante la automatización, la gente puede empezar a "pensar como un programador", lo que permite identificar los escenarios en los que la automatización puede aplicarse con éxito. En particular, a los programadores nos disgusta hacer lo mismo una y otra vez. En lugar de eso, escribimos código y dejamos que el ordenador haga el trabajo por nosotros. "Perezoso como un zorro", lo llamo yo.
En este libro encontrarás los conceptos y herramientas necesarios para ayudarte a avanzar en tus habilidades de automatización. Jonathan y Stacy son veteranos de la automatización con profundos conocimientos en este campo, y han hecho un trabajo fantástico al plasmar su experiencia en estas páginas, ayudándote a construir una automatización sólida en tu red.
Get Automatizar la administración de Junos now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.