Skip to content

Materials for the elective "DevOps, Software Evolution and Software Maintenance" at IT University of Copenhagen, spring 2023

License

Notifications You must be signed in to change notification settings

JohannesLC/lecture_notes

 
 

Repository files navigation

License: CC BY-NC-SA 4.0

image

DevOps, Software Evolution and Software Maintenance

Content

This page contains information on the schedule, material, exam, etc. for the elective "DevOps, Software Evolution and Software Maintenance Content" at IT University of Copenhagen, spring 2023 (BSc course description on LearnIT and MSc course description on LearnIT).

Schedule

Sessions (lectures combined with exercises) are on Tuesdays from 14:00 to 18:00 first in room 2A12/2A14.

OBS: We expect you to be present during the entire time, not only the first two hours.

Table 1. Course schedule Note: While times are locked, the topics are subject to change.
# Date Time Lecturer Preparation Topic Exercises Project Work

1

31/1

14:00 - 18:00

Helge

Prep. material

Project start, forming groups, SSH, SCP, and Bash

Refactor ITU-MiniTwit to work on modern system

2

7/2

14:00 - 18:00

Helge

Prep. material

Packaging applications, Containerization with Docker

Using Docker

Refactor ITU-MiniTwit in another programming language and tech. stack

3

14/2

14:00 - 18:00

Helge

Prep. material

Provision of local and remote virtual machines

Using Vagrant, VirtualBox, and DigitalOcean

Continue refactoring, deployment of your ITU-MiniTwit to a remote server.

4

21/2

14:00 - 18:00

Helge & Zander (Eficode)

Prep. material

Guest Lecture Eficode: What is DevOps?; Continuous Integration (CI), Continuous Delivery (CD), and Continuous Deployment

Using GitHub Actions CI (Simulator test)

Continue refactoring, Setup CI & CD for reproducible builds, tests, delivery, and deployment

5

28/2

14:00 - 18:00

Helge

Prep. material

What is DevOps and configuration management

Cleaning and polishing of your ITU-MiniTwit, introduction of DB abstraction layer, and entering maintenance (Simulator starts)

6

7/3

14:00 - 18:00

Helge

Prep. material

Monitoring

Using Prometheus and Grafana

Add monitoring to your ITU-MiniTwit

7

14/3

14:00 - 18:00

Helge

Prep. material

Software Quality, Maintainability & Technical Debt

Understand SonarQube Quality Model and experiment with linters.

Enhancing CI/CD setup with test suite and static code analysis

8

21/3

14:00 - 18:00

Mircea

Prep. material

Logging, and Log Analysis. Service-level agreements.)

A Basic EFK Stack

Add logging to your ITU-MiniTwit and create a set of SLAs for it

9

28/3

14:00 - 18:00

Mircea

Prep. material

Security of web-facing applications

A Basic Pen-Test with Metasploit

Security Assessment & Pen Testing

4/4

-

-

-

Easter Break

-

Operations & maintenance still reacting on issue reports and fixing of errors :)

10

11/4

14:00 - 18:00

Mircea

Prep. material

Deployment strategies, scalability, load balancing.

A Basic Swarm

Isolate components into services/containers/VMs

11

18/4

14:00 - 18:00

Mircea

Workshop

Continue isolation of components into services/containers/VMs and Fix reported problems

12

25/4

14:00 - 18:00

Mircea

Infrastructure as Code

MiniTwit Infrastructure as Code

Encode your infrastructure setup

13

2/5

14:00 - 18:00

Mircea & Helge

Documentation of Systems and Projects

Simulator stops. Write report.

14

9/5

14:00 - 18:00

Mircea & Helge

Exam prep., Thesis topics, Evaluation, Cookies :)

Write report.

  • Exam submission: Latest Wednesday 24/5/2023 14:00

  • Exam dates: 12/6/2023 to 14/6/2023

Peer-feedback, presentations, and discussions in exercise sessions

TBA

Recordings

This is not a distance course. This term, we will not record the lectures. You will have access to all written lecture material through this repository though.

Recommendation

All examples in class target Pop!_OS 22.04. Essentially, this is a Ubuntu 22.04 (Jammy Jellyfish) Linux distribution. There are many more such Ubuntu derivates, choose one of your liking: Linux Mint, Elementary OS, KDE Neon, etc.

Since all sessions contain hands-on exercises, we recommend that you have such a Linux version installed on a 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 such a Linux installed natively on your machine.

Find installation instructions session_00/README.adoc.

Note, we do not have any experiences with M1/M2-based Macs. Neither do we have access to one of these. Consequently, likely many of the technologies that we demonstrate will have issues on these computers and we won’t be able to support you much.

Team

  • Teachers: Helge, Mircea

  • TAs: Leonora, Gianmarco

Communication

Outside teaching sessions you can communicate with each other, and with the teachers via the the course’s Teams channel.

Groups

Table 2. Overview over all groups.
Index Name Members Technology

BSc

Group e

Souffle

laku, raoo, asly, pmat

BSc

Group f

Container Maintainers

dayo, jarh, adjr, sabf, ddeq

Go (Gin)

BSc

Group g

DevJanitors

lauh, mkjo, antbr, addo,awed

C#

BSc

Group h

FiveGuys

aist, flmi, joap, marki, hasc

Python?

BSc

*Group j

Niceness

siar, tbru, behv, paab

C# (Blazor)

BSc

Group k

Radiator

gume, niwl, sijs, vibr

C# (Razor)

BSc

Group m

Jason Derulo

mpia, caws, vson, nihj, luhj

C# (Razor)

MSc

Group a

Academic Weapons

alkl, bamk, krwi, johc

Java

MSc

Group b

DevUps: Delivering Buggy Software Late since 2023

thki, matf, awag, jfas

C# (React)

MSc

*Group c

DreamTeam

jonan, chmj

C#

MSc

Group d

CI/CDont

ojoe, sipn, bekj, januh

Go (Gin) (NextJS)

MSc

Group i

OpsDev

ivcm, alat, nesu, mmea, mirb

Python (FastAPI)

MSc

Group l

Bango

ojar, bjch, nbry, gubr, amav

Go (Gin, GORM)

MSc

Group n

dudes

jepli, dakj, nikso, jokf, beth

Go (Gin)

MSc

*Group o

group o

gega, noho, hrto,chtof,muni,lson

C#

MSc

Group s

Group S

inch, mhom, ngio, emgi, bact

MSc

Group t

our group name

mcru, sgal, petst, dagp

Python (Django)

Ungrouped yet

  • chfm, hljo, jocl, mbae

Exam Schedule

TBA

Attributions

Organization icon made by Freepik from www.flaticon.com

About

Materials for the elective "DevOps, Software Evolution and Software Maintenance" at IT University of Copenhagen, spring 2023

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 65.3%
  • Python 34.0%
  • Other 0.7%