The course syllabus contains changes
See changesCourse syllabus adopted 2021-02-17 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 24120
- Maximum participants30
- Block schedule
- Open for exchange studentsYes
Credit distribution
Module | Sp1 | Sp2 | Sp3 | Sp4 | Summer | Not Sp | Examination dates |
---|---|---|---|---|---|---|---|
0121 Written and oral assignments 4.5 c Grading: TH | 4.5 c | ||||||
0221 Examination 3 c Grading: TH | 3 c |
|
In programmes
Examiner
- Philipp Leitner
- Head of Unit, Interaction Design and Software Engineering, Computer Science and Engineering
Eligibility
Information missingCourse 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.
The course syllabus contains changes
- Changes to examination:
- 2022-05-19: Location Location changed from Johanneberg to Halls at Lindholmen by Linn Holmeskog
[2022-08-17 3,0 hec, 0221] - 2022-03-08: Location Location changed from Johanneberg to Johanneberg by Marija Trpkovska
[2022-08-17 3,0 hec, 0221] - 2022-03-08: Location Location changed from Johanneberg to Halls at Lindholmen by Marija Trpkovska
[2022-06-08 3,0 hec, 0221] - 2022-03-08: Location Location changed from Johanneberg to Halls at Lindholmen by Marija Trpkovska
[2022-03-12 3,0 hec, 0221]
- 2022-05-19: Location Location changed from Johanneberg to Halls at Lindholmen by Linn Holmeskog
- Changes to course rounds:
- 2021-09-23: Examinator Examinator Philipp Leitner (phileitn) added by Viceprefekt
[Course round 1]
- 2021-09-23: Examinator Examinator Philipp Leitner (phileitn) added by Viceprefekt