Netz­werk­auto­matisie­rung: Vorteile und Heraus­forderungen


Automatisierung kann die Effizienz steigern und die Anzahl zufälliger Fehler reduzieren. Es ist aber nicht alles so einfach, wie es auf den ersten Blick erscheint. Wie man das Thema Netzwerkautomatisierung am besten angeht, welche Vorteile es gibt und welchen Herausforderungen man sich stellen muss, erklärt der renommierte und weltbekannte Rechenzentrums- und Netzwerkexperte Ivan Pepelnjak.

 

Was sind die primären Anwendungsfälle von Netzwerkautomatisierung?

Jeder Ablauf, der unzweideutig in genügend Detail beschrieben werden kann, lässt sich automatisieren. Anfangen sollte man allerdings mit etwas Einfachem, zum Beispiel mit dem Sammeln von Daten von Netzwerkgeräten, um damit die Reports zu generieren, welche von den Netzwerkmanagement-Tools nicht zur Verfügung gestellt werden.

Als nächstes kann der Bereich "Troubleshooting" automatisiert werden. Die meisten Fehlerfindungsprozesse brauchen viele Daten, die zuerst gesammelt werden müssen. Es gibt aber auch einfache Abläufe, die man automatisieren kann. So zum Beispiel das Überprüfen, ob der Port, mit dem der Benutzer verbunden ist, Fehler generiert.

Das Ändern von Gerätekonfigurationen ist da schon ein bisschen riskanter. In den meisten Umgebungen beginnt diese Phase der Netzwerkautomatisierung zuerst mit der automatisierten Bereitstellung von neuen Geräten oder von neuen Standorten. Da ist das Risiko, dass etwas schief läuft, relativ klein. Der offensichtliche nächste Schritt ist dann die Automatisierung der Aktualisierung von Standorten.

Meistert man die automatisierte Bereitstellung von Geräten, so können in einem nächsten Schritt die Dienste automatisiert bereitgestellt werden. Das ermöglicht es mittels eines Selbstbedienungs-Portals oder eines Orchestrierungssystems Gerätekonfigurationen zu ändern.

Die letzte Etappe in der Netzwerkautomatisierung ist die ereignisorientierte Automatisierung, die von einigen Anbietern auch als selbständig agierendes (self-driving) Netzwerk bezeichnet wird. Solche Netzwerke reagieren selbständig auf auftretende Veränderungen und auf externe Ereignisse und passen die Netzwerkkonfiguration in Echtzeit an.

Wo liegen die Unterschiede zur Automatisierung von Rechenzentren?

Es gibt zwei fundamentale Unterschiede zwischen der typischen Netzwerkautomation und der Automation der meisten anderen Teile der Rechenzentrumsinfrastruktur:

  • -Netzwerkautomatisierung findet normalerweise im Zusammenhang mit physikalischen Geräten (Switch, Router, Firewall, Load Balancer) Anwendung. Für virtuelle Geräte wird normalerweise Serverautomatisierung verwendet, da sich virtuelle Geräte einfach entsorgen und neu aufsetzen lassen, falls etwas schief läuft. Es soll an dieser Stelle auch erwähnt sein, dass niemand, der voll zurechnungsfähig ist, im Bereich von traditionellem Speicher gross zu automatisieren versucht.
  • Die Auswirkungen eines Missgeschicks (Blast Radius) sind bei der Netzwerkautomatisierung massiv höher. Der Absturz eines Servers schaltet eine Applikation aus, während der Absturz eines Datenbank-Servers mehrere Applikationen ausschaltet, wenn man die Investition in eine vernünftige Redundanz ausgelassen hat. Der Absturz eines Core-Switch hat negative Auswirkungen auf das ganze Rechenzentrum.

Zu allem Übel sind die meisten Netzwerkgeräte deutlich schwieriger zu automatisieren als Server. Auf den meisten Netzwerkgeräten lassen sich keine Script-Sprachen (Bash, Python, etc.) ausführen. Selbst wenn das möglich ist, interagieren diese über das CLI (Command Line Interface) mit dem Betriebssystem des Netzwerkgeräts, einer CLI, die für die Interaktion mit einem Menschen ausgelegt ist. Leider ähnelt heute ein Grossteil der Netzwerkautomation noch dem Screen Scraping, wie es zu den Zeiten vorherrschte, als man noch versuchte alte IBM Mainframes mit dem Web zu integrieren.

Was sind die wichtigsten Vorteile?

