Der Kunde
Ein großer Telekommunikations-Software- und Hardwareanbieter verwendete Elinext, um eine Anwendung zur Überwachung physischer und virtueller Netzwerkkomponenten in Echtzeit zu erstellen.
Projektbeschreibung
In den letzten Jahrzehnten hat die digitale Wirtschaft einen Boom erlebt. Die Nachfrage nach Online-Diensten ist gewachsen und damit auch der Druck auf Telekommunikationsnetze. Die Anbieter reagierten darauf, indem sie ihrer Systeme neue, fortschrittliche Technologien hinzufügten, aber das hatte seinen Preis.
Telekommunikationsunternehmen mussten schließlich hybride Infrastrukturen betreiben, in denen vielfältige, moderne Software alte Hardware (manchmal sehr klassisch) ergänzte. Die Überwachung solcher Infrastrukturen wurde zunehmend schwierig und kostete Unternehmen viel Geld.
Unser Kunde, ein multinationales Unternehmen für Telekommunikationssoftware und -hardware, hat sich dieser Herausforderung mit einer Produktaktualisierungsidee gestellt. Es handelte sich um ein Gateway-Add-On, das es Telekommunikationsunternehmen ermöglichen würde, softwaredefinierte Netzwerke (SDN) und Netzwerkfunktionen-Virtualisierung (NFV) zu überwachen. Die Überwachung hybrider Netzwerke war zunehmend schwierig und kostete Telekommunikationsunternehmen viel Geld. Mit anderen Worten: Eine neue Lösung musste Hardware und digitale Komponenten auf einem Bildschirm zusammenbringen.
Im Rahmen eines großen internationalen Projekts mit weltweit verteilten Teams haben Elinext-Spezialisten komplexe und anspruchsvolle Netzwerküberwachungs- und Infrastrukturverwaltungssoftware entwickelt. Elinext-Entwickler und Qualitätssicherungsspezialisten waren über 10 Jahre lang an umfangreichen Überarbeitungen und Refactorings von UI-Ansätzen beteiligt, haben Integrationen mit etwa 15 Produkten von Drittanbietern implementiert, strenge Qualitätskontrollprozesse und Standards übernommen sowie eine Vielzahl komplexer Algorithmen und Anwendungen entwickelt und verbessert.
Herausforderung
Das Projekt war mit einer Reihe von Herausforderungen verbunden:
- Riesiger Umfang des Projekts, das eine große Anzahl internationaler Teams von Entwicklern, Testern, UI-Designern umfasst; eine breite Palette von Technologien; verschiedene Fachgebiete;
- Aktive Kommunikation mit Teams in anderen Ländern und dem Kunden: andere Zeitzonen, andere Sprachen, andere Kommunikationsstile;
- Schnelles Erlernen der langen Geschichte des Projekts und der riesigen Menge an zuvor erstelltem Quellcode, erschwert durch die fehlende Entwicklerdokumentation;
- Komplizierte Technologien, verschiedene Formen von Clustern;
- Entwicklung von Software für sehr teure und seltene Geräte in großen Rechenzentren von Telekommunikationsanbietern;
- Plattformübergreifende Unterstützung;
- Ernsthafte UI-Umgestaltung;
- Refactoring der Softwarearchitektur;
- Verarbeitung großer Datenmengen (benötigt mehr Platz als auf regulären Festplatten verfügbar) mit Diagnoseoptimierung, Implementierung spezieller Filter für die Diagnose, Erstellung eigener Diagnosetools.
Der Prozess
Um den Herausforderungen des Projekts am besten zu begegnen, darunter die Entdeckung neuer Technologien, die kundenspezifische Umsetzung sowie das Testen und Visualisieren von Daten auf eine neue Weise, wurde beschlossen, mehrere unabhängige Teams zu schaffen. Im Laufe der Jahre wurde die Anzahl der Elinext-Teams, die diesem Projekt zugeordnet waren, auf 5 erhöht. Alle arbeiten eng mit anderen Teams zusammen, sowohl auf Kundenseite als auch an verschiedenen Standorten weltweit. Online-Meetings mit ausländischen Kollegen und Endkunden finden zu überlappenden Zeiten statt, manchmal auch mit Unterstützung vor Ort für Endkunden. Wir haben den Produkt-Upgrade-Ansatz durch agile Entwicklung umgesetzt, der in vierteljährliche Iterationen für jede Funktion unterteilt ist.
Elinext-Spezialisten haben umfangreiche interne und externe Schulungen absolviert und große Anstrengungen unternommen, um verschiedene Fachbereiche, Technologien und kundenspezifische Anforderungen zu verstehen. Darüber hinaus haben sie sich stets über das interne Entwicklungsportal und die Entwicklerdokumentation auf dem Laufenden gehalten.
Das Kernprojektteam war an der Entwicklung des Programmkerns sowie an Algorithmen zur Speicherung, Transformation, Analyse, parallelen Verarbeitung und Datenkonvolution beteiligt.
Um die Kosten für den Kauf sehr teurer Ausrüstung für Internet- und drahtlose Kommunikationsanbieter zu reduzieren, wurden umfangreiche Simulationen und Labortests durchgeführt. Zur Optimierung der Arbeit mit Daten durch die eingebettete Sprache zur Datenverarbeitung wurde eine API erstellt, die die Datenlogik und Datenoperationen realisiert und die Arbeit mit Datenbanken optimiert.
Neue Technologien entdecken
Die Hybridnetzwerkkomponenten sind auf Host-Ebene miteinander verbunden. Das unterscheidet sich von der modernen Standardeinstellung, bei der Systemeinheiten über die Docker REST API kommunizieren. Daher mussten wir untersuchen, wie die hostbasierten Verbindungen funktionierten, wie wir Daten von ihnen abrufen konnten und wie wir diese Daten visualisieren konnten.
Diese Untersuchung führte uns zur Kenntnisnahme von VMwares NSX-T. Diese Plattform wird von vielen Telekommunikationsanbietern verwendet, um softwaredefinierte Netzwerke (SDN) aufzubauen, die von dem Add-On überwacht werden sollten. Daher mussten wir herausfinden, wie wir NSX-T mit dem bestehenden System und seinem Datenverarbeitungsmodell verbinden konnten.
Es erforderte viel Arbeit, um uns durch Unmengen von Dokumentation zu arbeiten, um die wesentliche Technologie zu verstehen. Aber das war ein entscheidender erster Schritt, der die Grundlage für die Anpassung des Produkts für jeden Endkunden in der Zukunft legte. Ohne diese Grundlage würden wir heute viel mehr Zeit damit verbringen, die Netzwerke von Telekommunikationsanbietern zu studieren.
Implementierung und Test
Das Upgrade erforderte einige Änderungen am Kern der ursprünglichen Technologieplattform. Die wichtigste Änderung bestand darin, von Oracle zu Vertica zu migrieren, und das war im Wesentlichen das Ende der einmaligen Upgrades.
Die Implementierung des Produkts ist kein einmaliger Schritt. Jedes Telekommunikationsunternehmen unterscheidet sich in Bezug auf seine spezifischen Netzwerkanforderungen. Das bedeutet, dass wir die Grundlagen, die wir mit dem Produkt gelegt haben, nutzen müssen, um es für jeden Endkunden neu aufzubauen. Dieser Prozess dauert in der Regel 1,5 Monate.
Eine weitere Entwicklung, die wir für zukünftige Anpassungen entwickelt haben, sind automatisierte Tests. Wir passen sie an und führen sie in einem Netzwerküberwachungssimulator aus, um sicherzustellen, dass alle Verbindungen im Netzwerk wie erwartet funktionieren.
Daten auf neue Weise visualisieren
Der Kunde stellt eine Vielzahl von Geräten her, wobei Netzwerk-Switches die wichtigsten sind, da sie für eine unterbrechungsfreie Kommunikation zwischen den Teilnehmern im Netzwerk sorgen.
Jeder dieser Switches verfügt über einen Chip, der seine Funktionalität enthält. Das Herausfinden des Funktionscodes zur Überwachung der Switches war keine einfache Aufgabe.
Zunächst mussten wir den Code analysieren, der mit den neuen Switch-Typen geliefert wurde. Diese Switches sendeten Daten über eine REST-API, die das ursprüngliche System nicht verarbeiten konnte. Daher arbeiteten wir eng mit den Administratoren und Ingenieuren des Kunden zusammen, um einen Weg zu finden, diese Daten umzuwandeln und verwendbar zu machen.
Die Visualisierung der Daten auf eine neue Weise erforderte ein Update des Frontends. Das ursprüngliche Frontend lief jedoch auf einem veralteten benutzerdefinierten Framework, das als einzelne Webseite erstellt wurde. Obwohl wir uns eine Neuentwicklung des Frameworks nicht leisten konnten, konnten wir dennoch neue React-Komponenten entwickeln und sie in die alte Architektur integrieren. Wir haben ein neues Frontend auf Basis dessen aufgebaut, was sich immer wieder als unverzichtbar erwiesen hat.
Das mag sich zunächst einfach anhören, aber tatsächlich stellte die Integration von modernen Elementen in das veraltete System unsere Fachkenntnisse vor eine große Herausforderung. Aber es hat sich gelohnt: Wir haben im Grunde genommen ein neues Frontend auf Basis dessen aufgebaut, was schon lange vorhanden war und sich als unverzichtbar erwiesen hat.
Integration und Anpassung
Immer wenn ein Endkunde das Produkt mit seinem System nutzen möchte, beginnen wir damit, das Problem zu untersuchen und die Aufgabe zu spezifizieren. Im Rahmen dieser Untersuchung analysieren wir das Netzwerk des Kunden. Das bedeutet, dass wir verstehen müssen, wie spezifische Komponenten funktionieren, wie wir sie integrieren können und wie wir Daten in einem verständlichen Format abrufen können.
Dann bauen wir, wie zuvor erwähnt, ein maßgeschneidertes Produkt auf der zuvor festgelegten Basis auf.
Das Produkt
Die von unserem Kunden bereitgestellte Hardware und Software bilden das Rückgrat des Netzwerks für viele Telekommunikationsanbieter. Wenn etwas kaputt geht, kann es zu Unterbrechungen beim Streaming, beim Spielen oder bei anderen kritischen Prozessen für den Endbenutzer kommen. Das von uns mitentwickelte Produkt ermöglicht es den Anbietern, Probleme im Voraus zu erkennen, sowohl in physischer als auch in digitaler Hinsicht.
Virtuelle Switches
Die meisten Probleme treten auf der physischen Ebene, also auf den in den Boxen eingebauten Chips, die als physische Switches fungieren, auf. Diese Probleme wirken sich auf die Overlay-Ebene aus, die durch virtuelle Switches in Clouds repräsentiert wird und Daten von virtuellen Maschinen und Containern erhält.
Normalerweise bemerken Netzwerkadministratoren nur einen Fehler auf der Overlay-Ebene und können dessen Ursprung nicht bis zur Underlay-Ebene zurückverfolgen. Aber das von uns entwickelte Produkt ändert das.
Wir haben einen Datenaustausch zwischen physischen und virtuellen Komponenten etabliert, bei dem Administratoren Probleme lokalisieren können. Sobald die Ursache eines Problems ermittelt wurde, kann der Anbieter einen Techniker senden, um den physischen Switch zu reparieren, der die Unterbrechung verursacht hat. Normalerweise können Netzwerkadministratoren physische Probleme, die Unterbrechungen verursachen, nicht lokalisieren. Das von uns entwickelte Produkt ändert das.
Es sei erwähnt, dass VMWare keine Hardware produziert oder unterstützt. Dennoch konnten wir softwaredefinierte Netzwerke, die mit VMWare NSX-T aufgebaut wurden, und Hardware-Indikatoren in einer Schnittstelle visualisieren.
Web-Interface
Wir haben eine sinnvolle Verbindung zwischen physischen und virtuellen Komponenten hergestellt. Um diese Verbindung zu visualisieren, haben wir eine Web-Schnittstelle entwickelt.
Die Web-Schnittstelle ist der wichtigste Teil des Produkts. Sie enthält Hunderte von Metriken, die von Netzwerkadministratoren verfolgt werden können, sowie Diagramme und fortschrittliche Analysen. Im Wesentlichen haben wir eine umfassende Topologie virtueller Komponenten aufgebaut und sie innerhalb der Schnittstelle zusammen mit den physischen Komponenten angezeigt.
Neben einfachen Switches können Administratoren die Anwendung verwenden, um Computer und Router zu überwachen, die ein Netzwerk bilden, und dies von einer benutzerfreundlichen Konsole aus. Wenn eine Netzwerkkomponente aufgrund eines Fehlers heruntergefahren wird (z. B. wenn die CPU eines Switches ausfällt), erhalten Systemingenieure sofort eine Benachrichtigung.
Netzwerküberwachungssimulator
Die Anpassungsfähigkeit ist das Herzstück des Produkts. Und es erfordert umfangreiche Tests, um sicherzustellen, dass das Add-On wie erwartet mit dem Netzwerk des Endkunden funktioniert. Eine Möglichkeit, dies zu gewährleisten, besteht darin, den Endkunden um Feedback zu bitten, was für beide Seiten lästig sein kann. Aber wir haben eine bessere Lösung gefunden: einen Netzwerk-Monitoring-Simulator.
Wir senden jedem Endkunden ein Hilfsprogramm, das sie in ihrem System installieren. Und das ist alles, was der Telekommunikationsanbieter tun muss. Das Programm erstellt eine Kopie ihres virtuellen Netzwerks, und wir können diese Kopie für autonome Tests verwenden. Wir haben eine Kopie des virtuellen Netzwerks eines Endkunden erstellt und verwenden sie für autonome Tests.
Sobald wir das Produkt für den Endkunden angepasst haben, führen wir die emulierte Umgebung ein. Dadurch können wir automatisierte Integrationstests durchführen, um sicherzustellen, dass die Verbindungen zwischen den Netzwerkkomponenten ordnungsgemäß funktionieren. Und der Endkunde kann seinen Geschäften nachgehen, während wir das tun.
Ergebnisse
Unser Team hat dazu beigetragen, eine einzigartige Anwendung zu entwickeln, die ausschließlich virtuelle und ausschließlich physische Netzwerkswitches in derselben Benutzeroberfläche kombiniert. Das Ergebnis des Projekts ist ein robustes Softwaresystem, das Tausenden von Endkunden weltweit dabei hilft, komplexe IT-Infrastrukturen effektiv zu warten und schnell auf sich ändernde betriebliche Anforderungen zu reagieren. Die entwickelte Software liefert Echtzeitinformationen über IT-Infrastrukturobjekte, sammelt Leistungsstatistiken über Hardware und ermöglicht es, die Kontrolle über ihre Funktionen zu übernehmen. Telekommunikationsanbieter profitieren davon, indem sie unterbrechungsfreie Online-Erlebnisse für ihre Kunden sicherstellen, deren Nachfrage stetig wächst.