Projekte mit dem Einsatz von Continuous Delivery
Um alle Projekte zu sehen, entfernen Sie den Filter
DIVID, die Einwegkunststofffonds-Plattform
Das Projekt DIVID ist die digitale Plattform des Umweltbundesamtes (UBA) zur Umsetzung des Einwegkunststoff-Fondsgesetzes (EWKFondsG) mit dem Deutschland die erweiterte Herstellerverantwortung gemäß EU-Einwegkunststoffrichtlinie in nationales Recht überführt hat. Die Plattform dient als zentrale Anlaufstelle für Hersteller, Kommunen und andere Anspruchsberechtigte. Hersteller von Einwegkunststoffprodukten werden damit an den Kosten für Reinigung, Sammlung und Entsorgung beteiligt. Die DIVID-Plattform wird auf Basis eines modernen Technologie-Stacks mit den Leitprinzipien Modularität, Microservices und API-First iterativ entwickelt und ermöglicht die benötigte digitale Abwicklung aller Prozesse von der Herstellerregistrierung, deren Mengenmeldung bis hin zur Fondsverwaltung und Auszahlungsabwicklung an anspruchsberechtigte Gruppen.
- Fusion von funktional zusammengehörigen Microservices
- Automatisierte Datenmigration der verteilten Datenbanken in ein gemeinsames Schema
- Anpassung des API Gateways
- Erstellen der CI Pipeline in Azure Devops
- Konfiguration der Messung der Codeabdeckung (Code Coverage)
- Ausrollen von Sonarcube in einer IaC-Pipeline
Monitoring einer Applikation
cover.mesh hatte eine bereits bestehende Applikation in der Versicherungsdaten angelegt wurden. Ziel des Projektes war die Echtzeit-Erfassung von Datenänderungen im dem neuen Backoffice-Service inklusive einer grafischen Aufbereitung als Zeitreihen-Analyse in einem interaktiven Web-Dashboard.
- Implementierung von Event-Sendens innerhalb der Persistierungsschicht
- Konfiguration und Anbindung des Azure Event Hubs
- Entwicklung einer zuverlässigen Nachrichten-Logik (At-least-once delivery)
- Implementierung der Berechnung der Zeitreihen
- Erstellen des Webportal mit Blazor Server Pages
- Entwicklung von dynamischen Balkendiagrammen zur Darstellung von Zeitreihen-Analysen
- Erstellen der CI/CD Pipeline ins Azure Devops
Berechnung von Versicherungen für Altersheime
cover.mesh ist Teil der SCHUNCK GROUP und entwickelt für diese digitale Lösungen. Die SCHUNCK GROUP ist ein Unternehmen der Ecclesia Gruppe und der größte deutsche Versicherungsmakler für Unternehmen und Institutionen. Aufgabe des Projektes war es ein Webplattform bereitzustellen, die Berechnungen anhand fachlicher Regeln durchführt.
- Erstellen des Webportal mit Blazor Server Pages
- Erstellen der CI/CD Pipeline ins Azure Devops
- Implementierung der fachlichen Logik
cLean – Inkassosoftware
Lowell verfolgte mit dem Projekt cLean den Aufbau einer einheitlichen Inkassosoftware für alle Unternehmen. Dabei sollten alle Forderungen der DACH-Organisation in einem hochverfügbaren System möglichst automatisiert verarbeitet werden. Ein Hauptaugenmerk war dabei die mögliche Skalierung des Systems zu bestimmen Zeiten, in denen viele Forderungen importiert werden mussten. C# war die primäre Programmiersprache aber einzelne Services wurden mit Kotlin und Go umgesetzt.
- Architektur des Microservices-Systems
- Schneiden der Services nach den Domänen der Fachlichkeit (DDD)
- Schneiden der Daten in Aggregate
- Konzept und Entwurf eines sowohl menschen- als auch computerlesbaren Aktenzeichens
- Konzept einer unveränderbaren Buchhaltung mit Event Sourcing
- Konzept und Implementierung der Buchhaltungskomponente unter Einhaltung der fachlichen Regeln
- Recherche der Verrechnungslogik in Deutschland und Österreich
- Implementierung der Fachlogik
- Realisierung von Suchanfragen über verteilte Systeme (separater Service mittels CQRS)
- Teamübergreifendes Coaching, Schulungen und Hilfestellungen
API-First
Lowell verfolgt eine API-First Strategie. Ziel war es, die API auch außenstehenden Prozessen zur Verfügung zu stellen. Deswegen wurde eine zentrale API vollautomatisch bereitgestellt und von allen Services genutzt. Die API unterliegt strengen Richtlinien an Design und Abwärts- und/oder Aufwärtskompatibilität je nach Anwendungsfall.
- Konzept und Erstellung eines zentralen API-First-Repositories auf Basis von Protobuf
- Automatisierte Erzeugung von Release und Pre-Release Versionen für mehrere Programmiersprachen für die Optimierung der Entwicklungsgeschwindigkeit
- Konzept einer API-Versionierung
- Erstellen von APIs
- Dokumentation der API
- Review von APIs mit primärem Fokus auf Verständlichkeit, Dokumentation und Breaking Changes
Umzug eines On-Premise Kubernetes Clusters in die Azure Cloud
Zunächst wurden die Services in einem On-Premise Kubernetes Cluster betrieben. Ziel des Projekts war, alle Services auf die Azure Cloud umziehen. Außerdem wurden Techniken und Cloudservice evaluiert, Hilfsklassen und Template für die zukünftige Entwicklung und eine CI/CD Pipeline erstellt.
- Auswahl der zu nutzenden Cloud-Services in Absprache mit dem Architekten
- Absprachen über zukünftige Autonomie der Entwicklerteams
- Review bestehenden Code und daraus resultierender Best-Practices
- Dokumentation des Transaction Outbox Pattern und Idempotenz, Aggregaten und anderen nützlichen Microservice Pattern
- Hilfsklassen für die Zustellung und Empfang von Protobuf Business Events
- Erstellung des CI-Teils der CI/CD Pipeline
- Evaluierung und Implementierung von Azure Serverless
- Aufsetzen der Infrastruktur unter Anwendung von InfrastructureAsCode (IaC)
- Liveness-Check / Readiness-Check für Services in Kubernetes
- Erstellung von Cronjobs in Kubernetes
- Erstellung von C# Templates für die Erstellung neuer Services
Verifikation von Anrufern
Konsumenten können bei Lowell anrufen. Die Anzahl der Anrufe liegt in Spitzenzeiten bei einem Anruf alle zwei Sekunden. Es wurde in Zusammenarbeit mit einem Anbieter für IVR-System (Interactive Voice Response) ein System geschaffen, bei dem der Anrufer sich automatisch mit Aktenzeichen und persönlichen Daten verifiziert. Nach erfolgter Verifikation wird er an einen Sachbearbeiter weitergeleitet, bei dem sich automatisch die richtige Akte öffnet. Der Fokus des Projekts lag auf der höchstmöglichen Verfügbarkeit, da Ausfälle erheblichen Mehraufwand beim Sachbearbeiter erzeugt hätten.
- Anbinden neuer Subunternehmen von Lowell
- Anpassungen und Erweiterungen der Schnittstellen
- Definition der API mit Fokus auf Kompatibilität
- Kommunikation der API zu Drittanbietern
- Testen der Schnittstelle lokal, im CI Build als auch in Produktion (teils nur halbautomatisiert)
- Ausrollen der API mit Zero Downtime in einem Kubernetes Cluster
- Analyse und Beheben von Fehlern in der Produktion anhand von Logeinträgen
- Analyse von Verbindungsproblemen im Akka.NET Code
- Monitoring der eingehenden Anrufe
Forderungsdaten für das Konsumentenportal
Das Konsumentenportal von Lowell ist eine zentrale, digitale Service-Plattform für Personen, die offene Forderungen bei dem Inkassodienstleister haben. Lowell besteht aus mehreren Unternehmen, die sowohl organisatorisch als auch technisch voneinander getrennt sind. Dabei mussten mehrere verschiedene Inkassosoftware-Systemen auf eine API abgebildet werden.
- Anbinden neuer Subunternehmen von Lowell
- Anpassungen und Erweiterungen der Schnittstellen
- Definition der API mit Fokus auf Kompatibilität
- Testen der Schnittstelle lokal, im CI Build als auch in Produktion (teils nur halbautomatisiert)
- Ausrollen der API mit Zero Downtime in einem Kubernetes Cluster
- Analyse und Beheben von Fehlern in der Produktion
- Reduzierung der Anzahl der Services, da die Microservices zu klein geschnitten waren
- Behebung von Sicherheitslücken und Härtung der API-Schnittstellen nach Penetrationstests
- Anleitung des Entwicklerteams um erkannte Schwachstellen nachhaltig zu vermeiden
- Verteidigung der Systemarchitektur gegenüber externen Security-Auditoren
Schleupen.CS 3.0 – Architektur und Framework
Die Schleupen.CS-Softwarelösung ist eine verteilte Software mit zahlreichen sowohl fachlichen als auch technischen Bausteinen mit dem Ziel, eine standardisierte sowie konfigurierbare Softwarelösung für die Energie- und Wasserwirtschaft für unterschiedliche Marktrollen bereit zu stellen. Das Team „Architektur und Framework" arbeitet dabei direkt mit dem Enterprise Architekten zusammen und kümmert sich um alle Querschnittsthemen des Backend. Die Aufgaben bestehen darin, für die über 100 Entwickler teamübergreifende Best-Practices, Design Patterns als auch ein Framework zu schaffen, so dass die Architektur möglichst einheitlich umgesetzt wird, trotz der vielen verschiedenen Applikationen.
- Entwicklung sowie Konsolidierung der Anwendungsarchitektur
- Reduzierung der Abhängigkeiten zwischen den Teams durch besseres Schneiden des Frameworks
- Entwicklung von SOAP-Services für Plattform-Komponenten
- Analyse, Entwurf und Programmierung einer neuen Deployment-Lösung auf Basis von Puppet
- Schreiben und Automatisieren von CoffeeScript (Javascript-Dialekt) Unit-Tests
Persistenz-Probleme
Die neu eingeführten Continuous-Delivery Pipelines deckten nicht reproduzierbare Persistenz-Probleme auf. Verteilte Transaktionen konnten unter Last nicht abgeschlossen werden. Da Schleupen.CS 3.0 nur eine Datenbank hat, hätten überhaupt keine verteilten Transaktionen auftreten dürfen. Die Aufgabe des Projekts war es, die Probleme zu analysieren und zu beheben.
- Analyse von Logeinträgen, Fehlermeldungen und Code um den Fehler systematisch einzugrenzen
- Analysieren von NHibernate und dessen internem Umgang mit Transaktionen
- Konzept und Implementierung einer sauberen, aber aufwändigen Lösung für neue Applikationen
- Konzept und Implementierung einer schnellen, aber etwas getricksten Lösung für bestehende Applikationen
- Dokumentation beider Lösungen
- Schulungen in den Lösungen
- Implementierung der sauberen Lösung in den Plattform-Komponenten