Kurs »DevOps« (CS24)

Kursverantwortlich
Prof. Dr. René Wörzberger
Sprache
deutsch
Kreditpunkte
3 ECTS
Arbeitsaufwand
40h Kontaktzeit / 50h Selbstlernzeit
Kompetenzcluster
Agile Methoden
Gehört zum Modul
Coding Software 2
Teilmodulprüfung
Coding Session, am 2. Freitag im Block (benotet)

Angestrebte Lernergebnisse / Learning Outcomes

Die Studierenden können fortwährend entwickelte Software-Systeme automatisiert bauen und automatisiert in von ihnen aufgesetzten virtualisierten Cloud-Umgebungen installieren, indem sie

  • Grundkenntnisse in Linux (als dem marktbeherrschenden Server-Betriebssystem) besitzen und zur Administration einsetzen können,
  • Build, Test und Deployment der Software-Systeme über eine CICD-Pipeline automatisieren,
  • grundlegende Administrationskenntnisse (Firewall-, Proxy-, Domain-Konfiguration, …) nutzen,
  • und Werkzeuge zur Virtualisierung und zum Cloud-Computing anwenden,

damit sie digitale Produkte agil über den gesamten Lebenszyklus und im Sinne einer Ende-zu-Ende-Verantwortung (“you build it - you run it”) realisieren können.

Inhalt

  • Basiswissen Linux und Netzwerke
    • Grundlegende Verfahren wie z.B. Public-Key-Authentifizierung
    • Grundlegende Werkzeuge wie z.B. bash und ssh
  • Weiterführende Continuous Integration und Delivery
  • Betrieb
    • klassische Data-Center-Infrastrukturen (Firewalls, Load-Balancer, Web-/App-/DB-Server etc.)
    • Virtualisierungsformen
    • Container-Virtualisierung mit z.B Docker
    • Container-Orchestrierung mit z.B. Kubernetes
    • Monitoring mit z.B. Prometheus
    • Cloud-Computing mit z.B. Google Cloud

Lehr- und Lernformen

  • Vorlesung
  • Gastvortrag externer Referenten
  • Seminar
  • Übung
  • Projekt:
    • Ausgangssituation: existierenden System
      • mit vorhandener, jedoch manuell versionierter und zu übersetzender Code-Base,
      • mit manuellem Build, Test und Deployment auf verschiedenen, divergierenden Umgebungen,
      • mit klassischer, nicht-virtualisierter, unüberwachter Produktionsumgebung
    • Zielsituation: überarbeitetes System
      • unter vollständiger Versionskontrolle,
      • mit automatisiertem Build, Test und Deployment mittels einer CICD-Pipeline,
      • betrieben auf container-virtualisierten Umgebungen in einer Cloud

Materialien / Ressourcen

  • Vorlesungsunterlagen
  • Übungsunterlagen inkl. Lösungen
  • Projekt-Meilensteinbeschreibungen
  • Zugänge, Lizenzen und Kontingente für
    • gemeinsame Code-Repositories (z.B. GitLab)
    • Cloud-Computing-Provider (z.B. Google Cloud)
    • Entwicklungsumgebungen (z.B. IntelliJ IDEA)