Geschwindigkeit und erhöhte Effizienz werden oft als offensichtliche Vorteile erwähnt. Man sollte allerdings dabei weder die gewonnene Konsistenz noch die sich daraus ergebende Erhöhung der Zuverlässigkeit vergessen. Es ist wirklich schwierig und fehleranfällig, einen komplexen Dienst aufzusetzen und dabei ein Dutzend Gerätekonfigurationen manuell in einem langwierigen Vorgang zu ändern. Das Ganze wird deutlich zuverlässiger, wenn es automatisiert ist. Bei einer fehlerhaften Automatisierung sind zumindest meist die Fehler konsistent und treten bei jedem Ablauf auf. 

Es ist auch einfacher, konsistente Sicherheitsregeln durchzusetzen, wenn die Bereitstellung von Geräten oder Diensten automatisiert ist. Blockiert man die Möglichkeit für das Betriebspersonal manuell Änderungen an der Konfiguration von Netzwerkgeräten vorzunehmen, so werden auch die unbeliebten Audits weniger mühsam. 

Ein gewichtiger Vorteil liegt auch darin, dass eine automatisierte Bereitstellung von Diensten das Bedürfnis für feste Wartungsfenster verringert, da Änderungen der Gerätekonfigurationen nicht mehr Änderungen sind, die einzeln dokumentiert, überprüft und geplant werden müssen. Die einzigen echten Änderungen, die im Einklang mit Rahmenwerken wie ITIL verwaltet werden müssen, sind die neuen Versionen des Automatisierungssystems. 

Was sind die grössten Herausforderungen der Netzwerkautomatisation?

Die grösste Herausforderung, der jedermann bei Beginn der Netzwerkautomatisierung gegenüber steht, ist die schneeflockenähnliche Natur der meisten Firmennetzwerke in Verbindung mit den Millionen von Ausnahmen, die in der Vergangenheit gemacht werden mussten, um mit schlecht gestrickten Applikationen oder unrealistischen Benutzeranforderungen zurecht zu kommen. Dazu kommt, dass nur was detailgenau beschrieben werden kann, auch automatisiert werden kann.

Die nächste Hürde ist die Denkweise: Netzwerkingenieure mussten nie programmieren oder in Form von detaillierten Schritt-für-Schritt Abläufen denken. Datenmodelle, Zerlegung und Abstraktion, gemeinsame Basiskomponenten, sind Konzepte, die von Softwareingenieuren und -architekten gut verstanden werden, aber für die meisten Netzwerkingenieure und -architekten ein Mysterium bleiben.

Dann gibt es den offensichtlichen Blödsinn wie "Ich werde meinen Job verlieren" und "Ich will kein Programmierer werden". Jeder Technologiewechsel, der in den letzten Jahrhunderten stattgefunden hat, führte zu einer Zunahme, nicht zu einer Abnahme des zu erledigenden Arbeitsvolumens. Der Wegfall von langweiliger und stumpfsinniger Handarbeit ist kein grosser Verlust. In Bezug auf den Mythos "Jeder soll Programmierer werden" hilft ein Blick in die Realität. Wurden Buchhalter zu Programmierern, als die Buchhaltung vor Jahrzehnten automatisiert wurde? Wurden Piloten zu Programmierern, als der Autopilot in Flugzeugen Einzug fand?

Zu guter Letzt komplizieren die Netzwerkgeräteanbieter vieles, indem sie Geräte ausliefern, die wirklich nur schwer zu automatisieren sind.

Kann Netzwerkautomation alle Netzwerkgeräte abdecken?

In einer idealen Welt wäre dem so, aber wenn dies das erste Ziel wäre, dann käme man nie an. Dazu kommt, dass es sich nicht lohnt Geräte zu automatisieren, die kurz vor der Ausmusterung stehen. In der Praxis ist es am besten, klein anzufangen, einen einfachen Ablauf auszusuchen, der nicht allzu zeitaufwändig ist, und diesen zu automatisieren. Anschliessend wählt man einen Ablauf nach dem anderen und automatisiert ihn, bis man einen Grossteil der Infrastruktur automatisiert hat. Das braucht zwar Jahre, führt aber schliesslich zum Ziel.

Kann Netzwerkautomation über Standorte und über Private und Public Cloud hinweg implementiert werden?

