Topic outline

  • 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."

    (Student feedback from 2022 course.)

    Participating

    The 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 mandatoryparticipation 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.

    Workload

    Be 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. teacher can teach, but learning can occur within the learner.

    Groups

    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). A valid and on-time submission gets a 100% grade, a valid but late (up until some arbitrary deadline, i.e., before teacher and assistant get around to grading) gets 70% grade, and finally even later, missing, or a token (no real attempt at the assignment) submission gets a 0%. 

    All  assignments 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.

    Prerequisites

    Participants 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:

    • Monday 10:15-12:00
    • Friday 10:15-12:00


    Exceptions:

    • Friday March 31st no class
    • Wednesday April 5th class 10:15-12:00 (on this week, class on Monday and Wednesday)
    • Friday April 7th no class (easter)
    • Monday April 10th no class (easter)
    The course will be held online via zoom. The link will be available from a separate page for enrolled students.

    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.
    Introduction
    2.
    Microservice ecosystem
    System design I
    3.
    System design II
    4.
    System design III
    Failures
    5.
    Service architecture I
    6.
    Service architecture II
    7.
    Service architecture III
    8.
    Configuration and discovery
    9.
    Scalability
    10.
    Deployment
    Service evolution
    11.
    Serverless
    12.     
    Recap

    Enrolment

    Enrolment to the course is via Sisu.

    IMPORTANT! 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.

    Contact and Communication

    Course teacher is Santeri Paavolainen (email santeri.paavolainen@aalto.fi). 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.

    The course has a dedicated Teams (you should find the link in the sidebar once enrolled).