DevOps
Degree programme | Computer Science - Software and Information Engineering |
Subject area | Engineering & Technology |
Type of degree | Bachelor Full-time Winter Semester 2023 |
Course unit title | DevOps |
Course unit code | 024717050608 |
Language of instruction | English |
Type of course unit (compulsory, optional) | Elective |
Teaching hours per week | 3 |
Year of study | 2023 |
Level of the course / module according to the curriculum | |
Number of ECTS credits allocated | 5 |
Name of lecturer(s) | Andreas GOTTARDI |
Knowledge of an object-oriented programming language, the basics of operating systems and experience in software development.
In addition to the classic software development processes, modern cloud, web and mobile services also require the operation of the software to be organized under production conditions. The end product changes from delivered software to self-operated services. The aim of the course is to convey the interlinking between software development (Development - Dev) and its operation (Operations - Ops) at a glance as a summary and rounding off what has been learned so far.
- Agile software development for cloud, web and mobile services as a context for DevOps.
- Ops processes: Build, Test, Package, Release, Provision, Deploy, Configure, Monitor, Manage.
- Virtualization as a basic technology (virtual machines, storage, networks).
- Linux as the basic technology.
- Docker and Vagrant as container technologies.
- Packaging and containerization of software.
- Practical structure of a Docker service.
- Establishment of a CI pipeline (CI: Continuous Integration) for test automation.
- Cloud IaaS, SaaS, PaaS as options for dev, test, production environment.
The exercises take place with Docker / VM.
Connect known dev phases.
- The students are familiar with typical Ops processes: Build, Test, Package, Release, Provision, Deploy, Configure, Monitor, Control / Manage.
- The students recognize responsibilities, roles and the interaction of teams and know what it means to bring together roles and processes for an orderly operation of a service.
- The students know the differences between software development, test, staging and production environments as well as the challenges that arise for the seamless transition with fast software release sequences.
- The students have an understanding of continuous delivery and continuous integration as well as automation technologies.
- The students know a DevOps toolchain and know which building blocks (tools) it can consist of.
- The students know representatives of common DevOps tools.
- The students know the containerization of software and the creation of virtual process environments with defined properties as the most important technical means and can apply them in practice.
- The students know the tasks, competencies and requirements for the job description of a DevOps engineer.
Integrated course, exercises with individual feedback.
Basic grading (50%)
To be positive a working pipeline with at least the build and deploy step has to be present. This includes:
- Building the application in a "build container" using the required build frameworks (i.e. JDK, .NET SDK, etc.)
- Extracting the build artifacts and putting them in a new "run container".
- Pushing the run container to a provided registry.
- Connecting to the provided production machine, pulling the container and running it. This also includes failsafe logic.
Advanced improvements (50%)
Testing (20%)
Unit testing
These tests are executed in the build container during the pipeline step of creating the build artifacts.
Integration testing
These tests are executed during a explicit test phase where the container is already running on the production server.
Documentation (20%)
Code
The project has to contain code documentation for provided endpoints and methods used.
Customer documentation
This documentation is generated from integrated source files (i.e. Markdown) into a PDF and a searchable website.
Code analysis (10%)
The project has to contain a step for static code analysis against a provided SonarQube server.
None
Davis, Jennifer; Daniels, Katherine (2016): Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale. Beijing ; Boston: O'Reilly UK Ltd.
Sharma, Sanjeev (2017): The DevOps Adoption Playbook: A Guide to Adopting DevOps in a Multi-Speed IT Enterprise. Indianapolis, IN: Wiley.
Classroom teaching