Information on individual educational components (ECTS-Course descriptions) per semester

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
Requirements and Prerequisites

Knowledge of an object-oriented programming language, the basics of operating systems and experience in software development.

Course content

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.

Learning outcomes

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.
Planned learning activities and teaching methods

Integrated course, exercises with individual feedback.

Assessment methods and criteria

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%)
Comment

None

Recommended or required reading
  • 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.

 

Mode of delivery (face-to-face, distance learning)

Classroom teaching