第八章 云计算原理与技术
云计算是什么
对一般用户而言:云计算是指通过网络以按需、易扩展的方式获得所需的服务。即随时随地只要能上网就能使用各种各样的服务,如同钱庄、银行、发电厂等。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。
对专业人员而言:是分布式处理、并行处理和网格计算的发展,或者说是这些计算机科学概念的商业实现。是指基于互联网的超级计算模式–即把原本存储于个人电脑、移动设备等个人设备上的大量信息集中在一起,在强大的服务器端协同工作。它是一种新兴的共享计算资源的方法,能够将巨大的系统连接在一起,以提供各种计算服务。
云计算与分布式计算
分布式计算(狭义):将待解决问题分成多个小问题,再分配给许多计算系统处理,最后将处理结果加以综合。
特点:把计算任务分派给网络中的多台独立的机器
优点
稀有资源可以共享
通过分布式计算可以在多台计算机上平衡计算负载
可以把程序放在最适合运行它的计算机上
流行的分布式项目
SETI@Home:寻找外星文明
RC-72:密码分析破解,研究和寻找最为安全的密码系统
Folding@home:研究蛋白质折叠、聚合问题
United Devices:寻找对抗癌症的有效的药物
GIMPS:寻找最大的梅森素数(解决较为复杂的数学问题)
云计算包含的分布式计算特征:
(1)通过资源调度和组合满足用户的资源请求
(2)对外提供统一的、单一的接口
云计算与网格计算
云计算与对等计算
对等计算系统中,每个节点都拥有对等的功能与责任,既可以充当服务器向其他节点提供数据或服务,又可以作为客户机享用其他节点提的供数据或服务,节点之间的交互可以是直接对等的,任何节点可以随时自由地加入或离开系统。
对等计算:有可能作为云计算的一个类型
预测:将可能以“对等子云”的形式出现在云计算中。
依据:云计算对超大规模、多类型资源的统一管理是困难的;对等计算具有鲁棒性、可扩展性、成本、搜索等方面的优点
Google的云计算服务曾出现严重问题,Gmail、Blogger和Spreadsheet等服务均长时间当机。亚马逊S3云计算服务也曾出现问题。而P2P系统则有更强的抗毁能力。
云计算与并行计算
并行计算:是指同时使用多种计算资源解决计算问题的过程。通常指一个程序的多个部分同时运行于多个处理器上。
特点:把计算任务分派给系统内的多个运算单元
并行计算问题的特征
将工作分离成离散部分,有助于同时解决
随时并及时地执行多个程序指令(多条线同时运行)
多计算资源下解决问题的耗时要少于单个计算资源下的耗时
云计算分类
按云服务的对象分为:
公有云:面向外部用户需求,通过开放网络提供云计算服务
IDC,GoogleApp,Saleforce在线CRM
私有云:大型企业按照云计算的架构搭建平台,面向企业内部需求提供云计算服务
企业内部数据中心等
混合云:兼顾以上两种情况的云计算服务
Amazon Web Server等既为企业内部又为外部用户提供云计算服务
按提供的服务类型分为:
Software as a Service
用户通过Internet (如浏览器)来使用软件。用户不必购买软件,只需按需租用软件
典型应用:Google Doc, Salesforce.com, Oracle CRM OnDemand, Office Live Workspace
Platform as a Service
提供应用服务引擎,如互联网应用编程接口/运行平台等。
用户基于该应用服务引擎,可以构建该类应用。
典型应用:Google AppEngine, Force.com, Microsoft Azure服务平台
Infrastructure as a Service
以服务的形式提供虚拟硬件资源,如虚拟主机/存储/网络/数据库管理等资源。
用于无需购买服务器、网络设备、存储设备,只需通过互联网租赁即可搭建自己的应用系统
典型应用:Amazon Web Service (AWS)
IaaS:基础设施作为服务
IaaS —— Infrastructure as a Service
创建虚拟的计算、存储中心,使得其能够把计算单元、存储器、I/O设备、带宽等计算机基础设施,集中起来成为一个虚拟的资源池来对外提供服务。
典型应用:
弹性计算云EC2 (Elastic Compute Cloud) ——计算
简单存储服务S3 (Simple Storage Service) —— 存储
aaS交付特点
提供从计算到存储的统一资源基础架构
完整的系统级接入,按需布置安全域,负载均衡
按需付费,按容量控制
自由的应用环境
IaaS的价值
降低运营成本
提高设备利用率
节能减排
保护现有投资,提供新商机
IaaS关键技术介绍:虚拟化技术
虚拟化是将底层物理设备与上层操作系统、软件分离的一种去耦合技术,其是基于开放的x86架构,将硬件、操作系统和应用程序一同装入一个可迁移的虚拟机档案文件中
虚拟化的目标是实现IT资源利用效率和灵活性的最大化
虚拟化技术在x86架构上比较通用,在RISC架构下比较封闭
PaaS关键技术——分布式并行计算平台
新的业务模式
业务能力:通过分布式并行计算算法,将众多性能一般的服务器的计算能力和存储能力充分发挥和聚合起来,能够为特定的应用提供海量数据处理能力
业务形态:形成一个高效的软件应用开发和运行平台,吸引第三方软件开发者基于该平台进行软件开发和应用托管,同时聚集海量终端用户使用该平台上的各种应用
目标客户群:第三方软件开发者,软件终端用户
SaaS:软件作为服务
SaaS —— Software as a Service
SaaS是一种基于互联网提供软件服务的应用模式。
软件租赁:用户按使用时间和使用规模付费
绿色部署:用户不需安装,打开浏览器即可运行
不需要额外的服务器硬件
软件(应用服务)按需定制
SaaS的交付模型
应用程序做为一种服务来提供
由提供商进行统一维护管理
吸引广大的个人和中小企业用户
用户不需对软硬件进行维护工作
通过网络浏览器使用服务
SaaS的价值
提供灵活的租赁和付费方式
降低企业用户运营成本
降低中小企业信息化的门槛
云计算关键技术
体系结构
数据存储
计算模型
资源调度
虚拟化技术
云计算体系结构
云计算核心服务通常可以分为3 个子层:基础设施即服务层(IaaS, infrastructure as a service)、平台即服务层(PaaS, platform as a service)、软件即服务层(SaaS, software as a service)
NoSQL数据存储
云计算资源调度
资源调度是云计算核心技术之一,它为云计算平台提供资源分配、任务调度等资源管理功能。通常云计算资源调度包括两个层面:一个是物理主机到虚拟机层面的资源分配(映射);另一个是任务到虚拟机层面的调度(映射)。
云计算虚拟化技术
虚拟化是云计算最重要的核心技术之一,它为云计算服务提供基础架构层面的支撑。虚拟化技术包括:服务器虚拟化、存储虚拟化、网络虚拟化、桌面虚拟化、应用虚拟化等
Google云计算关键技术
Google云计算平台的几个关键技术
文件存储,Google File System,GFS
并行数据处理MapReduce
结构化数据表BigTable
分布式锁Chubby
MapReduce
一个软件架构,是一种处理海量数据的并行编程模式
用于大规模数据集(通常大于1TB)的并行运算
MapReduce实现了Map和Reduce两个功能
Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集
Reduce对结果集进行分类和归纳
Map()和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻
Bigtable设计动机与目标
需要存储的数据种类繁多:Google目前向公众开放的服务很多,需要处理的数据类型也非常多。包括URL、网页内容、用户的个性化设置在内的数据都是Google需要经常处理的
海量的服务请求:Google运行着目前世界上最繁忙的系统,它每时每刻处理的客户服务请求数量是普通的系统根本无法承受的
商用数据库无法满足Google的需求:一方面现有商用数据库设计着眼点在于通用性,根本无法满足Google的苛刻服务要求;另一方面对于底层系统的完全掌控会给后期的系统维护、升级带来极大的便利