Suchen

Open-Source-Automatisierungslösung Software für Open Networking und IaC-Implementierungen

| Autor / Redakteur: Rama Darbha / Dipl.-Ing. (FH) Andreas Donner

Cumulus Networks bietet eine quelloffene, einsatzbereite, robuste und vollständig automatisierte Konfigurations- und Testlösung unter Verwendung von Ansible. Mit ihr können Unternehmen auf dem Weg zum vollautomatisierten Netzwerk die Vorteile von Infrastructure as Code (IaC) nutzen.

Firma zum Thema

Die Automatisierungs- und Testing-Suite von Cumulus bietet u.a. ein Dateiobjektmodell mit einem Satz von Variablen, Jinja2-Templates und Ansible-Playbooks.
Die Automatisierungs- und Testing-Suite von Cumulus bietet u.a. ein Dateiobjektmodell mit einem Satz von Variablen, Jinja2-Templates und Ansible-Playbooks.
(Bild: Cumulus Networks)

Angesichts zukunftsweisender Technologien wie 5G, Cloud, IoT und vielem mehr suchen Unternehmen nach innovativen Netzwerkimplementierungen, die neue Automatisierungskonzepte wie IaC und CI/CD (Continuous Integration/Continuous Delivery) nutzen. Zugleich führt der exponentiell wachsende Datenverkehr dazu, dass sich die Netzwerkinfrastruktur immer schwerer managen und bereitstellen lässt. Ausgebremst durch den Kosten- und Zeitaufwand für den Aufbau vollautomatisierter Lösungen haben die Unternehmen nur einen Wunsch: eine Lösung, mit der sie ihre Netzwerke innerhalb kürzester Zeit auf den Stand der Technik bringen können.

Mit der quelloffenen, sofort einsatzbereiten, robusten und vollständig automatisierten Konfigurations- und Testlösung unter Verwendung von Ansible befreit Cumulus Networks Unternehmen von dem Zwang, für die Automatisierung ihrer Netzwerke auf unterschiedliche, nicht getestete Skripte und Proof-of-concept-Playbooks zurückzugreifen. Cumulus stellt ein Framework für eine elegante „Pushbutton“-Lösung bereit, die eine zeitgemäße Netzwerkautomatisierung ermöglicht und zugleich den operativen Overhead reduziert. Konkret bietet die neue Automatisierungs- und Testing-Suite:

  • ein Dateiobjektmodell mit einem umfangreichen Satz von Variablen,
  • vollständige Jinja2-Templates,
  • Ansible-Playbooks und eine umfangreiche Bibliothek von Netzwerkvalidierungstests für die kontinuierliche Integration (CI),
  • das komplette Framework für eine praxistaugliche IaC-Implementierung,
  • Verwendung von Ansible-Kernmodulen ohne die Notwendigkeit von Add-ons oder Plug-ins.

Infrastructure as Code und CI/CD

Neben der grundlegenden Automatisierung der Netzwerkkonfiguration wünschen sich Unternehmen mehr Effizienz und eine freiere Skalierbarkeit. Dabei rücken zwei innovative Ansätze besonders in den Fokus: Infrastructure as Code (IaC) und CI/CD. IaC ermöglicht eine zentral regulierbare Bereitstellung der Netzwerkinfrastruktur, bei der getestete und bewährte Workflows für die Softwareentwicklung verwendet werden können. Anders ausgedrückt: Die Netzwerkkonfiguration (oder „Infrastruktur“) lässt sich per Softwarecode verwalten und bereitstellen. Der Code wird entsprechend dem jeweiligen Entwicklungsmodell geschrieben und erzeugt eine Arbeitsumgebung, die von den Anwendern ausgeführt wird. Beim Networking muss der resultierende Infrastrukturcode voll funktionsfähige Konfigurationen ergeben, die letztendlich auf die Geräte aufgespielt werden. Die Schwierigkeit besteht darin, die Codierung der Infrastruktur in der Praxis umzusetzen.

Ein IaC-Netzwerk lässt sich auf verschiedene Arten realisieren; sie alle sind abhängig von der verwendeten Automatisierungsengine. Als einer der ersten Schritte wird normalerweise festgelegt, wie der Code implementiert bzw. gespeichert wird.

