194.151 Serverless Computing
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2023W, VU, 2.0h, 3.0EC, to be held in blocked form
TUWEL

Properties

  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise
  • Format: Blended Learning

Learning outcomes

After successful completion of the course, students are able to:

  • Describe and discuss the basic concepts of the serverless paradigm.
  • Understand and design serverless architectures and systems.
  • Work with cutting-edge serverless frameworks and platforms.
  • Select and apply serverless technologies for specific problems and application areas.
  • Design and develop practical serverless solutions.
  • Implement modern serverless applications.

Subject of course

As we move toward solutions that maximize productivity, minimize overhead, and promote sustainability, serverless paradigms arguably stand at the forefront of how we engineer future distributed systems. It can be seen as the next evolutionary step in cloud computing as it pushes the boundaries of efficient, scalable, and cost-effective software development. More specifically, serverless computing is a novel execution and programming model in which the platform provider dynamically manages the allocation and provisioning of the compute infrastructure. The serverless provider allows users to write and deploy code while the provider takes care of the entire infrastructure underpinning the application, but also of the application management during its runtime, e.g., of the elastic scaling.

There are several concepts and principles that underpin the serverless paradigm that we intend to introduce in this course.  For example, we will discuss the Function-as-a-Service (FaaS) paradigm as a novel programming and execution model in which the applications are decomposed into triggers and actions (functions), which are managed by a serverless platform. The serverless platform is responsible for providing function isolation, e.g., by employing some of the well-known virtualization approaches such as micro VMs and containers.  In order to provide an optimized cost model, such platforms typically enable serverless execution model which allows for scale-to-zero, i.e., fully downscaling serverless functions when there are no incoming requests. 

The purpose of this course is to familiarize students with the emerging serverless paradigm and to discuss its foundations, technologies, architectures, examples, and best practices of recent developments in Serverless Computing. The following main topics of serverless computing are currently planned to be covered. Please note that content is tentative and may change.

  • Foundational concepts of serverless paradigm such as the Function as a Service (FaaS) paradigm, function isolation and virtualization approaches, scale-to-zero, workload scheduling, and so forth.
  • BaaS (Backend as a Service) in serverless computing, with a special focus on serverless BaaS service offerings, supporting BaaS Services (communication, storage, and orchestration), and architectural and deployment patterns of complex serverless applications.
  • Serverless frameworks, platforms, and application areas, providing a deeper understanding of the cutting-edge serverless platforms such AWS Lambda, Google Cloud functions, etc., and introducing industry- and opensource-standards such as Serverless Framework and AWS SAM.
  • Serverless beyond the cloud, where we intend to discuss the proliferation of serverless computing at the Edge, in the Edge-Cloud continuum, and in the context of multi-cloud, federated, and Sky computing.

Teaching methods

This course is composed of a lecture (ca. 40%) and a lab (ca. 60%) part. In the lecture, the instructor will teach the fundamental concepts of the serverless paradigm as well as the main technologies of serverless computing and will discuss these with the students. Interaction with the students is facilitated through the usage of classroom tools (for discussions, collecting ideas, and so forth) as well as online tools and forums (Zoom, TUWEL).

Within the scope of the lab, students will be assigned group work (group size: 3 to 5 students). Students will need to familiarize themselves with serverless platforms and technologies and deliver a practical solution. During the semester, students will have to team up to design and implement a solution for their topic and they will need to present the results twice, in an intermediate and a final presentation.

Mode of examination

Immanent

Additional information

ECTS Breakdown:

3ECTS corresponds to roughly 75 hours.

VO (30h):

  • 1h introduction (VO+UE part)
  • 18 h lecture (6 lectures, each with 2h + 1h lecture preparation)
  • 10 h exam preparation
  • 2h exam

UE (45h):

  • 42h (3 assignments, effort: 10+10+22)
  • 3h presentation (ca. 5-6 groups ca. 30 min each)

