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

  
Degree programme:Bachelor Computer Science - Software and Information Engineering
Type of degree:FH Bachelor´s Degree Programme
 Full-time
 Winter Semester 2023
  

Course unit titleDevOps
Course unit code024717050608
Language of instructionEnglish
Type of course unit (compulsory, optional)Elective
Semester when the course unit is deliveredWinter Semester 2023
Teaching hours per week3
Year of study2023
Level of course unit (e.g. first, second or third cycle)First Cycle (Bachelor)
Number of ECTS credits allocated5
Name of lecturer(s)Andreas GOTTARDI


Prerequisites and co-requisites

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

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.

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

Winter Semester 2023go Top