云计算的来源
基本上,云计算只是一种把 IT 资源当作服务来提供的手段。几乎所有 IT 资源都可以作为云服务来提供:应用程序、计算能力、存储容量、联网、编程工具,以至于通信服务和协作工具。
云计算最早为 Google、Amazon 等其他扩建基础设施的大型互联网服务提供商所采用。于是产生一种架构:大规模扩展、水平分布的系统资源,抽象为虚拟 IT 服务,并作为持续配置、合用的资源进行管理。这种架构模式被 George Gilder 在其 2006 年 10 月在 Wired 杂志上发表的文章 (标题为 “信息工厂” (The Information Factories) ) 中进行了详细介绍。Gilder 所描写的服务器庄园在架构上与网格计算 (Grid Computing) 相似,但其中网格用于松散结合的技术计算应用程序,而这种新的云模式则应用于互联网服务。
云和网格都被设计为可非常高效地进行水平扩展。二者都能经受得起个别元素或节点的失败。二者都按使用情况收费。然而网格通常处理批作业,并且有明确的起点和终点,而云服务却可以持续运行。此外,云扩大了可用资源的类型 (文件存储、数据库和 Web 服务),并且将适应范围延伸至 Web 和企业应用程序。
与此同时,实用计算 (Utility Computing) 的概念成为 IT 设计和运营的一个焦点。就像 Nick Carr 在其《大转换》(The Big Switch) 一书中所指出的那样,计算服务基础设施开始与作为公用设施的电的发展相似。如果您可以在需要时以按需付费形式购买计算资源,那将非常方便快捷。
就最终用户而言,云计算意味着没有硬件购置成本、没有需要管理的软件许可证或升级、不需要雇佣新的员工或咨询人员、不需要租赁设施、没有任何种类的基建投资,而且还没有隐性成本。只是一种用仪表测量出来的、根据使用情况支付的订购费或固定的订购费。只是用您所需的量,而且只按使用量付费。
云计算实际上把实用模式 (Utility Model) 推到了新的水平。它是一种新颖和演升的实用计算形式,其中许多不同类型的资源 (硬件、软件、存储、通信等) 可即时合并和再合并成为客户所要求的特定能力或服务。从用于 HPC 项目的 CPU 周期到用于企业级备份的存储容量,再到用于软件开发的完整 IDE,云计算都可以实时提供几乎任何 IT 能力。
在许多情况下,各种各样的机构和个人都喜欢作为一种服务来购买 “计算”,而且那些已经在建超级分布式数据中心的公司毫无例外地会选择作为一种服务来提供这种基础设施。
云计算的特点
(1) 超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器, Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。
(2) 虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。
(3) 高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。
(4) 通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。
(5) 高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。
(6) 按需服务。“云”是一个庞大的资源池,你按需购买;云可以象自来水,电,煤气那样计费。
(7) 极其廉价。由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。
云计算的必要性
云: 远远优于廉价计算
云计算为按需提供 IT 资源创造出更高水平的效率和经济性,与此同时,开创出新的商业模式和市场机会。
尽管许多人都把目前的云计算产品和服务视为纯粹的“Pay by the Drink”计算平台,
但他们确实显示出两种相互依存的主流 IT 趋势的趋同性。
IT 效率 — 最大限度地降低成本: 公司正在通过像虚拟化这样的技术将其 IT 成本从资本费用转变为经营费用。云计算起初作为一种改进基础设施资源部署和利用率的方法,但在充分利用此基础设施中最终产生一种新的应用程序开发模式。
业务敏捷性 — 最大限度地增加回报: 通过快速面市、集成化应用程序堆栈、即时机器映像部署和千万亿次级并行编程,使 IT 成为一种竞争利器。云计算被利用为一种使投入运营时间 (Time to Service) 发生革命性变革的关键性方法。但是,不可避免的是,这些服务必须建立在同样具有创新性的快速部署基础设施模型之上。
可以肯定地说,这些趋势已经在 IT 行业中存在多年。不过,最近大规模网络贷款和虚拟化技术的出现使这种变革促成一种新的面向服务的基础设施。
云计算使 IT 机构能够极大地提高硬件利用率,并能够在极短时间内升级到巨大容量,而不必频繁地投资构建新的基础设施、培训新员工或颁发软件许可证。云计算还创造出新的机会,使人们能够在较短时间内使用更少投资构建一种更高级的网络服务。
全新规模的 IT 效率
云计算是关于效率的技术。它提供一条以承担得起的成本实时按需部署和访问从单个系统到巨量 IT 资源的一切事件的途径。它使持有信用卡的任何人均能利用高性能计算和高容量存储。而且,由于最佳的云策略建立在开发人员已经知道的概念和工具基础之上,云还具有重新定义 IT 与开发人员以及开发人员所依赖的业务单元之间的关系的潜力。
降低资本支出 — 云计算使公司可以通过像虚拟化这样的技术将 IT 成本从资本支出转变为经营费用。
降低数据中心运营成本 — 云计算提高基础设施利用率并简化资源管理。例如,云允许通过 API 进行自助服务与配置,使数据中心实现更高水平的自动化,同时降低管理成本。
消除了过量配置 — 云计算按需提供扩展规模,把这一特性与公用设施定价结合在一起,消除了为满足需求而过量配置的情形。利用云计算,公司可以在极短时间内扩展到巨大容量。
编程更快、更灵活
云计算不只是硬件问题,它还是一场编程革命。敏捷、易于访问和轻便的 Web 协议 — 与很普及的水平扩展架构相结合 — 可以加快新应用程序和服务的开发周期和面市时间。新的业务功能现在只需一个脚本就可解决问题。
加快了周期 — 云计算模式为开发新一代应用程序和服务提供一种更加方便快捷的方法。更快的开发和测试周期意味着企业可以用几个小时时间就能完成过去通常需要数天、数周甚至数月时间完成的工作。
增强敏捷性 — 云计算比任何其他模式更能适应变革。例如,Animoto Productions (聚合 (Mashup) 工具制作商,这种工具可以从图像和音乐创建视频) 使用云计算仅仅用三天时间从 50 台服务器扩展到 3,500 台服务器。云计算还可以提供一个更大的选择更轻便和敏捷的开发工具的范围,因而简化并加快了开发过程。
其效果立竿见影,创建服务的灵活性得到前所未有的增强,而且大大加快了开发周期。但是,与此同时,如果这些工具没有真正实现开放性,开发灵活性就会受到 API 的限制。云计算可以为开发人员带来一个生产率新时代,但前提是他们建立在可以联合而非集中的平台之上。但在编程文化即将要在云中使用的语言里正在发生着一场重大变革。
云计算的形式
1.SAAS 这种类型的云计算通过浏览器把程序传给成千上万的用户。在用户眼中看来,这样会省去在服务器和软件授权上的开支;从供应商角度来看,这样只需要维持一个程序就够了,这样能够减少成本。Salesforce.com 是迄今为止这类服务最为出名的公司。SAAS 在人力资源管理程序和ERP 中比较常用。 Google Apps 和Zoho Office 也是类似的服务
2. Utility Computing 这个主意很早就有了,但是直到最近才在Amazon.com、Sun、IBM 和其它提供存储服务和虚拟服务器的公司中新生。这种云计算是为IT 行业创造虚拟的数据中心使得其能够把内存、I/O 设备、存储和计算能力集中起来成为一个虚拟的资源池来为整个网络提供服务。
3. 同SAAS 关系密切,网络服务提供者们能够提供API 让开发者能够开发更多基于互联网的应用,而不是提供单机程序。
4. 另一种SAAS,这种形式的云计算把开发环境作为一种服务来提供。你可以使用中间商的设备来开发自己的程序并通过互联网和其服务器传到用户手中。
5.MSP 最古老的云计算运用之一。这种应用更多的是面向IT 行业而不是终端用户,常用于邮件病毒扫描、程序监控等等。
6. SAAS 和MSP 的混合应用,该类云计算为用户和提供商之间的互动提供了一个平台。比如用户个人开支管理系统,能够根据用户的设置来管理其开支并协调其订购的各种服务。
7. 将互联网上提供类似服务的公司整合起来,以便用户能够更方便的比较和选择自己的服务供应商。
云计算的概念模型
其实,云计算作为一种新技术,包含了多层含义:
用户的公共性:云计算所提供的服务对象,既有企业/政府/学术/个人等最终用户,也包括应用软件、中间件平台等“用户”,这是根据云计算提供不同层次的服务所决定的。
设备的多样性:云计算所提供服务的设备也是多样的,既包括各种规模的服务器、主机、存储设备,也包括各种类型的终端设备,如计算机、智能手机、各种智能传感器、RFID设备等。
商业模式的服务性:云计算是以服务的方式提供设备和应用的。这种服务特性体现在两个方面的特征:简化和标准的服务接口,按需计费的商业模式。
提供方式的灵活性:云计算既可以作为一种共用设施,提供社会服务,即“公共云”,也可以作为企业信息化的集中计算平台来提供,即“私有云”。
因此,云计算的核心内涵包括:
计算服务化;
资源虚拟化;
管理智能化。
云计算的技术体系
虚拟化即基础设施的虚拟化(Virtualization),核心是传统已经成熟的集群技术和分区技术的结合。集群计算(Cluster Computing)是将多台服务器虚拟为一台服务器的技术,目的是提高计算能力和提升设备的容错、实现负载均衡。集群技术已经广泛应用于操作系统、数据库和中间件等系统软件平台。而分区计算(Partition Computing)是大型主机和UNIX小型机上一种成熟的技术,就是将一台服务器虚拟为多台服务器,每个虚拟单元叫一个分区,各分区之间是相互隔离的,目的是提高资源利用率。只不过,现在低端的INTEL架构的PC服务器也支持虚拟化而已。
虚拟化目前还包括网络虚拟化(VPN)和存储虚拟化(SAN/NAS)等技术,与服务器虚拟化一起,构建为一个完整的计算资源虚拟化环境,在虚拟化管理系统的控制下,实现动态的可配置的智能系统。
2.网格计算(Grid Computing)
云计算是网格计算(Grid Computing)的另一种表现形式,是相似技术的两种表现形式。
网格计算是一种计算能力提升的方式,其原理是依据并行计算理论,通过任务分解,将子任务分布式提交到其他服务器上运行,以获得更强大计算能力。
应用场景:科学计算,天气预报,地震分析、地质勘探、石油勘探等;
任务特色:重计算,弱流程,少交互;这种计算任务需要消耗大量的CPU计算,对网络流量不大,存储和硬盘访问量不大。
计算模式:任务通过服务分解,分布式计算。
因此,网格计算尽管在IBM等公司大力推动下,实际商业应用并不成功,主要在一些高校、科研机构等建设有这样的实验环境,因为这种计算场景并不普遍。
而云计算就是解决商业应用环境下的计算资源的虚拟提供更强大计算能力和资源利用率。
应用场景:企业管理,电子政务,电子商务等;
任务特色:弱计算,强流程,多交互;这种应用很难进行分解,频繁的人机交互,CPU消耗并不大,但存储和硬盘访问量很大,因此网络的访问流量也非常大。
计算模式:资源的虚拟提供更强大的计算能力。
网格计算的基础技术就是Web Services,通过任务分解为服务,这些服务可以在分布式的计算环境中,实现和设备无关的标准交互,并且通过服务的封装,可以实现并行的事务处理。
云计算的平台技术,主要是依赖于SOA,而我们知道SOA的主要实现技术体系也就是Web Services,因此云计算和网格计算的核心技术基础是相似的。
因此,云计算的商业用途将非常广泛,能够得到厂商和用户的大力支持。
3.云计算的服务化
云计算的使用模式即服务化。所谓服务化,即服务消费者只需提供服务的请求,并提交服务的输入,而不关心服务的实现方法、技术和流程,而直接得到服务的结果。云计算的服务模式是将软件作为服务SaaS (Software as a Service)、将平台作为服务PaaS (Platform as a Service)和将基础设施作为服务IaaS (Infrastructure as a Service)等各种模式。
软件即服务Software-as-a-Service,简称SaaS,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。着名的SaaS供应商salesforce公司提出的SaaS 并运用于CRM行业,它是一种通过Internet提供软件的模式,SaaS供应商将应用软件统一部署在服务器上,客户可以根据自己实际需求,通过互联网向服务商定购所需的应用软件服务,按定购的服务多少和时间长短向服务商支付费用,并通过互联网获得服务商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。SaaS之中的软件“Software”本质上是指应用软件Application Software,严格上来说SaaS应该叫做AaaS(Application as a Service)或者BaaS(Business as a Service),这是因为SaaS出现的时候,系统软件和平台软件还不能也还没有作为服务来提供。
平台即服务Platform -as-a-Service,简称PaaS,是云计算一种重要的服务模式,其核心是将计算环境和应用程序的运行平台作为一项服务进行提供。PaaS的实现方式是将中间件平台、及其组件和运行环境进行封装。 例如,如果客户拥有Java应用程序,或者个性化的一个应用需要电子地图组件,传统上必须购买和配置服务器硬件和操作系统,以及应用服务器软件和电子地图组件等,还必须购买Oracle数据库等系统软件,才能提供一个综合的计算平台,其应用软件才能够运行。而现在,云计算就可以提供客户一个应用运行的平台,而客户无须关心平台的配置硬件环境和软件系统,只要部署到PaaS之中的平台实例或者电子地图的接口上(WebService)就可以按照租用的方式来运行系统了。
基础设施即服务IaaS (Infrastructure as a Service)是将硬件资源进行虚拟化,在操作系统层面将计算基础设施(CPU/内存和存储/操作系统)等以出租的方式在虚拟网络VPN下为客户提供服务的模式。
4.云计算的智能化
云计算的虚拟化和动态管理本质上是系统的管理智能化,通过动态配置的资源管理、自动动态配置的自适应性和自我恢复能力,将云计算设计为智能系统。这些智能的自我管理特性表现为:
虚拟化设置:可以非常简化地在控制台配置虚拟化的计算资源;
资源动态配置:可以在运行期动态调整资源配置;
系统自动监测:自动监测系统运行的健康状况,对异常情况自动报警;
安全隔离:各虚拟资源之间进行安全的隔离,各个实例之间实现自治;
负载自动均衡:系统在虚拟设备之内实现多个资源之间的自动负载均衡;
资源管理决策支持:可以对云计算资源的适应状况进行优化的管理决策,实现自优化;
自恢复:云计算的实例和虚拟化资源出现运行故障或者死锁,系统具备自我恢复功能。
通过这些智能化的管理功能,云计算是一个自适应、自优化的智能系统。
云计算的前景
计算被视为科技业的下一次革命,它将带来工作方式和商业模式的根本性改变。
首先,对中小企业和创业者来说,云计算意味着巨大的商业机遇,他们可以借助云计算在更高的层面上和大企业竞争。自1989年微软推出Office办公软件以来,我们的工作方式已经发生了极大变化,而云计算则带来了云端的办公室——更强的计算能力但无须购买软件,省却本地安装和维护。
其次,从某种意义上说,云计算意味着硬件之死。至少,那些对计算需求量越来越大的中小企业,不再试图去买价格高昂的硬件,而是从云计算供应商那里租用计算能力。在避免了硬件投资的同时,公司的技术部门也无须为忙乱不堪的技术维护而头痛,节省下来的时间可以进行更多的业务创新。
以亚马逊为例,其云计算产品价格便宜(当然利润丰厚),吸引了大批中小企业,甚至《纽约时报》、红帽、晟碟等大型公司。亚马逊提供每1G的存储收费15美分,服务器的租用则是每小时10美分。据称其“云”中的每台计算机投资仅为300美元,假设电力消耗也是300美元,而按此收费标准,在一年不间断的情况下其收益为876美元,利润率约为45%—高于其销售书籍的毛利。
随着云计算的兴起,传统硬件制造商再次面临危机。戴尔、惠普、SUN等多年来一直担忧美国市场的衰退,或许这下硬件市场的衰退真的要来了。
云计算对商业模式的影响体现在对市场空间的创新上。哈佛商学院教授克里斯滕森认为,Google Apps是他关于创新的理论中的新市场创新。他在接受一家中国商业媒体采访时说:“我在哈佛商学院的学生做文字处理时用Google Docs,他们将文件存储在Google的服务器上,而不是自己的电脑上。这是一个典型的新市场破坏,当互联网变得越来越快和更可依赖,用户正从桌面电脑上的软件应用转向基于互联网的应用。”
同时,云计算开发新产品拓展新市场的成本非常低。比如,如果用户对Gmail的需求突然出现猛增,谷歌的云计算系统会自动为Gmail增加容量和处理器的数量,无需人工干预,而且增加和调整都不增加成本。依赖云计算,谷歌能以几乎可以忽略不计的成本增加新的服务。如果新增的服务失败了,那没关系,关掉并且忘掉它就可以。如果成功了,系统会自动为它增加空间和处理能力。
谷歌CEO埃立克·施密特认为,云计算意味着从PC机时代重返大型机时代。“在PC时代,PC提供了很多很好的功能和应用,现在又回到大型时的时代了。现在的大型机看不见,摸不着,不过确确实实就摆在那里,它们在云里,在天空里。”