Professor |
Anthony T.C. Tam
|
Teaching assistant |
[TBA]
|
Syllabus |
This course offers an overview of current cloud technologies, and discusses various issues in the design and implementation of cloud systems. Topics include cluster systems architecture and example distributed/parallel programming paradigms; cloud delivery models (SaaS, PaaS, IaaS, and Serverless Computing) with examples from popular public cloud platforms; virtualization techniques such as hypervisor, virtual machines, and Docker; container orchestration and management tools, such as Kubernetes; distributed programming models and systems such as MapReduce and Apache Spark; and distributed file systems, such as Hadoop file system. Students will gain experience in setting up a containerised environment using Kubernetes for running distributed applications (e.g., Web applications, Spark applications) on public cloud environments (e.g., Amazon, Microsoft, Google, Alibaba).
Prerequisites: Students are expected to perform installation and administration of various open-source cloud/distributed software on their machines and the cloud. Basic understanding of Linux OS and administration, networking concepts and setup, and programming experiences (C/C++, Java, or Python) in a Linux environment are required. |
Introduction by Professor |
Cloud computing has been around for more than a decade, and it continues
to be a very important platform driven heavily by the industry. Some
people consider it merely a buzzword for a group of old technologies that
have been integrated to create a system of significant magnitude.
However, it is truly transforming the IT industry by enabling highly elastic
and scalable delivery of enterprise applications and software as a service.
This course will focus on the underlying technologies that enable cloud
computing, providing examples of various cloud deployment and delivery
models. Additionally, this course places greater emphasis on the
practical aspect of cloud computing, specifically focusing on cloud-native
application development. Students will be introduced to the
fundamental concepts of writing containerized applications and deploying
them on the cloud platform using Kubernetes. Azure cloud will be
adopted as the testing platform for deploying applications, particularly
Spark applications.
|
Learning Outcomes |
|
Pre-requisites |
Students are expected to perform installation and administration of
various open-source software (Docker, minikube, Java, and Apache Spark)
on their PCs/notebooks#. Basic understanding of Linux
OS and administration, networking concepts and setup, and programming
experiences (in particular, python) in a Linux environment are required.
# - Your PC/notebook should have at least 4 (virtual) cores
with 8 GB of physical memory. |
Compatibility |
- |
Topics covered |
|
Assessment |
|
Course materials |
- |
Session dates |
|
Add/drop |
11 June, 2024 - 19 June, 2024 |
Maximum class size |
150 |
Moodle course website |
-
HKU Moodle:
https://moodle.hku.hk/course/view.php?id=113962
(Login using your HKU Portal UID and PIN)
- Please note that the professor maintains and controls when to release the Moodle teaching website to students.
- Enrolled students should visit the Moodle teaching website regularly for latest announcements, course materials, assignment submission, discussion forum, etc.
|