Architektur

Die wesentlichen architektonischen und systemischen Eckpunkte für die Erreichung eines kontinuierlichen Entwicklungsprozesses im Projekt waren

• die Automatisierung der Deployment-Pipeline (bis auf manuelle Acceptance-Tests keine manuellen Eingriffe),

• die “Abbildung” der Infrastuktur “as Code”,

• die Implementierung von Feature-Toggles (siehe Martin Fowler) und damit der Verzicht auf “Feature-Branches” als Entwicklungspattern sowie

• die Auslieferung der Anwendung selbst als Debian-Package, um eine bessere Integration in die Betriebsplattform, speziell hinsichtlich Installation und Update, zu ermöglichen.

 

Die Verwendung einer Hauptentwicklungslinie ermöglichte den Einsatz eines automatisierten, leichtgewichtigen und Zeit-effizienten Release-Prozesses ohne aufwändiges Mergen bzw. Integrieren paralleler Entwicklungen.

Auch die Kennzeichnung bzw. Versionierung der Artefakte vereinfachte sich. Anstelle des ohne manuelle Eingriffe schwierig realisierbaren Hochzählens der einzelnen Bestandteile einer Versionsnummer (siehe Semantische Versionierung) wurde der Commit-Zeitstempel als variable Komponente verwendet. Zusätzlich wird der zugehörige vollständige Hash-Wert im Artefakt gespeichert, so dass die Rückverfolgbarkeit zum Source-Code gewährleistet ist.