This repository contains the material and content of the DevOps course at KTH Royal Institute of Technology.
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.
- 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.
Week 2: Testing automation & Continuous Integration
- Preparatory material Testing at scale, Harvesting Production GraphQL Queries to Detect Schema Faults, The Rituals of Iterations and Tests
- Student presentations, demonstrations
Week 3: Continuous Deployment / Delivery
- Preparatory material An Introduction to Continuous Integration, Delivery, and Deployment, The Top 10 Adages in Continuous Deployment
- Student presentations, demonstrations
Week 4: Containers, Microservices, Serverless
- Preparatory material: Containers for the future, Docker tutorial, A monorepo renaissance and Awesome Docker
- Student presentations, demonstrations
Week 5: Infrastructure as Code
- 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
Week 6: Monitoring and Observability, MLOps, Feature flags
- Preparatory material: Monitoring notes, Building Machine Learning Models Like Open Source Software, What is A/B testing?
- Student presentations, demonstrations
Week 7: Dependency Management & DevSecOps
- 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
- 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
- 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
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.
- All communication for the course DD2482 should be sent to dd2482@eecs.kth.se.
- you create issues here if you think the question is good to be discussed publicly, the rules of netiquette fully apply.
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).
- Prof. Martin Monperrus (Examiner)
- Prof. Benoit Baudry (Examiner)
- Javier Ron (TA)
- Deepika Tiwari (TA)
- Khashayar Etemadi (TA)
- Yuxin Liu (TA)
- KTH Social URL: https://www.kth.se/social/course/DD2482/
- Kopps URL: https://www.kth.se/student/kurser/kurs/DD2482?l=en
- Past editions: