Andrey Kuzmin - Fotolia
Wie Sie die Grundlagen der Netzwerkautomatisierung erlernen
Netzwerkprofis müssen mit der neuesten Technologie Schritt halten. Heute bedeutet das: Kenntnisse in Netzwerkautomatisierung. Wir zeigen, welche Fähigkeiten Sie mitbringen müssen.
Automatisierung ändert die Art von Grund auf, wie wir Netzwerke konfigurieren und verwalten. Die zunehmende Verflechtung zwischen Networking und Automation erfordert, dass wir uns neue Automatisierungskenntnisse aneignen, um in der neuen Networking-Ära effizient arbeiten zu können.
Grundlagen der Netzwerkautomatisierung: Diese Fähigkeiten benötigen Sie
Es gibt ein breites Spektrum an Fähigkeiten im Zusammenhang mit Netzwerkautomatisierung. Soft Skills erfordern keine Programmierkenntnisse, während andere Fähigkeiten ein grundlegendes Verständnis der Softwareterminologie voraussetzen. Fortgeschrittene Fähigkeiten umfassen hingegen Methodologien der Programmierung und Softwareentwicklung. Wo Sie starten, hängt von Ihrem aktuellen Kenntnisstand ab. Wie wir sehen werden, können Sie bereits sehr viel erreichen, ohne Programmieren lernen zu müssen.
Soft Skills
Beginnen wir mit Fähigkeiten, für die keine Kenntnisse aus der Softwareentwicklung notwendig sind. Das dürfte die Ausgangsbasis für die meisten aus dem Networking-Bereich sein.
Als Erstes gilt es, einen anderen Denkansatz zu wählen. Ändern Sie Ihre Denkweise in Bezug auf Konfiguration, Monitoring und Troubleshooting von Netzwerken. Überlegen Sie, wie Sie Automation für manuelle Prozesse nutzen können, auch wenn der manuelle Prozess kurzfristig gesehen effizienter ist. Gibt es im manuellen Prozess Schritte, die sehr viel Zeit kosten und sich automatisieren lassen könnten? Sie müssen dabei nicht gleich die komplette Aufgabe in Angriff nehmen. Hervorragende Ergebnisse lassen sich durchaus erzielen, wenn Sie lediglich einen aufwendigen oder fehleranfälligen Teil eines Prozesses automatisieren.
Zum neuen Denkansatz gehört es auch, zu akzeptieren, dass für die Einführung von Automation ein gewisser Zeitaufwand nötig ist, um neue Methoden zu erlernen. Das kann für Organisationen schwierig sein, die immer nur auf den Krisenfall des Tages reagieren. Fortschritte lassen sich schon mit einer Stunde pro Tag erreichen.
Eignen Sie sich Fähigkeiten an, um Prozesse für häufige Aufgaben zu entwickeln. Dokumentieren Sie diese Prozesse, und identifizieren Sie Aufgaben innerhalb des Gesamtprozesses, die sich am besten zur Automatisierung eignen. Führen Sie außerdem eine nachträgliche Analyse von Netzwerkproblemen durch, um festzustellen, welche Informationen erfasst werden müssen, damit sich die Ursache des Problems korrekt ermitteln lässt. Lassen sich einige oder alle Informationen mit Automation erfassen?
Zu wissen, welche Informationen man sammeln und welche Analyse man durchführen muss, ist bereits sehr nützlich, um den Zeitaufwand für die Ursachenforschung zu reduzieren. Das gilt selbst dann, wenn weiterhin manuelle Methoden zum Einsatz kommen.
Eignen Sie sich Fähigkeiten rund um vorhandene Tools an. Lernen Sie, wie Sie die Funktionen für Konfigurationsvalidierung und Konfigurations-Updates der vorhandenen Tools Ihres Netzwerkmanagementsystems nutzen. Netzwerkfachleute können dank dieser Tools ihre Automatisierungsziele häufig auch ohne Programmierkenntnisse erreichen.
Erstellen Sie ein NSoT-Repository (Network Source of Truth). Eine Source of Truth ermöglicht es Ihnen, den Betriebszustand des Netzwerks zu überprüfen, ohne sich dabei auf dessen Konfigurationen zu verlassen. Denn diese können bei Ausfällen und Ad-hoc-Änderungen variieren. Identifizieren Sie die kritischen Infrastrukturverbindungen auf jedem Netzwerkgerät, und dokumentieren Sie sie. Dokumentieren Sie auch die Verbindungen zu wichtigen Servern und deren Services. Die Source of Truth sollte es Ihnen erlauben, Dinge wie fehlkonfigurierte Port-Kanäle oder eine nicht ordnungsgemäße Verkabelung zu identifizieren, ganz gleich, ob es sich um einen manuellen oder automatisierten Verifizierungsprozess handelt.
Scripting
Sie werden häufig erleben, dass sich auch ohne Programmierung nützliche Automatisierungssysteme erstellen lassen. Einige Tools (zum Beispiel Gluware) verfügen über eine Benutzeroberfläche, mit der Sie Netzwerkkonfigurationen automatisieren können. Ein Programm müssen Sie dafür nicht schreiben. Ebenso bieten Netzwerkausrüster oder deren Partner Produkte und Tools an, um die Konfiguration ihres Equipments zu vereinfachen und zu automatisieren.
Der nächste Lernschritt ist ein skriptbasiertes System wie Ansible. Dessen Steuerungssprache ähnelt eher einer Syntax zur Netzwerkkonfiguration als einer Programmiersprache. Sie werden sehen, dass es sehr leicht ist, mit Ansible einfache Dinge zu erledigen. Zudem lässt sich dessen Konfiguration ohne große Mühe erstellen. Das Tool bietet eine Vielzahl hilfreicher Funktionen:
-
Ausführen von Befehlen und Erfassen der Ausgabe in Dateien (was sich hervorragend für das Troubleshooting eignet).
-
Validieren des Netzwerkbetriebs (geprüft anhand einer Source of Truth).
-
Erstellen von Konfigurationen basierend auf Templates (durch Hinzufügen von Jinja2-Variablen).
-
Laden von Konfigurationen auf Netzwerkgeräte.
Nun, da Sie eine Dokumentation (Source of Truth) und Skripte erstellen, sollten Sie lernen, wie Sie ein webbasiertes Quellcode-Repository wie Git nutzen (GitHub, GitLab oder ein gleichwertiges zentrales Repository, wo Entwickler Quellcode speichern, ihn gemeinsam testen und verbessern können). Sie wollen bestimmt niemals die Situation erleben, dass Ihr neuestes funktionierendes Script mit einer aktuelleren, aber fehlerbehafteten Version überschrieben wurde.
Verständnis von Softwarekonzepten und Softwareentwicklung
Sie sollten mit simplen Dingen anfangen und mit zunehmendem Lernerfolg komplexere Aufgaben in Angriff nehmen.
Ein grundlegendes Verständnis von Software wird bei Gesprächen mit Softwareentwicklern nützlich sein, auch wenn Sie selbst keine Software schreiben. Sie sollten grundlegende Konzepte und Terminologie lernen. Wenn Sie noch nie eine Software programmiert haben, schauen Sie einmal bei Hour of Code vorbei. Lesen Sie Grundlagenartikel, und nehmen Sie an einem kostenlosen Online-Programmierkurs teil, der Ihnen die Basis verschafft, um die Konzepte der Softwareentwicklung zu lernen. Sie sollten Begriffe verstehen wie Refactoring, idempotent, Iteration, Schleifen, Bedingte Anweisungen, Listen und Wörterbücher.
Wenn Sie Fortschritte machen, lernen Sie die Grundlagen der Softwareentwicklung, etwa Algorithmen, Datenstrukturen, Datenmodelle und Abstraktion. Insbesondere das Konzept der Abstraktion ist wichtig, denn genau so ist Software aufgebaut. Beachten Sie, dass wir mit der Abstraktion von Gerätemodellen Netzwerkautomation nutzen können, um Geräte von verschiedenen Anbietern zu steuern und zu kontrollieren (siehe auch das Video am Ende des Textes).
Wie sieht nun der nächste Schritt aus, um die Grundlagen der Netzwerkautomatisierung zu erlernen? Hierbei geht es um die Entwicklung von Software. Python ist zur wichtigsten Sprache für Netzwerkautomatisierung geworden.
Daher ist es sinnvoll, sich auf sie zu konzentrieren. Es gibt zahlreiche Quellen, um Python zu lernen. Viele von ihnen stehen kostenlos oder gegen geringes Entgelt zur Verfügung. Eine Lernmethode nennt sich Pair Programming. Bei dieser auch als Paar- oder Tandemprogrammierung bezeichneten Technik arbeiten zwei Programmierer zusammen, um Software zu entwickeln. In diesem Fall würde jemand aus dem Netzwerkteam und jemand aus dem Entwicklungsbereich ein Zweierteam bilden, sodass Ersterer sich Softwarekenntnisse und Letzterer sich Networking-Kenntnisse aneignet.
Wie lässt sich die Qualität des geschriebenen Codes überprüfen? Durch automatisiertes Testing. Neue Entwickler machen schnell einmal Fehler, die nur schwer zu diagnostizieren sind. Automatisiertes Testing ist eine Methodologie der Softwareentwicklung, bei der Tests zusammen mit der Software erstellt werden.
Mit automatisiertem Testing ist es dann nur noch ein Schritt hin zu Continuous Integration (CI) und Continuous Delivery (CD). CI/CD führt umfassende Tests durch, wenn neuer Code oder neue Netzwerkkonfigurationen in das Softwarecode-Repository eingebucht werden. Bei Bestehen aller Tests ist der aktualisierte Code bereit für die Installation. Das geschieht entweder manuell oder automatisch, je nachdem, welches Verfahren die Organisation festgelegt hat.
Es ist ein Klischee, aber Networking ist ein Paradebeispiel dafür, dass lebenslanges Lernen unerlässlich ist und man sich dem Wandel anpassen muss. Networking begann mit einfachen seriellen Schnittstellen, häufig über private Fernverbindungen.
Als Nächstes kam Local Area Networking (LAN). Wir mussten den Umgang mit einer neuen Technologie namens Ethernet lernen. Dann bot LAN-Switching neue Möglichkeiten, führte aber zu zusätzlicher Komplexität. Die WAN-Technologie wandelte sich von dedizierten Links über Frame Relay und schließlich zu MPLS. Mittlerweile ist SD-WAN aktuell. TCP/IP wurde zum wichtigsten Networking-Standard, mit Open Shortest Path First (OSPF), Intermediate System to Intermediate System (IS-IS) und dem Border Gateway Protocol (BGP) als vorherrschende Routing-Protokolle. Die Einschränkungen von Spanning Tree haben zu Problemen geführt, so dass wir uns erneut anpassen müssen.
Jede dieser Änderungen hat uns dazu gezwungen, neue Technologien zu erlernen. Nicht anders verhält es sich mit Automation. Die Grundlagen der Netzwerkautomatisierung zu lernen, ist lediglich der bislang letzte Schritt in einem kontinuierlichen Prozess, den jeder Netzwerkprofi durchläuft.
Es gibt ein breites Spektrum an Automationstechnologien, sodass wir mit den einfachen Dingen beginnen und uns dann komplexeren Aufgaben widmen können, genauso wie wir es bereits in der Vergangenheit gemacht haben.
Das ideale Szenario für die Einführung von Netzwerkautomatisierung ist die unternehmensweite Zusammenarbeit. Nutzen Sie Pair-Programming-Techniken, regelmäßige Trainings und selbst Was-habe-ich-gelernt-Runden, um Tipps zu teilen und voneinander zu lernen. Machen Sie sich keine Sorgen, wenn Sie nicht das gesamte Team ins Boot holen können. Auch eine einzelne Person kann eine positive Wirkung haben, indem sie einfache Dinge automatisiert, bei denen nicht die Gefahr besteht, die Netzwerkkonfiguration zu ändern.
Seien Sie kein Netzwerkdinosaurier. Sie müssen sich dem neuen Umfeld der Netzwerktechnologie anpassen.