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 Best Practices 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“.