Success Story: Aufbau einer automatisierten Entwicklungslandschaft in einer Versicherungsgruppe aus Hannover

Vereinheitlichung des Entwicklungsvorgehens und CI/CD Pipelines

Wachsende Entwicklerteams und Projekte aber gleichbleibende Teamstärke bei der Unterstützung der Tool-chain: Das Architekturteam eines großen Versicherungskonzerns suchte nach einem Weg der Skalierung und Stabilität ohne Wachstum der Unterstützungsorganisation.

Über den Kunden

Der Kunde ist ein moderner Konzern von Expert:innen für Versicherung, Vorsorge und Vermögen. Die Entwicklungsteams umfassen mehr als 500 Entwickler:innen und allein im Git Repository mehr als 2000 Projekte. Die Wichtigkeit der Automation im Softwareentwicklungsprozess bei steigender Stabilität und Qualität steht seit längerem im Fokus des Unternehmens.

Die Herausforderung

Der steigenden Anzahl an Softwareprodukten der Entwicklungsteams sowie der steigenden Anzahl an Softwareentwicklern standen anfangs keine einheitlichen CI/CD-Pipelines zur Verfügung. Nach der Einführung von Git und der Verbreitung der agilen Arbeitsweise wurden in vielen Projekten die CI/CD-Pipelines selbst geschrieben und gewartet.

Die Folgen

  • DevOps-Wissen musste in den Entwicklungsteams vorgehalten werden was häufig durch Entwickler:innen kompensiert wurde.
  • Die Administrator:innen der eingesetzten Werkzeuge halfen oft mit ihrer Expertise aus um Engpässe auszugleichen.
  • Ineffiziente Ressourcennutzung und hoher Zeitaufwand in den Entwicklungsteams.
  • Der Git-Workflow war spezifisch für jedes Repository bzw. Entwicklungsteam und damit nicht einheitlich etabliert.
  • Die Fehlersuche bei fehlgeschlagenen Builds und Deployments war aufwendig

Die Entscheidung für vereinheitlichte Pipelines

Die Erfahrungen für ein zentrales Vorgehen wurden bereits früh in einem Großprojekt gemacht, indem mit Unterstützung von AIM Consulting sowohl Git in Form von Bitbucket als auch ein Branchingmodell mit Quality-Gates eingesetzt wurden. Die durchweg positiven Ergebnisse führten zu der Entscheidung, den skalierbaren und stabilen Entwicklungsprozess konzernweit auszurollen.

Die Unterstützung von AIM umfasste dabei mehrere Ebenen:

  • Migration diverser Jenkins Instanzen in eine zentrale Instanz. Ziel war es die Wartbarkeit der CI Systeme zu verbessern und die Stabilität auch bei Updates zu gewährleisten. Daher hat AIM hier ein automatisiertes Vorgehen zum Transport der installierten Plug-Ins von Test auf Prod inclusive der Versionierung der Jenkins Plug-Ins in Artifactory.
  • Modularisierung der CI/CD Pipelines: Um die Funktionen der Pipelines nicht jedes mal neu zu erfinden hat AIM unterstützt wiederverwendbare Funktionen zu extrahieren und über Shared Libraries verfügbar zu machen. Diese Bibliotheken können genau wie normale Software per Unit Tests getestet werden, was bei Jenkins Updates sehr hilfreich ist um die Stabilität weiterhin zu gewährleisten.
  • Quality Gates im Gitflow: Um das Prinzip immer stabiler Software auf jedem höherem Branch umzusetzen wurde die Möglichkeit geschaffen jedes Mergen auf einen höheren Branch mit einem Quality Gate zu versehen. Hier wurde auf die ohnehin vorhandenen Quality Checks des Versicherers zu den jeweiligen Programmiersprachen zurückgegriffen.
    [Bild]
  • Einführung von Standardpipelines: Da 80% aller Projekte die gleiche Basis haben, hat AIM das Architekturteam unterstützt stabile und konfigurierbare Standardpipelines zu erstellen. Somit braucht das CI/CD-Wissen nicht mehr in den Entwicklungsteams vorgehalten werden.
  • Methodische Begleitung beim Setup und Betrieb: AIM unterstützte das Team nicht nur konzeptionell, sondern auch in der praktischen Umsetzung: vom Aufbau des Testsystems über die Automatisierung der Produktivstellung versionierter Plug-in Stände bis hin zur Begleitung der Updates aller CI/CD-Komponenten.
  • Dokumentation des Entwicklungsvorgehens: Weil das Entwicklungsvorgehen aber nicht im Git anfängt und nach dem Build aufhört wurde das Team des Versicherers von AIM Consulting unterstützt den gesamten Ablauf des Entwicklungsvorgehens vom Planen bis zum Betrieb der Software zu dokumentieren.
  • Gezielte individuelle Schulungen: AIM organisierte eine regelmäßige Git-Schulung für Entwickler:innen. Ziel war es, die Grundlagen von Git zu vermitteln, ein einheitliches Branching-Modell zu etablieren und die Integration in den Entwicklungsprozess zu erklären. Somit haben die Teilnehmer:innen praxisnahe Best Practices mit individuellem Bezug bekommen, die Anhand der in Confluence abgelegten Schulungsinhalten jederzeit nachvollziehbar sind.

Die Lösung mit Bitbucket, Jenkins und Sonarqube

Die Einführung der Standardpipelines zusammen mit einem standardisiertem Entwicklungsvorgehen brachten folgende messbaren Verbesserungen:

  • Effiziente Ressourcennutzung
    • Entwicklerteams benötigen kaum noch CI/CD-Wissen
    • Das operative Team zur Betreuung der CI/CD-Landschaft ist heute genauso groß wie vor 5 Jahren, was die Effektivität von modularen und zentralen DevOps-Entwicklungsmodellen unterstreicht.
  • Schnellere und Stabilere Releases
    • Obwohl die Nutzung der CI/CD-Landschaft stark gewachsen ist, wurde die Stabilität und Performance verbessert
    • Durch das automatisierte Vorgehen sind weniger Personen am Release beteiligt
  • Schnellere Wissensverbreitung und Onboarding
    • Durch Schulung und Dokumentation ist es sehr viel einfacher geworden neue Teammitglieder produktiv zu bekommen

Sie haben Fragen?

… oder Anregungen zum Artikel? Dann ist

Nils Funke

der richtige Ansprechpartner für Sie:

die richtige Ansprechpartnerin für Sie:

0155 60974700
nfunke@agile-im.de

Vielen Dank für Ihre Anmeldung! Wir haben Ihnen eine E-Mail geschickt, in der Sie die Bestellung unseres Newsletters bestätigen können.