Die Plattform SEPP (Software Engineering Deployment Pipeline @ HBRS) ist eine Zusammenstellung von überwiegend Open Source Komponenten und Tools zur professionellen Software-Entwicklung insbesondere von Web-Anwendungen und kommt im Fachbereich Informatik der H-BRS vor allem in den Vorlesungen Software Engineering zum Einsatz. SEPP baut im Kern auf den Prinzipien des Continuous Delivery nach den Autoren Humble und Farley auf. Ein weiterer Fokus liegt auf die Integration von betrieblichen Anwendungssystemen.
Kleine Historie zu SEPP
Für meine in 2014 erstmalig durchgeführte Vorlesung Software Engineering 2 benötigte ich eine Plattform für die kontinuierliche Entwicklung und Auslieferung von Software. Die Firma Capgemini AG war damals so freundlich und hat mir eine solche Plattform und die dahinterliegenden Entwicklungsmethoden und -prozesse im Rahmen eines mehrtägigen Workshops in Breslau (Polen) grundlegend vorgestellt. Auf Basis dieser Erfahrungen habe ich mit meinem Mitarbeiter Robert Hartmann zunächst eine Plattform prototypisch auf einem lokalen Rechner nachgebaut. Eine erste Bereitstellung der ersten Version v1.0 auf den virtuellen Servern des Fachbereichs konnte rechtzeitig zu Beginn der Vorlesung im SS 2014 erfolgen.
Die Plattform wird Stand heute durch vier Mitarbeiter regelmäßig gewartet (z.B. Einspielung von Sicherheits-Updates) und weiterentwickelt und skaliert auch bei der Verwendung von mehreren Hundert Studierenden. SEPP wird heute auf einem Verbund von zwölf virtuellen Servern betrieben.
Software-Architektur SEPP v1.6 (2020)
Die Version SEPP v1.6 wird überwiegend in den Bachelor-Studiengängen eingesetzt, hier unter anderem in meiner Vorlesung Software Engineering 2 (BWI).
Im Kern besteht hier SEPP aus dem Build-Server Jenkins, der eine kontinuierliche Konstruktion und Auslieferung von Web-basierter Software auf die Test- und Produktionsumgebungen ermöglicht. Diese Server-Umgebungen stellen einen Web-Server (Tomcat 8) bereit, mit der vor allem Java-basierte Web-Anwendungen eingesetzt (deployed) werden können. In der Vorlesung Software-Engineering 2 werden diese Web-Anwendungen mit Hilfe des Frameworks Vaadin entwickelt.
Anbei ein Überblick über die wichtigsten Komponenten mit den Links auf die Projektseiten der Komponenten und Tools (für die direkte Verwendung der SEPP-Komponenten ist ein gesicherter Zugang mittels VPN auf die Server des Fachbereichs notwendig):
- GitLab – Versionskontroll-System zur Verwaltung von Source Code. Über dieses Tool kann auch die Beteiligung von einzelnen Studierenden in Projekten abgelesen werden („Commit-Historie“)
- Jenkins – Build-Server zur kontinuierlichen Entwicklung und Konstruktion der Software sowie zum Deployment (Installation) auf die SEPP-Umgebungen
- SonarQube – Web-basiertes Tool zur Analyse von Software-Metriken zur Gewährleistung der Qualität der auszuliefernden Software
- Test- und Produktionsumgebung – Bereitgestellte Web-Server (Tomcat8) für die Entwicklung, Test und für die finale Auslieferung der Software (inkl. PostgreSQL-Datenbanksystem)
- JIRA Agile und Confluence – Tool zur Verwaltung von Anforderungen an einem virtuellen Scrum-Board (JIRA) sowie zur Verwaltung von Projektinformationen (Confluence)
Software-Architektur SEPP v2.1 (2020)
Die erweiterte Software-Architektur von SEPP richtet sich an Vorlesungen aus der Spezialisierung Komplexe Software-Systeme (bei mir: Integration Architectures) sowie aus den Masterstudiengängen (bei mir: vor allem die Vorlesung OOKA und SOA) mit erweiterten Anforderungen hinsichtlich der Integration von Anwendungen.
Im Zentrum steht hier nun die Plattform Apache Kafka, die eine nachrichtenbasierte und asynchrone Integration von Anwendungssystemen ermöglicht. Zudem stehen für Fallstudien die betrieblichen Anwendungssysteme OrangeHRM sowie OpenCRX zur Verfügung. Im Rahmen der Veranstaltung Integration Architectures müssen Studierende diese Anwendungssysteme in einer Fallstudie zur Entwicklung einer Software für die Berechnung von performance-abhängigen Bonusgehältern verwenden und über REST-Schnittstellen integrieren. Die Software wird auf Basis des Entwicklungsstacks MEAN (MongoDB; Express, Angular; Node.js) entwickelt.
Fragen oder gar ein Interesse an SEPP?
Die SEPP-Umgebung ist offen für die Unterstützung von weiteren Veranstaltungen aus der Hochschule Bonn-Rhein-Sieg. Bei Interesse können sie mich (sascha.alda [at] h-brs.de) gerne kontaktieren! Auch für Rückfragen stehe ich gerne bereit!