Course syllabus for Architectures for scale-out systems

Course syllabus adopted 2022-02-01 by Head of Programme (or corresponding).

Overview

  • Swedish nameArkitekturer för horisontellt skalande system
  • CodeDAT490
  • Credits7.5 Credits
  • OwnerMPSOF
  • Education cycleSecond-cycle
  • Main field of studyComputer Science and Engineering, Software Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language English
  • Application code 24111
  • Maximum participants50 (at least 10% of the seats are reserved for exchange students)
  • Block schedule
  • Open for exchange studentsYes

Credit distribution

0121 Written and oral assignments 4.5 c
Grading: TH
0 c0 c4.5 c0 c0 c0 c
0221 Examination 3 c
Grading: TH
0 c0 c3 c0 c0 c0 c
  • 14 Mar 2024 pm L
  • 04 Jun 2024 am L
  • 21 Aug 2024 am L

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

General entry requirements for Master's level (second cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

English 6 (or by other approved means with the equivalent proficiency level)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

Knowledge in programming, with the minimum of:
  • 7.5 credits successfully completed courses in programming
  • 7.5 credits successfully completed courses in object-oriented design

Aim

The overall goal of this course is to teach students how to move from simple Web applications running on a single backend server to modern Web-scale systems. This entails studying the architectural principles used to design such applications, as well as concrete technology necessary to operate systems at scale (most importantly monitoring and deployment automation). Another focal point of the course is data-driven (release) decision making, i.e., canary releases, gradual rollouts, A/B testing, and chaos engineering. All course topics will be covered from two points of view: industrial state of practice and research.

Learning outcomes (after completion of the course the student should be able to)

Knowledge and Understanding
  • describe and distinguish common architectural styles and patterns for building large scale-out systems, particularly those that are operated on the Web
  • describe the state of practice at industry leaders, such as Google or Microsoft, related to designing, deploying, and operating scale-out systems

Skills and Abilities
  • employ monitoring solutions to identify faults and performance degradations in scale-out systems
  • automate deployments to recover from faults or roll out new system versions without direct human involvement
  • make use of feature flags, Blue/Green deployments, and canary releases as basis of data-driven rollouts
  • design and execute A/B tests and chaos engineering experiments
  • compose common building blocks of scalable Web architectures, including cloud services, (reverse) proxies, content delivery networks, and load balancers, to improve non-functional properties of scale-out systems
  • plan and execute data-driven rollouts, and assess the outcome of such rollouts in a statistically sound manner

Judgement Ability and Approach
  • review and discuss current research contributions in the field of scale-out systems engineering
  • assess and improve the architecture of scale-out systems with regards to performance and resilience

Content

In this course, students learn the key concepts, architectural building blocks, approaches, and concrete tools that technology leaders, such as Microsoft or Google, use to design, deploy, and operate large scale-out Web-based applications. We discuss, evaluate, and experiment with basic architectural building blocks of scale-out systems, enabling technologies and concepts (e.g., cloud computing and deployment automation), advanced resilience engineering techniques (e.g., canary releases and chaos engineering), and current research results in the area of scale-out systems. Underlying themes of the course will be a focus on infrastructure automation and data-driven decision-making as the foundations of scale-out systems.

Organisation

The teaching consists of lectures, discussion workshops, exercises (both in-class and at home), and examination parts. Additional learning support is provided through mandatory and optional reading.

Literature

Course literature will be announced at the latest 8 weeks prior to the start of the course.

Examination including compulsory elements

The course is examined by an individual written exam carried out in an examination hall and written assignments normally carried out in groups. The assignments part is examined on the basis of individual contribution.
Students are required to complete written self- and peer-assessment forms during the course which will be part of the assessment of the student's individual contribution to the assignments.
Students who have not contributed sufficiently to the assignments will be asked to complete an individual task in order to receive a passing grade.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.