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.

    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 2022 course has a participant limit of at most 45 students. If there is significant interest, we may consider some alterations to the course schedule to facilitate more people.

    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.

    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.

    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

    The course will be held online on 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 (subject to change)

    Changes from original version:

    • None yet

    28.2.
    Introduction
    4.3.
    Microservice ecosystem
    System design I
    7.3.
    System design II
    11.3.
    System design III
    Failures
    14.3.
    Service architecture I
    18.3.
    Service architecture II
    21.3.
    Service architecture III
    25.3.
    Configuration and discovery
    28.3.
    Scalability
    1.4.
    Deployment
    Service evolution
    4.4.
    Serverless
    8.4.
    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 teaching assistant is Bruno Duarte Cosci (email bruno.duartecoscia@aalto.fi). He will be responsible for most exercise sessions and in general, is available for questions. You can reach him via email or the course Teams.

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