Information Technology
Hands on Training icon
Hands On Training
Hands on Training icon

Modern Distributed Systems

Course Cover
compare button icon

Course Features

icon

Duration

6 weeks

icon

Delivery Method

Online

icon

Available on

Limited Access

icon

Accessibility

Mobile, Desktop, Laptop

icon

Language

English

icon

Subtitles

English

icon

Level

Intermediate

icon

Effort

5 hours per week

icon

Teaching Type

Self Paced

Course Description

Modern IT infrastructure is built as distributed systems, an exciting concept that started with the first computers and evolved rapidly into its present form. From online video meetings to internet services, from social media platforms to online games, we all use and interact with distributed systems on a daily basis and increasingly depend on them. Designing and operating such large-scale distributed systems, however, is complex and typically involves making reasonable compromises. There are fundamental technical barriers as well as economic arguments why we cannot make these systems behave as if they were running on a single, perfectly reliable machine

In this course, learners will be introduced to the essential functional and non-functional concerns of distributed systems and the common problems encountered while designing them, such as consistency, availability, elasticity, and scalability. A variety of practical solutions that have been established in the leading tech industry in recent years will be reviewed. These provide re-usable building blocks to create new large-scale applications. These recent developments, especially around cloud computing, large-scale data processing, distributed machine learning, and other fields are often not reflected in textbooks and are absent from many traditional curricula but are at the heart of this course.

The course will therefore provide learners with the fundamental understanding (theoretical and practical foundations) of how cloud, edge, and big data processing systems work and how they address common challenges for distributed systems such as performance, resilience, and scalability.

The learning progress is assessed through a variety of different activities including quizzes, design exercises, experiments, and open questions, with peer review of other students’ solutions. In the final project, learners will design a distributed system based on the learners’ own experience and interests and describe the functional and non-functional properties of the system.

Course Overview

projects-img

International Faculty

projects-img

Post Course Interactions

projects-img

Instructor-Moderated Discussions

Skills You Will Gain

Prerequisites/Requirements

Basic knowledge of software systems

Basic programming skills in a mainstream programming language.

What You Will Learn

Describe the principles of distributed systems.

Contrast distributed systems with other forms of computation (e.g., single machine computation, parallel computing).

Identify applications of distributed systems in science, engineering, business, and home use, and in particular the use of cloud and serverless applications, big data and graph processing applications, interactive and online gaming, etc.

Analyze and design core architectures, components, and techniques in distributed systems.

Solve practical problems related to modern uses of distributed systems.

Course Instructors

Author Image

Alexandru Iosup

Prof.dr.ir at Vrije Universiteit Amsterdam

Alexandru Iosup is full professor at Vrije Universiteit Amsterdam (VU) in the Netherlands. He is the tenured chair of the Massivizing Computer Systems research group at the VU and visiting researcher...
Author Image

Jan Rellermeyer

Prof. Dr. sc ETH at Leibniz University Hannover

Jan S. Rellermeyer is a full professor in the Faculty for Electrical Engineering and Computer Science at Leibniz University Hannover and head of the Dependable and Scalable Software Systems section. ...
Course Cover