Getty Images/iStockphoto

Die Herausforderungen der Netzwerkautomatisierung bewältigen

Durch Automatisierung werden Netzwerke effizienter, aber Admins müssen die Risiken mindern. Mit Planung und Schulung können Unternehmen die Vorteile der Automatisierung nutzen.

Viele Netzwerktechniker und -manager zögern immer noch, Netzwerkautomatisierung einzusetzen. Ein Hauptbedenken ist, dass die Automatisierung den Netzwerkbetrieb stören kann.

Jeder, der schon einmal über einen längeren Zeitraum ein Netzwerk betreut hat, erlebte wahrscheinlich schon einmal einen größeren Netzwerkausfall. Ausfälle sind stressig und unangenehm, daher versuchen IT-Teams, Umstände zu vermeiden, die einen solchen Vorfall verursachen könnten. Selbst einfache Änderungen können zu größeren Ausfällen führen, daher ist es verständlich, dass man sich fragt, warum IT-Teams eine Automatisierung des Prozesses in Betracht ziehen sollten. Eine schlechte Konfiguration könnte verheerende Auswirkungen auf das gesamte Netzwerk haben.

Wenn die Automatisierung zu einem Ausfall des Netzwerks führt, werden die IT-Teams die Technologie daher wahrscheinlich nicht als Lösung in Betracht ziehen. Stattdessen wird in der Regel die CLI als Abhilfemaßnahme eingesetzt, mit der die Administratoren jeweils ein Gerät konfigurieren. Diese Methode hat jedoch einen großen Nachteil: sie ist zeitaufwendig.

Wenn ein IT-Team zum Beispiel 100 Geräte aktualisiert und pro Konfiguration eine Minute benötigt, dauert die Durchführung der Änderungen über anderthalb Stunden. Multiplizieren Sie diese Zeit mit der Anzahl der Minuten, die der Prozess tatsächlich dauert, und mit der Anzahl der Geräte, die eine Korrektur benötigen. Bei dieser Menge an Zeit und Geräten ist es leicht nachvollziehbar, warum Manager vor dem Einsatz von Automatisierung zurückschrecken, wenn sie befürchten, dass eine Panne das Netzwerk beschädigen könnte.

Aber überwiegen die Risiken der Netzwerkautomatisierung wirklich die Vorteile? Können IT-Teams diese Herausforderungen und Risiken mindern? Lassen Sie uns zunächst untersuchen, warum Unternehmen Netzwerkautomatisierung einsetzen müssen und welche Risiken es birgt, wenn sie nicht eingesetzt wird.

Warum Sie Netzwerkautomatisierung nutzen sollten

Die Netzwerkautomatisierung bietet Unternehmen mehrere Vorteile:

Standardisierte statt Snowflake-Designs

Komplexe Netzwerkdesigns, sogenannte Snowflake-Designs, bringen Risiken mit sich, weil ein Bereich des Netzwerks anders konfiguriert ist als ein anderer. Das Fehlen von Standards erhöht das Risiko von Änderungen in allen Teilen des Netzwerks. Standardisierung ist einfach deshalb wichtig, da das Netzwerk mit weniger – oder keinen – Spezialfällen zurechtkommen muss. Es kann besser Ausfallmodi bestimmen und Standardverfahren für den Umgang mit ihnen entwickeln.

Standardisierte Bausteine für Netzwerkdesigns zu verwenden, macht Netzwerkautomatisierung einfacher. Das Equipment für Designs nach dem Baukastensystem mag etwas teurer sein, im Gegenzug ergeben sich aber geringere Betriebskosten und eine größere Resilienz. Durch die Nutzung von Standardverfahren für Fehlersuche und -behebung können Netzwerkteams Ausfälle leichter verstehen und beheben.

Netzwerkdesigns, die auf standardisierten Bausteinen basieren, lassen sich viel einfacher automatisieren. Zur Automatisierungsunterstützung gehören Erstkonfiguration, Konfigurations-Updates, Überprüfen der physischen Konnektivität und Troubleshooting.

In drei Schritten zur Netzwerkautomatisierung.
Abbildung 1: In drei Schritten zur Netzwerkautomatisierung.

Netzwerkagilität

