Was ist DevNetOps?

Was ist DevNetOps?

DevNetOps ist die Anwendung der Philosophien, Prinzipien und Verhaltensweisen von DevOps auf den Netzwerkbetrieb (NetOps). Die DevOps-Philosophien haben ihren Ursprung in der Softwareentwicklungskultur und der „Schlanke Produktion“-Revolution, die in den 1980er- bis 2000er-Jahren stattfand. Diese Prinzipien sind allgemein als CALMS (Culture, Automation, Lean, Measurement) bekannt.

Eines der meistgenannten DevOps-Prinzipien wirkt der Wasserfallmethode entgegen, bei der ausgedehnte Planungs-, Aufbau- und Testzyklen in langen, sequenziellen Phasen stattfinden. Wie im The DevOps Handbook dokumentiert, hat die DevOps-Forschung gezeigt, dass kleinere, häufigere Bereitstellungen in der IT- und Fertigungsindustrie zu höherer Geschwindigkeit, Agilität und verbesserter Qualität führen.

Zuverlässigkeit ist eine wichtige Voraussetzung, damit Unternehmen ihre Geschäftsziele schnell erreichen können! Schnelligkeit ohne Nachhaltigkeit führt zum Scheitern, und schnelles Scheitern ist für Unternehmen nur dann von Vorteil, wenn sie sich von einem Zyklus zum nächsten verbessern können. Zufällig ist eine neue und beliebte Implementierung von DevOps die Rolle des Site Reliability Engineer (SRE). Ebenso wird DevNetOps von der Rolle des Network Reliability Engineers (NRE) umgesetzt.

Was ist eine DevNetOps-Pipeline?

DevNetOps-Pipeline

DevNetOps-Pipeline

Um die Vorlaufzeit zwischen Entwicklung und Bereitstellung zu verkürzen und in kürzeren, schnelleren Zyklen mit kleineren Änderungen der Bereitstellung zu arbeiten, automatisiert die DevNetOps-Pipeline den Fortschritt zwischen technischen Änderungen und Produktionsimplementierungen.

Die Bindung an ein versioniertes Code-Repository löst eine kontinuierliche Integrations-Pipeline (CI) aus fortlaufendem Aufbau und Testen aus. Durch eine Reihe von automatischen und manuellen Beurteilungen werden potenzielle Payloads in virtuellen Umgebungen, Simulationen und Labors auf den Zustand einer zuverlässigen Bereitstellung hin getestet. Der Zustand der Pipeline für kontinuierliche Bereitstellung (CD) stellt sicher, dass sich die zugesagte Lieferung immer in einem einsatzfähigen Zustand befindet. Kontinuierliche Bereitstellung ist die automatische Übertragung zur Entwicklung und dann zur Produktion.

Bevor jedoch Änderungen in eine Laufzeitumgebung (z. B. Entwicklung und Produktion) übertragen werden, ist es wichtig, geringfügige Änderungen an der Architektur und eine unveränderliche Infrastruktur umzusetzen. Große, umfangreiche Änderungen sind nicht sicher und können nicht so schnell entwickelt und validiert werden. Außerdem sind Probleme im Vergleich zu kleinen Änderungspaketen schwerer zu erkennen.

Eine unveränderliche Infrastruktur ist vor dem Schritt zur kontinuierlichen Bereitstellung ebenso wichtig. Es ist weder effizient noch sinnvoll, eine Bereitstellung durchzuführen und dann von einem Techniker die Bedeutung des Bereitgestellten ändern zu lassen. Produktivlaufzeiten müssen reproduzierbar sein, um Änderungen sicher testen und Verbesserungsmöglichkeiten ermitteln zu können.

Kontinuierliche Überwachung, Messung und Reaktion bilden das letzte Element von DevNetOps. Die produktionsbegleitende Rückmeldung an Service-Level-Indikatoren dient zur reaktiven oder proaktiven Anpassung des kurzzeitigen Netzwerkzustandes. Auch analysierte Telemetrie, Vorfälle und externe Änderungsanfragen liefern kontinuierlich Feedback für Verbesserungen an den kodifizierten Zustand der Netzwerksysteme.

Automatisierte DevNetOps-Pipeline – Zusammenfassung

Tools

Ablauf

Personen

Netzwerk als Code

Repositorys von Konfigurationsgeheimnissen, Artefakten und gitOps

Verzweigen, Prüfen, Koppeln, agil

Code-Kenntnisse (nicht unbedingt Programmieren)

Pipeline-Orchestrierung

Pipeline-CI/CD-Tools, Testrahmen

Testgetriebene Entwicklung (TDD), Messauswertungen

Skills im Erstellen und Debuggen, Pipeline-Profis

Mikro- und unveränderliche Architektur

Bereitstellungen für ZTP, Refraktoren von Anbietern

Commits/Deployment in kleinen Schritten

CLI/TTY ohne Eingreifen

Orchestrierte Upgrades

ZTD, Virtualisierung, Testlabors, Abziehen von Verkehr

Durchführung und Simulation von „Kanarienvogel“-Analysen

Wartung in Stunden, Roll-back oder Roll-forward

Ausfallsicherheitsdesign und Übungen

Verkehrsgeneration, DoS, Chaos Monkey

Chaos-Fenster, Dokumentgrenzen

Fehler für besseres Verständnis erzwingen

Kontinuierliche Messung

Big-Data-Analysen, ML, ITops-Integration

Vorfalls-Playbooks, Kapazitätsplanung

Verwaltung nach Statistiken, Metriken, Effizienz

Kontinuierliche Reaktion

Automatische Korrektur, FaaS, prädiktive Statistiken

Selbststeuerung beaufsichtigen

Ingenieur-Telemetrie, Anzeigen, Selbstheilung

Kontinuierliche Verbesserung

Upgrades, Features, Fehlerbehebungen, Änderungen

Lokale Lektion als globale Information aufzeichnen

Aktive Aufgeschlossenheit für Post-Mortems

Vorteile von DevNetOps

  • Teamkultur und -verhalten im Einklang mit der Zuverlässigkeitstechnik kombiniert mit kleineren, häufigeren Bereitstellungen führen zu leistungsfähigeren Teams und Unternehmen1.
  • DevNetOps ermöglicht eine schnellere Integration von Herstellersystemen, insbesondere von Software-Upgrades und Patches. Es überzeugt die Hersteller, kleinere Payloads in kürzeren Abständen zu liefern und löst so das Problem der langen Vorlaufzeit für Funktionen und Fehlerbehebungen. Dies verkürzt die Lücke zwischen der Markteinführung des Anbieters und der Bereitstellungszeit des Betreibers drastisch.
  • Für Ingenieure reduziert DevNetOps Stress (Sorge bei Bereitstellung) und steigert die Arbeitszufriedenheit.

 

Was ist das Verhältnis von NRE, DevNetOpsund DevOps?

DevOps und DevOps-Ingenieure stehen im Zusammenhang mit Entwicklung und Betrieb von Unternehmensanwendungen. Es gibt eine Rolle für Netzwerke, insbesondere für einige Arten von softwaredefinierten Netzwerken (SDN), in laufenden Anwendungs-Clustern. Aber auch innerhalb von Unternehmen und Service Providern gibt es Netzwerke, die vom Bereich der Entwicklung und des Betriebs von Softwareanwendungen und -plattformen getrennt sind2. Einige Beispiele für NetOps-Netzwerke, die sich auf Unternehmensanwendungen konzentrieren: Wide-Area-Backbone-, Transport-, Backhaul- und Datencenter-Underlay-Netzwerke.

Um DevOps und DevNetOps zu unterscheiden, wird bei Netzwerk-Dev-Ops zwischen Anbieter und Kunde statt zwischen Teams des gleichen Unternehmens getrennt. Einige Ziele von DevOps, wie z. B. schnelle Funktionszyklen und Produktexperimente, sind keine typischen Ziele für die grundlegende Infrastruktur von Netzwerken. Dennoch gelten die Prinzipien und Vorteile von DevOps gleichermaßen für Netzwerke.

