Voraussetzungen und Begleitbedingungen |
Kenntnisse einer objektorientierten Programmiersprache, Grundlagen Betriebssysteme und Erfahrung in der Softwareentwicklung. |
Lehrinhalte |
Moderne Cloud-, Web- und Mobile Services erfordern neben den klassischen Prozessen der Softwareentwicklung auch, den Betrieb der Software unter Produktionsbedingungen zu organisieren. Das Endprodukt wandelt sich von ausgelieferter Software hin zu selbst betriebenen Services. Ziel der Lehrveranstaltung ist, die Verzahnung zwischen Software Entwicklung (Development - Dev) und ihrem Betrieb (Operations - Ops) aus einem Blick als Zusammenfassung und Abrundung zum bisher gelernten zu vermitteln.
- Agile Softwareentwicklung für Cloud-, Web- und Mobile Services als Kontext für DevOps.
Ops-Prozesse: Build, Test, Package, Release, Provision, Deploy, Configure, Monitor, Manage.
- Virtualisierung als Basistechnologie (virtuelle Maschinen, Speicher, Netzwerke).
- Linux als Basistechnologie.
- Docker und Vagrant als Container-Technologien.
- Paketierung und Containerisierung von Software.
- Praktischer Aufbau eines Docker Service.
- Aufbau einer CI-Pipeline (CI: Continuous Integration) für die Test-Automatisierung.
- Cloud IaaS, SaaS, PaaS als Optionen für Dev-, Test-, Produktionsumgebung.
Die Übungen finden mit Docker/VM statt.
|
Lernergebnisse |
Fach- und Methodenkompetenz (F/M)
Lernziel des Moduls ist, weitere Phasen des Software-Lebenszyklus zu vermitteln, die sich an die aus dem Software Engineering bekannten Dev-Phasen anschließen.
- Die Studierenden kennen am Ende typische Ops-Prozesse: Build, Test, Package, Release, Provision, Deploy, Configure, Monitor, Control/Manage.
- Die Studierenden erkennen Zuständigkeiten, Rollen und das Zusammenspiel von Teams und wissen was es bedeutet, Rollen und Prozesse für einen geordneten Betrieb eines Service zusammenzuführen.
- Die Studierenden kennen Unterschiede zwischen Software Entwicklungs-, Test-, Staging- und Produktionsumgebungen sowie die Herausforderungen, die sich für den nahtlosen Übergang bei schnellen Software-Releasefolgen ergeben.
- Die Studierenden haben ein Verständnis von Continuous Delivery und Continuous Integration sowie von Technologien der Automatisierung.
- Die Studierenden kennen eine DevOps Toolchain und wissen aus welchen Bausteinen (Werkzeugen) sie bestehen kann.
- Die Studierenden kennen Vertreter verbreiteter DevOps-Werkzeuge.
- Die Studierenden kennen die Containerisierung von Software sowie die Schaffung virtueller Ablaufumgebungen mit definierten Eigenschaften als wichtigste technische Mittel und können diese praktisch anwenden.
- Die Studierenden kennen Aufgaben, Kompetenzen und Anforderungen an das Berufsbild eines DevOps Engineers.
Durch spezifisch ausgewählte Lern- und Lehrformen leistet diese Lehrveranstaltung auch Beiträge zur Ausbildung der folgenden überfachlichen Kompetenzen:
Sozial- und kommunikative Kompetenz (S/K)
- Zuverlässigkeit: Regeln und Absprachen einhalten und die eigenen Aufgaben in der zugesagten Qualität erledigen
Englisch ist die Fachsprache der Informatik. Studierende sind vertraut im Umgang mit Fachliteratur in englischer Sprache. Sie können technische Sachverhalte und Abläufe in englischer Sprache beschreiben
Selbstkompetenz (S)
- Selbstreflexionsfähigkeit: Die eigenen Fähigkeiten und Grenzen kennen und die eigenen Handlungen reflektieren
- Lernkompetenz und -motivation: Fähigkeit und Bereitschaft, sich neues Wissen selbstständig anzueignen und aus Erfolgen und Misserfolgen zu lernen
- Ausdrucksvermögen: Fähigkeit zu einer deutlichen und verständlichen Ausdrucksform und Schriftsprache sowie einer situationsgerechten Wortwahl
Transferkompetenz (T)
- Analyse- und Präsentations-/Kommunikationsfähigkeit: Vermögen, umfangreiche und komplexe Zusammenhänge in kurzer Zeit zu erfassen und ordnen, das Wesentliche herauszufiltern und allgemeinverständlich darzustellen
- Beurteilungsvermögen und Problemlösungsfähigkeit: Sachverhalte einschätzen und daraus Konsequenzen und Lösungsansätze ableiten können
|
Geplante Lernaktivitäten und Lehrmethoden |
Integrierte Lehrveranstaltung, Übungen mit individuellem Feedback. |
Prüfungsmethode und Beurteilungskriterien |
Grundbewertung (50%)
Um positiv zu sein, muss eine funktionierende Pipeline mit mindestens dem Build- und Deploy-Schritt vorhanden sein. Das beinhaltet: Erstellen der Anwendung in einem „Build-Container“ unter Verwendung der erforderlichen Build-Frameworks (d. h. JDK, .NET SDK usw.
Erweiterte Verbesserungen (50%)
Testen 20%: Unit-Tests und Integrationstests Dokumentation 20%: Code und Kundendokumentation Code-Analyse 10%
Für eine positive Gesamtnote müssen insgesamt über alle Prüfungsteile mindestens 50% der Punkte erzielt werden UND es müssen in der Grundbewertung mindestens 50% der Punkte erzielt werden. |
Kommentar |
Nicht zutreffend |
Empfohlene Fachliteratur und andere Lernressourcen |
- Davis, Jennifer; Daniels, Katherine (2016): Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale. Beijing ; Boston: O'Reilly UK Ltd.
- Sharma, Sanjeev (2017): The DevOps Adoption Playbook: A Guide to Adopting DevOps in a Multi-Speed IT Enterprise. Indianapolis, IN: Wiley.
|
Art der Vermittlung |
Präsenzveranstaltung |