Cloud Computing Concepts, Part 1
Ends soon! Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Cloud Computing Concepts, Part 1
This course is part of Cloud Computing Specialization
Instructor: Indranil Gupta
154,915 already enrolled
Included with
Learn more
1,074 reviews
1,074 reviews
Skills you'll gain
Tools you'll learn
Details to know
8 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 5 modules in this course
Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies β all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing.
Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more! Know how these systems work from the inside out. Get your hands dirty using these concepts with provided homework exercises. In the programming assignments, implement some of these concepts in template code (programs) provided in the C++ programming language. Prior experience with C++ is required. The course also features interviews with leading researchers and managers, from both industry and academia.
This course is oriented towards learners with similar backgrounds as juniors and seniors in a CS undergraduate curriculum. Since learners come from various backgrounds, it is critical you view this lecture AND pass the prerequisite test. This will ensure you have many of the assumed prerequisite pieces of knowledge required to enjoy this course.
What's included
16 videos8 readings3 assignments2 discussion prompts1 plugin
16 videosβ’Total 155 minutes
- Introduction to Cloud Computing Concepts, Part 1β’4 minutes
- Orientation Towards Cloud Computing Concepts: Some Basic Computer Science Fundamentalsβ’24 minutes
- Week 1 Introductionβ’1 minute
- 1.1. Why Clouds?β’7 minutes
- 1.2. What is a Cloud?β’5 minutes
- 1.3. Introduction to Clouds: Historyβ’8 minutes
- 1.4. Introduction to Clouds: What's New in Today's Cloudsβ’8 minutes
- 1.5. Introduction to Clouds: New Aspects of Cloudsβ’8 minutes
- 1.6. Introduction to Clouds: Economics of Cloudsβ’7 minutes
- 2.1. A cloud IS a distributed systemβ’5 minutes
- 2.2. What is a distributed system?β’16 minutes
- 3.1. MapReduce Paradigmβ’14 minutes
- 3.2. MapReduce Examplesβ’11 minutes
- 3.3. MapReduce Schedulingβ’13 minutes
- 3.4. MapReduce Fault-Toleranceβ’9 minutes
- Interview with Sumeet Singhβ’16 minutes
8 readingsβ’Total 80 minutes
- Orientation Overviewβ’10 minutes
- Syllabusβ’10 minutes
- About the Discussion Forumsβ’10 minutes
- Instructions for Taking the Prerequisite Quizβ’10 minutes
- Course Learning Community and Social Mediaβ’10 minutes
- Week 1 Overviewβ’10 minutes
- Homework 1 Instructionsβ’10 minutes
- Programming Assignment Instructionsβ’10 minutes
3 assignmentsβ’Total 90 minutes
- Orientation Quizβ’30 minutes
- Prerequisite Quizβ’30 minutes
- Homework 1β’30 minutes
2 discussion promptsβ’Total 20 minutes
- Getting to Know Your Classmatesβ’10 minutes
- Homework 1 Discussionβ’10 minutes
1 pluginβ’Total 15 minutes
- Welcome! Please tell us about yourself.β’15 minutes
Lesson 1: This module teaches how the multicast problem is solved by using epidemic/gossip protocols. It also teaches analysis of such protocols. Lesson 2: This module covers the design of failure detectors, a key component in any distributed system. Membership protocols, which use failure detectors as components, are also covered. Lesson 3: This module covers Grid computing, an important precursor to cloud computing.
What's included
14 videos2 readings1 assignment1 discussion prompt
14 videosβ’Total 122 minutes
- Week 2 Introductionβ’1 minute
- 1.1. Multicast Problemβ’10 minutes
- 1.2. The Gossip Protocolβ’6 minutes
- 1.3. Gossip Analysisβ’15 minutes
- 1.4. Gossip Implementationsβ’4 minutes
- 2.1. What is Group Membership List?β’9 minutes
- 2.2. Failure Detectorsβ’9 minutes
- 2.3. Gossip-Style Membershipβ’8 minutes
- 2.4. Which is the best failure detector?β’5 minutes
- 2.5. Another Probabilistic Failure Detectorβ’9 minutes
- 2.6. Dissemination and suspicionβ’9 minutes
- 3.1. Grid Applicationsβ’6 minutes
- 3.2. Grid Infrastuctureβ’11 minutes
- Interview with William Groppβ’20 minutes
2 readingsβ’Total 20 minutes
- Week 2 Overviewβ’10 minutes
- Homework 2 Instructionsβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 2β’30 minutes
1 discussion promptβ’Total 10 minutes
- Homework 2 Discussionβ’10 minutes
P2P systems: This module teaches the detailed design of two classes of peer to peer systems: (a) popular ones including Napster, Gnutella, FastTrack, and BitTorrent; and (b) efficient ones including distributed hash tables (Chord, Pastry, and Kelips). Besides focusing on design, the module also analyzes these systems in detail.
What's included
10 videos2 readings1 assignment1 discussion prompt
10 videosβ’Total 105 minutes
- Week 3 Introductionβ’1 minute
- 1. P2P Systems Introductionβ’6 minutes
- 2. Napsterβ’7 minutes
- 3. Gnutellaβ’20 minutes
- 4. FastTrack and BitTorrentβ’7 minutes
- 5. Chordβ’22 minutes
- 6. Failures in Chordβ’15 minutes
- 7. Pastryβ’7 minutes
- 8. Kelipsβ’11 minutes
- Blue Waters Supercomputerβ’9 minutes
2 readingsβ’Total 20 minutes
- Week 3 Overviewβ’10 minutes
- Homework 3 Instructionsβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 3β’30 minutes
1 discussion promptβ’Total 10 minutes
- Homework 3 Discussionβ’10 minutes
Lesson 1: This module motivates and teaches the design of key-value/NoSQL storage/database systems. We cover the design of two major industry systems: Apache Cassandra and HBase. We also cover the famous CAP theorem. Lesson 2: Distributed systems are asynchronous, which makes clocks at different machines hard to synchronize. This module first covers various clock synchronization algorithms, and then covers ways of tagging events with causal timestamps that avoid synchronizing clocks. These classical algorithms were invented decades ago, yet are used widely in todayβs cloud systems.
What's included
12 videos3 readings1 assignment1 discussion prompt
12 videosβ’Total 147 minutes
- Week 4 Introductionβ’2 minutes
- 1.1. Why Key-Value/NOSQL?β’16 minutes
- 1.2. Cassandraβ’27 minutes
- 1.3. The Mystery of X-The Cap Theoremβ’20 minutes
- 1.4. The Consistency Spectrumβ’9 minutes
- 1.5. HBaseβ’10 minutes
- 2.1. Introduction and Basicsβ’11 minutes
- 2.2. Cristian's Algorithmβ’6 minutes
- 2.3. NTPβ’5 minutes
- 2.4. Lamport Timestampsβ’15 minutes
- 2.5. Vector Clocksβ’12 minutes
- Interview with Marcos Aguileraβ’15 minutes
3 readingsβ’Total 30 minutes
- Week 4 Overviewβ’10 minutes
- Optional: Lamport Timestamps (Ukulele Version)β’10 minutes
- Homework 4 Instructionsβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 4β’30 minutes
1 discussion promptβ’Total 10 minutes
- Homework 4 Discussionβ’10 minutes
Lesson 1: This module covers how to calculate a distributed snapshot, leveraging causality again to circumvent the synchronization problem. Lesson 2: This lecture teaches how to order multicasts in any distributed system. Algorithms for assigning timestamp tags to multicasts using various flavors of ordering β FIFO, Causal, and Total β are covered. The module also covers virtual synchrony, a paradigm that combines reliable multicasts with membership views. Lesson 3: Consensus is one of the most important problems in a distributed system, enabling multiple machines to agree. This module uses Paxos, one of the most popular consensus solutions used in the industry today. Paxos is not perfect because consensus cannot be solved completely β an optional lecture presents the famous FLP proof of impossibility of consensus.
What's included
16 videos4 readings2 assignments1 programming assignment3 discussion prompts1 plugin
16 videosβ’Total 156 minutes
- Week 5 Introductionβ’1 minute
- 1.1. What is Global Snapshot?β’7 minutes
- 1.2. Global Snapshot Algorithmβ’11 minutes
- 1.3. Consistent Cutsβ’6 minutes
- 1.4. Safety and Livenessβ’8 minutes
- 2.1. Multicast Orderingβ’17 minutes
- 2.2. Implementing Multicast Ordering 1β’10 minutes
- 2.3. Implementing Multicast Ordering 2β’8 minutes
- 2.4. Reliable Multicastβ’6 minutes
- 2.5. Virtual Synchronyβ’12 minutes
- 3.1. The Consensus Problemβ’12 minutes
- 3.2. Consensus In Synchronous Systemsβ’8 minutes
- 3.3. Paxos, Simplyβ’14 minutes
- 3.4. The FLP Proof [OPTIONAL]β’21 minutes
- Interview with Tushar Chandraβ’14 minutes
- Conclusion to Cloud Computing Concepts, Part 1β’3 minutes
4 readingsβ’Total 40 minutes
- Week 5 Overviewβ’10 minutes
- Homework 5 Instructionsβ’10 minutes
- IMPORTANT Update notes for Gossip Protocol submission (Oct 24, 2019)β’10 minutes
- Final Exam Instructionsβ’10 minutes
2 assignmentsβ’Total 60 minutes
- Homework 5β’30 minutes
- Final Examβ’30 minutes
1 programming assignmentβ’Total 180 minutes
- Gossip Protocolβ’180 minutes
3 discussion promptsβ’Total 30 minutes
- Homework 5 Discussionβ’10 minutes
- Final Exam Discussionβ’10 minutes
- Final Reflectionβ’10 minutes
1 pluginβ’Total 15 minutes
- How was the course?β’15 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Explore more from Algorithms
- Status: Free TrialU
University of Illinois Urbana-Champaign
Course
- Status: Free TrialU
University of Illinois Urbana-Champaign
Course
- Status: Free TrialL
LearnQuest
Course
- Status: Free TrialU
University of Pittsburgh
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
63.59%
- 4 stars
21.41%
- 3 stars
5.95%
- 2 stars
2.88%
- 1 star
6.14%
Showing 3 of 1074
Reviewed on Dec 5, 2016
Great lectures. However, the starter code for the programming assignment is quite atrocious. Overall, would highly recommend to anyone wanting to learn high level concepts in distributed systems.
Reviewed on Dec 23, 2017
Enjoyed the course. Brought back my ability to program in c++. The programming assignment was sufficiently challenging to achieve that.
Reviewed on Dec 10, 2019
Great course overall as it gives a deep understanding of the cloud technologies. Some homework are too tedious to finish and not really interesting.
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you canβt afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, youβll find a link to apply on the description page.
More questions
Financial aid available,
