Course syllabus
Course-PM
DAT490 / DIT291 Architectures for scale-out systems lp3 VT23 (7.5 hp)
Contact details
Examiner / Main Teacher
Philipp Leitner (philipp.leitner@chalmers.se)
Co-Teacher
Hamdy Michael Ayas (ayas@chalmers.se)
Course purpose
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.
Schedule
Course literature
There is no text book for this course. Instead, the course relies on Web literature, scientific papers, and discussion in class for teaching. Lecture slides are provided before each class. Material for the previous course instance is released on GitHub (the course will be similar this year, but some details will be updated).
Course design
Teaching in this course is organized in topical weekly modules. Each module (week) typically starts with a lecture, where this module's important concepts are introduced. This is followed by a module assignment sheet, containing practical exercises and instructions, which are to be solved within a week in teams. In the following week, a discussion session is held, where selected student teams present their assignment solutions to the class, followed by in-class discussions moderated by the teacher. The assignment sheets build on top of each other in the style of problem-based learning, and all the tasks build up to the successful scaled deployment of a case study application.
Some deviations from this schema are planned. Please refer to the course schedule for detailed information regarding the plan for the week.
Learning objectives and syllabus
- 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
- 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
- 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
Link to the syllabus on Studieportalen: Study plan
Examination form
Successfully passing the course requires:
- Successfully completing all mandatory tasks in all assignments as a team
- Achieving a grade of 3 or better at the final individual hall exam
Overall Course Grade:
The overall grade for the course is individual per student (not per team), and is assigned according to the following table:
Exam Grade | Individual Assignment Grade | Final Course Grade |
5 | 5 | 5 |
4 | 5 | 5 |
5 | 4 | 4 |
4 | 4 | 4 |
3 | 4 | 3 |
3 | 5 | 4 |
5 | 3 | 4 |
3 | 3 | 3 |
U | * | Not completed |
* | U | Not completed |
Exam Grade:
Exam grades are based on a written hall exam. The exam contains 100 points in total. The grading scheme for the hall exam is as follows:
Hall Exam Points | Hall Exam Grade |
>=85 | 5 |
>=70 | 4 |
>=50 | 3 |
<50 | U |
There are no extra points awarded towards the written hall exam.
Assignment Grade:
Assignment sheets contain mandatory and optional tasks. Mandatory tasks need to be solved to pass the course. Students can gain points towards a better grade by solving optional tasks, actively participating in discussion sessions, or via other activities that the teachers reward with extra assignment points. Grades are assigned per individual student (not per team!) according to the following table:
Total Assignment Points | Individual Assignment Grade |
>=80 | 5 |
>=35 | 4 |
<35 but all mandatory tasks solved | 3 |
Mandatory tasks missing (independent of solved extra tasks!) | U |
For each assignment, each team is asked to report which optional tasks have been solved, and which student(s) contributed to the solution. Total points per optional task as reported in the assignment sheet will be split evenly among all contributing team members. Partial credits for not entirely solved optional tasks are possible.
Assignments can be re-submitted. However, optional tasks are only credited half the points in re-submissions - except scientific paper tasks, which can be re-submitted for full extra points. Re-submitted paper tasks are only re-graded if submitted with a clear change history (track changes or comparable). Students are not able to get a grade better than 4 via assignment re-submissions.
Changes from Last Year
After the initial instance of the course in 2022, the following changes will be implemented this year:
- Extended Chalmers enrollment from max 30 to max 50 students. Total class size (incl. GU students) is expected to be around 60 students (was 40 last year).
- Greatly extended the amount of available extra tasks. Particularly also adding non-technical tasks (predominantly paper tasks, which are new this year).
- In turn increased the thresholds for how much extra work is required to get a 4 or 5 (in the first instance it was, in the assessment of the examiner, too easy to get a 5).
- Made one additional task in Assignment 2 mandatory. This was done as the first instance has shown that some students failed to learn the fundamentals of k8s in Assignment 2, and then struggled throughout the rest of the course because of this.
- Added case studies to the lecture content, to allow for more interactivity during classes and to improve student understanding of the theoretical lecture contents.
- Updated all assignments to keep up with advances in DevOps technology. Particularly, a central update to Chalmers GitLab required extensive changes in Assignment 3 as well as Assignment 5 (our previous suggested approaches to connect k8s to GitLab are not supported any longer).
Course summary:
Date | Details | Due |
---|---|---|