Absolut. Konsistente Bereitstellung von neuen Standorten ist einer der ersten Vorteile, die Netzwerkautomation bietet. Zum Beispiel hat die UBS weltweit etwa 20 neue Rechenzentren bereitgestellt, in einem Tempo von einem Rechenzentrum pro Monat. Das dafür verantwortliche Team war wirklich klein und konnte das nur hinbekommen, weil es den ganzen Bereitstellungsprozess voll automatisiert hat.

Für das Auslagern von Arbeitslasten in eine Cloud ist die Verwendung von wiederholbaren Prozessen mittels "Infrastructure-as-Code"-Werkzeugen die vernünftigste Lösung. Zu diesen Tools gehören Amazon CloudFormation, HashiCorp Terraform und Docker Compose.

Wie geht eine IT-Abteilung das Thema Netzwerkautomation am besten an?

Es kommt darauf an, ob eine Firma IT als strategische Ressource oder als unnötige Ausgaben behandelt. Wenn das Management IT als strategische Ressource für das Wachstum und die Wettbewerbsfähigkeit betrachtet, dann muss auch die Kontrolle über die Evolution der IT-Infrastruktur vorhanden sein. 

Eine logische Konsequenz davon ist, dass die Ingenieure in Netzwerkautomation und den gebräuchlichen Werkzeugen geschult werden sollten, und dass mit der Zeit ein Team vorhanden sein sollte, welches auf Basis eines Frameworks eine Netzwerk-Automatisierungslösung entwickelt oder eine verfügbare Lösung für die eigenen Zwecke erweitert. 

Für den Fall hingegen, dass das Top-Management IT nahezu als unnötige Kostenstelle behandelt, ist die beste langfristige Option, die Arbeitslasten in eine Public Cloud zu verlegen und jemanden anders sich um die Automation kümmern zu lassen. 

Falls das mit der Auslagerung der Automation nicht klappt, dann bleibt nicht viel anderes übrig, als sich das Grundwissen für kleine Automatisierungsaufgaben anzueignen und langsam die Sammlung an Werkzeugen aufzubauen, die für die Automation gewöhnlicher Abläufe benötigt werden.

Spart Netzwerkautomation Geld?

Normalerweise nicht so, wie es IT-Manager erwarten. Die Anzahl Mitarbeiter lässt sich dadurch kaum senken. Auch die Netzwerkingenieure werden nicht überzählig. Denn diese wissen am besten, wie man das eigene Netzwerk gestaltet, betreibt und erweitert und wie man anfallende Probleme löst. Deshalb sollten sie auch stark in die Gestaltung, den Aufbau und die Bereitstellung der Netzwerkautomationslösung involviert sein.

Korrekt implementierte Netzwerkautomations- oder Netzwerkorchestrierungs-Systeme erhöhen die Zuverlässigkeit von Gerät- und Dienstbereitstellungen und reduzieren die durch das Management von Veränderungsprozessen generierte Wartezeit. Der Aufwand für nachträgliche Fehlersuche und -behebung verringert sich massiv, da zufällige Bedienfehler nahezu ausgeschlossen werden können und bereits beim Testen vor der Bereitstellung auffallen würden. 

Die Elimination von mühsamer repetitiver Arbeit ermöglicht, dass sich Netzwerkingenieure um Arbeiten kümmern können, die einen echten Mehrwert für die Netzwerkinfrastruktur schaffen.

Wo kann man mehr über Netzwerkautomation lernen?

Es kommt drauf an, ob man nur einzelne Werkzeuge beherrschen können will, oder ob man Netzwerkautomationslösungen gestalten und bauen will.

Einige der Netzwerk-Automatisierungswerkzeuge wie Ansible und Salt verfügen über eine wirklich gute Dokumentation und sind als Open Source verfügbar. Damit verringert sich die Einstiegshürde. Es gibt auch viele einfache "How To"-Anleitungen, die auf dem Internet verfügbar sind.

Will man sich hingegen tiefer in die Materie einarbeiten, so sind strukturierte Schulungen am effizientesten, da sie sowohl einen Gesamtüberblick geben und der Fokus mehr auf der Gestaltung der Automatisierung und weniger auf den Werkzeugen liegt. Erste solche Schulungen sind online verfügbar.

Zusätzlich gibt es auch eine signifikante Gemeinschaft von Netzwerkingenieuren, die Fachkollegen dabei hilft, die Vorteile von Netzwerkautomation besser zu verstehen.

 

Dieses Interview wurde in zwei Teilen am 23. August 2018 und am 24. August 2018 auf Inside-IT publiziert. Die englische Orginalfassung findet sich auf Ivan Pepelnjak's Blog auf IPspace.net.