DM874: Microservices and DevOps

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N340046112, N340046102
Assessment: Second examiner: None, Second examiner: External
Grading: Pass/Fail, 7-point grading scale
Offered in: Odense
Offered in: Autumn
Level: Master

STADS ID (UVA): N340046101
ECTS value: 10

Date of Approval: 25-03-2019


Duration: 1 semester

Version: Archive

Comment

DISCONTINUED - last offerede autumn 2020.

The course is identical to the previous course titled DM848 (UVA N340015101). This means that if you have previously taken an exam attempt in DM848, these attempts will be automatically transferred to this new course.

Entry requirements

The course cannot be followed by students who have passed DM848.

The contents of DM550 Introduction to Programming, DM563 Concurrent Programming, DM510 Operating System, DM557 Network and Security must be known.

Academic preconditions

See Danish version


Course introduction

The course introduces the current practices of Microservices and DevOps for the development of complex distributed system that scale up to millions of users.

Microservice programming is a paradigm in which software is built by composing distributed services. To link the software development (Dev) with software operations (Ops) of a microservice system, the DevOps approach is used. DevOps strongly advocates for automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management.
The course will cover recent research and technologies for the programming of microservices using DevOps approaches. It fosters a coherent understanding of advantages and disadvantages of microservices and DevOps practices to develop the complex distributed applications of the future.

The course builds on the knowledge acquired in the courses DM563 Concurrent Programming, DM510 Operating System, DM557 Network and Security. It provides a professional basis for choosing courses or projects in programming and software development later on the program.

In relation to the learning outcomes of the degree the course has explicit focus on:
  • developing skills in programming scalable system based on message exchanges
  • developing skills in analysing advantages and disadvantages of different approaches for scalability
  • developing skills in deciding and justifying professional decisions
  • giving the competence to identify one's own needs for learning and structure one's own learning in different learning environments

Expected learning outcome

The learning objectives of the course are that the student demonstrates the ability to:
  • detect and describe the main characteristics and structures of microservice system and DevOps pipelines
  • develop simple microservice systems using a DevOps pipeline
  • solve non-trivial programming tasks in a distributed setting
  • estimate possible language or tool related pitfalls for message based distributed systems

Content

The following main topics are contained in the course:
  • Microservice Programming and Languages
  • DevOps Pipeline and tools
  • Continuous Integration and Deployment
  • Modern Software Engineering approaches to build on scale

Literature

See Blackboard for syllabus lists and additional literature references.

Examination regulations

Prerequisites for participating in the exam a)

Timing

Autumn

Tests

Presentation and Peer Feedback

EKA

N340046112

Assessment

Second examiner: None

Grading

Pass/Fail

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Examination aids

To be announced during the course 

ECTS value

0

Additional information

Presentation related to a set of DevOps tools or a scientific paper relevant for the topics of the course. Peer feedback evaluation of most of the other students' presentations.

The prerequisite examination is a prerequisite for participation in exam element a). 

Exam element a)

Timing

January

Prerequisites

Type Prerequisite name Prerequisite course
Prerequisite not found

Tests

Project

EKA

N340046102

Assessment

Second examiner: External

Grading

7-point grading scale

Identification

Full name and SDU username

Language

Normally, the same as teaching language

Examination aids

To be announced during the course 

ECTS value

10

Additional information

The final project can be either a software project (including code and a written report) or a paper covering aspects of microservices and DevOps with an oral or written discussion. 
The project form is determined by the teacher at the start of the course and is the same for all students who follow the course in the same semester.

Indicative number of lessons

60 hours per semester

Teaching Method

At the faculty of science, teaching is organized after the three-phase model ie. intro, training and study phase.

The course will contain lectures, problem solving, and programming exercises. In the lectures, the theory will be covered, partly via a dialogue with the students. The aim of the problem solving is a better understanding of the theory, and through programming the students will obtain experience with the challenges and advantages of the usag of Microservices and DevOps approaches. 

Teacher responsible

Name E-mail Department
Jacopo Mauro mauro@imada.sdu.dk Concurrency

Timetable

Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration

NAT

Offered in

Odense

Recommended course of study

Profile Education Semester Offer period