Das Ziel der Netzwerk-Management-Cloud
Der Gedanke, Netzwerk-Komponenten in einer Cloud zu überwachen und zu konfigurieren ist nicht neu. Viele Hersteller bieten eine Möglichkeit, deren Komponenten in einer Cloud zu verwalten. Leider verfolgt jeder Hersteller seinen eigenen Ansatz und keiner der Hersteller hat eine Möglichkeit geschaffen, fremde Komponenten in seine Lösung zu integrieren.
Ich arbeite in einem kleinen IT-Dienstleistungs-Unternehmen, der MSD Computersysteme GmbH. Hier arbeiten wir mit Cloud-Lösungen diverser Hersteller um die aktiven Netzwerkkomponenten unserer Kunden zu betreuen. Cloud-Lösungen bieten mir viele Möglichkeiten der Überwachung und erleichtern die Konfigurationsarbeiten. Ich arbeite sehr viel mit Open-Source-Betriebssytemen wie Linux und zugehöriger Open-Source-Software, um die benötigten Funktionalitäten für unsere Kunden in allen gewünschten Szenarios bereit zu stellen. Eine cloudbasierte Lösung hat mir bislang gefehlt, was ein entscheidender Grund war, ein solches System selbst zu entwickeln.
Der Gedanke ist entstanden
- Überwachung der aktiven Netzwerk-Komponenten in einer Cloud (Bisher mit Nagios, Icinga, etc. durchgeführt) mit vollautomatischen Benachrichtigungen bei erkannten (kommenden) Problemen oder Ausfällen.
- Einfache Änderungen an den Konfigurationen der Geräte in der Cloud durchführen zu können.
- Ein absolut sicheres System zu entwickeln, dass es ermöglicht, aktive Netzwerkkomponenten in eine Cloud zu integrieren, ohne die Sicherheit des Netzwerkes zu schwächen.
- Fehlerhafte Konfigurationsänderung automatisch zurückrollen zu können.
- Eine Netzwerkstruktur auch mit Geräten von Drittherstellern abbilden und konfigurieren zu können.
- Ein modulares System aufzubauen, dass dem Benutzer die Möglichkeit gibt, sein System komponentenbasiert in die Cloud zu integrieren, ohne Overhead "mitschleppen" zu müssen.
- Eine kleine "Datenbank" von Dokumentationen zu erstellen und anzubieten, wir man Netzwerk-Komponenten, deren Kontollprogramme und Bibliotheken benutzt.
- Auf lange Sicht auch (Hardware-)Netzwerkkomponenten unter der Open-Source-Lizenz anzubieten, die die Cloud-Verwaltbarkeit generisch unterstützen.
- Klein anfangen und immer mehr Möglichkeiten bieten.
Aktueller Stand
Aktuell nutze ich die NMC-Cloud, aber ich bin der einzige Nutzer und bin (fast) zufrieden mit den ersten Funktionen. Das liegt nicht daran, dass ich das Projekt jemandem vorenthalten möchte, aber ich möchte erstens Sicherheitstandards einhalten, (z.B. Client-Zertifikate für die Geräte), zu deren Programmierung ich noch nicht gekommen bin und zweitens möchte ich keine "halbfertige" Funktion anbieten. Drittens bin ich mir nicht sicher, welche Anforderungen an die Cloud-Server gestellt werden, so dass es nicht zu "ungewöhnlichen" Anwortzeiten kommt. Deshalb, und weil ich diese Info benötige, bin ich an Intereessen für einen "Alpha-Test" interressiert, die "nicht produktive" Geräte für erste Test einbinden können. Eine "Veröffentlichung" ist meine erste Priorität und wird (hoffentlich kurzfristig) erfolgen können.
Open Source
Ich habe mich für eine Open-Source-Lösung entschieden - unter anderem weil ich die vielen millionen Arbeitsstunden der freien Entwickler und Helfer würdige, die mir und uns ein solch stabiles und nutzvolles System zur Verfügung gestellt haben. Ich bin gerne bereit, der Open-Source-Community etwas zurückzugeben und beizutragen. Aber ich habe mich auch für Open-Source entschieden, weil ich alleine keine solche Lösung in einem angemessenen Zeitrahmen erstellen kann. Ein solches System bedarf der Hilfe vieler Programmierer, um für die unterschiedlichen Plattformen (Linux, BSD, Windows) Programme und Skripte zu entwickeln und anzupassen und die Ansteuerung und Konfiguration für Geräte verschiedener Hersteller zu erstellen und zu pflegen und vieler Helfer, die bereit sind anderweitig an einem solchen Projekt mitzuwirken (Planung, Ideen geben, testen, Dokumentation, Übersetzungen, Pakete bauen, etc.).
Der Gedanke zu diesem Projekt ist neu. Anfang Februar 2023 habe ich erste Tests durchgeführt, Server aufgesetzt, kleine Client-Skripte entwickelt und einen ersten Server als zentrale Cloud-Komponente in Betrieb genommen. Nun, da meine Tests mir bestätigen, dass ein solches System machbar und sinnvoll ist, werde ich eine erste kleine Dokumention erstellen, die potentiellen Helfern und Entwicklern die Möglichkeit geben soll, an dem Projekt mitzuwirken. Gleichwohl ich keine Erfahrung habe, wie man Open-Source-Projekte plant, gestaltet und umsetzt, lasse ich mich auf dieses Abenteuer ein. Seid nachsichtig mit mir.
Andere Distributionen / Systeme
Ich arbeite (fast) ausschliesslich mit Debian/GNU-Linux, Lancom- und Windows-Systemen für unsere (die der MSD Computersysteme GmbH und der Soxsis GmbH) Kunden. Deshalb kann ich von mir behaupten, dass ich mir zu diesen Systemen umfassende Informationen angeeignet habe und mich "auskenne". Aus diesem Grund werde ich auf dieser Website primär die Funktionen der NMC-Cloud auf der Basis dieser Systeme programmieren und erklären. Das soll aber nicht heißen, dass ich andere Systeme ablehne ode nicht einbeziehen möchte. Ganz im Gegenteil bin ich dankbar, wenn wir Informationen und Code (Module) zu anderen Systmen einbinden können - ich werde diese Infos gerne auf dieser Website veröffentlichen und in das System einbeziehen.