Referenzprojekt

Build-Pipeline Generalisierung

Als Softwarefirma sind wir stets bestrebt, innovative Lösungen anzubieten, die die Effizienz und Wartbarkeit von Softwareentwicklungsprozessen verbessern. In diesem Artikel möchten wir Ihnen ein erfolgreiches Projekt vorstellen, das wir für einen unserer Kunden durchgeführt haben. Das Projekt zielte darauf ab, die Automatisierung von Deployments zu ermöglichen und eine generalisierte Pipeline zu entwickeln, die für die unterschiedlichen Services des Kunden verwendet werden konnte.

  Branche:  
Technologie
  Team:  
Projektmanager, Backend Entwickler:in
  Technologien:  
Azure DevOps, Docker

Herausforderungen vor der Implementierung

Vor der Implementierung unseres Lösungsansatzes hatte der Kunde mit manuellen Deployment-Prozessen zu kämpfen. Jede Anwendung wurde einzeln bereitgestellt, ohne eine standardisierte Pipeline oder Automatisierung. Dies führte zu zeitaufwändigen und fehleranfälligen Deployments, bei denen viele manuelle Schritte erforderlich waren. Es gab keine konsistente Vorgehensweise, was zu einer Fragmentierung und Inkonsistenz bei der Entwicklung und Bereitstellung der Anwendungen führte. Mit der manuellen Vorgehensweise waren Entwickler:innen und das Operations-Team gezwungen, immer wieder dieselben Schritte für jedes Deployment zu wiederholen.

 

Dies verursachte unnötige Aufwände und erhöhte das Risiko für Fehler. Der Kunde erkannte, dass eine Automatisierungslösung dringend erforderlich war, um den Entwicklungsprozess zu optimieren, die Wartbarkeit zu verbessern und die Effizienz des Deployment-Prozesses zu steigern. Der Plan war die Einführung einer zentralen Pipeline, die für alle Services des Kunden verwendet werden konnte, um ihn von den manuellen und zeitaufwändigen Deployment-Prozessen zu befreien. Deswegen sollte eine automatisierte und standardisierte Lösung implementiert werden.

Projektablauf

1

Ziele und Technologieauswahl

Unser Ziel bestand darin, die Automatisierung von Deployments zu verbessern und eine vereinheitlichte Pipeline zu entwickeln, die für alle Services des Kunden verwendet werden konnte. Dabei war es uns wichtig, Boilerplate-Code zu vermeiden und die Wartbarkeit sowohl für Entwickler:innen als auch für das Operations-Team zu verbessern. Gemeinsam haben wir uns für Azure DevOps als CI/CD-Tool entschieden, da es in der kundeneigenen Infrastruktur betrieben werden kann und sich nahtlos in das Microsoft-Ökosystem integrieren lässt. Dies beinhaltet ebenfalls die Anbindung an das Microsoft Active Directory.
2

Durchführung des Projekts

Unser Team entwickelte eine dynamische Pipeline, die den gesamten Build-Prozess der Anwendungen automatisierte. Durch die Verwendung von Docker-Images für alle Artefakte gewährleisteten wir Portabilität und Reproduzierbarkeit. Anstelle einer separaten Pipeline für jede Anwendung erstellten wir ein sogenanntes Umbrella Chart. Dieses vereinheitlichte mehrere Standardkonfigurationen und erleichterte so die Bereitstellung neuer Anwendungen erheblich. Unsere Azure DevOps-Pipeline nutzte dieses Umbrella Chart, um die Anwendungen zu deployen und tauschte dabei automatisch die relevanten Informationen aus.
3

Ergebnisse und Know-how-Transfer

Der Kunde wurde in die Lage versetzt, die übrigen Pipelines nach dem Vorbild unserer generalisierten Lösung selbst einzurichten. Dies führte zu einem erfolgreichen Know-how-Transfer und ermöglichte es dem Kunden, die gleichen Automatisierungs- und Vereinheitlichungsprinzipien auf andere Anwendungen anzuwenden. Die Effizienz des Deployment-Prozesses wurde erheblich gesteigert, und Entwickler:innen sowie das Operations-Team profitierten von einer verbesserten Wartbarkeit und einem effektiven Prozess zur Zusammenarbeit.

Fazit

 
Durch die Einführung einer zentralen, automatisierten Pipeline konnten wir den Kunden von den mühsamen, manuellen Deployment-Prozessen befreien und eine effiziente, standardisierte Lösung implementieren.
 
Manuelle Schritte im Deployment-Prozess wurden automatisiert, um Zeit zu sparen und das Risiko menschlicher Fehler zu minimieren. Anwendungen können nun schnell und zuverlässig bereitgestellt werden, was zu einer Steigerung der Effizienz und Produktivität führt.
 
Die Wartbarkeit der Anwendungen wurde erheblich verbessert. Da alle Services des Kunden nun die gleiche Pipeline verwenden, entfiel die Notwendigkeit, individuelle Pipelines für jede Anwendung zu erstellen und zu warten.

Kontakt

Sprechen Sie uns an!

Suchen Sie nach zusätzlichem Know-how oder brauchen Sie mehr Entwickler-Kapazitäten in Ihrem Unternehmen? Dann sind Sie bei uns genau richtig! Wir freuen uns darauf, von Ihnen zu hören.

Wir verwenden Cookies auf unseres Seite.