Schwerpunkte

Netzwerkmanagement

Fünf Tipps für die Automatisierung

12. Februar 2020, 10:04 Uhr   |  Autor: Pete Lumbis / Redaktion: Sabine Narloch | Kommentar(e)

Fünf Tipps für die Automatisierung
© RAJESH RAJENDRAN NAIR - 123RF

Ein Klick und die Automatisierung eines Netzwerks ist erledigt? So leicht ist es leider nicht. Pete Lumbis von Cumulus Networks weiß aber einige Tipps, die bei einem solchen Vorhaben helfen können.

Ziel der Automatisierung von Prozessen und Systemen ist es, das Leben für alle Beteiligten zu vereinfachen und dadurch Ressourcen für produktivere Aufgaben zu schaffen. Doch der Weg zu einer erfolgreichen Automatisierung kann eine Herausforderung sein. Mit einem Klick ist die Sache eben nicht getan. Im Gegenteil eine  Netzwerkautomatisierung muss gut durchdacht sein und einer klaren Strategie folgen.

Eine Einheitslösung oder „Best Practices“, die für jede Situation gelten, sucht man jedoch vergeblich. Dafür gibt es aber durchaus gängige Tipps und Tricks, um Klarheit über Automatisierungsentscheidungen zu erhalten und Reibungsverluste zu reduzieren, welche die Einführung der Netzwerkautomatisierung behindern können.

  1. Die Wahl zwischen Flexibilität und Einfachheit
    Bei der Netzwerkautomatisierung sollte das Netzwerk in einem ersten Schritt als Code behandelt werden. Denn es handelt sich im Wesentlichen um die Programmierung eines Netzwerks und wenn es um Programmierung geht, gibt es mehrere Möglichkeiten, das gleiche Ziel zu erreichen.
    Zuerst sollte man sich die Begriffe Flexibilität und Einfachheit an entgegengesetzten Enden einer Skala vorstellen. Am Punkt Einfachheit kann eine Aufgabe schnell und einfach, aber nicht sehr skalierbar automatisiert werden. Am flexiblen Ende der Skala lässt sich eine Aufgabe auf eine Art und Weise automatisieren, die anfangs schwierig ist und viel sorgfältiges Nachdenken und Testen erfordert, aber unendlich skalierbar ist. Ob man sich für Flexibilität oder Einfachheit entscheidet, hängt davon ab, wie gut man sich mit der Automatisierung und der Programmierung im Allgemeinen auskennt.
    Insbesondere in kleinen Unternehmen ist es sehr wahrscheinlich, dass eine Person, die sich nicht mit dem Netzwerk auskennt, ein Netzwerk-Problem diagnostizieren bzw. beheben muss. Daher ist ein unkomplizierter Code leichter zu verstehen. Diese Herangehensweise ist jedoch nicht immer ganz einfach. Wenn die Automatisierung durch Kopieren und Einfügen erstellt wird, hat man eine Menge Duplikate, was eine Skalierung unmöglich macht.
    Ein Beispiel:ein paar Switches, von denen jeder seine individuelle Konfiguration hat. Hier kann man ein einzelnes Ansible Playbook erstellen, das eine wortgetreue Kopie jeder dieser Konfigurationen enthält. Werden jedoch weitere Switches hinzugefügt oder eine umfassende netzwerkweite Änderung vorgenommen, wird dieser Vorgang zu komplex. Ein wachsendes und sich veränderndes Netzwerk bedeutet auch, dass der Code überarbeitet werden muss, was möglicherweise zu Problemen führen kann.
     
  2. Automatisierung mit Einzelteilen
    Eines der Haupthindernisse für die Netzwerkautomatisierung ist das unvermeidliche Vorhandensein von Ad-hoc- oder Einzelkonfigurationen. Diese sollte als Teil der Automatisierungslösung angesehen werden und die Einstellung vorherrschen, dass in der laufenden Konfiguration nichts existiert, wenn es nicht im Automatisierungscode enthalten ist. Das ist zwar zeit- und kostenintensiv eine einzige Anweisung auf einem Gerät zu automatisieren, aber es lohnt sich. Denn wenn keine Einzelanweisungen in die Automatisierungsfamilie aufgenommen werden, führt dies unweigerlich zu einem defekten Netzwerk. Irgendwann kommt womöglich die Situation, in der entweder die Automatisierungsplattform eine Einzelanweisung überschrieben hat oder die Einzelanweisung einen Konflikt mit einer neuen Konfiguration erzeugt.
    Die Folge: Das Projekt Netzwerkautomatisierung wird von Managementebene als gescheitert erklärt. Es ist daher besser, im Vorfeld zusätzliche Zeit für die Automatisierung von Einzelkonfigurationen zu investieren, als weiterhin alles manuell zu erledigen.
     
  3. Einsatz einer einzigen Automatisierungsplattform
    Die Automatisierung erfordert auch, dass die Infrastruktur ebenfalls als Code behandelt wird. Jede Automatisierungsplattform hat ihre individuelle Sprache. Beispielsweise verwendet Ansible Python, während Puppet und Chef auf Ruby setzen. Es ist daher wichtig, dass sich alle Plattformnutzer auf eine gemeinsame Sprache einigen.
    Wenn es ein DevOps-Team gibt, das bereits Automatisierungsfunktionen verwendet, kann man dieses nach Empfehlungen fragen. Wenn es nur ein paar Server unter Verwendung von Ad-hoc-Konfigurationen automatisiert, ist das Team möglicherweise nicht in der besten Position, um zu beraten. Das A und O bei der Wahl der Plattform ist die Akzeptanz der Nutzer, nur wenn sie den Mehrwert erkennen und die Benutzerfreundlichkeit hoch ist, wird die Automatisierung ein Erfolg.
     
  4. Der Einsatz von Version Control
    Alle automatisierten Gerätekonfigurationen sollten in einem zentralisierten Speicherort mit einem Versionskontrollsystem wie beispielsweise Git aufbewahrt werden. Dies hat folgende Vorteile: Erstens ist der Speicherort die maßgebliche Quelle für alle Konfigurationen. Das bedeutet, wenn die Konfiguration nicht auf dem Speicherort vorhanden ist, dann existiert sie in keinem Gerät. Dies ist das Ideal. Die Realität sieht häufig anders aus: Häufig wird die Automatisierung nach und nach eingeführt, so dass der Inhalt des Speicherorts nur ein kleiner Teil der tatsächlichen Gerätekonfigurationen darstellt. Zweitens ermöglicht die Versionskontrolle, Änderungen so aufzuzeichnen, dass diese einfach nachvollziehbar sind und wieder verändert werden können. Wurde ein Leerzeichen zu viel hinzugefügt oder versehentlich eine Codezeile gelöscht, kann ein Versionskontrollsystem einem genau sagen, was sich geändert hat. Besser noch, die Korrektur der Änderung erfordert keine manuelle Korrektur des Codes. So kehrt man einfach zu einer früheren Version zurück, und alles ist wieder so, wie es vor dem Fehler war.
     
  5. Validieren und Überwachen des Netzwerks
    Unabhängig davon, wo sich Unternehmen auf ihrem Weg zur Automatisierung befinden, ist es eine gute Entscheidung, über ein Netzwerk-Betriebs-Toolset zu verfügen.
    Während die Versionskontrolle Änderungen an den Netzwerkkonfigurationen verfolgt, verfolgt ein Netzwerkbetriebs-Toolset Änderungen am Zustand des Netzwerks selbst und teilt mit, wann und warum sich der Zustand des Netzwerks geändert hat. Selbst wenn das Netzwerk nur teilweise automatisiert ist, können diese Werkzeuge immer noch jede Zustandsänderung verfolgen – auch die manuellen – und so den blinden Fleck beseitigen, den die Teilautomatisierung hinterlasst.

Wichtige Ressourcen freisetzen
Die Implementierung der Automatisierung ist ein manueller Prozess, der sorgfältig geplant werden muss. Es erfordert eine Lernkurve, aber das ist es wert. Läuft das Projekt erfolgreich, ist das Ergebnis ein stabileres und prädiktives Netzwerk. Auf lange Sicht können dadurch Ressourcen freigesetzt werden, die für mehrwertbringende und produktivere Aufgaben eingesetzt werden können. Das steigert nicht nur das Unternehmenswachstum, sondern fördert auch Innovation.

Pete Lumbis, Technical Evangelist, Cumulus Networks

Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenVia Mail teilen

Verwandte Artikel

funkschau