This repository contains the material and content of the DevOps course at KTH Royal Institute of Technology
Pull-requests are welcome! (and even necessary to register a work item).
- Short summary after the first lecture
- Deadlines for different tasks
- Schedule of Michelin Devops Demo Day
The date, time and rooms are at https://cloud.timeedit.net/kth/web/public01/ri105v5y1850Z6QY3QQ49YgXZQ000397Y4703.html (ICS version). The schedule and content may change over time. Lab slots do not require mandatory presence.
- Preparatory reading: https://youtu.be/qcm0rG8EKXI
- Course introduction (Martin Monperrus, KTH)
- Your/Our expectations
- Teaching philosophy, teaching values
- Team
- Agenda
- Grading
- General rules
- Group management (Ye, Long)
- Registration of works as pull-request (Ye, Long)
- Communication (watch this repo!)
- Infrastructure
- Relation to Research in Testing & DevOps
- Student Presentations
- Goal: register one work
- Goal: Full planning for March 25
- Preparatory reading: Mutation analysis, Clean unit tests
- Lecture: automatic testing, CI (Benoit Baudry, KTH). The wrap-up video.
- Introduction to the Grand Fuzzing Challenge (Martin Monperrus, KTH)
- Reference material: The Fuzzing Book
- Student presentations (Panel: Martin Monperrus, Benoit Baudry)
- Preparatory reading: https://medium.com/@nagarwal/understanding-the-docker-internals-7ccb052ce9fe
- Lecture: Container, microservice and orchestration (Julien Bisconti)
- Student presentations (Panel: Julien Bisconti, Jens Tinglev, Lead DevOps Engineer at KTH):
- Topic suggestions
- Add title / name in a pull-request
- Preparatory reading: XWiki: a use case for advanced CI
- Introduction to research and collaborative projects (Benoit Baudry)
- Lecture: Pipelines and Jenkins (Vincent Massol - XWiki)
- Student presentations (Panel: Vincent Massol - XWiki, Laurent Ploix - Spotify):
- Preparatory reading:
- An Exploratory Study of DevOps Extending the Dimensions of DevOps with Practices
- Towards DevOps in the Embedded Systems Domain: Why is It so Hard? (accessible at KTH or through KTH's VPN)
- Lecture 13h15-14h: Human and organizational Aspects of Devops Jaana Nyfjord, SAAB
- Student presentations for the Grand Fuzzing Challenge (Panel: Amir Gaber (SAAB), Musard Balliu (KTH))
- Recall: the competition submissions must be sent before April 23, 23:59, Stockholm time, to dd2482@eecs.kth.se
- Preparatory reading: Course notes
- Lecture: Monitoring, tracing, fault injection (Martin Monperrus) + Monitoring and tracing in Kubernetes (Long Zhang)
- Student presentations (Panel: Martin Monperrus, Benoit Baudry)
- Topic suggestions: #8 #21
- Presentation Agenda
- Location: Room U21
- Preparatory reading: Volvo Trucks - The Epic Split
- MDDD: Michelin Devops Demo Day
- Location: Room U21, U21 Break-out and U-Utställningssal
- Make sure you have a screen and a power outlet
- Session 1 / Session 2 (presenters / attendees switch)
- 9h15 Wrap-up & Feedback
- 10h15 Lecture: Massive-Scale QA for multi-player video games (David King - DICE, Mark Baker - DICE)
- Final Course Potluck
To pass the course, the student has to collect 4 grades:
- the grades are in category: "presentation", "demo", "essay", "competition entry", "open" (choose four out of them, at most one in the same category, it is not necessary to cover everything)
- the student proposes a category and a topic, which is discussed and accepted by the TA. The proposal is made as a pull-request on this repository.
- in each category, there are suggested topics, listed on issues in this repository (for instance #9 lists topics about testing)
- each grading category, there is a grading form, which explains how to pass / pass with distinction.
- 4 Pass means a final E, 3 Pass / 1 Distinction means a final D, 2 Pass / 2 Distinction means a final C, 1 Pass / 3 Distinction means a final B, 4 Distinction means a final A
- for the competition, the distinction is given to the top-25% best performing teams
- Group work is encouraged (max 3 persons) but you cannot be with the same persons for more than 2 projects. You can do a work alone for one or at most two projects.
- A failed task requires to pass it again at the end of the course, based on the feedback from the failure. A repeated task cannot be passed with distinction. A task can only be repeated once.
- The pre-generated group sheets are the suggestion instead of the mandatory.
- We have decided to drop the numbering of the groups due to poor maintainable. So there is no need to create an issue to update the group sheet.
- When you send a pull for registration, please follow the name convention of using email addresses of two members: email-email instead of the group number.
- We recommend 2 students. Three is also possible for ambitious essays, demos or development.
Books:
- Effective DevOps : Building a Culture of Collaboration, Affinity, and Tooling at Scale (Jennifer Davis and Katherine Daniels)
- The DevOps Handbook (Gene Kim, Jez Humble, Patrick Debois, John Willis, and John Allspaw)
- Site Reliability Engineering : How Google Runs Production Systems (Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy)
All communication for the course DD2482 should be sent to dd2482@eecs.kth.se You are also welcome to create issues here if you think the question is good to be discussed publicly. Check the announcement here.
- KTH Social URL: https://www.kth.se/social/course/DD2482/
- Kopps URL: https://www.kth.se/student/kurser/kurs/DD2482?l=en
- Devops Course at North Carolina State University, by Chris Parnin
This course is designed with great inputs from Julien Bisconti, Simone Stefani, Jaana Nyfjord, Amir Gaber, Göran Paues, Lowe Schmidt, Laurent Ploix, Diarmuid Corcoran, Jonathan Grahl, Mattias Wildeman, Tomas Ekholm, Vincent Massol, David King and others. We are very grateful for their contributions!