This page contains information concerning the schedule, material, exam, and learning outcomes for the elective "DevOps, Software Evolution and Software Maintenance Content" at IT University of Copenhagen, spring 2020 (see LearnIT).
Sessions (lectures combined with exercises) are on Thursdays from 12:15 to 16:00 in rooms 2A12-14. OBS: we expect you to be present during the entire time, not only the first two hours.
During the first session, we will figure out how to handle your lunch break.
Note: While times are locked, the topics are subject to change.
# | Date | Time | Lecturer | Topic | Project Work |
---|---|---|---|---|---|
1 | 30/1/2020 | 12:15 - 16:00 | Helge | Project start, forming groups, SSH, SCP, and Bash | Refactor ITU-MiniTwit to work on modern system |
2 | 6/2/2020 | 12:15 - 16:00 | Helge | Version control systems (Git), various branching strategies, and collaborative development workflows | Refactor ITU-MiniTwit in another programming language and tech. stack |
3 | 13/2/2020 | 12:15 - 16:00 | Helge | Virtualization via containers and virtual machines | Introduction of DB abstraction layer and deployment of your ITU-MiniTwit to a remote server |
4 | 20/2/2020 | 12:15 - 16:00 | Sofus (Praqma) Helge |
Guest Lecture & Continuous Integration (CI), Continuous Delivery (CD), and Continuous Deployment | Setup CI & CD for reproducible builds, tests, delivery, and deployment (Simulator starts) |
5 | 27/2/2020 | 12:15 - 16:00 | Helge | What is DevOps and Workshop | Cleaning and polishing of your ITU-MiniTwit |
6 | 5/3/2020 | 12:15 - 16:00 | Helge | Monitoring | Add monitoring to your ITU-MiniTwit |
7 | 12/3/2020 | 12:15 - 16:00 | Helge | Techniques for division of subsystems across multiple platforms | Refactoring for clean subsystem interfaces |
8 | 19/3/2020 | 12:15 - 16:00 | Mircea | Service-level agreements, logging and log analysis | Add logging to your ITU-MiniTwit and create a set of SLAs for it |
9 | 26/3/2020 | 12:15 - 16:00 | Mircea | Security of web-facing applications | Perform security review of another group's system & Post-mortem on you own system |
10 | 2/4/2020 | 12:15 - 16:00 | Paolo | Workshop | Fix reported problems |
-- | 9/4/2020 | 12:15 - 16:00 | -- | Easter Holidays | Operations and maintenance Still reacting on issue reports and fixing of errors :) |
11 | 16/4/2020 | 12:15 - 16:00 | Mircea | Deployment strategies, scalability, load balancing | Isolate components into services/containers/VMs |
12 | 23/4/2020 | 12:15 - 16:00 | Helge | Software Quality, Maintainability & Technical Debt | Enhancing CI/CD setup with static code analysis |
13 | 30/4/2020 | 12:15 - 16:00 | Paolo | Documentation of Systems and projects & Wrap-up | Simulator stops. Write report. |
- Exam submission: 12/5/2020
- Exam dates: 8/6/2020 to 11/6/2020
Recorded lectures (screen and voice) should be accessible on VidGrid.
All examples in class target Ubuntu 18.04.3 LTS (Bionic Beaver). Since all sessions contain hands-on exercises, we recommend that you have this version of Ubuntu installed on your laptop computer. (In case you decide to run another operating system, we cannot provide too much support for these during class.) The recommended setup is to have Ubuntu installed natively on your machine.
Remember to backup your data before starting the installation process and in particular resizing your partitions! Also double check values before repartitioning!
The following links are exemplary guides, you might find others that are even more suitable to your personal setup.
- https://www.tecmint.com/install-ubuntu-alongside-with-windows/
- https://vitux.com/how-to-install-ubuntu-18-04-along-with-windows-10/
- For older Macs (without Touchbar): https://www.maketecheasier.com/install-dual-boot-ubuntu-mac/
- For newer Macs (with Touchbar):
- First check if the Wifi card of your model is supported: https://github.com/Dunedan/mbp-2016-linux#wi-fi
- If yes: https://apple.stackexchange.com/a/375863
- If not, either:
- Install in a Virtual Machine, or
- Install on another old computer that you can use for this course.
In case non of the above options of installing Ubuntu are an option for you, you might want to install Ubuntu in a Virtual Machine (VM). Be aware however, that not all contents of the lecture (virtualization part in session 3) can be
- https://techsprobe.com/install-ubuntu/
- https://medium.com/@mannycodes/installing-ubuntu-18-04-on-mac-os-with-virtualbox-ac3b39678602
- Teachers: Helge, Mircea, Paolo
- TAs: Christoffer, Zander
To be formed during the first session.
Organization icon made by Freepik from www.flaticon.com