DevOps
Degree programme | Computer Science - Software and Information Engineering |
Subject area | Engineering Technology |
Type of degree | Bachelor Full-time Winter Semester 2024 |
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 | 2024 |
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 and integration testing
- Documentation 20%
- Code analysis (10%)
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