Die Netzwerkautomation hinkt der Automatisierung von Compute- und Storage-Systemen hinterher und muss einiges aufholen. Unternehmen, die die Einführung einer vollständigen IT-Automatisierung verzögern, riskieren Nachteile gegenüber ihrer agileren Konkurrenz.

Automation heißt, dass die gesamte Organisation IT-Ressourcen effizienter nutzt. Effizienz führt zu Produktivität und höheren Gewinnen mit der gleichen Zahl an Mitarbeitern. Eine stabilere IT-Umgebung bedeutet mehr Stabilität für Kunden und größere Kundenzufriedenheit. Dies kann in vielen Fällen höhere Preise und einen größeren Marktanteil ermöglichen.

Agile Netzwerke lassen sich auch leichter anpassen an neue Netzwerktechnologien. Um neue Technologien zu integrieren, müssen Netzwerkteams nur schrittweise Änderungen an einigen wenigen Baustein-Designs und den damit verbundenen Automatisierungsaufgaben vornehmen.

Herausforderungen bei der Netzwerkautomatisierung

Die moderne Netzwerktechnik steckt voller technischer, betrieblicher und organisatorischer Herausforderungen. Mit der Einführung von Cloud-Computing, Containerisierung und Netzwerkautomatisierung in Unternehmen sehen sich Techniker mit zahlreichen Hindernissen konfrontiert, die sowohl Innovation als auch Anpassung erfordern.

Technische Herausforderungen

Folgend finden Sie einige der häufigsten technischen Herausforderungen im Zusammenhang mit der Netzwerkautomatisierung.

  • Schreiben von Unit-Tests für Code: Das Schreiben von Python-Code für Netzwerkgeräte oder Golang-Code für eine Container-Netzwerkschnittstelle (CNI) in einem Kubernetes-Cluster ist eine Sache. Das Unit-Testen des Codes ist eine andere. Das Testen von Code ist genauso wichtig wie die Umsetzung von Geschäftsanforderungen in Code. Netzwerktechniker haben Schwierigkeiten mit dem Schreiben von Unit-Tests, da das Erlernen einer neuen Bibliothek viel Zeit und zusätzliche Fähigkeiten erfordert.
  • Keine Echtzeit-Zuordnung von IP-Adressen zu Diensten: In Kubernetes-Netzwerkclustern tritt dieses Problem auf, weil einige CNI-Tools die Definition einer statischen IP-Adresse nicht unterstützen. Infolgedessen können Dienste aufgrund von Ausfallzeiten oder Skalierung im Cluster häufig ihre IP-Adressen ändern. Ständiges Austauschen erschwert die Pflege eines aktuellen Dienstregisters und kann zu Kommunikationsfehlern zwischen Diensten führen, wenn diese wieder verfügbar sind. DNS, das Hostnamen in IP-Adressen auflöst, funktioniert hier nicht.
  • Mangelnde Skalierbarkeit: Beim Ausführen von Cloud-Workloads verfügt jeder Cloud-Anbieter über sein eigenes Service-Mesh-Tool zur Serviceerkennung. Infolgedessen wird die Verwaltung einer konsistenten Konfiguration der Netzwerkautomatisierung über diese Clouds hinweg zu einem Problem.
  • Ermittlung von Fehlern auf Schicht 7: Moderne Anwendungen erfordern ein Verständnis der Anwendungsprotokolle, die auf Schicht 7 des OSI-Modells ausgeführt werden. Native Funktionen zur Netzwerkautomatisierung in Kubernetes können zum Beispiel derzeit nicht auf dieser Schicht arbeiten.

Operative Herausforderungen

Der Mangel an zentraler Sichtbarkeit ist die größte operative Herausforderung. Netzwerkteams sind entweder für die Verwaltung von Netzwerkgeräten oder Microservice-Netzwerken zuständig. Das Fehlen einer zentralen Sichtbarkeit ist jedoch eine große Herausforderung. Zum Beispiel verfügt ein Unternehmen möglicherweise über Kubernetes-Ressourcen in mehreren Clustern. Wenn der Einfluss einer Netzwerkrichtlinie auf den gesamten Cluster nicht einfach visualisiert werden kann, behindert dies den Betrieb.

Organisatorische Herausforderungen

