Fachwissenschaftliches Wahlpflichtmodul in den Bachelorstudiengängen Informatik und Wirtschaftsinformatik an der Hochschule Rosenheim.
Organisatorisches
Vorlesungstermin: Dienstag 2.,3. Stunde
Kommunikation vorzugsweise über die Mattermost Gruppe (Einladungslink).
GitHub Classroom: https://classroom.github.com/classrooms/31311683-microservices-ws18-19
Kurzbeschreibung des Moduls
Die Grundlagen von modernen Microservice-Architekturen werden anhand von typischen Architekturmerkmalen und gängigen Tools erläutert. Die Themen werden in Form von Präsenzübungen vertieft. Im Vordergrund stehen nicht die verwendeten Programmiersprachen, sondern die sinnvolle Architektur von klein geschnittenen unabhängigen Komponenten. Die Unterlagen sind auf Englisch die Vorträge auf Deutsch.
Aufgaben und Leistungsnachweis
Der Leistungsnachweis wird in Form einer mündlichen Prüfung im Prüfungszeitraum am Ende des Semesters erbracht. (ca. 15-20 min). Während des Semesters erarbeiten die Studenten zusätzlich eine kurze Präsentation zu einem Wahlthema aus dem Bereich Microservices. (ca. 10-15 min) Die gelernten Themen werden durch Übungsaufgaben vertieft.
Tools
- IntelliJ Idea
- Docker
- Gradle, sbt
- Git/GitHub/GitLab
- JDK8, JDK9/10/11
- Minikube
- Helm
- Bash/Powershell
Literaturempfehlungen
- Sam Newman. Building Microservices. O’Reilly, isbn: 978-1491950357
- O. Vogel, et al.: Software-Architektur. Grundlagen – Konzepte – Praxis, Spektrum (2005)
- Eric Evans: Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison Wesley (2003
- Eric Evans: Domain-Driven Design Reference: Definitions and Pattern Summaries, Dog Ear Pub Llc (2014)
- Chris Richardson. Microservices. url: http://microservices.io/
- Eberhard Wolff. Microservices - Grundlagen flexibler Softwarearchitekturen. dpunkt.verlag Heidelberg (2016)
- Jonas Bonér: Reactive Microservies Archictecture – Design Principles of Districuted Systems O’Reilly (2016)
Inhalt
1. Building Blocks for Microservices & Tooling (02.10.2018)
Dozent: Tobias
— (Vorlesungsmaterialien, Vorlesungsmaterialien 2, Übungsaufgaben)
2. Webprogramming Basics - Play2 Webframework (09.10.2018)
Dozent: Tobias
— (Vorlesungsmaterialien, Übungsaufgaben)
3. Container - Basics (16.10.2018)
Dozent: Peter
Samples
— (Vorlesungsmaterialien, Übungsaufgaben)
4. Webprogramming Basics 2 - Play2 Webframework (23.10.2018)
Dozent: Tobias
— (Vorlesungsmaterialien, Übungsaufgaben)
5. Container 2 - Advanced (30.10.2018)
Dozent: Peter
Samples
- Multi stage build
- Dockerfile with healthcheck
- docker-compose.yml with healthcheck
- Kubernetes pod with livenessProbe
- docker-compose.yml for scaling
- docker-compose.yml with custom networks
- docker-compose.yml with container links
— (Vorlesungsmaterialien, Übungsaufgaben)
6. Container 3 - Minikube & Kubernetes (06.11.2018)
Dozent: Peter
Samples
- Simple Kubernetes pod
- Simple Kubernetes deployment
- Simple Kubernetes service
- Simple Kubernetes ingress
— (Vorlesungsmaterialien, Übungsaufgaben)
7. DevOps 1 - Intro / CI / CD / IaC Overview (13.11.2018)
Dozent: Tobias
— (Vorlesungsmaterialien, Übungsaufgaben)
8. DevOps 2 - k8s Helm, k8s in der Public Cloud (20.11.2018)
Dozent: Peter & Tobias
Samples
— (Vorlesungsmaterialien, Übungsaufgaben)
9. Service Disovery & API Gateways (27.11.2018)
Dozent: Peter
10. Security (04.12.2018)
Dozent: Peter
— (Vorlesungsmaterialien, Übungsaufgaben)
11. Data Persistence, Event Storming, Event Sourcing, CQRS (11.12.2018 & 18.12.2018)
Dozent: Tobias
— (Vorlesungsmaterialien, Übungsaufgaben)
12. Logging & Monitoring (08.01.2019)
Dozent: Peter
— (Vorlesungsmaterialien, Übungsaufgaben)
13. UI / UX in Microservice Architekturen & Prüfungsvorbereitung (15.01.2019)
Dozent: Gast, Tobias
— (Vorlesungsmaterialien, Übungsaufgaben)
Alle Angaben vorbehaltlich von Änderungen.