Assumed prior knowledge
Students are assumed to have taken courses in programming, computer architecture/organization and operating systems at a BSc level.
Easily accessible and responsive web-based services play a prominent role in modern society. Examples include data storage (documents, photos, etc.), content delivery (video streaming), social media, mapping and route planning, document editing and traditional web sites. Many of these services are empowered by cloud infrastructure. In the last decade, we have witnessed a large-scale transition from systems and software managed "on-premises" to infrastructure and software run in the cloud. Adoption of the cloud is expected to continue to increase in the coming years.
Academic interest in the cloud is twofold. Firstly, Cloud Computing is a multidisciplinary area of research involving issues in theory, algorithms, computer systems, performance measurement and modeling, and middleware and application design. Secondly, the use of the cloud as a platform within which to conduct research is increasing due to the availability of data management and analytics in the cloud, Infrastructure as a Service (IaaS) and High Performance Computing in the cloud.
In this course we will give a broad overview of the multidisciplinary field of Cloud Computing. Topics to be discussed include XaaS, deployment models, technical fundamentals of cloud systems, cloud programming models, resource management & availability, performance, and emerging topics in the field. After a number of introductory lectures, all participating students will present a recent paper published in one of the premier conferences, or journals, on cloud computing. Finally, the aim of the accompanying lab assignments is to become familiar with some aspects of cloud systems such as IaaS, object stores, cloud programming models and performance evaluation.
We assume students have taken courses in programming, computer architecture/organization and operating systems at a BSc level.
The student can describe the hardware and (operating system) software requirements for successful and performant virtualization.
The student can characterize different services that are typically present within cloud environments such as (virtualized) networks, storage infrastructure, resource management, middleware and IaaS frameworks.
The student is able to construct small software programs that use different services present within cloud environments, such as IaaS and object stores.
The student is familiar with a number of cloud programming models and can compose a small program in such a model.
The student can reason about cloud resource management, elasticity, availability, reliability and security concerns.
The student can use the knowledge acquired in this course to reason about performance of software solutions using cloud systems and propose experiments to test hypotheses.
The student is able to understand and form opinions on recent academic literature on cloud computing.
The most recent timetable can be found on the students' website.
Mode of instruction
Students are expected to work on the lab assignments autonomously, outside of the lectures.
Total hours of study: 168 hrs. (= 6 EC)
Lectures (including homework and preparation of presentation): 58:00 hrs.
Practical work (self-study, so unsupervised): 90:00 hrs.
Examination: 20:00 hrs.
Oral paper presentation
The final grade is computed as a weighted average of the parts. All individual parts must be sufficient (>= 5.5) to pass the course.
To be announced during class.
You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses.
Please also register for the course in Blackboard.
Lecturer: dr. K.F.D. Rietveld