Organisatorische Herausforderungen, zum Beispiel das Erlernen neuer Technologien und Fähigkeiten, lassen viele Netzwerkmanager innehalten. Die Umstellung auf Python zur Automatisierung von Netzwerkgeräten kam früh und war ein Schock, aber die Netzwerktechniker gewöhnen sich daran.

Jetzt kommt mit der zunehmenden Cloud-Nutzung eine neue Herausforderung hinzu. Netzwerkmanager bitten die Techniker, Cloud-Verbindungen einzurichten und Workloads dorthin zu migrieren sowie die Kommunikation zwischen diesen Cloud-basierten Microservices herzustellen. Diese Anforderungen führen zu einem Fachkräftemangel bei den Netzwerktechnikern.

Risiken der Netzwerkautomatisierung

Automatisierung wird am besten eingeführt, indem man mit einfachen Aufgaben beginnt. Der Einsatz von Automatisierung ist jedoch nicht ohne Risiken. Jeder schlecht vorbereitete und implementierte Prozess kann das Netzwerk zum Absturz bringen, und die Automatisierung ist da keine Ausnahme.

Hier sind einige Punkte, die Netzwerkteams berücksichtigen können, um die Risiken der Netzwerkautomatisierung zu reduzieren.

Klein und einfach anfangen

Beginnen Sie mit dem Schreiben einfacher Skripte, die grundlegende, schreibgeschützte Fehlerbehebungen oder Netzwerkanalysen durchführen. Einige Beispiele sind das Aufspüren einer MAC-Adresse, das Auffinden der Root-Bridge in einer Spanning-Tree-Domäne oder das Anzeigen der Eingangsnetzwerkrichtlinie eines Pods. Automatisieren Sie häufig verwendete und arbeitsintensive Untersuchungs- oder Diagnoseaufgaben. Nehmen Sie in dieser Phase keine automatischen Änderungen vor. Konzentrieren Sie sich stattdessen darauf, die Automatisierungstools zu erlernen, die einen echten Mehrwert für den Netzwerkbetrieb bieten.

Testen

Die Netzwerkautomatisierung muss auf demselben umfangreichen Testverfahren basieren, das auch bei der Anwendungsentwicklung zum Einsatz kommt. Anwendungsentwickler können schnell Server- und Client-Test-VMs aufrufen und automatisch umfangreiche Analysen durchführen.

Im Gegensatz dazu waren Netzwerktests in der Vergangenheit problematisch. Die Einrichtung von Testlaboren war zu teuer und zeitaufwendig, aber mit Baukastendesigns lassen sich die zu testenden Varianten reduzieren. Anbieter bieten auch virtuelle Instanzen vieler Gerätetypen zu geringen oder keinen Kosten an, allerdings mit eingeschränkter Leistung. Daher ist es wichtig, Konfigurationsänderungen auf diesen Geräten zu überprüfen.

Netzwerkteams und der Rest der IT-Abteilung müssen möglicherweise zusammenarbeiten, um eine genaue Testumgebung des operativen Netzwerks zu erstellen. Idealerweise umfasst die Testumgebung Anwendungen und Test-Clients, um Netzwerk-Traffic zu generieren. Ein Beispiel hierfür ist Containerlab.

Netzwerkvalidierung

Das Überprüfen des Netzwerkstatus ist eine hervorragende Möglichkeit, Automatisierungsrisiken zu reduzieren. Eine Überprüfung ist auch ein hilfreiches Instrument, um zu validieren, dass ein Netzwerk wie vorgesehen funktioniert, noch bevor automatisierte Änderungen übernommen werden.

Die Einführung von Automatisierung ist nicht ohne Risiken. Jeder schlecht vorbereitete und schlecht umgesetzte Prozess kann das Netzwerk zum Stillstand bringen, und Automatisierung ist da keine Ausnahme.

Um Netzwerkverbindung und -betrieb zu validieren, betrachten Sie den Netzwerkstatus. Dazu gehören der Status der Geräteschnittstelle, die Adresszuweisung und benachbarte Geräte sowie Informationen zu den Protokollen der Schichten 2 und 3. In dieser Phase gibt es keine Änderungen am Netzwerk. Das absichtsbasierte ( Intent-based) Validierungsskript sollte eine Warnung ausgeben, wenn eine Prüfung fehlschlägt, damit die Teams entsprechende Maßnahmen ergreifen können.

