Introduction to Cloud Computing (GESC1001) - Fall 2020

Philippe Fournier-Viger
Professor, Ph.D.
Office: T2709A, School of Humanities and Social Sciences
E-mail: philfv8@yahoo.com ( please use this e-mail to contact with me)

Course information

Content of this course

In everyday life, we use computers to perform various tasks such as writing documents and accounting. For many of those tasks, using a single computer is enough. However, for some tasks, the computing power of a single computer is not enough to ensure that the tasks are completed in a reasonable time, and the amount of data may exceed the capacity of a single computer. This is the case for tasks such as weather prediction, which requires to run complex simulations that may take several days to run on a single computer. Moreover, as we use the Internet in everyday life, we expect Internet services (e.g. websites, cloud storage) to be accessible not just at home but in various locations, and we expect these services to be fast and reliable. Cloud computing is a popular paradigm that addresses these challenges. In Cloud computing, several computers (the Cloud) work together to perform a task, to provide large storage space, and reliable services to users. However, designing a Cloud raises several challenges from the point of view of technology (in terms of hardware, software, and network), privacy and security.

The goal of this course is to give a good overview of what is cloud computing, how it works, and when it should be used.

Note that since this course is a general course, there is no prerequisite for taking this course, and thus, it is not required to be familiar with programming. The assignments will be done in a team, and will require to submit a Word or PPT document. More details about assignments will be given in the class.

This course is composed of 8 lectures.

The first lecture introduces this course. Then the concept of cloud computing will be presented. The characteristics of cloud computing will be reviewed and how it differs from traditional computing (using a single computer). The advantages and disadvantages of cloud computing will be discussed. Moreover, some important issues raised by cloud computing will be presented such as security.

The second lecture will discuss the concept of distributed and parallel systems. Cloud computing is a type of distributed and parallel system. But there exists other types of parallel or distributed systems such as multi-processor computers. The difference will be explained. Moreover, challenges raised by using parallel and distributed systems will be explained such as: how to deal with concurrent accesses to data, problems related to the communication between computers (e.g. message loss, corrupted messages), and the problem of synchronization between computers.

The third lecture will present the infrastructure required to perform cloud computing. We will discuss the infrastructure used by companies such as Amazon and Microsoft, as a case study, and in particular, the technology required so that they are used by multiple users at the same time.

The fourth lecture will discuss the challenges of developping cloud applications (software programs) that can run on a cloud to perform some tasks, compared to developing an application that run on a single computer. Some example of cloud applications will be discussed. The problem of coordination in the Cloud will be discussed with the ZooKeeper model.

The fifth lecture will discuss the development of cloud applications in more details. The students will be introduced to the MapReduce model, which is used in technologies such as Hadoop. Some detailled examples of how Hadoop can be used to perform tasks on the cloud will be given. Moreover, other technology such as Spark will be briefly discussed.

The sixth lecture will discuss the concept of virtualization to simplify some aspects of resource management in the cloud. The concept of virtual machine will be discussed, and how it is used in cloud computing architecture.

The seventh lecture will discuss data storage in the cloud. The concept of "Big data" will be discussed. An overview of different ways of storing the data in the cloud will be presented, including a case study with the GFS and Hadoop file systems.

The eight lecture will discuss the issue of security in the cloud. This includes aspect such as protecting the data stored in the cloud from hackers, malware, viruses, insiders, and attacks on virtual machines. The importance of trust will also be discussed. This lecture will also discuss the preparation for the final exam.

Lecture slides (PPTs) and assignments

Week

第 7 节 16:00-16:50
第 8 节 16:55-17:45
Room: T5509

( From now on, the course will be at T5509)

Topic

Week 1
Wednesday
2nd September


Introduction to cloud computing - chapter 1 (PDF / Powerpoint)

Week 2
Wednesday
9th September

Distributed and parallel systems - chapter 2

(PDF / Powerpoint)

Week 3
Wednesday
16th September

Cloud infrastructure - chapter 2 and 3

(PDF / Powerpoint)


Week 4
Wednesday
23rd September

Cloud application paradigm (part 1) - chapter 4

(PDF / Powerpoint)

Week 5
Wednesday
30th September


Cloud application paradigm (part 2) - chapter 4

(PDF / Powerpoint)

First homework to submit on the 10th October before 23:59 PM at the e-mail address of the teaching assistant as a Word file or PDF file. The e-mail will be announced in the QQ group.

Each student must do the homework by himself. This is not a team work.


Week 6
Wednesday
No course this week
Week 7
Wednesday
14th October

Cloud virtualization and resource management - chapter 5 -

(PDF / Powerpoint)

 

Week 8
Wednesday
21st October

Cloud storage - chapter 8

(PDF / Powerpoint)

Second homework to submit on the 30th October before 23:59 PM at the e-mail address of the teaching assistant as a Word file or PDF file. The e-mail will be announced in the QQ group.

Each student must do the homework by himself. This is not a team work.

Week 9
Wednesday
28th October

Cloud computing security - chapter 9

(PDF / Powerpoint)

******* GRADES OF HOMEWORK 1 *********

Here are the grades of the first homework:

序号 学号 成绩
1 __0110523 14
2 __0110613 11
3 __0210103 12
4 __0210121 11
5 __0210222 11
6 __0410118 11
7 __170310216 14
8 __0320416 11
9 __0320420 13
10 __0320516 12
11 __0330108 12
12 __0420110 11
13 __5071003 12

********** GRADES OF HOMEWORK 2 **********

And here are the grades of the second homework:

__0110523 13
__0110613 14
__0210103 12
__0210121 12
__0210222 13
__0410118 13
__170310216 11
__0320416 11
__0320420 13
__0320516 14
__0330108 14
__0420110 13
__5071003 12

20th November

 

 

Final Exam (120 minutes)
2020-11-20
16:00-18:00
Room : T3603

Closed-book exam / Do not forget to bring your student ID.

The final exam will have about 10 questions. Several questions will require to write a short answer in English (typically a few sentences).  Some types of questions that I like to ask in final exams are:

- What is the difference between X and Y ?

-  Explain what is "X".

- Explain why  X works in a certain way

 

Bibliography

I will use the following textbook to prepare the course:

D. C. Marinescu. Cloud Computing Theory and Practice, Morgan Kaufmann, 2013.

This book is used for preparing the lectures. It is not required to read the book, as very detailled PPTs will be provided for each lecture, above.

Besides, I will also add some content that is not in the book, and skip some less relevant content from the book.

Other interesting references::

  1. L. Wang, R. Ranjan, J. Chen, B. Benatallah. Cloud Computing: Methodology, Systems, and Applications, CRC Press, 2011.
  2. R. Buyya, J. Broberg, A. M. Goscinski. Cloud Computing: Principles and Paradigms, John Wiley & Sons Inc., 2011.
  3. T. White. Hadoop: The Definitive Guide (4th Edition), Tom White, O'Reilly Media, 2015.
  4. G. Coulouris, J. Dollimore, T. Kindberg, G. Blair. Distributed Systems: Concepts and Design, Fifth Edition, Addison Wesley, 2011.