This repository contains the material and content of the DevOps course at KTH Royal Institute of Technology DD2482.
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)
- Goals: watch the repo, register one first task as a pull request on this repo.
- 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: MLOps/AIOps/LLMOps
- Preparatory material: Short intro to MLOps, Building Machine Learning Models Like Open Source Software, What is A/B testing?
- 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: 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
- incl. Monitoring and Observability, cultural aspects and legal aspects, Software bots, , Misc DevOps topics
- Preparatory material Chaos Engineering A Chaos Engineering System for Live Analysis and Falsification of Exception-handling in the JVM
- 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 (mandatory)", "demo (mandatory)", "scientific paper", "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, demos, paper: the day and time they are given in person
- Deadline 1 for async tasks: Oct 1 2024, 17h Stockholm time
- Deadline 2 for async tasks: Oct 8 2024, 17h Stockholm time
- Deadline 3 for async tasks: Oct 15 2024, 17h Stockholm time
- Deadline for feedback on async tasks: 48 hours after delivery for a given deadline
- Deadline for repeated tasks (all): Nov 5 2024, 17h Stockholm time.
- The deadlines are strict and cannot be extended. Not meeting a deadline means failing the task / the repetition.
- Final grading scheme
- E: 3 completed tasks (excluding feedback)
- C: 4 completed tasks
- B: 5 completed tasks
- A: 5 completed tasks + active participation in all but one lectures
- Active participation: attendance to all but one lectures, a traceable record of questions asked during lectures (through GitHub issues) and the answers you received to them.
- Group work is encouraged (max 2 persons) but you cannot be with the same person for more than 2 individual tasks. As a general rule, you are not allowed to work alone.
- 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 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, scientific paper), others do not (open-source, feedback).
- Prof. Martin Monperrus (Examiner)
- Javier Ron (TA)
- Deepika Tiwari (TA)
- Sofia Bobadilla (TA)
- Aman Sharma (TA)