Vorwort

Wenn du ein Buch über Netzwerkautomatisierung liest, bist du dir über die Vorteile der Automatisierung, die Kosten menschlicher Fehler und die Fähigkeit von Software, Routineaufgaben mit Genauigkeit, Sorgfalt, Vorsicht und Zuverlässigkeit auszuführen, im Klaren. Automatisierung kann dein Netzwerk stabiler und flüssiger machen, Ausfälle verhindern und die Auswirkungen von Netzwerkproblemen und die Zeit bis zur Lösung verringern.

In meiner Arbeit als Architekt und Programmierer der JUNOS-Benutzeroberfläche habe ich von Anfang an die Automatisierung gepredigt. Wir wussten, dass Automatisierung ein wichtiges Unterscheidungsmerkmal für unsere Kunden sein würde, und wollten Anwendungsprogrammierern die Möglichkeit geben, der Welt des "Screen Scraping" zu entkommen, bei der die auf Lesbarkeit und menschliche Verdauung ausgelegte Ausgabe der Befehlszeilenschnittstelle (CLI) mit regulären Ausdrücken gefiltert wird, um nützliche Informationen zu extrahieren - ein fehleranfälliger, anfälliger und schwer zu wartender Prozess. Wenn eine Änderung an der Befehlszeilenschnittstelle (CLI) vorgenommen wird, um ein neues Datenelement zur Ausgabe hinzuzufügen, oder das Format der Ausgabe geändert wird, kann ein regulärer Ausdruck fehlschlagen, was zu Fehlern führt, die nicht leicht zu erkennen sind.

Wir haben in JUNOS eine XML-basierte API eingebaut, die einen sofortigen Zugriff auf Datenelemente auf robuste, einfache und zukunftssichere Weise ermöglicht. XPath-Ausdrücke können bestimmte Datenwerte extrahieren und dabei neue Inhalte oder Änderungen in der Art und Weise, wie Werte organisiert sind, ignorieren. Komplexe Ausdrücke können präzise Werte finden, z. B. die Remote-Adresse jeder Punkt-zu-Punkt-Verbindung, die eine große MTU und hohe Fehlerraten hat.

Wir wussten auch, dass die Automatisierung von einem vollständigen Zugriff auf die Funktionen des Geräts abhängt. Wenn man mit einer API 80 % der benötigten Funktionen nutzen kann, aber für die restlichen 20 % auf "Screen Scraping" zurückgreifen muss, wird der Wert der API stark geschmälert. Indem wir die Befehlszeilenschnittstelle (CLI) direkt über die API-Infrastruktur legen, legen wir alle JUNOS-Konfigurations- und Betriebsausgaben vollständig offen, garantieren, dass jede Version von JUNOS mit gleichen Funktionen zwischen API und CLI ausgeliefert wird, und reduzieren unsere internen Kosten für die Wartung der API.

Als unsere Kunden unsere Geräte in der Praxis eingesetzt haben, haben wir eine große Vielfalt bei der Netzwerkautomatisierung festgestellt. Jeder Netzwerkbetreiber bewegt sich irgendwo im Automatisierungsspektrum, irgendwo zwischen einem Netzwerk mit manuell gewarteten Geräten und einem vollständig automatisierten Netzwerk. Einige haben sich vollständig der Automatisierung verschrieben, nutzen externe Datenbanken als "Datenbank der Aufzeichnungen" und haben Richtlinien erlassen, die besagen, dass die Änderung der Konfiguration von Netzwerkgeräten eine Straftat darstellt. Aber viele Netzwerke werden immer noch von Hand gewartet, wobei teure Personalressourcen eingesetzt werden, um Konfigurationsänderungen vorzunehmen und Netzwerkprobleme zu beheben.

Automatisierungsprojekte werden oft dort durchgeführt, wo der Nutzen am größten ist, vor allem in Situationen, in denen die Kosten eines Fehlers hoch sind, die Änderungsrate hoch ist, die Komplexität hoch ist oder die Anzahl der betroffenen Geräte groß ist. Solche Projekte sind in der Regel der Schlüssel, um den Wert der Automatisierung zu demonstrieren, und führen zu weiteren Automatisierungsprojekten. Die "Devops"- und "Netdevops"-Bewegungen verfolgen diesen Ansatz, indem sie mit den größten aktuellen Problemen beginnen, diese lösen und einen Zyklus aus Erkennen, Lösen und Testen aufbauen.

Rechenzentren haben viel getan, um die Automatisierung voranzutreiben, indem sie Tools zur Serverbereitstellung wie Puppet, Chef, Ansible und Salt einsetzen. Diese Tools machen die Bereitstellung von Servern nach Schema F trivial und ermöglichen gleichzeitig eine Anpassung auf einheitliche, vorhersehbare Weise. Vorbei sind die Zeiten, in denen ein fehlender Software-Patch zu einzigartigen, undurchsichtigen Fehlern führen konnte. Wenn Änderungen an deinen Servern einfach und sofort möglich sind, während Änderungen an deiner Netzwerkinfrastruktur von Hand vorgenommen werden, mit den damit verbundenen höheren Fehlerquoten und Verzögerungen, wird der Wert der Automatisierung deutlich.

In jüngerer Zeit hat die Datenmodellierungssprache YANG (die stark auf der Datenmodellierungssprache basiert, die wir für JUNOS entwickelt haben) die Erstellung von Datenmodellen für Netzwerke gefördert. Die IETF entwickelt YANG-Datenmodelle für viele Bereiche, zuletzt waren es über 160. Darüber hinaus entwickelt die OpenConfig-Gruppe Modelle, die auf die Bedürfnisse der Service-Provider-Community zugeschnitten sind. Die Unterstützung für die OpenConfig-Modelle wird bereits von Netzwerkgeräten unterstützt.

Natürlich kann man nicht von jedem Netzbetreiber erwarten, dass er mit dem Programmieren anfängt, aber wenn man versteht, was durch Automatisierung erreicht werden kann, kann man anfangen, "wie ein Programmierer zu denken", und so Szenarien erkennen, in denen Automatisierung erfolgreich eingesetzt werden kann. Vor allem Programmierer/innen verachten es, immer wieder dasselbe zu tun. Stattdessen schreiben wir Code und lassen den Computer die Arbeit für uns erledigen. "Faul wie ein Fuchs", nenne ich das.

In diesem Buch findest du die Konzepte und Werkzeuge, die du brauchst, um deine Fähigkeiten in der Automatisierung zu verbessern. Jonathan und Stacy sind Automationsveteranen, die sich in diesem Bereich bestens auskennen. Sie haben ihre Erfahrungen in diesem Buch zusammengefasst und helfen dir dabei, eine robuste Automatisierung in deinem Netzwerk aufzubauen.

Get Junos-Verwaltung automatisieren 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.