8.1 云计算概述

云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而达到强大的网络服务。
现阶段所说的云服务已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。

8.1.1 云计算的起源

互联网自1960年开始兴起,主要用于军方、大型企业等之间的纯文字电子邮件或新闻集群组服务。直到1990年才开始进入普通家庭,随着web网站与电子商务的发展,网络已经成为了目前人们离不开的生活必需品之一。云计算这个概念首次在2006年8月的搜索引擎会议上提出,成为了互联网的第三次革命。
近几年来,云计算也正在成为信息技术产业发展的战略重点,全球的信息技术企业都在纷纷向云计算转型。我们举例来说,每家公司都需要做数据信息化,存储相关的运营数据,进行产品管理,人员管理,财务管理等,而进行这些数据管理的基本设备就是计算机了。
对于一家企业来说,一台计算机的运算能力是远远无法满足数据运算需求的,那么公司就要购置一台运算能力更强的计算机,也就是服务器。而对于规模比较大的企业来说,一台服务器的运算能力显然还是不够的,那就需要企业购置多台服务器,甚至演变成为一个具有多台服务器的数据中心,而且服务器的数量会直接影响这个数据中心的业务处理能力。除了高额的初期建设成本之外,计算机的运营支出中花费在电费上的金钱要比投资成本高得多,再加上计算机和网络的维护支出,这些总的费用是中小型企业难以承担的,于是云计算的概念便应运而生了。

8.1.2 云计算的定义

“云”实质上就是一个网络,狭义上讲,云计算就是一种提供资源的网络,使用者可以随时获取“云”上的资源,按需求量使用,并且可以看成是无限扩展的,只要按使用量付费就可以,“云”就像自来水厂一样,我们可以随时接水,并且不限量,按照自己家的用水量,付费给自来水厂就可以。
从广义上说,云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以方便地取用,且价格较为低廉。
总之,云计算不是一种全新的网络技术,而是一种全新的网络应用概念,云计算的核心概念就是以互联网为中心,在网站上提供快速且安全的云计算服务与数据存储,让每一个使用互联网的人都可以使用网络上的庞大计算资源与数据中心。
云计算是继互联网、计算机后在信息时代有一种新的革新,云计算是信息时代的一个大飞跃,未来的时代可能是云计算的时代,虽然目前有关云计算的定义有很多,但总体上来说,云计算虽然有许多得含义,但概括来说,云计算的基本含义是一致的,即云计算具有很强的扩展性和需要性,可以为用户提供一种全新的体验,云计算的核心是可以将很多的计算机资源协调在一起,因此,使用户通过网络就可以获取到无限的资源,同时获取的资源不受时间和空间的限制。
目前比较权威的云计算定义是美国国家标准技术研究院NIST提出的,包括以下4点:
1)云计算是一种利用互联网实现随时随地、按需、便捷地访问共享资源池的计算模式。
2)云计算模式具有5个基本特征:按需自助服务、广泛的网络访问、共享的资源池、快速弹性能力、可度量的服务。
3)云计算有3种服务模式:软件即服务(SaaS)、云平台即服务(PaaS)、基础设施即服务(IaaS)。
4)云计算有4种部署方式:私有云、社区云、公有云、混合云。

8.1.3 云计算的分类

通常,它的服务类型分为三类,即基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。这3种云计算服务有时称为云计算堆栈,因为它们构建堆栈,它们位于彼此之上,以下是这三种服务的概述:
1、基础设施即服务IaaS)
基础设施即服务是主要的服务类别之一,它向云计算提供商的个人或组织提供虚拟化计算资源,如虚拟机、存储、网络和操作系统。
2、平台即服务(PaaS)
平台即服务是一种服务类别,为开发人员提供通过全球互联网构建应用程序和服务的平台。Paas为开发、测试和管理软件应用程序提供按需开发环境。
3、软件即服务(SaaS)
软件即服务也是其服务的一类,通过互联网提供按需软件付费应用程序,云计算提供商托管和管理软件应用程序,并允许其用户连接到应用程序并通过全球互联网访问应用程序。

8.2 云计算关键技术

  • 体系结构
  • 数据存储
  • 计算模型
  • 资源调度
  • 虚拟化技术

8.2.1 体系结构

