Syllabus for |
|
DAT490 - Architectures for scale-out systems
|
Arkitekturer för horisontellt skalande system |
|
Syllabus adopted 2021-02-17 by Head of Programme (or corresponding) |
Owner: MPSOF |
|
7,5 Credits
|
Grading: TH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail |
Education cycle: Second-cycle |
Main field of study: Computer Science and Engineering, Software Engineering
|
Department: 37 - COMPUTER SCIENCE AND ENGINEERING
|
Teaching language: English
Application code: 24120
Open for exchange students: Yes
Block schedule:
C
Maximum participants: 30
Module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0121 |
Written and oral assignments |
4,5 c |
Grading: TH |
|
|
|
4,5 c
|
|
|
|
|
|
0221 |
Examination |
3,0 c |
Grading: TH |
|
|
|
3,0 c
|
|
|
|
|
12 Mar 2022 am L
|
08 Jun 2022 am L
|
17 Aug 2022 am L
|
In programs
MPSOF SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 1 (compulsory elective)
Examiner:
Philipp Leitner
Go to Course Homepage
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.