Im Falle der Cumulus-Lösung wird die finale Konfiguration der Netzwerkgeräte während des Deployments durch Ansible bereitgestellt, basierend auf Jinja2-Konfigurationsvorlagen, Variablen und Rollenzuweisungen in Ansible. Die finalen Netzwerkkonfigurationsdateien werden zwar als Referenz in den Demo-Repositories abgelegt, dienen jedoch nicht als Quelle für die Konfiguration der Geräte. Der eigentliche „Infrastrukturcode“ besteht nicht nur aus Backups der Konfigurationsdateien, die von Experten einzeln modifiziert und bereitgestellt werden. Er bildet ein Datenmodell, das deutlich stärker organisiert und besser skalierbar ist und das Templates und Konfigurationsdateien verwendet.

Selbstverständlich ist der Code gründlich getestet – ein weiterer wichtiger Aspekt für ein einfaches, fortschrittliches Networking. Das Prinzip der testgetriebenen Entwicklung ist ein wesentlicher Baustein der kontinuierlichen Integration, kurz CI. Auch für IaC und unser Verständnis einer „korrekten“ Netzwerkautomatisierung spielt es eine entscheidende Rolle. Die neue Cumulus-Suite stellt das Framework für eine elegante CI/CD-Lösung bereit, wie sie für die allermeisten Unternehmen bis dato nicht erreichbar war.

Die Software beinhaltet automatisierte Tests, bei denen die NetQ-Telemetrie- und Validierungsplattform von Cumulus zum Einsatz kommt. Wenn Code an das Repository übergeben wird, löst dies automatisch die Erzeugung einer Virtual-Lab-Umgebung mit Cumulus VX aus. In der Folge werden umfangreiche Netzwerktests durchgeführt, darunter die Validierung von MTUs, Ping-Tests zur Überprüfung der End-to-End-Konnektivität und die Sicherstellung, dass alle Routingsitzungen erwartungsgemäß aufgebaut werden. Das Resultat: sofortige Verfügbarkeit von CI und eine solide Grundlage für die weiterführende Automatisierung mittels CD.

Von der Theorie zur Praxis

Cumulus wird in Kürze weitere Szenarios veröffentlichen, die gängige Netzwerkservices wie SNMP, Streaming-Telemetrie und 802.1x beinhalten.

Die betreffenden Playbooks und CI-Tests bilden „lebende“ Konfigurationen, die basierend auf Feedback aus realen Deployments fortlaufend aktualisiert und verbessert werden. Zum Einsatz kommen sie im täglichen Geschäft der Cumulus-Consulting-Organisation, die für die Entwicklung und Automatisierung von Kundennetzwerke zuständig ist. Jeder Cumulus-Anwender, der diese Konfigurationen in seinem eigenen Produktionsnetzwerk verwendet, kann sich darauf verlassen, dass sowohl die Automatisierung als auch die resultierenden Konfigurationen getestet, validiert und absolut zuverlässig sind. Damit ist kein Unternehmen mehr gezwungen, auf eigene Faust Beispiele zu suchen, die seinem Anwendungsfall dann nur bedingt entsprechen.

Nicht wenige Unternehmen verfügen weder über die Tools noch über die Praxisbeispiele, um ihre Teams für die Netzwerkautomatisierung fit zu machen. Mit der produktionsfertigen Automatisierungslösung von Cumulus können sie nach dem Copy-and-paste-Prinzip vorgehen und sofort mit der Automatisierung starten, ohne ihre Mitarbeiter schulen oder Konfigurationen aus zahllosen Einzelteilen zusammensetzen zu müssen. Automatisierte Konfigurationen ersparen den Administratoren nicht nur viel Kopfzerbrechen, sondern – und dies ist noch wichtiger – verringern die Gefahr von Betriebsunterbrechungen und Netzwerkausfällen.

Ergänzend hierzu wird aktuell ein Update für Cumulus in the Cloud ausgerollt, die Self-Service-Demo-Umgebung für Cumulus-Kunden. Die Highlights:

  • ein komplettes Spine-and-Leaf-Netzwerk auf Basis von Cumulus Linux mit Servern, die Ubuntu ausführen, der Integration aller Knoten mit Cumulus NetQ und einer Implementierungsdauer weniger als fünf Minuten,
  • sofort bereitstellbare, produktionsfertige Demos,
  • eine Cumulus-NetQ-2.0-CLI- und GUI-Instanz für Demo-Umgebungen.

In den kommenden Wochen sind weitere Ergänzungen zu Cumulus in the Cloud geplant:

  • selbstgesteuertes Lernangebot für Cumulus Linux.
  • maßgeschneiderte Labortopologien,
  • zusätzliche Features wie SNMP, Streaming-Telemetrie und 802.1x-Support.

Über den Autor

Rama Darbha ist Senior Consulting Engineer bei Cumulus Networks.

(ID:46401309)