Course Materials & Lecture Notes

 The following are the sources that will be used for this lecture:

  • Jonas, E., Schleier-Smith, J., Sreekanti, V., Tsai, C.C., Khandelwal, A., Pu, Q., Shankar, V., Carreira, J., Krauth, K., Yadwadkar, N. and Gonzalez, J.E., 2019. Cloud programming simplified: A berkeley view on serverless computing. arXiv preprint arXiv:1902.03383.
  • Castro, P., Ishakian, V., Muthusamy, V. and Slominski, A., 2019. The rise of serverless computing. Communications of the ACM, 62(12), pp.44-54.
  • Nastic, S., Rausch, T., Scekic, O., Dustdar, S., Gusev, M., Koteska, B., Kostoska, M., Jakimovski, B., Ristov, S. and Prodan, R., 2017. A serverless real-time data analytics platform for edge computing. IEEE Internet Computing21(4), pp.64-71.
  • Nastic, S., Raith, P., Furutanpey, A., Pusztai, T. and Dustdar, S., 2022, December. A Serverless Computing Fabric for Edge & Cloud. In 2022 IEEE 4th International Conference on Cognitive Machine Intelligence (CogMI) (pp. 1-12). IEEE.
  • Raith, P., Nastic, S. and Dustdar, S., 2023. Serverless Edge Computing—Where We Are and What Lies Ahead. IEEE Internet Computing27(3), pp.50-64.
  • Nastic, S. and Dustdar, S., 2018. Towards deviceless edge computing: Challenges, design aspects, and models for serverless paradigm at the edge. The Essence of Software Engineering, pp.121-136.

Lecture notes will be distributed online in TUWEL, for each lecture and immediately after each lecture.

Miscellaneous

Please check TUWEL for the exact lecture dates. Lecture attendance is not mandatory. In addition, there are three mandatory meetings for the lab part of this course: a kickoff meeting, and two presentations. Generally, TUWEL course has the most up-to-date and comprehensive information about lecture and lab dates and times, as well as information on upcoming deadlines.

Condition on the approval of STUKO (Study Commission), this course is to be classified as an elective course for the following Master programmes. The decision will be applied retroactively, meaning that it will also apply to anyone who takes this course in WS 2023.

    • Software Engineering & Internet Computing - Modul “Distributed Systems and Networking”
            
    • Business Informatics - Modul “ISE/EXT - Information Systems Engineering Extension”


Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Tue14:00 - 16:0031.10.2023 - 12.12.2023Seminarraum Argentinierstrasse Lecture
Serverless Computing - Single appointments
DayDateTimeLocationDescription
Tue31.10.202314:00 - 16:00Seminarraum Argentinierstrasse Lecture
Tue07.11.202314:00 - 16:00Seminarraum Argentinierstrasse Lecture
Tue14.11.202314:00 - 16:00Seminarraum Argentinierstrasse Lecture
Tue21.11.202314:00 - 16:00Seminarraum Argentinierstrasse Lecture
Tue05.12.202314:00 - 16:00Seminarraum Argentinierstrasse Lecture
Tue12.12.202314:00 - 16:00Seminarraum Argentinierstrasse Lecture
Course is held blocked

Examination modalities

Lab exercises and a written exam about the lecture.

The examination is composed of two parts. First, there is an exam, which has a total of 40 points, and which counts for 40% of the overall points students can gain within this course. In the exam, the content of the lecture is retrieved and applied. Depending on the enrollment, the exam might be conducted orally.

The remaining 60% of the overall points are gained through the efforts in the lab part:

  • Up to 30 points for the practical solution, which needs to be done as group work
  • Up to 20 points for the group presentations
  • Up to 10 points for individual accomplishments, i.e., contributions to the discussions during the presentation sessions, contributions in the forum, and individual distinguished accomplishments during the practical work or the presentations

Course registration

Begin End Deregistration end
18.09.2023 00:00 05.11.2023 23:59 09.11.2023 23:59

Curricula

Literature

No lecture notes are available.

Previous knowledge

The course is recommended for Master’s and PhD students in Computer Science.

Significant knowledge in programming (one of e.g., Java, Python, TS, NodeJS, Rust, Go), as well as distributed systems, is required. Some familiarity with the main concepts of cloud computing will be assumed.

Any experience with advanced topics such as working with containers, such as Docker containers, container orchestrators, such as Kubernetes or Docker Swarm, or existing serverless platforms, such as AWS Lambda, OpenFaaS, or Open Whisk is beneficial, but not mandatory.

The course is self-contained.

Accompanying courses: While it might be helpful if VU Advanced Internet Computing (184.269) has already been done, the two courses can also be done in parallel without a problem.

Preceding courses: (194.024) VU Distributed systems

Preceding courses

Accompanying courses

Miscellaneous

Language

English