Skripte zur Netzwerkvalidierung werden zu Werkzeugen für einen zukünftigen Änderungsprozess, um vor und nach der Änderung Netzwerkvalidierungsprüfungen durchzuführen. Wenn eine Validierungsprüfung vor der Änderung fehlschlägt, brechen Sie die Änderung ab. Wenn eine Validierungsprüfung nach der Änderung nicht erfolgreich ist, benachrichtigen Sie das Netzwerkpersonal und brechen Sie die Änderung möglicherweise ab. Nachdem Sie die Änderung rückgängig gemacht haben, wiederholen Sie die Validierung erneut, um sicherzustellen, dass das Netzwerk in den Zustand vor der Änderung zurückkehrt ist.

Damit es funktioniert

Das wichtigste Konzept eines jeden Systems zur Netzwerkänderung ist die Einführung von Prozessen, die das Risiko verringern. Bei manuellen Änderungen kommen Kontrollinstanzen für Änderungen und Überprüfungszyklen zum Einsatz. Diese Prozesse sind nach wie vor notwendig. Die Automatisierung fügt jedoch zusätzliche Prozesse hinzu, wie die automatische Validierung vor und nach der Änderung oder die Koordination von Microservices in Netzwerkarchitekturen.

Nachstehend finden Sie einige weitere Möglichkeiten zur Bewältigung bestehender Herausforderungen bei der Netzwerkautomatisierung.

Technische Ansätze

  • Nutzen Sie Automatisierungsbibliotheken: Lernen Sie den Umgang mit Bibliotheken wie pyATS, Pytest und Moto, um mehr Unit-Tests für Code zu schreiben. Lesen Sie die Dokumentation sorgfältig und tragen Sie wenn möglich dazu bei.
  • Service-Mesh: Verwenden Sie Service-Mesh-Tools, um die Service-zu-Service-Kommunikation zu verbessern. Ein Service-Mesh-Tool, wie AWS App Mesh, Consul, Cilium, Istio oder Linkerd, kann die Komplexität dieser Kommunikation abstrahieren, indem es eine Service-Erkennungsfunktion bietet. Herstellerneutrale Service Meshes können auch bei der einfachen Integration über mehrere Clouds hinweg helfen.

Operativer Ansatz

Netzwerkmanager können durch Implementieren von zentralisiertem Monitoring und Observability die Sichtbarkeit erlangen, die sie benötigen, um die Komplexität von Umgebungen effektiv zu verwalten.

Tools wie Prometheus, Grafana und DataDog sind in Kubernetes-Umgebungen beliebt. Wenn es um Netzwerkgeräte mit Hardware geht, sind ThousandEyes, Splunk und ähnliche Wettbewerber praktikable Optionen.

Organisatorische Ansätze

  • Widerstände gegen Veränderungen abbauen: IT-Teams zögern vielleicht, ihre Netzwerke zu automatisieren, weil sie Bedenken wegen der Komplexität oder der Unterbrechung der bestehenden Arbeitsabläufe haben. Um dies zu überwinden, sollten Sie die Vorteile der Automatisierung klar kommunizieren, etwa die höhere Zuverlässigkeit, die bessere Skalierbarkeit und den geringeren manuellen Aufwand. Beziehen Sie die Beteiligten in den Planungsprozess ein. Schlagen Sie die Teilnahme an technischen Konferenzen zur Netzwerkautomatisierung vor.
  • Brechen Sie Silo-Teams auf: Netzwerk-, DevOps- und Anwendungsteams arbeiten oft isoliert, was die Koordinierung der Netzwerkautomatisierung erschwert. Brechen Sie diese Silos auf, indem Sie die funktionsübergreifende Zusammenarbeit fördern und klare Zuständigkeiten und Verantwortlichkeiten für die Netzwerkautomatisierung festlegen.

Wenn Sie mit der Netzwerkautomatisierung beginnen, beschränken Sie sich auf einfache Aufgaben, die keine Auswirkungen auf das Netzwerk haben. Starten Sie jetzt mit der Netzwerkautomatisierung.

Erfahren Sie mehr über Software-defined Networking