Vereinfachung der Installation von industrieller Telekommunikationssoftware
Vereinfachung der Installation von industrieller Telekommunikationssoftware
Information
Standort:
Weltweit
Branche:
Telekommunikation
Plattform:
Web Entwicklung
Arbeitsmodell:
Zeit und Material
Projektdauer:
Seit 2020
Team-Mitglieder:
2 Java-Entwickler
Verwendete Technologien
Java
Shell

Kunde

Ein großer Anbieter von Telekommunikationssoftware und -Hardware wünschte sich eine Anwendung für den Einsatz seiner Software in den Systemen seiner Kunden zu erstellen.

Herausforderung

Der Kunde liefert Software an Telekommunikationsunternehmen. Diese Unternehmen müssen diese Software installieren, und sie mussten dies früher manuell tun, was eine äußerst herausfordernde Aufgabe war.

Kunden müssten neben einigen anderen Parametern eine Reihe von YML-Dateien und Konfigurationsdateien bereitstellen, die beschreiben, welche Docker-Images in welcher Reihenfolge verwendet werden müssen. Um die Aufgabe für Kunden zu vereinfachen, machte sich unser Kunde daran, ein Installationsprogramm zu entwickeln.

Das Unternehmen begann mit der Zusammenstellung einer Reihe von Shell-Skripten, die schließlich in eine Java-Anwendung umgewandelt wurden. Und da suchten sie Hilfe. Zu diesem Zeitpunkt hatte Elinext bereits bei anderen Projekten mit dem Unternehmen zusammengearbeitet. Daher haben wir uns bei der Auswahl eines Entwicklers als natürliche Wahl herausgestellt.

Prozess

Wir begannen damit, die Anwendung zu untersuchen, die der Kunde bereits seit einiger Zeit entwickelt hatte. Seine Natur brachte einige Herausforderungen mit sich, wobei die beiden wichtigsten die Zusammenarbeit mit den DevOps der Endkunden und die Beschränkung des Clusterzugriffs waren.

Pairing-Programmierung mit DevOps

Das Installationsprogramm stellt dem Benutzer eine Frage und validiert die Antwort. Wenn jedoch die wesentlichen Daten verfügbar sind, überspringt das Installationsprogramm den Schritt, den Benutzer um Informationen zu bitten, und gibt die Eingaben automatisch ein. Der Installer kann dem Benutzer auch eine Auswahl möglicher Werte anbieten.

Die Validierung der Benutzerantwort erfordert die Kommunikation mit einem Kubernetes- oder Openshift-Cluster. Diese Cluster sind Teil der Systeme der Endkunden, daher müssen wir eng mit den DevOps der Kunden zusammenarbeiten. Wir geben ihnen Anweisungen und stellen sicher, dass sie verstehen, wie sie diese befolgen.

Beschränkung des Cluster-Zugriffs

Die ursprüngliche Idee des Installers war ein Cluster-Verwaltungsprogramm, eine Anwendung, die vollen Zugriff auf die Cluster der Endkunden hat. Telekommunikationsunternehmen hatten jedoch ihre Sicherheitsbedenken. Sie hatten andere Anwendungen in denselben Clustern installiert und befürchteten, dass diese im Falle eines Verstoßes betroffen sein könnten.

Daher mussten wir den Zugriff des Installers auf Cluster beschränken, was die Entwicklung erschwerte. Wir haben den Code geändert und in der Produktdokumentation ein Szenario für die Installation der Software als Namespace-Administrator ohne Zugriff auf Clusterebene beschrieben.

Benutzer mit eingeschränkten Berechtigungen haben weniger Möglichkeiten, Eingaben zu validieren oder automatisch auszufüllen. Wir haben auch die Schritte, die Zugriff auf Clusterebene erfordern (ansonsten von privilegierten Pods durchgeführt), als Voraussetzungen für dieses Szenario in der Dokumentation beschrieben. Beispielsweise muss der Cluster-Administrator persistente Volumes vorbereiten, Ordner auf NFS erstellen und die richtigen Benutzer-/Gruppenberechtigungen für diese Ordner festlegen.

Implementierung und Testen

Auch die Qualitätssicherung gehörte bei diesem Projekt zu unseren Aufgaben. Wir verwenden JUnit-Tests, begleitet von automatisierten Tests.

Produkt

Der Installer ist eine komplexe Software – und aus der Sicht des Benutzers eine sehr einfache App. Wir haben für diese Angelegenheit keine bestimmte Benutzeroberfläche oder andere Elemente im Zusammenhang mit der Benutzererfahrung entworfen oder erstellt.

Stiller und interaktiver Modus

Die Anwendung verfügt über zwei Modi: Silent-Modus und interaktiver Modus.

Im interaktiven Modus stellt Ihnen das Programm Fragen zu Ihrer Umgebung und den Produkten, die Sie installieren möchten.

Im unbeaufsichtigten Modus laden Sie YML-Dateien mit Eingaben entweder aus einer früheren Installation oder manuell im interaktiven Modus ausgefüllt hoch. Sie können auch YML-Dateien mit benutzerdefinierten Eingaben vorbereiten, um Teile der Funktionsweise der Software zu automatisieren, und sie im unbeaufsichtigten Modus hochladen.

Eingabevalidierung und Bereitstellung

Sobald Eingaben eingegeben wurden, überprüft das Installationsprogramm den Kubernetes- oder OpenShift-Cluster, um diese Eingaben zu validieren und sie mit Cluster-Parametern abzugleichen. Danach füllt das Skript entweder Benutzerantworten aus oder setzt Standardwerte an ihre Stelle.

Im nächsten Schritt lädt das Installationsprogramm Docker-Images aus einer Datei oder Registrierung herunter und verschiebt sie in die vom Cluster verwendete Registrierung. Schließlich werden YML-Dateien angewendet, um Objekte zu erstellen, die den wesentlichen Elementen der zu installierenden Software entsprechen.

Ergebnisse

Die Anwendung, die wir dem Kunden bei der Erstellung unterstützt haben, hat die Installation seiner Software für Endkunden vereinfacht. Es erfordert jedoch viel Arbeit auf unserer Seite und wird als Zwischenschritt auf dem Weg zur Verbesserung des Prozesses betrachtet. Wir helfen dem Kunden jetzt, eine bessere Lösung zu finden.

Haben Sie vor, ein gleiches Projekt zu schaffen?
Haben Sie eine Projektidee? Lassen Sie uns darüber diskutieren
Kontakt