featured image

Konzernweites Netzwerkmanagement

In diesem Projekt haben wir eine geschäftskritische Anwendung für das Management des Corporate Network eines international tätigen DAX-Konzerns mit mehr als 100.000 Mitarbeitern programmiert.

Ziel des Projektes war die Migration der Altanwendung in eine moderne, performante und zukunftssichere Nachfolgelösung.

Irgendwann ist selbst die beste Software am Ende

Die vom Kunden konzernweit eingesetzte Altanwendung hatte sich über einen außergewöhnlich langen Zeitraum im Wirkbetrieb bewährt. Ein Relaunch war unvermeidlich:

  • unter der Haube steckte ein 15 Jahre alter Software-Stack, der über die Jahre nur wenig Modernisierung erfahren und das Ende seines Lebenszyklus erreicht hatte
  • ein Teil der bisher angebundenen Systeme musste durch neue Systeme ersetzt oder (wegen fehlenden Supports) abgeschaltet werden, wodurch grundlegende Änderungen in der Struktur der Altanwendung notwendig wurden
  • die Altanwendung wurde als monolithische Anwendung entworfen, Frontend und Backend waren so eng miteinander verzahnt, dass ein Austausch einzelner Komponenten nicht möglich war, ohne einen aufwendigen Rollout für das Gesamtsystem vorzunehmen

Da die Altanwendung technologisch und funktional nicht mehr den Anforderungen entsprach, fiel die Entscheidung für einen Relaunch als die wirtschaftlichste Alternative.

Gut gerüstet für die Zukunft

Die Entwicklung der Anwendung umfasste neben allen anderen Phasen auch die Erstellung eines Architekturkonzeptes.

Software in the Cloud und IT-Security

Die neue Anwendung wurde als Software in the Cloud implementiert - nach erfolgreicher Freigabe durch die Konzernsicherheit:

  • wir haben die Vorgaben des BSI (BSI-TR-02102-1) umgesetzt und die empfohlenen Signatur- und Verschlüsselungsalgorithmen verwendet
  • die neue Anwendung ist gehärtet gegen gängige Attacken wie XSS, CSRF, JavaScript- oder SQL-Injection
  • regelmäßige Updates sorgen für eine zeitnahe Einspielung sicherheitskritischer Patches
Microservices

Mit einer Microservice-Architektur haben wir die neue Anwendung ins Cloud-Zeitalter transportiert und die Grundlagen für eine langfristig stabile, tragfähige und an den Bedürfnissen der Nutzer orientierte Anwendung geschaffen.

Mit einer REST-basierten Microservice-Architektur haben wir eine zeitgemäße und sichere Schnittstelle implementiert. Die Schnittstelle ist gemäß OpenAPI exakt spezifiziert, um den Datenaustausch zwischen der neuen Anwendung und anderen Systemen zu ermöglichen.

Eine tragfähige Software-Architektur

Der von uns verwendete Software-Stack basiert im Backend auf dem Standard Eclipse Microprofile , der eine gelungene Synthese aus neuen Microservice-Standards und etablierten Jakarta-EE-Standards darstellt. Die kontinuierliche Weiterentwicklung und Pflege unter dem Dach der Eclipse-Foundation ist auch in den nächsten Jahren sichergestellt.

Zur Implementierung verwendet unsere Lösung das Quarkus-Framework , da dieses in idealer Weise die Nutzung von Java in Cloud- bzw. Kubernetes-Umgebungen ermöglicht. Die im Software-Stack enthaltenen Technologien (Microservices, REST, CDI, JPA, JWT, OpenAPI) werden von uns seit mehreren Jahren mit Erfolg in diversen Projekten eingesetzt.

Ein modernes, responsives und barrierefreies Frontend als Single-Page Application (SPA) auf der Basis von Vue.js und Bootstrap sorgt für Überblick und erleichtert die Bedienbarkeit.

Software-Architektur für das Projekt Konzernweites Netzwerk-Management

Die Entwicklung nach dem Clean Code-Standard sowie die Einhaltung von Quality Gates in Bezug auf vorgegebene Code-Richtlinien erhöht die Code-Qualität, erleichtert das Verständnis des Codes und hilft, verbreitete Fehlerpattern zu vermeiden.

Lose Kopplung

Das Frontend ist in dieser Konstellation vollständig vom Backend entkoppelt und lediglich ein weiterer Nutzer des Backends. Die gewählte Architektur berücksichtigt die Vorgaben bezüglich Trennung von Frontend, Backend und Datenhaltung.

Mit dem von uns gewählten Technologiestack haben wir erprobte und bewährte Technologien, die auch in den nächsten Jahren noch unterstützt und weiterentwickelt werden, genutzt.

Agiles Vorgehen

  • das Projekt wurde agil und komplett remote durchgeführt
  • durch das agile Vorgehen nach Scrum bieten wir die größtmögliche Transparenz und Flexibilität in allen Phasen der Entwicklung
  • regelmäßige Vor-Ort-Treffen, z. B. zur Releaseplanung, stärkten den persönlichen Kontakt
  • unser Kunde hatte täglich einen Eindruck über die erzielten Projektfortschritte und erhielt im Rahmen der alle 3 Wochen stattfindenden Sprint Reviews regelmäßig und zeitnah die Entwicklungsergebnisse zur Abnahme
  • der Kunden war so von Anfang an aktiv im Entwicklungsprozess eingebunden und konnte Einfluss nehmen

Continuous Integration

Ein wesentliches Ziel von Continuous Integration ist die Steigerung der Softwarequalität.

Continuous Integration betrifft die Prozesse bei der Software-Entwicklung: neu entwickelte Anwendungsfunktionen werden zeitnah und fortwährend in die bereits bestehenden Teile einer Software integriert. Dazu nutzen wir im Wesentlichen die folgenden Tools und Plattformen:

  1. Software-Versionsverwaltung mit Git/GitLab
  2. Verwaltung von Software-Repositories mit JFrog Artifactory
  3. Automatisiertes Erstellen der Software (Build-Prozess) mit Apache Maven (Backend), npm (Frontend)
  4. Kontinuierliche Test-Entwicklung in Form von automatisierten Integrations- und Unit-tests mit JUnit, TestContainers, WireMock und Cyp
  5. automatische Kontrolle der Code-Qualität über SonarQube
  6. regelmäßige Integration neuer Anwendungsfunktionen in die gemeinsame Code-Basis im Rahmen von DailyBuilds
  7. automatisierte Einspielung in Abnahme- bzw. Produktivumgebungen mit Kubernetes

Kontakt

Sie haben Interesse an unseren Dienstleistungen und wollen Ihr Projekt besprechen oder sich in einem persönlichen Gespräch zunächst näher informieren? Wir freuen uns immer auf neue und interessante Projekte. Senden Sie uns eine unverbindliche und kostenlose Anfrage.