KTH DevOps Course
This repository contains the material and content of the DevOps course at KTH Royal Institute of Technology.
Schedule
The schedule is at https://www.kth.se/social/course/DD2482/calendar/
If you can't see any schedule events on the HTML page
Change course rounds/groups in My settings or change the time period above so that it conforms to the course round.
Program
Week 1: Introduction (mandatory)
- Preparatory reading: DevOps principles and demo
- Course introduction Martin Monperrus (Teaching philosophy, flipped classroom, Expectations, Team, Agenda, Grading, Communication, Infrastructure, Master's theses and Research)
- Testimonial from last year's student
- Goals: watch the repo, register one first task as a pull request on this repo.
Testing automation & Continuous Integration
Week 2:- Preparatory material Testing at scale, Harvesting Production GraphQL Queries to Detect Schema Faults, The Rituals of Iterations and Tests
- Student presentations, demonstrations
Continuous Deployment / Delivery
Week 3:- Preparatory material An Introduction to Continuous Integration, Delivery, and Deployment, The Top 10 Adages in Continuous Deployment
- Student presentations, demonstrations
Containers, Microservices, Serverless
Week 4:- Preparatory material: Containers for the future, Docker tutorial, A monorepo renaissance and Awesome Docker
- Student presentations, demonstrations
Infrastructure as Code
Week 5:- Preparatory material: Best practices for container compliance, Building on-demand staging environments, Gang of eight: a defect taxonomy for infrastructure as code scripts
- Student presentations, demonstrations
Monitoring and Observability, MLOps, Feature flags
Week 6:- Preparatory material: Monitoring notes, Building Machine Learning Models Like Open Source Software, What is A/B testing?
- Student presentations, demonstrations
Dependency Management & DevSecOps
Week 7:- Preparatory material: A 'Worst Nightmare' Cyberattack: The Untold Story Of The SolarWinds Hack, The supply chain of software, Successes, challenges, and wombat behind npm, A comprehensive study of bloated dependencies in the Maven ecosystem
- Student presentations, demonstrations
Cultural and legal aspects of DevOps
Week 8:- Preparatory material: Operational excellence in April Fools' pranks, Long Live Software Easter Eggs!, Continuous Integration Art Hackathon, Where Is My (Deep) Mind?
- Student presentations, demonstrations
Week 9: Other topics
- Preparatory material Chaos Engineering A Chaos Engineering System for Live Analysis and Falsification of Exception-handling in the JVM
- Software bots, , Misc DevOps topics
- Student presentations, demonstrations
Rules
To pass the course, the student has to complete and pass between 3 and 5 tasks:
- The tasks are in category: "presentation", "essay", "demo", "executable tutorial", "contribution to open-source", "feedback" (presentation and demos are mandatory, at most one in the same category, it is not necessary to cover everything).
- The grading criteria page is the unique reference which explains how to pass each task category.
- The student proposes a category and a topic, which is discussed and accepted by the TA. The proposal is made as a structured pull-request on this repository. The 3-5 graded contributions must have little overlap.
- The same student cannot choose the same topic for two different tasks. The 3-5 tasks should cover different aspects of DevOps.
- Deadlines:
- Deadline for presentations and demos: the day and time they are given in person
- Deadline 1 for essay / tutorial / open-source: April 11, 17h Stockholm time
- Deadline 2 for essay / tutorial / open-source: April 24, 17h Stockholm time
- Deadline 3 for essay / tutorial / open-source: May 8, 17h Stockholm time
- Deadline for feedback on essays or katacodas: 48 hours after delivery for a given deadline
- Deadline for repeated tasks (all): May 22, 17h Stockholm time.
- The deadlines are strict and cannot be extended. Not meeting a deadline means failing the task / the repetition.
- Final grading scheme
- A: 5 completed tasks
- C: 4 completed tasks
- E: 3 completed tasks (excluding feedback)
- Group work is encouraged (max 2 persons) but you cannot be with the same person for more than 2 projects. You can work alone for one or at most two projects.
- A failed task requires to pass it again at the end of the course (repeat), based on the feedback from the failure. A task can only be repeated once.
- If the whole course is failed, no grades are kept if the student registers again to the course the year after.
- After a proposal has been merged, the topic of that proposal cannot be changed.
Group Rules
- When you send a pull request for registration, please follow the name convention of using email addresses of two members to create the folder: email-email.
- We recommend 2 students. Three is also possible for ambitious essays, demos or contribution to open-source.
Communication
- All communication for the course DD2482 should be sent to [email protected].
- you create issues here if you think the question is good to be discussed publicly, the rules of netiquette fully apply.
Participation
Lectures The lectures are held on campus (no hybrid / no video link). The lecture locations are given on KTH Social https://www.kth.se/social/course/DD2482/calendar/. The first lecture is mandatory, the other ones are strongly encouraged.
Lab sessions
- Lab slots are not mandatory. They are given in person (preferably) or videoconf.
- During the planned lab time slot, please use this Queue for booking online meetings
- Specify your zoom meeting link when you register the queue
Examinations: Some tasks require physical presence (presentation, demo), others do not (essay, open-source, feedback).
Team
- Prof. Martin Monperrus (Examiner)
- Prof. Benoit Baudry (Examiner)
- Javier Ron (TA)
- Deepika Tiwari (TA)
- Khashayar Etemadi (TA)
- Yuxin Liu (TA)
Prerequisites
See also
- KTH Social URL: https://www.kth.se/social/course/DD2482/
- Kopps URL: https://www.kth.se/student/kurser/kurs/DD2482?l=en
- Past editions: