Continuous Integration / Delivery Pipelines ​mit Allem und Scharf!

Projektvision

Das Projekt soll den Entwicklungsprozess, insbesondere das kontinuierliche Testen und Ausliefern von Anwendungen, für die Entwicklungsteams des Auftraggebers vereinfachen, sodass es Entwicklern ohne besondere Kenntnisse möglich ist, eine automatisierte Continuous Integration (CI) und Delivery (CD) Pipeline aufzusetzen und an ihre konkreten Projekte anzupassen.

Verwendete Technologien und Werkzeuge

Projektbeschreibung

Unser Auftraggeber entwickelt Software und möchte diese möglichst schnell und einfach an seine Kunden ausliefern. Dazu verwendet er automatisierte Continuous Integration und Delivery Pipelines, die neue Codeversionen ausgiebig testen und bei erfolgreichen Testergebnissen zum Ausliefern bereitstellt. Das Aufsetzen traditioneller CI/CD-Pipelines ist jedoch kompliziert und zeitaufwendig sowohl bei der Einarbeitung als auch beim Einstellen der korrekten Konfiguration, wodurch die Pipeline unflexibel, fehleranfällig und bei Systemausfall nur schwer wiederherstellbar ist. Oft ist deshalb ein spezialisierter Mitarbeiter für die Verwaltung der Pipelines zuständig.

Unsere Aufgabe ist es, diesen Vorgang zu vereinfachen. Insbesondere wünscht sich der Arbeitgeber, dass sich die Entwickler nach minimaler Einarbeitungszeit eigene, auf unserer Lösung basierende, Pipelines aufsetzen und an aktuelle Projekte anpassen können. Dazu sollen die Pipelines aus verschiedenen Modulen und Testbenches zusammengesetzt sein und verschiedene Deployment-Szenarien abdecken. Um die Wartezeit der Entwickler auf die Ergebnisse gering zu halten, soll die Pipeline möglichst performant arbeiten und eventuelle Rückmeldungen schnell weiterleiten. Die Pipelines unterschiedlicher Teams sollen dabei unabhängig voneinander agieren.

Die von uns entwickelte Lösung basiert auf dem CI/CD-Tool Concourse. Die Architektur von Concourse basiert auf der Idee von Pipelines und automatisiert vieles, was in anderen Tools explizit konfiguriert werden muss. Durch das Beschreiben einer Pipeline durch Code ist die Konfiguration kompakt und allgemein gehalten, wodurch eine alte Pipeline leicht neu aufgesetzt werden kann. Mit anderen Technologien kann in Form von sogenannten Resourcen über entsprechend implementierte Schnittstellen interagiert werden. Für Technologien, die der Auftraggeber im Großteil seiner Teams verwendet, entwickeln wir entsprechende Resourcen.

Auftraggeber cosee GmbH

cosee ist ein junges Unternehmen im Herzen Darmstadts. Für Medien- und Verlagskunden entwickelt cosee Anwendungen für Web, Android und iOS. Diese Anwendungen dienen zum Vertrieb und zur Sicherung von Hörbüchern, eBooks und Co.

Zu cosee

Team

Jannis Schaefer
Team Lead

Jonas Bechstein
Assistant Team Lead

Markus Zimmermann
QA Koordinator

Thomas Schmeiduch
Dokumentationskoordinator

Felix Weirich
Off-Topic Koordinator

Anitha Sankapura Jagadishwara
Teammitglied

Nils Berger
Teammitglied

Erkenntnisse

  • Konsequente Zeiterfassung hilft um Projektfortschritt besser zu steuern

  • Häufige Retrospektiven um Probleme innerhalb des Teams zu erkennen/lösen

  • Notwendige Ressourcen für Anforderungen früh anfragen um zeitliche Verzögerungen zu vermeiden

  • Kurze Kommunikationwege beschleunigen Projekt

Was lief gut?

  • Häufige gemeinsame Arbeit im gestellten Büro hat dem Projekt geholfen

  • Deadlines ohne Stress erreicht - früh genug angefangen/geplant

  • Kanban Board, um Arbeit für Projekt/Uni zu visualisieren