Instructor
Antony Chazapis
Graduate studies area
(C) Parallel and Distributed Systems
Undergraduate studies elective category
(E5) Software Systems and Applications
Credits
6 ECTS
Prerequisites
CS-335 (Computer Networks), CS-345 (Operating Systems) or permission from the instructor
Lecture schedule
Monday and Wednesday 14:00-16:00, in room H.206 (spring semester 2025)
Contact:
hy548_at_csd.uoc.gr (instructor), hy548-list_at_csd.uoc.gr

Course Description

The Internet provides services to billions of users worldwide. News sites, social media networks, e-shops, government agencies, and so on, must be online around the clock, no matter the load. As such, contemporary Internet-scale applications are deployed in the Cloud. Their internal architectures have evolved into complex webs of “microservices”, physically dispersed around the globe, using virtualized resources and software components supplied by the cloud providers. In this course we explore the structure of large-scale Internet services and focus on the techniques and tools used to build and deploy modern-day applications in cloud platforms, including containers and “serverless” functions. Through a series of hands-on sessions and assignments students are guided into mastering the advanced usage and understanding the working internals of Kubernetes, which has become the de facto standard for abstract, cross-cloud service composition. Additionally, we expand on how Kubernetes is actually used by big cloud providers, such as Amazon and Google, and how deployed container-based microservice architectures can utilize respective supporting services and APIs to achieve uninterrupted operation at a global-scale.

Goals

The aim of the course is to provide a substantial understanding of how to build, compile and execute a complex Internet-scale application in the Cloud, which includes:

Syllabus

Week Short description
1 Introduction to cloud-native software architectures (application examples, the need for DevOps, Cloud infrastructure) [slides]
2-3 Container execution environments (Docker usage: container synthesis, application execution, variables, files, networking) [slides]
4-5 Orchestration platforms (Kubernetes usage: commands, abstract concepts, service composition) [slides] [examples]
6 Auto-scaling and serverless (use of the autoscaler, functions as a service) [scaling example] [serverless example]
7-9 Platform components (Kubernetes internal structure, usage and extension APIs, scheduler, operators, CNI, CSI, intra-platform networking, Edge integration) [CRI, CNI, CSI slides] [scheduler slides] [CRD example] [webhook example]
10-12 Project presentations
13 Cloud platforms (services offered, APIs), course overview [slides]

Other presentations: [Helm] [Operator Framework]

Suggested Reading

There is no required textbook. The following material is relevant to the syllabus and will be covered in lectures.

Internet-Scale Services:

Containers and Kubernetes:

Selected Publications on Specific Relevant Topics:

Assignments

Week Short description
1-2 Assignment 1 (Basic Docker operations) [available οnline]
3-4 Assignment 2 (Basic Kubernetes operations) [available οnline]
5-6 Assignment 3 (Scaling applications in Kubernetes)
7-8 Assignment 4 (Kubernetes extensions)
9-13 Project. Titles will be decided in agreement with the instructor. Indicative subjects: Presentation and demo of some CNCF project, custom additions/extensions to Kubernetes, complete application implementation on Kubernetes with auto-scaling, use of Cloud APIs for automated application deployment, etc.

Marking scheme

Participation 15%
Assignments 60% (4 * 15%)
Project 25%

A grade is required in all three categories (participation, assignments, and project).