The introduction of cloud computing and the explosive growth of mobile computing and new online services brought also new ways of structuring computing systems: microservice architectures and serverless computing.This course is targeted to students with basic understanding of service architectures and scalable architectures, and builds on top of that to look at what possibilities and new challenges microservice architectures and serverless computing brings on top of “classic” service architectures.Conversely, this course does not teach you how to program or deploy microservices. If you are interested solely in implementation, please take a look at courses such as CS-E4190 (Cloud Software and Systems), CS-E4770 (Designing and Building Scalable Web Applications) and CS-E4670 (Full Stack Web Development). However ..."One of the best courses I have enrolled in so far, content and assignments were engaging, overall the course model was amazing, had a great time learning in class, breakout rooms were fun and interactive.""Course which everybody in IT should take.""For the long time, I felt like I want to attend lectures and that it will be beneficial to do so.""I think this is one of the very few courses where I really weren't bored at any lecture.""I initially was worried about the fast pacing of the course esp. reg. group assignments, but I ended up actually enjoying it quite a lot as it incentivized working efficiently and not wasting too much time on details. I also appreciated the binary grading and highly personalized feedback, as I think this encouraged me to focus on learning instead of saying the "right" thing.""Excellent handpicked reading materials and articles back from the 1990s. Every reading material contained a lot of technical knowledge to grasp, and I believe this was the best part of the course. Furthermore, ways of completing the courses and assignments are something building up your own skills (Basically a reflection) which is incredible."(Student feedback from 2022 and 2023 courses.)
ParticipatingThe course is held on period IV (February to April) and is worth 5 credits (op). The work on the course consists of 4 hours of weekly online classroom, group work exercises, preparatory reading assignments, bi-weekly introspection essays, and a final report. Note that off-class activities and results account over 70% of the the time taken on the course, so please do reserve enough of time in your calendar!
Please note that while attendance apart from the first lecture is not mandatory, participation and activity during class contribute about 25-35% of the final grading. It is possible to pass the course without attending classes, but even so, you will still need to participate in group work and to submit your final design report. For more detailed information on the course contents please see the syllabus.The course language is English. The course material is in the form of lecture notes and material available openly on the Internet or via online resources available through Aalto library services to Aalto students.
WorkloadBe forewarned that the pacing of assignments and lectures on this course is demanding. This is a course that you can not pass without substantial time investment in and outside classes. You are required to schedule and manage both your own and your group's time and schedule to meet the usually very short (less than one week) deadlines for the assignments. Be prepared to spend at least four hours a week outside classes, and definitely much, much more if you are aiming for a top grade. A teacher can teach, but learning can occur within the learner.You are solely responsible for ensuring sufficient time in your calendar for this course, especially if you take this alongside working full time, or with a packed course calendar. "I did not have enough time in my calendar for assignments" is interpreted in my ears as "I crammed too much into my calendar and somehow it is supposed to be the teacher's fault." Nope, that won't get you an extension. Make sure you have at least 4-8 hours/week available for the course outside the lectures.
PrerequisitesParticipants are expected to have knowledge about software development and related activities to it, including software design, web service programming and/or design, etc.There is no single "required" prerequisite skill, as the work of a systems architect (this is after all a course about system architectures, subvariety: microservice and serverless) cover many areas, and lack of familiarity in any single one of them can be remedied. However, the less you have past experience with software development especially from multi-service viewpoint the more difficult it will be -- there is no single inflection point to refer to, unfortunately, everyone is an individual.
Lectures and location
There are two weekly classes, starting on February 27th and ending on April 12th (period IV).
- Tuesday 12:15-14:00
- Friday 10:15-12:00
The course will be held online via zoom. The link will be available from a separate page for enrolled students.
- Friday March 29th no class
- Tuesday April 2nd no class
- Wednesday April 3rd class 12:15-14:00
The lectures are recorded and made available to enrolled students for the period of the course. The recordings will be removed after the course has been graded.
There may be one or two separate exercise return and discussion slots to which individual groups are assigned separately.
Schedule and content (approximate)1.Introduction2.Microservice ecosystemSystem design I3.System design II4.System design IIIFailures5.Service architecture I6.Service architecture II7.Service architecture III8.Configuration and discovery9.Scalability10.DeploymentService evolution11.Serverless12.Recap
Enrolment to the course is via Sisu.
Enrolment is finalized only after the first lecture. In case there are people on a waiting list, those not present on the first lecture will be subject to a space-creation process.
A significant amount of exercises on the course are group work. For this purpose, all students are assigned to a group of 3 to 5 persons for the duration of the course, and members of the group are expected to work together on the given assignments. The group is free internally to determine how to share the responsibility and work. However, all grading on group assignments applies equally to all group members.
If you have a group -- students at the same lab, friends, or co-workers -- feel free to form a group. Further details will be given later, but if you want to be proactive, you can send the lecturer 1) list of members and 2) name of the group before the second lecture.
Assignments and exercises
There are both group and individual assignments during the course. All but the final report are graded on a simple yes/no/late scale (the final report has a continuous scale).
All assignments but one are qualitative in nature --- there is no "right" or "wrong" answer. What is important that you take the time to research, read, think, and reflect. The grading is quite simple:
- 100% (one point) for an acceptable answer submitted on time.
- 50% (half a point) for an acceptable answer, submitted late but within the deadline (check assignment for exact cutoff date and time).
- 0% (no points) for no answer or later than (the typical 2 days) deadline.
The final assignment, i.e., your own microservice system design report is graded on the full 0% to 100% scale.
Extensions are granted pretty liberally, but only if asked in advance.
Use of Artificial Intelligence
There is nothing on this course that you would not find an answer on the Internet for. Using AI for cheap credits will only hurt you yourself, since you are missing an opportunity for deep learning.
Regardless, the policy for AI use on this course is:
- You can use AI (LLMs, etc.), but you must acknowledge its use in any response and provide your own input to AI, such as prompts, draft text, etc. The assignment is graded based on the input to the AI model, not on the AI output.
- Any persons identified as submitting AI responses not following the above rules will get one (1) warning, and any subsequent suspicious responses will be referred for appropriate follow-up by the university.
You can check on Aalto's general AI usage guidelines.
Contact and Communication
Course teacher is Santeri Paavolainen (email email@example.com). The teacher has office hours on Thursdays from 13 to 14. You can use the course Teams to call the teacher directly during that time. You can of course always send email or Teams messages at any time.
Course teaching assistant is Sehad Nassim (email firstname.lastname@example.org). Sehad is available for contact via email and directly via Aalto Teams.The course has a dedicated Teams (you should find the link in the sidebar once enrolled).