Während DevNetOps ebenso wie DevOps eine Sammlung von Philosophien, Prinzipien und bewährte Methoden ist, werden diese durch Network Reliability Engineering (NRE) implementiert. Die Ziele von „Dev“ und „Engineering“ sind die gleichen. Während DevOps-Prinzipien jedoch den Schwerpunkt auf Geschwindigkeit der Zyklen und Entwicklung hin zu kontinuierlichem Lernen setzen, ist das oberste Ziel für NRE die Zuverlässigkeit. Dies sind komplementäre Doppelziele: ein „Was“ und ein „Warum“.

DevNetOps – FAQs

Warum wird DevNetOps benötigt?

Änderungen am Netzwerk sind komplex und erfordern strenge und kostspielige Prüfverfahren. Außerdem können Probleme auftreten und unerwartete Auswirkungen haben. DevNetOps begegnet diesen Problemen mit Vorgehensweisen, die sicherstellen, dass die Änderungen gering sind, häufig erfolgen und auf automatisierte und zuverlässige Weise durchgeführt werden. Dieser Ansatz verbessert die Qualität, die Ergebnisse und die Bereitstellungszeiten im Vergleich zur traditionellen Wasserfallmethode, bei der die Aktivitäten in langwierige, aufeinander folgende Phasen unterteilt werden, von denen jede von der Qualität und Genauigkeit der vorhergehenden abhängt.

Worin unterscheiden sich DevOps und DevNetOps?

Während DevOps in erster Linie darauf abzielt, die Softwareentwicklungsprozesse und Bereitstellungszeiten eines Unternehmens zu beschleunigen, wendet DevNetOps die DevOps-Prinzipien und -Verfahren auf die Automatisierung des Netzwerkbetriebs und die Behandlung der Infrastructure-as-Code an. Das erwartete Ergebnis von DevNetOps ist eine flexiblere, programmierbare und skalierbare Netzwerkinfrastruktur, die das beschleunigte Tempo von DevOps-Praktiken und Softwarebereitstellungen unterstützen kann. 

Für eine höhere Betriebsgeschwindigkeit, Agilität und Qualität liegt der Schwerpunkt sowohl bei DevOps als auch bei DevNetOps auf der Überwindung der Abteilungs- und Funktionsabschottung, der Verbesserung der Zusammenarbeit zwischen den Teams und der Steigerung der Automatisierung. DevOps konzentriert sich vor allem auf die interne Zusammenarbeit, während DevNetOps eher auf die Beziehung zwischen Anbieter und Kunde ausgerichtet ist. Und während bei DevOps die Iterationsgeschwindigkeit im Vordergrund steht, ist das oberste Ziel von DevNetOps die Zuverlässigkeit.

Welche Vorteile bietet DevNetOps?

Die Einführung von DevNetOps hat eine Vielzahl von Vorteilen. Einige Beispiele hierfür sind eine höhere Effizienz, eine schnellere Integration von Herstellersystemen, insbesondere von Software-Upgrades und Patches, kürzere Vorlaufzeiten für Funktionen und Korrekturen sowie eine kürzere Zeitspanne zwischen der Markteinführung durch den Hersteller und der Bereitstellung durch den Betreiber. 

Welche DevNetOps-Technologien, -Lösungen und -Produkte hat Juniper im Angebot?

Juniper Cloud-Native Contrail Networking (CN2) ist eine softwaredefinierte Netzwerk-Plattform (SDN), die die Erstellung und das Management virtueller Netzwerke automatisiert. Es liefert Infrastructure-as-Code, ein DevNetOps-Grundsatz, um Softwarequalität mit Hyperscaler-Effizienz und Geschwindigkeit zu erreichen. Für ein zuverlässiges Engineering in Hyperscaler-Geschwindigkeit wurde es mithilfe des auf Projekt Argo basierenden CN2 mit Pipelines, einem GitOps- und einem Continuous-Integration/Continuous-Delivery (CI/CD)-Modell für NetOps getestet, qualifiziert und eingesetzt.