|
所在平台: Coursera |
课程主页: https://www.coursera.org/learn/cloud-computing
课程评论:没有评论
课程名称:云计算概念(第一部分) 课程概述:本课程旨在介绍现代云计算系统的核心技术、算法和设计理念,这些系统无论是开源还是企业内部使用,都围绕着分布式系统构建。学习云计算的基础分布式计算“概念”,包括云、MapReduce、键值/NoSQL存储、经典分布式算法、广泛使用的分布式算法、可扩展性、当前趋势等内容。深入了解这些系统的内部运作,并通过作业练习实践所学概念。编程作业需要在提供的C++模板代码中实现这些概念,因此需具备C++的相关经验。此外,课程还包括对行业和学术界领先研究人员和管理者的访谈。 课程大纲: - 第1周:导言、云计算简介、MapReduce - 本周课程针对计算机科学本科生的初级和中级学习者,确保学生掌握必要的基础知识以便顺利学习后续内容。 - 第2周:谣传、成员资格和网格 - 课程内容包括通过传染病/谣传协议解决多播问题、失败检测器的设计以及网格计算的基本概念。 - 第3周:对等网络系统 - 详细讲解两类对等网络系统的设计,包括流行的Napster、Gnutella、FastTrack和BitTorrent,以及高效的分布式哈希表(如Chord、Pastry和Kelips)。 - 第4周:键值存储、时间与排序 - 探讨键值/NoSQL存储系统的设计,重点介绍Apache Cassandra和HBase的架构,CAP定理,以及时钟同步算法和因果时间戳的使用。 - 第5周:经典分布式算法 - 讲解如何计算分布式快照、如何在分布式系统中对多播进行排序、共识问题及其重要性,以及使用Paxos算法解决共识问题。 本课程旨在帮助学习者深入理解云计算的关键技术,提升其在实际应用中的能力。
Name:Week 1: Orientation, Introduction to Clouds, MapReduce
Description: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.
Name:Week 2: Gossip, Membership, and Grids
Description: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.
Name:Week 3: P2P Systems
Description: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.
Name:Week 4: Key-Value Stores, Time, and Ordering
Description: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.
Name:Week 5: Classical Distributed Algorithms
Description: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.
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.