Gorodenkoff - stock.adobe.com
Mit NetOps und DevOps Netzwerkprobleme lösen
Obwohl sich NetOps und DevOps im Ansatz unterscheiden, teilen die Konzepte ähnliche Ziele und Methoden. Daher können die beiden Teams gemeinsam arbeiten und Tools austauschen.
In einer Studie von Nemertes Research aus dem Jahr 2022 gaben 72 Prozent der Unternehmen an, dass sie bereits SD-WANs als Teil ihrer WAN-Architekturen einsetzen oder dies planen. Und auch andere softwaredefinierte Netzwerktechnologien wie SDN und softwaredefiniertes LAN sind auf dem Vormarsch.
Dieser Wandel bedeutet, dass der Netzwerkbetrieb (NetOps) Praktiken und Prozesse übernimmt, die sich aus der Softwareentwicklung entwickelt haben, insbesondere agile Methoden und DevOps. Dieser Ansatz wird gemeinhin als Infrastructure as Code (IaC) bezeichnet, in dem NetOps- und DevOps-Konzepte zusammenfließen.
Aber was bedeutet es, IaC bereitzustellen? In der Praxis bedeutet dies, dass Erweiterungen und Upgrades von Netzwerkfunktionen für die Netzwerkinfrastruktur auf die gleiche Weise gehandhabt werden wie für Software. Ein Schlüsselelement für IaC ist die Netzwerkautomatisierung, die zunehmend für die Bereitstellung und Konfiguration von virtuellen Switches, Routern, Load Balancern und Firewalls eingesetzt wird.
Netzwerkautomatisierung ist mehr als Skripting
Netzwerkautomatisierung ist besonders hilfreich bei der Lösung von Netzwerkproblemen, wie Verkehrsstaus und schlechte Antwortzeiten. In diesem Zusammenhang ersetzt sie das traditionelle Netzwerkänderungsmanagement. NetOps-Teams können die Konfiguration von Netzwerkkomponenten, die in der Codebasis verankert sind, mit Netzwerkautomatisierung ändern. Anstelle des traditionellen Netzwerkänderungsmanagements nutzt das Team DevOps-Funktionen wie Bug- und Request-Tracking, Code-Management-Tools und automatisierte Tests des geänderten Codes, um sicherzustellen, dass die vorgenommenen Korrekturen nichts kaputtmachen.
Vollständige Automatisierung vs. Aufgabenautomatisierung
Der Unterschied zwischen Netzwerkautomatisierung und traditionellem Änderungsmanagement ist eine genauere Betrachtung wert. Erstens ist Netzwerkautomatisierung mehr als nur Skripting. Skripting ist eine Form der Aufgabenautomatisierung, bei der ein Skript gelegentlich ausgeführt wird, um die manuelle Befehlseingabe zu vermeiden. Netzwerkteams haben traditionell Skripts erstellt, um langwierige und sich wiederholende Aufgaben zu beschleunigen. Aber die IT-Teams schränken auch die Rolle der Skripte in ihren Abläufen ein und verlassen sich im Allgemeinen auf menschliche Eingriffe, um Skripte zu starten.
Bei der vollständigen Automatisierung wird ein Prozess eingerichtet und autonom ausgeführt. Das heißt, das IT-Team lässt Skripte andere Skripte aufrufen und erlaubt Skripten, auf Ereignisse zu reagieren, ohne dass ein Mensch sie überprüft oder eingreift. Der Übergang zur vollständigen Automatisierung im Gegensatz zur Aufgabenautomatisierung ist eines der Kennzeichen einer Netzwerkorganisation, die sich auf ein NetOps-Modell umstellt.
Strukturierte Kodierungsverfahren
Ein Schlüsselfaktor bei dieser Umstellung ist die Abkehr von einem bunten Sammelsurium an selbst erstellten Skripten hin zu strukturierteren Kodierungspraktiken und Tools aus einer DevOps-Umgebung. Das Vertrauen in selbst erstellte Skripte ist relativ gering, und das aus gutem Grund: IT-Mitarbeiter wissen möglicherweise nicht, wer die Skripte entwickelt hat und wie.
Die meisten Skripte sind nicht gut getestet, können leicht beschädigt werden und sind nicht in der Lage, Fehler anständig zu behandeln. Tools, die von anderen Admins geschrieben wurden, können schwer zu lesen sein, selbst wenn andere die verwendete Programmiersprache verstehen, und unmöglich, wenn sie es nicht tun.
NetOps begegnet diesem Bündel von Herausforderungen durch die Einführung ausgereifter Programmierpraktiken und Tools. Dazu gehört ein gemeinsamer Satz von Kodierungs-Tools und -sprachen. Es sollte auch zumindest minimale Kodierungsstandards beinhalten – zum Beispiel Benennungsschemata für Variablen und für erstellte virtuelle Entitäten –, die es den Mitarbeitern ermöglichen, den Code der anderen zu verstehen, ihm zu vertrauen und ihn leichter zu pflegen.
Automatisierte Tests
NetOps-Teams verwalten Netzwerkskripte auf die gleiche Weise wie Entwickler eine Codebasis, indem sie sowohl ein Codeversionssystem als auch eine Software für das Änderungsmanagement auf Codeebene verwenden, die dokumentiert, was eine neue Version des Codes erreichen soll.
NetOps erfordert automatisierte Tests. Wenn beispielsweise eine überarbeitete Switch-Konfiguration veröffentlicht wird, müssen die IT-Teams eine Reihe automatischer Tests durchführen, um sicherzustellen, dass sie funktioniert und die erforderliche Sicherheit bietet.
Vorteile einer gemeinsamen Tool-Basis
Um von den gleichen Vorteilen zu profitieren, die DevOps-Teams in Bezug auf die Stabilität und Agilität von Diensten erreichen, haben Netzwerkteams, die Campusnetzwerke und WANs betreiben, eine Vielzahl von DevOps-Konzepten und -Praktiken übernommen und sie an den Betrieb eines stabilen und flinken Netzwerks angepasst.
Angesichts der Ähnlichkeit ihrer Ziele und Methoden ist es nur natürlich, dass DevOps- und NetOps-Teams zusammenarbeiten und Tools gemeinsam nutzen. So können sie beispielsweise Jenkins und Salt – zwei Tools für das Konfigurationsmanagement im Rechenzentrum - auch für das Netzwerk und die Netzwerkautomatisierung verwenden.
Der Einsatz derselben Tools und Sprachen kann Cross-Training-Bemühungen unterstützen und sogar den Austausch von Mitarbeitern zwischen den Teams ermöglichen, was die IT insgesamt stärkt. Ein gemeinsamer Programmierrahmen vereinfacht auch die Fehlersuche und die Notfallreaktion auf Netzwerkprobleme. Das Tracking der Anwendungsleistung im Campus-Netzwerk kann den DevOps-Teams nützliches Feedback zu Verhalten und Leistung liefern.
Letztlich treibt die Konvergenz von Everything as a Service und Everything as Code das Aufkommen von NetOps voran. Und der schnellste und konsequenteste Weg für ein Unternehmen, aus diesem Ansatz Nutzen zu ziehen, ist die Nutzung von NetOps für seine bestehenden DevOps-Bemühungen.