云计算发展现状研究-Final.doc_第1页
云计算发展现状研究-Final.doc_第2页
云计算发展现状研究-Final.doc_第3页
云计算发展现状研究-Final.doc_第4页
云计算发展现状研究-Final.doc_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算发展现状研究报告云计算发展现状研究报告 孔华锋 2010-09-03 目录 第第 1 章章 云计算技术云计算技术.3 1.1 云计算的定义 .3 1.2 云计算特点 .4 1.3 云计算的服务模式 .5 1.4 云计算的部署模式.8 1.5 云计算与其他概念 .8 第第 2 章章 云计算应用云计算应用.12 2.1 AMAZON.12 2.2 GOOGLE.14 2.2 MICROSOFT.20 2.4 SALESFORCE.23 2.5 YAHOO.24 2.6 IBM.25 2.7 SUN.27 2.8 开源社区.28 2.9 云计算核心技术比较 .39 第第 1 章章 云计算技术云计算技术 计算机软件与硬件技术的飞速发展也导致了计算模型的不断演化。继分布 式计算,并行计算,网络计算,效用计算,Web2.0 等计算概念与模型的不断被 推出以后,计算机工业界与学术界又提出了云计算模型,在某种意义上实现对 这些计算概念与模型的泛化与商业化。总体上来讲,云计算通过互联网将超大 规模的计算与存储资源整合起来,并以可信服务的形式按需提供给用户。 1.1 云计算的定义云计算的定义 云计算是计算机资源公共化在商业模型上一个重要革新。通过云计算,用 户将从繁重,复杂,易错的计算机资源管理中解放出来,而只需关注业务逻辑。 这种业务逻辑与计算资源的分离将大大地降低企业信息化的复杂度。更重要的 是,云计算带来的服务整合与按需供给将大大提高当前计算资源的利用率,降 低每服务的能耗量,并且有效屏蔽计算资源的出错问题。云计算正处于不断演 化的过程中,各界对云计算的定义持有不同看法 。 IBM 蓝云定义:蓝云定义: 一种新的用户体验和业务模式:云计算式一种新出现的计算模式, 它是一个IT计算资源池,并将应用、数据及其他资源,以服务的形式通 过网络提供给最终用户 一种新的 IT 架构管理方法:云计算是一种新的方式来管理大量 的虚拟化的 IT 资源,从管理的角度来看云计算,它可以讲多个小的资源 组装成大的资源池,也可以讲大型资源虚拟化彻骨多个小型资源,而最 终目的都是提供服务。 微微软软认为云计算就是 通过 Internet 标准和协议以实用工具形式提供的 计算功能。 百度百科百度百科给出了狭义云和广义云的概念: 狭义云计算 :提供资源的网络被称为 “云”。“云”中的资源在使 用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展, 按使用付费。这种特性经常被称为像水电一样使用IT 基础设施。 广义云计算 :这种服务可以是 IT 和软件、互联网相关的,也可 以是任意其他的服务。 Sun 公公司司认为,云的类型有很多种,而且有很多不同的应用程序可以使 用云来构建。由于云计算有助于提高应用程序部署速度,有助于加快创新步 伐,因而云计算可能还会出现我们现在无法想像到的形式。作为创造“网 络就是计算机 ”(The Network is the Computer) 这一短语的公司, SUN公司 深信云计算就是下一代的网络计算。 维基百科维基百科(W) 对云计算的定义也在不断更新,前后版本的差别 非常大。最新定义为:云计算是一种动态的易扩展的且通常是通过互联网提 供虚拟化的资源计算方式,用户不需要了解云内部的细节,也不必具有云内 部的专业知识或直接控制基础设施。云计算包括基础设施即服务(IaaS)、平 台即服务(PaaS)和软件即服务 (SaaS) 以及其他依赖于互联网满足客户计算需 求的技术趋势。云计算主要提供通用的通过浏览器访问的在线商业应用、软 件和数据存储等服务。 加加州州大大学学伯伯克克利利分分校校 (university of california at berkeley)的Michael Armbrust 等在名为“伯克利云计算白皮书 (above the clouds: a berkeley view of cloud computing)” 中对云计算的定义: 云计算包括互联网上各种服务 形式的应用以及这些服务所依托数据中心的软硬件设施, 这些应用服务一 直被称作软件即服务 (SaaS),而数据中心的软硬件设施就是所谓的云,云计 算就是SaaS 和效用计算。 为了更好的促进云计算的发展与应用,美国国家标准与技术研究院美国国家标准与技术研究院 (NIST)制定了“云计算工作定义”。这份“工作定义”提出了云计算的基本定义 和特征、交付模式和部署模式。云计算是一种资源利用模式,它能以简便的途 径和以按需的方式通过网络访问可配置的计算资源(网络、服务器、存储、应用、 服务等),这些资源可快速部署,并能以最小的管理代价或只需服务提供商开展 少量的工作就可实现资源发布。 1.2 云计算特点云计算特点 (1)按需自助服务。按需自助服务。消费者可对计算资源(如服务器时间和网络存储)进行单 边部署以自动化地满足需求,并且无须与服务提供商的人工配合。 (2)泛在网络连接。泛在网络连接。云计算资源可以通过网络获取和通过标准机制访问,这 些访问机制能够促进用户通过异构的瘦(thin)客户平台或胖(thick)客户平台(手机、 笔记本电脑、掌上电脑等)来使用云计算,也包括其它传统的或基于云的服务。 (3)与地理位置无关的虚拟化的资源与地理位置无关的虚拟化的资源“池池” 。云计算服务商采用多用户模式, 根据用户需求动态地分配和再分配物理资源和虚拟资源。用户通常不用知道这 些资源具体所在位置,资源包括存贮器、处理器、内存、网络、虚拟机等。提 虽然存在某种程度上的位置无关性,也就是说用户无法控制或根本无法知道所 使用资源的确切物理位置,但是原则上可以在较高抽象层面上来指定位置(例 如国家、州、省、或者数据中心) 。资源的例子包括存储、处理、内存、网络带 宽以及虚拟机等。即使是私有的“云”往往也趋向将资源虚拟“池”化来为组 织的不同部门提供服务。 (4)快速灵活地部署资源。快速灵活地部署资源。云计算供应商可快速灵活地部署云计算资源,快 速地放大和缩小。对于用户,云计算资源通常显得是无限的,并可以在任何时 间购买任何数量的资源。 (5)服务计费(可测量的服务)服务计费(可测量的服务) 。通过对不同类型的服务进行计费,云计算 系统能自动控制和优化资源利用情况。可以监测、控制资源利用情况,并形成 报告,为云计算提供商和用户就所使用的服务提供透明性。人们可以监视、控 制资源使用、并产生报表,报表可以对提供商和用户双方都提供透明。 1.3 云计算的架构云计算的架构 1.3.1 云计算服务模式云计算服务模式 云计算有三种服务模式:把云软件作为服务 (SaaS)、把云平台作为服务 (PaaS)、把云基础设施作为服务 (IaaS)。图 1 给出了这三种云服务模式所对应的 云提供商。 图 1 云计算服务模式 软件作为服务软件作为服务 (SaaS) 在这种交付模式下,提供商在云计算设施上运行程序,用户通过各种客户 端设备的瘦客户界面(如网页浏览器、基于网页的电子邮件)使用这些应用程序。 用户不需管理或控制底层的网络、服务器、操作系统、存储系统、应用程序等, 但可能需要完成一些与用户相关的应用程序参数设置。 “把软件作为服务”的特 色是根据需要作为服务提供的一整套应用程序。该软件的单个实例运行于云上, 并为多个最终用户或客户机构提供服务。 相关的 SasS 示例主要包括: 最著名的 SasS 示例是 。1999 年,27 岁的甲骨文(oracle) 高级副总裁、俄罗斯裔美国人马克贝尼奥夫创办了 S 公司,并 提出软件即服务(SaaS,Software-as-a-service)的思想,并运用于客户关系管 理服务(CRM)软件。目前已有 72,500 家公司采用了 Salesforce 的 CRM。 针对终端用户谷歌则推出了 Google Apps,这是一套基于网络的文档、电子 数据表和其他生产力应用软件。主要有 Gmail,GoogleDOCS、Google MAP、calendar、chat 等。 Microsoft Online Services:包括 Windows Live、Office Live、Exchange Online、SharePoint Online、Office Live Meeting、Office Communications Online、Exchange Hosted Services、Dynamics CRM Online。 NetSuite: NetSuite 提供的 NetSuite Business Software Suite 是行业领域首 家在线商业软件。在强大的单一应用软件中,NetSuite 集成了前台面向最终用 户的 CRM 和电子商务功能与后台面向企业内部及合作伙伴的 ERP,以及自助 服务门户功能。 Yahoo:Yahoo Small Business 服务提供了一个组合,其中包括:域名注册 服务、网站托管服务、邮件服务,这个简单组合在一个服务包内让小企业拥有 了所有必要的面向因特网的服务,并且比起其它非云的选择具有明显的价格优 势。客户所需的只是接入服务,在不再需要时可以简单地取消服务。 平台作为服务平台作为服务 (PaaS) 在这种交付模式下,用户采用提供商支持的编程语言和工具编写好应用程 序,然后放到云计算平台上运行。用户不需管理或控制底层的网络、服务器、 操作系统、存储系统等,但要控制应用程序,可能还需要设置应用程序的运行 环境。 从服务生产商或消费者的观点看,关于 PaaS 的观点至少有两种: 生产 PaaS 的某个人可能通过集成 OS、中间件、应用软件甚至是一个随 后作为服务提供给客户的开发环境来生产一个平台。例如,开发 PaaS 的人可 能会使其以一组 Sun xVM 管理程序虚拟机为基础,这组虚拟机包括一个 NetBeans 集成化开发环境、一个 Sun GlassFish Web 栈,并支持像 Perl 或 Ruby 这样的其它编程语言。 使用 PaaS 的人会看到一个封装式服务,该服务是通过 API 提供给用户的。 客户通过 API 与该平台互动,而且该平台执行一切必要的操作来管理和扩展其 本身,以提供规定的服务水平。虚拟设备可以归类为 PaaS 的实例。例如,一 个内容交换设备会将其所有组成软件对客户隐藏起来,而只向客户提供用来配 置和部署服务的一个 API 或 GUI。 PaaS 的商业示例包括: Google App Engine:谷歌推出了谷歌应用软件引擎(Google AppEngine, 简称 GAE) ,这种服务让开发人员可以编译基于 Python 的应用程序,并可免费 使用谷歌的基础设施来进行托管(最高存储空间达 500MB) 。对于超过此上限 的存储空间,谷歌按“每 CPU 内核每小时”10 至 12 美分及 1GB 空间 15 至 18 美 分的标准进行收费。最近,谷歌还公布了提供可由企业自定义的托管企业搜索 服务计划。 F 是 的企业云计算平台 。F 向企业提供在 云端上快速创建和实施业务应用程序所需的一切,包括数据库、无限的实时定 制、强大的分析、实时工作流程和审批、可编程云逻辑、集成、实时移动部署、 可编程的用户界面和网站功能。客户和合作伙伴在 F 上创建了超过 120,000 种定制应用程序来运营他们的业务,包括供应链管理、合规追踪、品牌 管理、应收账款、索赔处理、休假应用程序以及其他更多的应用程序 Microsoft Windows Azure Platform,Windows Azure Platform 是一套云端服 务作业系统,作为 Windows Azure 平台的开发、服务代管及服务管理的环境。 通过微软的 Windows Azure 系统可提供开发人员随选运算及存储,用来装载、 延伸及管理网络上的 Web 应用程序、云端应用程序和网络服务。Windows Azure Platform 与 Visual Studio 进行了整合,支持一致性的开发经验。Windows Azure Platform 是个可同时支持微软及非微软程序语言及环境的开放性平台。微 软欢迎 Eclipse、Ruby、PHP 与 Python 第三方工具和语言能够加入 Windows Azure Platform 行列。 NetSuite Suite 云:NetSuite 为其合作伙伴提供 Suite 云系统,在利润丰厚的 云计算市场推出了自己的定制应用平台。据国外媒体报道,该平台提供的服务 使其成为谷歌及甲骨文等公司的竞争对手,Suite 云平台将包含一系列的新产品、 开发工具和服务,包括新的 Suite 云开发网络(SDN),将专门面向独立软件开发 商。独立软件开发商可以选择在 NetSuite 上或 Suite 云开发平台上利用 NetSuite 商业操作系统(NS-BOS)创建 SuiteApp,或者干脆使用现有应用程序进行整合。 基础设施作为服务基础设施作为服务 (IaaS) 在这种交付模式下,用户将部署处理器、存储系统、网络及其他基本的计 算资源,并按自己的意志运行操作系统和应用程序等软件。用户不需管理或控 制的底层的云计算基础设施,但要控制操作系统、储存系统和应用程序,可能 还需要选择网络组件(防火墙、负载均衡器等)。 亚马逊的云计算产品总称为 Amazon Web Service(亚马逊网络服务),主要 由 4 部分组成,包括 S3(Simple Storage Service,简单的存储服务)、EC2(Elastic Compute Cloud,可伸缩计算云)、SQS(Simple Queuing Service,简单信息队列 服务)以及 SimpleDB。也就是说,亚马逊目前为开发者提供了存储、计算、中 间件和数据库管理系统服务。作为 Infrastructure as a Service (IaaS) 在实际应用 中的一个例子,The NewYorkTimes 使用成百上千台 Amazon EC2 实例在 36 小时内处理 TB 级的文档数据。如果没有 EC2,TheNewYork Times 处理这些 数据将要花费数天或者数月的时间。 另一个示例是 Joyent,其主要产品是一系列虚拟化服务器,这些服务器提 供运行网站的高度可扩展的随需应变基础设施,包括用 ruby on rails 、 PHP 、 Python 和 JAVA 编写的丰富的 web 应用程序。 1.3.2 云计算的部署模式云计算的部署模式 不管利用了哪种服务模型(SaaS、 PaaS、或 IaaS) ,存在四种云服务部署 模型,以及用以解决某些特殊需求而在它们之上的演化变形。 (1)私有云。)私有云。在这种模式下,云计算基础设施由单个组织经营,可由该组 织或第三方管理。可以是场内服务(on-premises) ,也可以是场外服务(off- premises) 。 (2)社区云。)社区云。在这种模式下,云计算基础设施由数个组织共享,并为一个 有共同关注点的团体提供支持,可由团体组织或第三方管理。云基础设施由若 干个组织分享,以支持某个特定的社区。社区是指有共同诉求和追求的团体 (例如使命、安全要求、政策或合规性考虑等) 。可以是该组织或某个第三方负 责管理,可以是场内服务(on-premises) ,也可以是场外服务(off-premises) 。 (3)公共云。)公共云。在这种模式下,云计算基础设施由一家销售云计算服务的组 织所拥有,该组织将云计算服务销售给公众或大型工业团体。 (4)混合云。)混合云。在这种模式下,云计算基础设施由两种或两种以上的云(私 有、团体或公共)组成,每种模式的云都保持独立,但通过标准或专有技术被组 合成一体,具有数据和应用程序的可移植性。如 Amazon Web Server 等既为企 业内部又为外部用户提供云计算服务。这些技术促成数据和应用的可移植性 (例如用以云之间负载分担的 cloud bursting 技术) 。 1.4 云计算关键技术云计算关键技术 云计算是一种新型的超级计算方式,以数据位中心,是一种数据密集型 的超级计算。在数据存储、数据管理和编程模型等方面具有自身独特的技术。 1.5.1 数据存储技术数据存储技术 为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数 据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个 副本。另外,云计算系统需要同时满足大量用户的需求,并行的为大量用户提 供服务。因此,云计算的数据存储技术必须具有高吞吐量和高传输速率的特点。 云计算的数据存储技术主要有谷歌的非开源的 GFS 和 Hadoop 开发团队开 发的 GFS 的开源实现 HDFS。大部分 IT 厂商,包括 yahoo、Intel 的云计划采用 的都是 HDFS 的数据存储技术。 未来的发展集中在超大规模的数据存储、数据加密和安全性保证、以及继 续提高 IO 速率等方面。 1.5.2 数据管理技术数据管理技术 云计算系统对大数据集进行处理、分析想用户提供高效的服务。因此,数 据管理技术必须能够高效的管理大数据集。其次,如何在规模巨大的数据中找 到特定的数据,也是云计算数据管理技术所必须解决的问题。 云计算的特点是对海量数据存储、读取后进行大量的分析,数据的读操作 频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。因此, 云系统的数据管理往往采用数据库领域中列存储的数据管理模式。将表按列划 分后存储。 云计算的数据管理技术最著名的是谷歌的 BigTable 数据管理技术,同时 Hadoop 开发团队正在开发类似 BigTable 的开源数据管理模块。 由于采用列存储的方式管理数据,如何提高数据的更新频率以及进一步提 高随机读取速率是未来数据管理必须解决的问题。 1.5.3 编程模式编程模式 为了使用户能更轻松的享受云计算带来的服务,让用户能利用该编程模型 编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单,必须 保证后台复杂的并行执行和任务调度向用户和编程人员透明。 云计算采用 MapReduce 的编程模型。现在所有 IT 厂商提出的云计划中采 用的编程模型,都是基于 MapReduce 的思想开发的变成工具。MapReduce 不仅 仅是一种编程模型,同时也是一种高效的任务调度模型。MapReduce 这种编程 模型不仅适用于云计算,在多核和多处理器、cell processor 以及异构机群上同 样具有良好的性能。 该编程模型仅适用于编写任务内部松耦合、能够高度并行化的程序。如何 改进编程模式,是程序员能够轻松的编写紧耦合的程序,运行时能高效调度和 执行任务是 MapReduce 编程模型未来的发展方向。 1.5 云计算与其他概念云计算与其他概念 1.5.1 云计算与网格计算云计算与网格计算 从根本上来说,从应对 Internet 应用的特征特点来说,他们是一致的,为了 完成在 Internet 情况下支持应用,解决异构性、资源共享等等问题。 云计算可看做是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念 的商业实现。云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、 IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进 并跃升的结果。 图 2 计算机模式的发展 具体看来,网格计算和云计算的区别如表 1 所示。 表 1 网格计算与云计算的区别 网格计算网格计算云计算云计算 目的网格计算将独立的计算 机连接成一个大的基础 设施,充分利用闲置的 资源,从而把计算资源 作为能够开启关闭的公 用事业来提供。 云计算除了把计算资源作为能够开启关闭 的公用事业来提供外,更进一步提供了效 用计算,用来支付在共享服务器上使用的 服务,就好象支付公共事业一样(比如电 力、天然气等) 。 资源分布聚合分布资源,支持虚 拟组织,提供高层次的 服务,例如分布协同科 学研究等。 云计算的资源相对集中,主要以数据中心 的形式提供底层资源的使用,并不强调虚 拟组织(VO)的概念。 支持应用网格计算用聚合资源来 支持挑战性的应用,这 是初衷,因为高性能计 算的资源不够用,要把 分散的资源聚合起来。 云计算从一开始就支持广泛企业计算、 Web 应用,普适性更强。 处理异构网格计算用中间件屏蔽 异构系统,力图使用户 面向同样的环境,把困 难留在中间件,让中间 件完成任务。 云计算采用镜像或者提供服务的机制来解 决异构性的问题。当然不同的云计算系统 还不太一样,像 Google 一般用比较专用 的自己的内部的平台来支持。 服务的方 式 网格计算用执行作业形 式使用,在一个阶段内 完成作用产生数据。 而云计算支持持久服务,用户可以利用云 计算作为其部分 IT 基础设施,实现业务 的托管和外包。 应用领域网格计算更多地面向科 研应用,商业模型不清 晰。 而云计算从诞生开始就是针对企业商业应 用,商业模型比较清晰。 1.5.2 云计算与云计算与 SOA 微软开发平台技术高级经理 Steven Martin 说,SOA 的讨论肯定将开始转向 云计算。云计算是合乎逻辑的服务托管环境。面向服务是构建应用程序的一种 方法,而云计算指的是这种基础设施以及那个应用程序的交付模式。 开源软件 SOA 软件厂商 WSO2 的首席执行官 Sanjiva Weerawarana 说,云 计算是在 SOA 环境中部署服务的一个好方法。他指出,SOA 和云计算相互支 持,但是,他们的思想基础不一样。云计算是一种部署架构,而不是设计企业 IT 的架构方法。而 SOA 是这种方法。 研究机构 Directions on Microsoft 的研究经理 Rob Helm 称,云计算和 SOA 都能够确定主要的可再利用的组件是什么,在开放网络上运行大规模组件的正 确技术是什么。以模块化方式向 SOA 过渡的机构在把模块迁移到云计算的之后 将处于非常有利的地位。 1.5.3 云计算与超级计算机云计算与超级计算机 超级计算机拥有强大的处理能力,特别是计算能力。2008 年 11 月 17 日发 布的超级计算机 Top 500 榜单,IBM 为美国 Los A lamos 国家实验室建造的计算 机系统“Roadrunner”获得冠军。它的运算速度达到了 1.026 Petaflop/s。Roadrunner 超级计算机包含了 12960 个 IBM powerX cell 8 处理器及 6948 个分布于刀片服务器上的 AMD Opteron 芯片,分别安装在 288 个 IBM bladeCenter 机架上。Roadrunner 拥有 80TB 的内存,外存使用 1.5 PB 容量的 Panasas 存储,外存通过 10GB/s 以太网连接,耗资超过 1 亿美元。 TOP 500 对超级计算机的排名方式可以看出,传统的超级计算机注重运算 速度和任务的吞吐量,以运算速度为核心进行计算机的研究和开发。而云计算 则以数据为中心,同时兼顾系统的运算速度。传统的超级计算机耗资巨大,远 超过云计算系统。例如,趋势科技花费 1000 多万美元租用 34000 多台服务器, 构建自身的“安全云”系统。云计算系统相比于超级计算机具有松耦合的性质, 可以比较方便的进行动态伸缩和扩展,而超级计算机不易扩展、改造和升级。 另外,云计算系统天生据哟良好的分布性,超级计算机则不具有。 1.6 云计算存在的问题及下一步技术发展趋势云计算存在的问题及下一步技术发展趋势 应用及数据安全应用及数据安全 包含用户敏感信息的应用系统部署在公共云上,可能存在安全隐患。云计 算基础架构具有多租户的特性,厂商们通常无法保证 A 公司的数据与 B 公司的 数据实现物理分隔。企业私有云中,各个部门之间的信息安全也必须考虑,特 别是财务数据、客户信息等。另外,考虑到大规模扩展性方面的要求,数据物 理位置可能得不到保证。如果企业需要遵守业务交易及相关数据方面的全国或 国际法规,用户可能会觉得不放心。不过,有人认为,到时候法规可能会考虑 这种大规模分布式、多租户环境。 标准制定标准制定 目前云计算厂商都在各自为战,并没有实现标准化。不同云之间缺乏互操 作性,用户从一个云计算环境迁移到另一个环境时面临巨大困难。 服务质量保证服务质量保证 通过远程网络访问的应用模式具有不可靠性。亚马逊 S3 服务和 Google 云 服务都出现过服务中断,企业被迫重新考虑他们对云计算的依赖。 云计算的商业模式云计算的商业模式 云计算强调发挥集中化的优势,以及应用、平台和资源的分层松耦合管理。 面临企业传统 IT 系统管理和使用模式的巨大阻力 云计算安全监管云计算安全监管 云计算对于安全监管问题也带来了很大的挑战,云计算服务就是一种虚拟 运营服务,它会带来一些监管上的问题,云计算资源的跨地域提供与本地化的 监管之间存在矛盾,对虚拟业务运营商的监管机制还有待建立。 云计算与移动互联网相结合云计算与移动互联网相结合 云计算不久将成为移动世界中的一股爆破力量,最终会成为移动应用的主 导运行方式。云计算和移动互联网似乎天生就是绝配。手机拥有便携性和通信 能力等众多天然优势,而计算能力、存储能力弱,虽然正逐渐向智能化演进, 但受限于体积和便携性的要求,短时间内手机的处理能力难以和电脑相比。从 这点出发,云计算的特点更能在移动互联网上充分体现,将应用的“计算”与 存储从终端转移到服务器的云端,从而弱化了对移动终端设备的处理需求。在 云计算下,只要配备功能强大的浏览器,就能应用各种业务。 行业应用行业应用 没有应用的云是没有价值的。所以,云计算要落到实处,必须加强行业应 用。目前,媒体、医疗、政府可能是行业应用的切入点。 第第 2 章章 云计算云计算应用应用 2.1 Amazon 作为一家主营图书的电子商务零售企业,Amazon 在设计和规划自身 IT 系 统架构的时候,不得不为了应对“圣诞节狂潮”这样的销售峰值而购买大量的 IT 设备。但是,这些设备平时却处于空闲状态。因此,Amazon 在 2002 年 7 月 推出免费的 Amazon 电子商务服务(Amazon E-commerce Service) ,让零售商可 以将自己的商品放在 Amazon 网络商店中,储存产品价格、顾客评等资料,进 行后台管理。这样,Amazon 就从不只卖书,而是当电子商务零售业的“包租 公” ,利用其在电子商务网站建设上的优势,将设备、技术和经验作为一种打包 产品去为其他企业提供服务,存储服务器、带宽按容量收费,CPU 根据使用时 长运算量收费。为了解决这些租用服务中的可靠性、灵活性、安全性等问题, 亚马逊不断优化其技术。 亚马逊很早进进入了云计算领域,凭借其在电子商务领域积累的大量基础 性设施、先进的分布式计算技术和巨大的用户群体,在云计算、云存储方面一 直处于领先地位。 亚马逊的云计算产品总称为 Amazon Web Service(亚马逊网络服务),主要 由 4 部分组成,包括 S3(Simple Storage Service,简单的存储服务)、EC2(Elastic Compute Cloud,可伸缩计算云)、SQS(Simple Queuing Service,简单信息队列 服务)以及 SimpleDB。同时亚马逊还提供了内容推送服务 CloudFront、电子商 务服务 DevPay 和 FPS 服务。也就是说,亚马逊目前为开发者提供了存储、计 算、中间件和数据库管理系统服务。通过 AWS,可根据业务的需要访问一套可 伸缩的 IT 基础架构服务,获得计算能力、存储和其他的服务。通过 AWS 可以 更多地根据所解决问题的特点来有弹性地选择哪种开发平台或者编程模型。你 只需为你使用了什么而付费,而不需要预先的花费或长期的承诺,使得 AWS 成为成本最有效的方式来交付你的应用给你的客户。并且,通过 AWS,你可以 利用 A 的全球计算基础设施,这些基础设置为 A 的 150 亿$的零售业务和交易企业提供有效的支持。利用 Amazon Web Services,一个 电子商务 web 站点能轻易地适应不可预期的需求;一个制药公司可以租用计算 能力来执行大规模的仿真,一个媒体公司可以提供无限制的录像、音乐等等; 一个企业能够部署需要宽带宽的服务。图 5 所示为面向服务的亚马逊平台架构。 图 5 亚马逊平台架构 2.1.1 亚马逊平台基础存储架构:亚马逊平台基础存储架构:Dynamo Dynamo 是一个完全分布式的、务中心节点的存储系统,采用的事数据分 布式存储的架构。相比传统的集中式存储系统,Dynamo 再设计之初就被定位 为一个高可靠、高可用且具有良好容错性的系统。它以简单的键/值 (key/alue)方式存储数据,因此并不支持复杂的查询,但这并不影响客户的使 用,同时 Dynamo 不识别任何数据结构,使得它几乎可以处理所有的数据类型。 问题采用的相关技术 数据均衡分布改进的一致性哈希算法、数据备份 数据冲突处理向量时钟(Vector Clock) 临时故障处理Hinted handoff(数据回传机制) ,参数(W,R,N)可 调的弱 quorum 机制 永久故障后的恢复Merkle 哈希树 成员资格以及错误检测给予 Gossip 的成员资格协议和错误检测 2.1.2 S3 进行存储进行存储 Amazon Simple Storage Service (S3) 提供一个用于数据存储和获取的 Web 服务接口。数据可以是任何类型的,可以从 Internet 上的任何地方存储和访问 数据。对象是 S3 的基本存储单元,包括数据和元数据,其中元数据存储的是对 象数据内容的附加描述信息,元数据通过一对键-值(Name-Valued)集合来定 义。对象数据的实际存储方式对用户来说是不透明的,用户无法对某一子部分 进行直接修改。对象存储在桶中,用户可以在 S3 中存储任意数量的对象,但 最多只能创建 100 个桶;存储的每个对象的大小可以从 1 字节到 5 GB。存储 本身位于美国或欧盟。在创建 bucket (与操作系统中的文件夹概念相似)时, 可以选择对象的存储位置。使用与 Amazon 电子商务网站的全球网络相同的数 据存储基础设施存储数据,确保安全性。对于存储在 S3 中的每个对象,可以 指定访问限制,可以用简单的 HTTP 请求访问对象。甚至可以让对象可通过 BitTorrent 协议下载。S3 的桶基本结构图如图 6 所示。 图 6 S3 桶基本结构图 S3 向用户提供包括身份认证和访问控制列表(ACL)的双重安全机制,让 用户完全不必为存储空间、数据访问或数据安全性操心。甚至不必承担维护存 储服务器的成本。 Amazon 确保您的文件的高可用性,在任何时候都可以使用它们。Amazon 为 S3 提供的服务水平协议承诺 99.9% 的正常运行时间,每月度量一次。 2.1.3 EC2 实现弹性计算实现弹性计算 Amazon EC2 是一个 Web 服务,它让用户可以在几分钟内获得虚拟机器, 根据需要轻松地扩展或收缩计算能力。您只需为实际使用的计算时间付费。如 果需要增加计算能力,可以快速地启动虚拟实例;当需求下降时,可以马上终 止它们。 这些实例基于 Linux,可以运行您需要的任何应用程序或软件。您可以控 制每个实例。EC2 环境本身基于在剑桥大学开发的开放源码的 Xen 系统管理 程序。Amazon 允许创建 Amazon 机器映像 (AMI) 作为实例的模板。可以通 过指定权限控制对实例的访问。可以用这些实例做任何事;惟一的限制是,它 们必须是基于 Linux 的映像。最近,Amazon 宣布与 Sun Microsystems 合作 提供 Open Solaris 支持,但是 EC2 可用的大多数免费和商业预构建映像是基 于 Linux 的。 Amazon EC2 提供真正全 Web 范围的计算,很容易扩展和收缩计算资源。 您可以完全控制在 Amazon 数据中心中运行的这个计算环境。Amazon 提供五 种服务器类型;可以选择适合自己应用程序需要的服务器类型。服务器的范围 从普通的单核 x86 服务器直到八核 x86_64 服务器。可以把实例放在不同的地 理位置或可用性区中,从而确保对抗故障的能力。Amazon 最近还引入了弹性 IP 地址的概念,弹性 IP 地址可以动态地分配给实例。 图 7 EC2 基本架构图 EC2 向用户提供了如下一些非常有价值的特性: 1)灵活性:EC2 允许用户对运行的实例类型、数量进行配置,选择实例运 行的地理位置,可随时改变实例的使用数量。 2)低成本 3)安全性:基于密钥对机制的 SSH 方式反问、可配置的防火墙机制等。 4)易用性:用户可以根据亚马逊提供的模块自由构建自己的应用程序, EC2 根据用户服务请求自动负载均衡。 5)容错性:弹性 IP 地址等机制。 用户首先创建一个存储到 S3 的 AMI(Amazon Machine Image) ,把自己的 应用程序、配置等打包,然后系统通过实例运行程序。在 EC2 中,每个用户最 多可拥有 30 个实例,每个实例自身携带一个临时存储模块。用户需要长期保存 的数据则保存到 EBS(弹性块存储模块)中,EBS 中的数据只能由用户来三处。 在 EC2 服务中,系统各模块之间使用似有 IP 地址通信,而系统与外界使用公 共 IP 地址通信。EC2 的基本架构如图 7 所示。 2.1.4 Amazon Simple Queue Service 实现可靠的消息传递实现可靠的消息传递 Amazon Simple Queue Service (SQS) 允许访问 Amazon 提供的可靠的消息 传递基础设施。可以使用简单的基于 REST 的 HTTP 请求在任何地方发送和 接收消息。不需要安装和配置任何东西。可以创建任意数量的队列,发送任意 数量的消息。Amazon 把消息存储在多个服务器和数据中心中,从而提供消息 传递系统所需的冗余和可靠性。每个消息最多可以包含 8KB 的文本数据。每 个队列可以有一个可配置的可见性超时周期,用来控制多个读者对队列的访问。 一个应用程序从队列中读取一个消息之后,其他读者就看不到这个消息,直到 超时周期期满为止。在超时周期期满之后,消息重新出现在队列中,另一个读 者进程就可以处理它。 SQS 与其他 Amazon Web Services 很好地集成。可以使用 SQS 构建松散 耦合的系统;在这种系统中,EC2 实例可以通过向 SQS 发送消息相互通信并 整合工作流。还可以使用队列为应用程序构建一个自愈合、自动扩展的基于 EC2 的基础设施。可以使用 SQS 提供的身份验证机制保护队列中的消息,防 止未授权的访问。 2.1.5 用用 Amazon SimpleDB 进行数据集处理进行数据集处理 Amazon SimpleDB (SDB) 是一个用于存储、处理和查询结构化数据集的 Web 服务。它并不是传统意义上的关系数据库,而是一个高可用的模式(采用 了最终一致性数据模型) ,是云中的非结构化数据存储,可以使用它存储和获取 包含键的值。每组包含键的值需要一个惟一的条目名;条目本身划分为域。每 个条目可以包含最多 256 个键-值对。可以在每个域中对自己的数据集执行查 询。SDB 当前还不支持垮域查询。 SDB 便于使用,提供关系数据库的大多数功能。与传统的关系型数据库相 比,SDB 无需预定义模式,单个属性允许多个值,支持自动索引,维护比典型 的数据库简单得多,因为不需要设置或配置任何东西。Amazon 负责所有管理 任务。Amazon 自动地为数据编制索引,可以在任何时候任何地方访问索引。 不受模式限制的关键优点是,能够动态地插入数据和添加新的列或键。 然而 SDB 没有事务(Transaction)的概念,不支持连接(join)操作,且返回的结果 不支持排序操作。 SDB 是 Amazon 基础设施的组成部分,会在幕后自动地扩展。您可以把 注意力放在更重要的方面。同样,只需为实际使用的数据集资源付费。 AWS 服务的综合使用如图 8 所示。 图 8 AWS 综合使用协作图 2.2 Google 2.2.1 Google App Engine Google App Engine 是一个由 Python 应用服务器群、Bigtable 数据库及 GFS 数据存储服务组成的 PaaS 平台,它能为开发者提供一体化的、可自动升级的在 线应用服务。Google App Engine 可让您在 Google 的基础架构上运行您的网络 应用程序。App Engine 应用程序易于构建和维护,并可根据您的访问量和数据 存储需要的增长轻松扩展。使用 Google App Engine,将不再需要维护服务器: 您只需上传您的应用程序,它便可立即为您的用户提供服务。 您可以使用 Google 企业应用套件通过自己的域名提供应用程序。或者, 您可以使用 域上的免费域名来为您的应用程序提供服务。您可以 与全世界的人共享您的应用程序,也可以限制为只有贵组织的成员可以访问。 Google App Engine 支持以几种编程语言编写的应用程序。通过 App Engine 的 Java 运行时环境,您可以使用标准 Java 技术(包括 JVM、Java servlet 和 Java 编程语言,或使用基于 JVM 的解释器或解译器的任何其他语 言,例如 JavaScript 或 Ruby)构建应用程序。App Engine 还提供一个专用的 Python 运行时环境,该环境包括一个快速 Python 解释器和 Python 标准库。 Java 和 Python 运行时环境构建为确保应用程序快速、安全运行,并不受系统 上的其他应用程序的干扰。 图 9 Google App Engine 架构图 在 App Engine 中,您只需为您使用的资源付费。没有设置成本,也没有 重复的费用。您的应用程序使用的资源,如存储空间和带宽以千兆字节衡量, 并以有竞争力的费率收费。您可以控制您的应用程序可以消费的最大资源量, 使其一直保持在预算范围内。 可以免费开始使用 App Engine。所有应用程序都可以使用多达 500 MB 的 存储空间,以及可支持每月约 500 万页面浏览量的足够的 CPU 和带宽,完全 免费。为您的应用程序启用付费后,您的免费配额将提高,您只需为使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论