
DevOps: Engineering for Deployment and Operations
Course Information
- Credits: 6 ECTS
- Language: English
- Schedule: every Tuesday
- Lecture room: D 2.01
- Course type: Elective Course for MSc in Information Engineering only
- Module number: CITHN4020
- Participants: up to 24 students (Heilbronn students only)
Course Description
This course blends theoretical understanding with hands-on experience, emphasizing a project-based learning approach. Students will engage in team-based project work, applying the concepts and techniques discussed in workshops (a.k.a. lectures) to a predefined project. This practical application is designed to foster collaboration, creativity, and real-world problem-solving skills. Assessment in this course will be two-fold:
- Project Work (50% of the grade): Each team will present their project outcomes, demonstrating their ability to implement DevOps principles effectively. All team members must be prepared to discuss their work and answer questions, showcasing their understanding and contributions. Exceptional performance, marked by exceeding minimum requirements and demonstrating creativity, will be eligible for bonus points, encouraging students to push the boundaries of their learning.
- Computer-Based Exam (50% of the grade): At the end of the course, a 90-minute computer-based exam will be conducted. This Exam is designed to assess individual understanding and application of the course material. It ensures a comprehensive grasp of the theoretical aspects of DevOps, balancing the practical team project component.
Prerequisites
Important: This course is only open to students enrolled in the Master’s program in Information Engineering on the Heilbronn campus.
The course is designed for master's students with an advanced understanding of computer science or information systems, typically acquired through a computer science-oriented bachelor’s program. To ensure readiness for this course, students should possess the following foundational knowledge and skills:
- Solid Programming Background: Familiarity with fundamental programming concepts and techniques is essential. Relevant coursework includes “Fundamentals of Programming” (INHN0002).
- Understanding of Internet/Networking Protocols: A grasp of the basics of computer networking and distributed systems is crucial. This can be achieved through courses like “Introduction to Computer Networking and Distributed Systems.”
- Basic Software Engineering and Architecture Knowledge: An understanding of software engineering principles, including distributed version control and software architecture, is required. Suitable courses include “Introduction to Software Engineering” (e.g., INHN0006) and “Software Architectures”.
Additionally, familiarity with the following areas will be beneficial, though not mandatory:
- Cloud Technologies: Knowledge of cloud computing, virtual machines, and containers (e.g., Cloud Computing).
- Internet Security: Understanding of the key concepts and challenges related to internet security (e.g., IT Security).
- Software Development Methodologies: Familiarity with approaches to software development and project management.
- Deployment and Operation: Insights into the processes involved in deploying and operating software systems.
Learning Objectives
The course focuses on the practical application of the covered content. After completing the course, participating students will be able to:
- Explain DevOps Principles: Critically examine and differentiate between the cultural and organizational aspects of DevOps to optimize the software development lifecycle.
- Apply Virtualization and Cloud Integration: Implement and execute virtualization and cloud technologies to enhance operational efficiency.
- Design Deployment Strategies: Construct continuous integration and delivery pipelines using systematic planning and creative problem-solving.
- Evaluate Monitoring and User Feedback: Assess monitoring strategies and interpret user feedback to refine and improve the development process.
- Apply Security and Compliance Best Practices: Integrate security processes and compliance measures by incorporating cross-cutting security aspects to mitigate risks.
- Create Microservices and Scalable Architectures: Design and develop scalable microservice architectures, applying innovative solutions to complex system requirements.
- Operate Production Environments: Configure deployment software measures, apply best practices for incident management, and resolve problems, e.g., rollbacks.
- Investigate Advanced DevOps Topics: Explore and research advanced DevOps concepts and current trends to anticipate their impact on future methodologies and practices.
- Apply DevOps for AI Systems: Implement DevOps practices tailored to AI workflows, including data versioning, model deployment, and monitoring of AI performance in production.