云计算课程
从云资源调度、分布式存储到大数据处理,包含课程实践、Twitter 语料分析项目、英文阅读材料、实践反思和云平台入门。
51 篇 · 按学习顺序阅读
专题目录
课堂笔记13 篇
- 云计算 第 9 课 Sequential Programming
这一讲我们就要开始实际接触一个真实的项目——处理一个大文本数据集了。在云上编程和平时学习的可能有一些不同,这里会尽量写得详细一些。
- 云计算 第 10 课 Parallel Programming using EMR
这节课我们来看看,如何利用 AWS 来进行并行处理,完成与上节课类似的文本处理任务。
- 云计算 第 11 课 Horizontal Scaling and Advanced Resource Scaling
经过上一节课的『锻炼』,这一次我们要迎来更大的挑战。前面很多时候都是通过 Web 界面来进行云资源的管理,这里我们需要学会如何用代码来申请和控制各种资源。
- 云计算 第 12 课 深入负载均衡器及其使用策略
上一讲中我们接触负载均衡器,并且通过一个模拟实验进行了基本的体验,这节课我们通过 Azure 来探索一下负载均衡器的工作原理。
- 云计算 第 13 课 缓存
前面我们已经了解了如何进行 autoscaling 和自定义负载均衡器,这一课我们来接触另一个在 web 服务中非常重要的概念——缓存。
- 云计算 第 14 课 文件 vs 数据库
从这一课起,我们要开始使用数据库了。通过数据库和文件的性能对比以及 SQL 与 NoSQL 的对比,学会选择最合适的技术。
- 云计算 第 15 课 分区和复制
之前我们做的是计算能力的伸缩拓展,这次我们也要对数据库做类似的事情,并且通过具体的场景,来了解键值对存储的应用特点。特别鸣谢瓜瓜 @jiexing 的点拨,不然我就卡在自己脑洞里出不来了。
- 云计算 第 16 课 分布式键值对存储中的一致性问题
前面我们使用过两种分布式存储的方式:sharding 和 replication,其中一个很重要的问题就是如何在分布式键值对存储中保证数据一致性,这一次我们来学习和理解关键的机制和概念。
- 云计算 第 17 课 实现社交网络的时间线功能
这一次的任务需要前端后端一起做了!后端包括 MySQL, HBase 和 MongoDB,通过这次的作业,我们应该能够慢慢开始实现自己的 web 应用了。
- 云计算 第 18 课 基于云数据仓库的 OLAP
之前的任务我们主要做的是 OLTP 的工作,这节课我们来接触一些 OLAP 数据仓库相关的内容,主要是 Hive, Impala 和 Redshift。
- 云计算 第 19 课 用 MapReduce 进行批处理
从这节课开始我们进入了一个新的阶段,开始具体来应用 MapReduce 编程模型,这次主要是计算文本的 N-Gram 及语言模型并连接到 web 服务中。
- 云计算 第 20 课 Spark / GraphLab 动手玩
MapReduce 虽好,但是对于需要迭代的计算,步骤繁琐且效率不高,于是振臂一呼,有了 Spark。这节课我们来通过具体的任务学习 Spark 相关知识和编程技巧。
- 云计算 第 21 课 Kafka / Samza 动手玩
终于来到最后一课,这次我们来接触一下 Spark 中的流处理。
Twitter 语料分析项目10 篇
- 云计算 Twitter 语料分析 1 项目简介
项目名称:Twitter Analytics on the Cloud
- 云计算 Twitter 语料分析 2 Undertow 配置部署
因为项目有一定的性能要求,所以我们选择 Undertow 这个微框架来降低框架本身带来的性能影响,但是因为比较小众,所以网上很多资料都不全,这里记录下具体在 EC2 上如何配置和部署 Undertow。
- 云计算 Twitter 语料分析 3 Vert.x 配置部署
我们需要比较两个不同的 web 框架的性能,于是也选择了当下比较热门的 Vert.x 框架来做比较,网上的中文资源还是比较少的,这里同样记录一下如何在 EC2 上搭建和部署 Vert.x。
- 云计算 Twitter 语料分析 4 Heartbeat 与 Authetication
前面两课我们已经配置好了基本的环境,之后的任务都会在前面的基础上完成。因为主要会使用 undertow,所以我们制作了自己的镜像,用于对比的 vertx 则仍旧会以手动的方式进行配置。
- 云计算 Twitter 语料分析 5 ETL 导入数据
这一次我们需要利用 Map Reduce 处理大约 1T 的 Twitter 数据,并导入到对应的数据库中,这一部分因为奇奇怪怪的情况很多,所以一定要注意。
- 云计算 Twitter 语料分析 6 MySQL 和 HBase 配置及测试
完成了数据处理,我们就可以把清洗之后的数据导入数据库了,需要分别针对 MySQL 和 HBase 写两套代码。具体我们可以把数据库与前端分离,只要配置好能让前端来连接即可。
- 云计算 Twitter 语料分析 7 探索 HBase
优化 HBase 性能的时候遇到了诸多问题,主要原因在于对于 HBase 细节的不理解,所以要对着官方文档,仔细过一次,希望能以此找到症结所在。
- 云计算 Twitter 语料分析 8 处理复杂读请求
从这节课开始,就进入了第二阶段,熟悉了基本的架构和操作之后,需要处理更加接近现实的稍微复杂一些的请求(不能像之前那么简单粗暴)。
- 云计算 Twitter 语料分析 9 用 CDH 5 搭建基于 Hadoop 2.0 的 HBase
之前的任务中我们使用 Amazon EMR 来搭建 HBase,这样一来,可定制性就比较差,没有办法根据具体的应用来进行调优,所以这里我们试着直接使用普通的 EC2 实例来自己搭建 HBase。
- 云计算 Twitter 语料分析 10 搭建数据分析网络应用
这是 Twitter 语料分析的最后一个阶段,我们需要搭建一个完整的数据分析网络应用
英文阅读材料22 篇
- 云计算 阅读材料 1 Cloud Computing Overview
Welcome to this online course on cloud computing. This domain is emerging and fast-evolving. Here, we will introduce the big picture of cloud computing, as well as explain how it h
- 云计算 阅读材料 2 Economics, Benefits, Risks, Challenges and Solutions
Now that we have covered the fundamental ideas behind cloud computing, it is important to explore some of the benefits, risks and ongoing challenges facing cloud computing. Since o
- 云计算 阅读材料 3 Data Center Trends
In this unit we will present and discuss the data center which is a collection of physical computing resources that are provisioned and shared within the cloud computing paradigm.
- 云计算 阅读材料 4 Data Center Components
In this module, we will discuss the various components (equipment and facilities) of a data center. We will start with a discussion on IT equipment, and will clarify many server-sp
- 云计算 阅读材料 5 Cloud Management
You have learned the origins of a data center, from its roots in mainframe computers to the newest trends, and about what goes inside a data center (cooling, power, servers, networ
- 云计算 阅读材料 6 Cloud Software Deployment Considerations
Now that you have seen how a cloud data center runs, you may feel that all of the complexity is handled by the Cloud Service Providers (CSPs), and it is trivial to build a cloud ap
- 云计算 阅读材料 7 Introduction and Motivation for Virtualizing Resources
In the last unit, we delved into depth about data centers, the components as well as design decisions for data centers. To build a cloud though, creating a data center is not enoug
- 云计算 阅读材料 8 Virtualization
Now that we have covered the motivation and benefits of virtualization, in this module, we will cover the formal definition of virtualization.
- 云计算 阅读材料 9 Resource Virtualization - CPU
A key element, which is also one of the more complex parts of virtualization, is CPU virtualization.
- 云计算 阅读材料 10 Resource Virtualization - Memory
The next resource we will examine, with respect to virtualization, is memory. Memory virtualization should ring a bell; specifically, it is very closely related to the operating sy
- 云计算 阅读材料 11 Resource Virtualization - I/O
Our final segment in resource virtualization is that of IO devices. In this respect, we can consider the VMM or hypervisor the arbiter of communication between multiple guests and
- 云计算 阅读材料 12 Virtualization Case Study
Now that we have covered some of the theory behind virtualization, we can look at a few case studies. Specifically, we start out with an overview of current virtualization suites i
- 云计算 阅读材料 13 Storage and Network Virtualization
A typical data center architecture consists of many loosely integrated components including pools of servers (CPU and OS), storage arrays, a hierarchical physical network to interc
- 云计算 阅读材料 14 Cloud Storage
We now move on to the next part of the course, namely Cloud Storage. Storage is an important aspect of cloud computing and has seen a lot of innovation in the last decade or so. In
- 云计算 阅读材料 15 Case Studies - Distributed File Systems
In this module, we discuss two distributed file systems: the Hadoop Distributed File System (HDFS) and Ceph FS.
- 云计算 阅读材料 16 Case Studies - NoSQL Databases
In this module, we discuss a few popular NoSQL data stores: Apache HBase, MongoDB, Apache Cassandra and Amazon's DynamoDB.
- 云计算 阅读材料 17 Case Studies - Cloud Object Storage
Now that we have covered specific file systems and database implementations, we turn our focus to object storage. Object storage is an important facet in cloud storage, and is one
- 云计算 阅读材料 18 Introduction to Distributed Programming for the Cloud
Developing cloud programs (i.e., designing and implementing software systems that successfully exploit the capabilities of massively distributed computational resources) presents f
- 云计算 阅读材料 19 Distributed Analytics Engines for the Cloud - MapReduce
MapReduce is a data-parallel framework, originally created by Google, for processing big-data applications on large suites of computers. The system attempts to decrease interproce
- 云计算 阅读材料 20 Distributed Analytics Engines for the Cloud - Spark
We now move on to discuss another distributed analytics engine that is growing in popularity and adoption.
- 云计算 阅读材料 21 Distributed Analytics Engines for the Cloud - GraphLab
Machine-learning and data-mining (MLDM) problems are growing exponentially in scale today. Interest in analytics engines that can execute MLDM algorithms efficiently on distributed
- 云计算 阅读材料 22 Message Queues and Stream Processing
In this module, we will look at message queues and stream processing. With the rise of internet services and the availability of continuous streams of real-time data, the challenge
实践反思5 篇
- 云计算 反思课 1 试验分析的策略与思考
学习是一个不断改进方法论的过程,从第 11 课 Horizontal Scaling and Advanced Resource Scaling中,我学到了一个很重要的东西,就是要对问题本身进行细致分析,并且找到最基本的指标以衡量工作效果。
- 云计算 反思课 2 并发编程的策略与思考
学习是一个不断改进方法论的过程,第 15 课 分区和复制中,因为自己缺乏对并发编程的基本认识,走了很多弯路。吃一堑长一智,本文着重讲三点:一是为什么我会犯错,二是对并发编程的一些思考,三是结合 Java 语言来探索相关细节。(感谢节瓜 @jiexing 的耐心指导)
- 云计算 反思课 3 提高 Web 服务性能的策略与思考
学习是一个不断改进方法论的过程,课程项目 6 MySQL 和 HBase 配置及测试,因为自己对于搭建基于 NoSQL 数据库的 Web 服务缺乏足够的经验,在具体对前后端进行优化的时候走了很多弯路,也意识到了没有目的的优化很可能是劣化,这里主要整理一下自己对于优化问题的思考。
- 云计算 反思课 4 HBase 优化的策略与思考
优化的最大敌人,是反向优化。
- 云计算 反思课 5 实时服务测试的策略与思考
昨天我们的 Twitter Analysis Service 采用了新的测试方式,在大约两个半小时的时间内进行各类请求的压力测试,以确保系统能够应对复杂请求。虽然我做的部分表现非常糟糕,但是从中学到了很多东西,知耻而后勇。
云平台入门1 篇
- 【不周山之云计算】壹 云平台初探
开发过程中最麻烦的往往不是开发本身,而是环境搭建,尤其是调通各种接口和服务。这一讲我会详细介绍如何把云资源用得像自家电脑一样省心。