云计算可以按需求弹性的服务,它的提议架构大致分为3个层次:核心服务层、服务管理层、用户访问接口层。核心服务层将硬件基础设置、软件运行环境、应用程序抽象成服务,这些服务具有可靠性强、可用性高、规模可伸缩等特点,可满足多样化的应用需求。
1、核心服务层
云计算核心服务层通常分为3个子层:IaaS 提供硬件基础设施部署服务、PaaS 是云计算应用程序运行环境,提供应用程序部署于管理服务、SaaS是基于云计算基础平台所开发的应用程序。
2、服务管理层
服务管理层核心服务层的可用性、可靠性和安全性提供保障。
3、用户访问接口层
用户访问接口层实现了云计算服务的泛在访问,通常包括命令行、Web服务、Web门户等形式。

8.2.2 数据存储

云计算环境系的数据存储,通常陈伟海量数据存储,或大数据存储。大数据存储与传统的数据库服务在本质上有着较大的区别,传统的关系数据库中强调事务的ACID特性,即原子性、一致性、隔离性和持久性,对数据的一致性的严格要求使其在很多分布式场景中无法应用。

NoSQL数据库分类
云计算原理与技术

8.2.3 计算模型

云计算的计算模型是一种可编程的并行计算框架,需要高扩展性和容错性支持。目前比较成熟的技术有MapReduce、Dryad等。

8.2.4 资源调度

海量数据处理平台的大规模性给资源管理与调度带来挑战。

8.2.5 虚拟化

虚拟化是IaaS层的重要组成部分,也是云计算的重要特点。虚拟化技术具有以下特点。
1)资源共享:通过虚拟机封装有用户各自的运行环境,有效实现多用户分享数据中心资源。
2)资源定制:用户利用虚拟化技术,配置私有的服务器,制定所需的CPU数目、内存容量、磁盘空间,而且有助于服务器的负载均衡和节能。
3)细粒度资源管理:将乌里服务器拆分成若干虚拟机,可以提高服务器的资源利用率,减少浪费,而且有助于服务器的负载均衡和节能。

8.3 Google云计算原理

Google云计算平台的几个关键技术

  • 文件存储,Google File System,GFS
  • 并行数据处理MapReduce
  • 结构化数据表BigTable
  • 分布式锁Chubby

8.3.1 CFS

网页搜索业务需要海量的数据存储,同时还需要满足高可用、高可靠性和经济性等要求。Google开发了分布式文件系统——Google File System(CFS)。
云计算原理与技术

8.3.2 MapReduce

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)“和"Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
云计算原理与技术

8.3.3 BigTable

云计算原理与技术

8.3.4 Dremel

Dremel是Google 的“交互式”数据分析系统。可以组建成规模上千的集群,处理PB级别的数据。MapReduce处理一个数据,需要分钟级的时间。作为MapReduce 的发起人,Google开发了Dremel将处理时间缩短到秒级,作为MapReduce的交互式查询能力不足的有力补充。
Dremel的数据模型是嵌套的,用列式存储,并结合了Web搜索和并行DBMS的技术,建立查询树,将一个巨大的复杂的查询,分割成较小较简单的查询,大事化小,小事化了,能并发的在大量结点上跑,如图所示。

云计算原理与技术

8.4 Amazon云服务

8.4.1 Amazon 云平台存储架构

云计算原理与技术

8.4.2 其它组件

  • 弹性计算云EC2
    Amazon弹性计算云是一个让使用者可以租用云计算机运行所需应用的系统,提供基础设施层次的服务(IaaS)
  • 简单存储服务S3
    Amazon S3是一款在线存储服务,在云计算环境下提供了不受限制的数据存储空间。
  • 简单数据库服务Simple DB
    Amazon SimpleDB是一种可用性高、灵活性大的非关系数据存储服务,与S3不同,它主要用于存储结构化数据。
  • 简单队列服务SQS
    Amazon SQS是面向消息的中间件的云计算解决方案,而且不局限于某一语言。
  • 弹性MapReduce服务
    Amazon EMR是一个能够高性能处理大规模数据的Web服务。
  • 内容推送服务CloudFront
    CloudFront是一个内容分发网络服务(Web服务),该服务可以很容易地将内同投递到终端用户,具有低延迟、高数据传输速率等特点。
  • AWS导入/导出
    AWS Import/Export工具采用Amazon公司内部的高速网络和便携存储服务,绕过互联网来对Amazon云上的数据进行导入/导出,所以Import/Export通常快于互联网的数据传输。
  • 关系数据库服务
    Amazon RDS是一种Web服务,可让用户更轻松地在云中设置、操作和扩展关系数据库。