Course syllabus
Course-PM
DAT490 / DIT291 Architectures for scale-out systems lp3 VT24 (7.5 hp)
Course is offered by the department of Computer Science and Engineering
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.
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.
Course summary:
Date | Details | Due |
---|---|---|