Aufbau einer Continuous Delivery-Pipeline in der Informatiklehre

Kurzzusammenfassung:

In diesem Lehr-Lern-Arrangement geht es darum, dass Studierende Continuous Delivery (CD) kennenlernen. CD ist eine Sammlung von Techniken, Prozessen und Werkzeugen zur Verbesserung des Softwareauslieferungsprozesses. Das Ziel ist es, dass die Studierenden in der Lage sind (1) den Begriff CD sowie die damit verbundenen Prozesse zu erklären, (2) eine CD-Pipeline unter Anleitung aufzubauen sowie (3) die notwendigen Tools zu installieren, konfigurieren und anwenden zu können. Hierfür sollen die Teilnehmenden eigenständig eine CD-Pipeline für einen Beispielservice entwickeln und somit ein tieferes Verständnis erhalten.


Übersicht

Ziele:

  • Die Studierenden verstehen den Begriff CD sowie die damit verbundenen Prozesse und können diese erklären.
  • Die Studierenden können eine CD-Pipeline unter Anleitung aufbauen.
  • Die Studierenden können die notwendigen Tools installieren, konfigurieren und anwenden.

Didaktische Funktion(en):

  • Einstieg & Aktivierung
  • Informationsaneignung
  • Transfer & Anwendung

Hintergrund / didaktisch-methodische Einordnung:

Continuous Delivery spielt in der professionellen Softwareentwicklung eine große Rolle. Das übergeordnete Ziel ist es, die Zeit bis zur Markteinführung einer Anwendung zu verkürzen und gleichzeitig die Qualität dieser Software zu erhöhen (vgl. Wolff 2016, Humble & Farley 2010). Da der Aufbau einer Pipeline sehr aufwändig ist, ist CD häufig kein Bestandteil der Hochschullehre. Neben dem fachlichen Wissen wird Problemlösefähigkeit gefördert sowie die Fähigkeit sich eigenständig komplexe Themen anzueignen (siehe auch Greising, Bartel & Hagel 2018).

Sozialform(en):

Einzelarbeit, Partnerarbeit

Anzahl der Lernenden:

ab 1 Person


Voraussetzungen und Ressourcen

Voraussetzungen:

  • Mind. 1 Lehrperson, besser 2 Lehrpersonen, da hoher Betreuungsaufwand erforderlich
  • Lehrperson(en) benötigen gute Kenntnisse im Bereich CD
  • Lernende benötigen Vorkenntnisse im Bereich Softwarearchitektur
  • Lernende müssen sich intensiv mit dem Lernstoff beschäftigen, da ein hoher Selbstlernteil besteht

Ausstattung & Medien:

  • Seminarraum
  • Je nach Anzahl der Lernenden aktuelle PC-Hardware
  • 1 Beamer
  • Internetverbindung

Ablauf

Beispiele oder Materialien:

Aufgabe zur Entwicklungsphase 2: Deployment der Webseite:
a.) Legen Sie in Eclipse ein Projekt "Parcel-Webserver" an
b.) Laden Sie den bestehenden Quellcode der Website aus Moodle herunter und integrieren Sie diesen in das soeben erstellte Projekt
c.) Exportieren Sie das Projekt "Parcel-Webserver" als *.war File auf ihren Tomcat-Webserver
d.) Testen Sie ob die Weboberfläche unter: http://localhost:8080/ParcelWebserver/ verfügbar ist

Hinweise zur Vorbereitung:

Konzeption von Aufgaben und möglichen Tutorials für die Studierenden.
Pipeline muss funktionsfähig vorbereitet sein.

Hinweise zur Nachbereitung:

Die Ergebnisse werden ggf. gespeichert und den Lernenden zur Verfügung gestellt.

Hinweise zur Dauer: Insgesamt 1 Semester (für den vollständigen Aufbau der Pipeline).


Kritische Einordnung

Vorteile und Stärken:

Die Studierenden bauen selbstständig ein vertieftes theoretisches und praktisches Wissen in diesem Gebiet auf.

Grenzen und Schwächen:

Sehr zeitaufwändig in der Vor- sowie Nachbereitung (Gilt für Lehrenden und Studierenden.)

Sonstige Hinweise:

Diese Variante sollte nur mit erfahrenen Studierenden (z.B. Master) durchgeführt werden, die bereits einen sehr fortgeschrittenen Studienverlauf haben (aufgrund der hohen Komplexität).
Zudem sollte versucht werden die Pipeline soweit wie möglich zu vereinfachen (z.b. vorgebende Skripte, Quellcode etc.) Der Hauptfokus sollte auf der Entwicklung der Pipeline liegen und nicht durch zusätzliche Aufgaben erschwert werden.


Literatur und weiterführende Hinweise
  • Greising, L.; Bartel, A.; Hagel, G. (2018): Introducing a Deployment Pipeline for Continuous Delivery in a Software Architecture Course., In: Proceedings of the 3rd European Conference of Software Engineering Education.
  • Humble, J.; Farley, D. (2010): Continuous delivery: reliable software releases through build, test, and deployment automation. Addison-Wesley, Upper Saddle River, NJ. 
  •  Wolff, E. (2016): Continuous delivery: der pragmatische Einstieg. dpunkt. verlag.