This is and introductory graduate course to cloud computing. The goal is to give a broad overview of cloud computing delivery models and the underlying technology areas, such as datacenter networking, virtualisation, distributed systems, storage and resource management. We will provide an overview of the tools, methods and technologies used by cloud services providers today. The course will involve a set of hands-on exercises such as setting up and using services provided by Amazon, Google, etc.   
It is a graduate course and the participants are expected to present on different topics, so called deep dives. We will meet ten time during the spring. Each session will consists of an overview of a technology area and is then followed by deep dive presentations by participants. The course will give 7.5 credits and we will have the first meeting on February 3/2 at 10.15-12.00 in the seminar room at Department of Automatic Control, M-Building. The course is scheduled to be held at that time and locations on Tuesday on somewhat irregular intervals.
 
The course will to a large extent be based on acadmic papers, white papers, and technical report and we will not follow any course book closely. However, there are two good books that adresses the bigger picture.
 
Professor Birman has also kindly made his slides available for us to use in the course.  
 
About Us
 
The course will be given by Jorn Janneck and Johan Eker. TA for the course is Victor Millnert. The way the course is setup each session will consist of an introductory part given by either of us, which is then followed by presentations by the participants. The content of the particpant presentations is designed in collaboration with whoever of the course leaders that  is responsible for that particpular session.
 
Prerequisite
Basic knowledge of system level programming and operating systems.
 
Examination
 

Session 1. (Tuesday 3/2) - What Cloud? [Johan Eker] slides
Give an introduction to cloud by going over a number of definitions and concepts. We will take a closer look at the value proposition and evolution of cloud. The fundamental technology components that make up cloud are identified and discussed. 


Amazon is developing and running their own technology. They have a wide range of product IaaS such as EC2, CloudFront, S3, Dynamo, CloudWatch, AutoScaling, ELB, etc., and here we take a closer look at their tools. And of course there is Google Compute Engine.

Reading: 

 

Home assignments: Homework Assignment 1

Session 2. (Tuesday 24/2) - Building Cloud Services [Johan Eker] slides

We will discuss the architecture of cloud services and how they are constructed. Take a closer look on how a search engine may look under the hood. What are the components and design objectives. 

 

Reading: 

 

Home assignment: Homework Assignment 2

 

Session 3. (Tuesday 3/3) - Distributed Computing pt. I [Jorn Janneck] slides

Two lectures to create a basic overview of related topics in distributed computing that form the foundation for the large scale computing units found in cloud. This is a very broad area and deserves not one, but a number of courses in its own right. The topics are selected as being relevant to the current development in cloud computing, i.e. the massive scale and ubiquitous presence, which in turn puts new demands on scalability and availability.
We will start with some classical distributed computing:

 

Student presentation topics

 

Additional sources:

 

Session 4. (Tuesday 17/3) - Distributed Computing pt. II [Jorn Janneck] slides

We take a look at a selection of algorithms that have received renewed attention for use within massively scalable distributed systems.

Student presentation topics:

 

Additional Reading:

  

 

Session 5. (Tuesday 24/3) - Datacenter Networking [Johan Eker]

We will start by an overview of standard networking technologies such TCP/IP, HTTP, DNS etc. The networking infrastructure of a data center is discussed with a focus on problems related to multi tenancy, isolation, quality of service and management.

Reading: 

Student presentations:

Additional reading: 

Home assignment: Homework Assignment 3, Homework Assignment 4

 

Session 6. (Tuesday 14/4) - Virtualization [Johan Eker] slides

Virtualization plays a major role in the cloud stack. In particular the possibility to use cheap commodity x86 servers, despite their lack of virtualization support, accelerated the cloud development. This lecture will give an overview of the principal technologies and platforms in use. We will start by going over some fundamental results from the late 60s and continue with more recent developments.

Reading:

 

Student presentations:

 

 

Session 7. (Tuesday 21/4) - Storage [Jorn Janneck]
There is exists a number of different storage approaches for supporting cloud applications: block storage, distributed files systems, databases, key-value stores, object stores. In this lecture will make an overview of the main types and dive deeper into a few of the most well known.
- NAS, SAN, Server SAN
- iSCSI, FC, RDB, RDMA 

Reading: 

 

Student presentations:

 

Session 8. (Tuesday 28/4)  - Datacenter OS and Applications [Johan Eker] slides

How are applications designed? What are current design principles. We will take a look at OpenStack, which is rapidly becoming the industry standard and its different components Nova, Swift, Cinder, Neutron, Heat.

Reading:  Take a look at the docs at OpenStack

Student presentations:

 

Session 9. (Tuesday 5/5) - Programming Models [Jorn Janneck]

How to program parallel systems? A walkthrough of MapReduce and the open source Hadoop implementation. And a discussion on typical big data and analytics problems, such as page rank, calculating inverse indexes, recommendation systems, etc.

Student presentations:

 

Home assignment: Homework #5

Session 10 (Tuesday 12/5) - Datacenter Security [Johan Eker] slides

What role does security play in cloud computing? What are the new (and old) challanges and what are the current trends?

Reading: Thomas Ristenpart et al, "Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds"

Student presentations:

Additional Reading:

 

Session 11 - Project Presentations [Jorn Janneck]

TBD