接前一篇文章:软考 系统架构设计师之回归及知识点回顾(6)
11. 云计算
背景
大数据和云计算已成为IT领域的两种主流技术。“数据是重要资产”这一概念已成为大家的共识,众多公司争相分析、挖掘大数据背后的重要财富。同时学术界、产业界和政府都对云计算产生了浓厚的兴趣:全球范围内讨论云计算技术学术活动如火如荼;谷歌、亚马逊、IBM、微软等IT巨头大力推动云计算的宣传和产品的普及。各国政府斥巨资纷纷打造大规模数据中心与计算中心。
云计算相关概念
云计算(Cloud Computing)这一概念于2007年10月8日正式出现,其标志性事件是谷歌和IBM联合宣布加入“云计算”的研究工作,给出“云计算”的定义。同年11月15日,IBM上海和阿莫科(Armok,NY)同时发布了“Blue Cloud”,Blue Cloud是一系列的云计算产品,使得共同的数据中心像互联网一样运作。
2007年10月,IBM的Greg Boss等人以技术白皮书的形式给出了“云计算”的定义:
“‘云计算’是同时描述一个系统平台或者一类应用程序的术语。云计算平台按需进行动态部署、配置、重新配置以及取消服务等。在云计算平台中的服务器可以是物理或虚拟的服务器(SANs)、网络设备、防火墙以及其它安全设备等。
在应用方面,云计算描述了一类可以通过互联网进行访问的可扩展应用程序。这类云应用基于大规模数据中心及高性能服务器来运行网络应用程序与Web服务。用户可以通过合适的互联网接入设备以及标准的浏览器就能够访问云计算应用程序。”
IBM的定义明确指出云计算概念的内涵包括两个方面:平台和应用。平台即基础设施,其地位相当于PC上的操作系统,云计算应用需要构建在平台之上;云计算应用所需的计算与存储通常在“云端”完成,客户端需要通过互联网访问计算与存储能力。
云计算的服务方式
在对云计算定义深入理解的基础上,产业界和学术界对云计算的服务方式进行了总结。目前一致认为云计算自上而下具有“软件即服务(Software as a Service,SaaS)”、“平台即服务(Platform as a Service,PaaS)”、“基础设施即服务(Infrastructure as a Service,IaaS)”三类典型的服务方式。
(1)软件即服务(SaaS)
在SaaS的服务模式下,服务提供商将应用软件统一部署在云计算平台上,客户根据需要通过互联网向服务提供商订购应用软件服务,服务提供商根据客户所订购软件的数量、时间的长短等因素收费,并且通过标准浏览器向客户提供应用服务。
说白了,就是直接使用云平台提供给你的应用软件。举例,在云端使用word、excel。
(2)平台即服务(PaaS)
在PaaS模式下,服务提供商将分布式开发环境与平台作为一种服务来提供。这是一种分布式平台服务,厂商提供开发环境、服务器平台、硬件资源等服务给客户,客户在服务提供商平台的基础上定制开发自己的应用程序,并通过其服务器和互联网传递给其他客户。
说白了,就是利用在云平台之上构建、开发、安装自己的应用。举例,在云端部署自己做的应用程序或者云端系统中没有预装的软件。
(3)基础设施即服务(IaaS)
在IaaS模式下,服务提供商将多台服务器组成的“云端”基础设施作为计量服务提供给客户。具体来说,服务提供商将内存、I/O设备、存储和计算能力等整合为一个虚拟的资源,为客户提供所需要的存储资源、虚拟化服务器等服务。
说白了,就是云平台只提供硬件资源,需要之上构建、开发、安装自己的操作系统。比如,在云平台虚拟机上安装Winodws或Linux操作系统。
以上这三种服务模式有如下特征:
(1)在灵活性方面,SaaS -> PaaS -> IaaS灵活性依次增强。这是因为用户可以控制的资源越来越底层,粒度越来越小,控制能力增强,灵活性也增强。
(2)在方便性方面,IaaS -> PaaS -> SaaS方便性依次增强。这是因为IaaS只提供CPU、存储等底层基本计算能力,用户必须在此基础上针对自身需求构建应用系统,工作量较大,方便性较差。而SaaS模式下,服务提供商直接将具有基本功能的应用软件提供给用户,用户只要根据自身应用的特定需求进行简单配置后就可以使得应用系统上线,工足量较小,方便性较好。
其中,PasS是云计算服务模式中最为关键的一层,在整个云计算体系中起着支撑的作用。PasS的地位相当于系统软件,需要为上层SaaS应用提供API,以支持各种SaaS应用的开发。
云计算的部署形式
根据NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)的定义,云计算从部署模式上看可以分为公有云、社区云、私有云和混合云四种类型。
(1)公有云
在公有云模式下,云基础设施是公开的,可以自由地分配给公众。企业、学术界与政府机构可以拥有和管理公有云,并实现对公有云的操作。
(2)社区云
“社区云”是“公有云”范畴内的一个组成部分,指在一定的地域范围内,由云计算服务提供商统一提供计算资源、网络资源、软件和服务能力所形成的云计算形式。在社区云模式下,云基础设施分配给一些社区组织所专有,这些组织共同关注任务、安全需求、政策等信息。云基础设施被社区内的一个或多个组织所拥有、管理和操作。
(3)私有云
在私有云模式下,云基础服务设施分配给由多种用户组成的单个组织。它可以被这个组织或其他第三方组织所拥有、管理和操作。
(4)混合云
混合云是公有云、私有云和社区云的组合。由于安全和控制原因,并非所有的企业信息都能放置在公有云上,因此企业将会使用混合云模式,将公有信息和私有信息分别放置在公有云和私有云环境中。在混合云构建方面,大部分企业选择同时使用公有云和私有云,有一些也会同时构建社区云。
云计算的发展历程
根据云计算的定义和内涵,这里将从虚拟化技术、分布式技术和软件应用模式三个方面对云计算的历史和发展进行简要论述。其中虚拟化技术的发展可以看作是IaaS服务模式的发展历程,分布式计算技术的发展可以看做是PaaS服务模式的发展历程,软件应用模式的发展可以看作是SaaS的发展历程。
(1)虚拟化技术的历史
1959年6月的国际信息处理大会(International Conference on Information Processing)上,计算机科学家Christopher Strachev发表了论文《大型高速计算机中的时间共享》(Time Sharing in Large Fast Computers),首次提出并论述了虚拟化技术。
虚拟化的核心思想是使用虚拟化软件在一台物理机上虚拟出一台或多台虚拟机,虚拟机是指使用系统虚拟化技术,运行在一个隔离环境中、具有完整硬件功能的逻辑计算机系统,包括客户机操作系统和其中的应用程序。采用虚拟化技术可以实现计算机资源利用的最大化。
(2)分布式计算技术的发展
分布式计算是指具有多个处理和存储的硬件和软件系统、并发进程或多个程序在松耦合或集中控制的方式下进行任务处理的计算方式。在分布式计算中,一个程序被分割成若干部分,在一个计算机网络环境中执行。分布式计算是并行计算的一种形式,但是并行计算通常描述一个程序的不同部分在同一台计算机内多个处理器中的运行情况。这两种计算方式都需要将程序划分为可以同时执行的部分,但是分布式程序通常强调环境的异构性:即具有不同延迟的网络连接以及在网络中或计算机之间不可预知的失效。
分布式计算技术从20世纪70年代左右出现至今,大致经历了程序在多处理器上的运行、分布式对象、Web服务、网络计算、对等计算和效用计算等几个主要的阶段。
(3)软件应用模式的发展
SaaS的概念起源于1999年之前。2000年12月,贝内特等人指出“SaaS将在市场上获得接受”。“软件即服务”的常见用法和简称始于刊登在2001年2月SIIA的白皮书“战略背景:软件即服务”。
2003年以Salesforce为代表的,当时的ASP(Application Service Provider,应用软体租赁服务提供者)企业开始以SaaS为模式提供软件服务。从本质上说,SaaS和ASP的差异不大,基于在线软件服务模式的技术与市场已经变得相对成熟。
在客户通过SaaS获得收益的同时,对于服务提供商而言就变成了巨大的潜在市场。因为以前那些庞数量庞大的、因为无法承担软件许可费用或没有能力招募专业IT人员的中小型企业,在SaaS模式下都成了潜在客户。同时,SaaS模式还可以帮助厂商增强差异化的竞争优势,降低开发成本和维护成本,加快产品或服务进入市场的节奏,有效降低营销成本,改变自身的收入模式,改善与客户之间的关系。SaaS对客户和厂商而言,都具有强大的吸引力,将会给客户和厂商之间带来双赢的大好局面。因此,SaaS是云计算技术下具有旺盛生命力的应用模式。
余下的知识点回顾请看下回:
12. 大数据