首页 2011年《云计算架构介绍》

2011年《云计算架构介绍》

举报
开通vip

2011年《云计算架构介绍》 摘要 云计算可望提高应用程序部署速度、促进创新和降低成本,同时还增强经营敏捷 性。Sun 抱持一种全面的云计算观点,因而可以支持各个层面,其中包括服务器、 存储、网络和虚拟化技术,这些技术将云计算环境扩展到虚拟设备中运行的软件, 而这些虚拟设备可用来在极少时间内成功汇编应用程序。本白皮书探讨云计算如何 变革我们的设计、构建和提供应用程序的方式,以及企业在采纳并应用云计算技术 时必须考虑的架构问题。 云计算架构介绍 白皮书 第 1 版,2009 年 6 月 本页故意留空。 Sun 公司 ...

2011年《云计算架构介绍》
摘要 云计算可望提高应用程序部署速度、促进创新和降低成本,同时还增强经营敏捷 性。Sun 抱持一种全面的云计算观点,因而可以支持各个层面,其中包括服务器、 存储、网络和虚拟化技术,这些技术将云计算环境扩展到虚拟设备中运行的软件, 而这些虚拟设备可用来在极少时间内成功汇编应用程序。本白皮书探讨云计算如何 变革我们的设计、构建和提供应用程序的方式,以及企业在采纳并应用云计算技术 时必须考虑的架构问题。 云计算架构介绍 白皮书 第 1 版,2009 年 6 月 本页故意留空。 Sun 公司 目录 引言............................................................... 1 Sun 公司观点........................................................ 1 云计算的性质....................................................... 2 扩大已形成的趋势................................................... 2 将虚拟机作为标准部署对象......................................... 2 按需、自助、以使用情况付费的模式................................. 2 通过网络提供服务................................................. 5 开放源软件的作用................................................. 5 云计算基础设施模式................................................. 6 公用云、专用云和混合云........................................... 6 云计算的架构层................................................... 9 云应用程序设计接口.............................................. 11 云计算效益........................................................ 11 缩短运行时间和响应时间.......................................... 11 最大限度地减轻基础设施风险...................................... 12 降低入市成本.................................................... 12 加快创新步伐.................................................... 12 实现 IaaS 必须考虑的架构问题........................................ 13 不断发展的应用程序架构............................................ 13 变革架构的途径.................................................. 13 变革应用程序设计................................................ 13 目标仍然相同...................................................... 14 一致而稳定的抽象层................................................ 16 标准有助于解决复杂问题.......................................... 16 松散耦合、无状态、原地失败 (Fail-in-Place) 计算......................... 18 水平扩展.......................................................... 18 并行化............................................................ 19 分割并征服...................................................... 20 数据物理.......................................................... 21 数据与处理之间的关系............................................ 21 编程策略........................................................ 21 合规与数据物理.................................................. 22 安全性与数据物理................................................ 22 网络安全做法...................................................... 23 Sun 公司与云计算................................................... 24 来自 Sun 社区的创新................................................ 24 社区与开放式标准.................................................. 25 选择的重要性...................................................... 25 选择云计算提供商.................................................. 25 感谢.............................................................. 26 Sun 公司1 云计算架构介绍 第 1 章 引言 什么是云计算 (Cloud Computing)? 每个人都有自己的看法。云计算可以是租用 一台服务器或一千台服务器并在目前世界上最强大的系统上运行地球物理建 模应用程序的能力。云计算也可以是租用一个虚拟服务器、在其上面加载软 件、随意打开和关闭该虚拟服务器或克隆该服务器十次以满足突发工作负荷需 求的能力。云计算可以存储并保护巨量数据,而且这些数据只允许授权应用 程序和用户进行访问。云计算可由建立一个包括 OS、Apache、MySQL™.数据 库、Perl、Python 和 PHP 的平台的云提供商提供支持,该平台能够根据不断变 化的工作负荷自动扩展。云计算还可以是在互联网上使用存储并保护数据同时 提供服务 [包括电子邮件、销售能力自动化 (Sales Force Automation) 和报税 (Tax Preparation),等等] 的应用程序的能力。云计算可以使用存储云 (Storage Cloud) 来保存应用程序、企业和个人数据。而且,云计算还可以使用少数 Web 服务来 集成照片、地图和 GPS 信息,以便与客户 Web 浏览器中创建聚合 (Mashup)。 Sun 公司观点 Sun 公司采取一种全面的观点,这种观点认为,云的类型有很多种,而且有很 多不同的应用程序可以使用云来构建。由于云计算有助于提高应用程序部署速 度,有助于加快创新步伐,因而云计算可能还会出现我们现在无法想像到的形 式。然而,永恒不变的是,Sun 公司是一家具有丰富经验的服务器、网络和软 件技术提供商,我们提供的这些技术均支持云计算。作为创造“网络就是计算 机”(The Network is the Computer™).这一短语的公司,我们深信云计算就是下一 代的网络计算。 云计算与以前的模式有什么区别? 就云计算这个短语而言,它就是通过网络把信 息技术当作服务来使用。我们将其定义为封装的、具有 API 且通过网络提供的 服务。此定义同时包含把计算和存储资源当作服务使用。云计算首先以效率原 理为基础,此处所说的效率是指产生用来处理 80% 的使用案例的高级工具,这 样才能以一种惊人的速度创建和部署应用程序。 云计算可以由企业数据中心自己的服务器进行提供,也可以由承担拥有基础 设施的全部风险的云提供商提供。错误的观念认为资源是取之不尽的。尽管 该领域还处于萌芽阶段,但其模式已在信息技术 (IT) 行业引起极大反响。现 在,云计算的主要模式称为“把基础设施当作服务”(IaaS),而且由于其突出特 性,IaaS 模式成为本白皮书第一版本的焦点。 本白皮书探讨云计算的性质及其如何在变革世界各地的企业构建和部署应用程 序的方式的同时扩大已形成的趋势。然后,讨论云架构设计师 (Cloud Architect) 设计基于云的应用程序时必须考虑的架构问题。最后,介绍 Sun 公司提供的支 持云计算的技术。 Sun 公司2 云计算架构介绍2 第 2 章 云计算的性质 扩大已形成的趋势 云计算推动降低服务提供成本的已有趋势,同时提高部署服务的速度和敏捷 性。它缩短了从设计应用程序架构到实际部署应用程序的时间。云计算把虚拟 化、按需部署、网上服务提供和开放源软件融合在一起。从一种观点看,云计 算并非新生事物,因为它使用既有的方法、概念和最佳做法。而从另一种观点 看,一切都是新的,因为云计算变革我们发明、开发、部署、扩展、更新、维 护和支付应用程序以及运行应程序的基础设施的方式。在本章中,我们考查上 述趋势,以及这些趋势是如何成为云计算的性质的核心的。 将虚拟机作为标准部署对象 在过去几年时间里,虚拟机已成为一种标准部署对象。虚拟化进一步增强了灵 活性,因为它把硬件概括到这样一个高度:在硬件上面,可以在不需要连接具 体物理服务器的情况下部署和重新部署软件栈。虚拟化实现了一个动态数据中 心,其中的服务器提供一个包含可根据需要使用资源的资源池,而且,其中的 应用程序与计算、存储和网络资源的关系可动态变化,以适应工作负荷和业务 需求。由于应用程序部署与服务器部署相分离,因而可以快速部署和扩展应用 程序,而不必首先购置物理服务器。 虚拟机已成为流行抽象概念.—.和部署单位.—.因为它们是服务提供商和开发 人员之间的最小公分母连接体。把虚拟机用作部署对象足以适应 80 % 的使用情 况,而且这将有助于满足快速部署和扩展应用程序的需要。 虚拟设备 (包含软件的虚拟机,这些软件部分或全部地配置为执行像 Web 服务 器或数据库服务器这样的特定任务) 进一步增强了快速创建和部署应用程序的能 力。把虚拟机和设备作为标准部署对象组合在一起是云计算的关键特性之一。 计算云通常由存储云进行补充,存储云通过 API 提供虚拟化存储,而这些 API 为 存储虚拟机映像 (Image)、用于诸如 Web 服务器的组件的源文件、应用程序状态 数据以及一般业务数据,提供便利。 按需、自助、以使用情况付费的模式 云计算的按需、自助和以使用情况付费的性质也是已有趋势的一种延伸。从企 业的观点看,云计算的按需性质有助于支持服务水平目标的性能和容量方面。 云计算的自助性质使机构可以创造根据工作负荷和目标性能参数进行扩展和收 缩的弹性环境。而且云计算的按使用情况付费的性质可以采取设备租赁的形 式,设备租赁保证了云提供商提供一种最低的服务水平。 Sun 公司3 云计算架构介绍 虚拟化是此模式的一个关键特性。早在几年前,IT 机构就已经明白虚拟化使他 们可以方便快捷地创建已有环境的副本—有时涉及多个虚拟机—来支持测试、 开发和分级 (Staging) 活动。这些环境的成本极小,因为它们几乎不使用什么资 源,因而可以与生产环境共处于同样的服务器之上。. 同样地,可以在已有服务器上的新虚拟机中开发和部署新应用程序,在互联网 上开放使用,并且在应用程序在市场上取得成功时进行扩展。这种轻便的部署 模式已经产生一种“进化式”(Darwinistic) 业务开发方法,其中,软件的 Beta 版 是对公众开放的,而且由市场决定哪些应用程序值得进一步扩展和开发,或者 静静地报废。 云计算通过自动化扩大了这一趋势。不是与 IT 机构洽谈购买用来部署应用程序 的资源,计算云是一个自助式命题,其中,一张信用卡即可购买计算周期,而 且可以使用 Web 接口或 API 创建虚拟机,并在虚拟机之间建立网络关系。云不 需要与 IT 机构或服务提供商签订长期服务 合同 劳动合同范本免费下载装修合同范本免费下载租赁合同免费下载房屋买卖合同下载劳务合同范本下载 ,而是按照根据使用情况付费或 按 Sip 付费 (Pay-by-the-Sip) 的模式运作,在这种模式下,一个应用程序可能为运 行一项作业几分钟或几小时而存在,也可能为长期向客户提供服务而存在。构 建计算云时就好像应用程序是临时的,而计费是按照资源消耗情况进行的:使 用的 CPU 小时数、移动的数据量或存储的数据的千兆字节 (GB) 数。 使用和仅对使用的资源付费的能力,把购买多少基础设施的风险,从开发应用 程序的机构转移给云提供商。这种能力还把架构决策的责任从应用程序架构设 计师转移给开发人员。这种转移会增大风险,即出于某种原因制定了流程的企 业必须控制的风险,以及系统、网络和存储架构设计师需要把云计算设计包括 在内的风险。 基础设施是可以编程的 这种架构责任的转移产生重要的后果。过去,架构设计师确定一个应用程序的 各种组件如何在一组服务器上进行布局,即如何连接、固定、管理和扩展这些 组件。现在,开发人员可以使用云提供商的 API 不仅在虚拟机上创建应用程序 的初始结构,而且还确定该应用程序如何扩展和演进以适应工作负荷的变化。. 看看下面这个类比:历史上,使用 Java 编程语言编写软件的开发人员确定何时 适合创建使多项活动同时推进的新线程。现在,开发人员可以同样轻而易举地 发现和连接一项服务,使它们可以将一个应用程序扩展到这样一个高度:该应 用程序可使用成千上万个虚拟机来适应需求激增情况。 动态编写应用程序架构的程序的能力使开发人员拥有了巨大权力,同时也承担 相应大的责任。要最有效地使用云计算,开发人员还必须是架构设计师,而且 该架构设计师需要能够创建自我监控和自我扩展的应用程序。该开发人员/架. 构设计师需要清楚何时适合创建一个新的线程 (而不是何时创建一个新的虚拟 机) ,并创建如何把它们相互连接起来的架构模式。 Sun 公司4 云计算架构介绍 一旦很好地理解并利用这种能力,结果将会是蔚为壮观的。一个已经具有传 奇色彩的故事是 Animoto 的聚合工具,该工具从一组映像和音乐中创建一个 视频。该公司的应用程序在仅仅三天时间里从 50 台服务器扩展到 3500 台服务 器,这部分是因为一个使该应用程序能够容易地扩展的架构。为了达到这一目 的,该应用程序必须设计为可以水平扩展、具有有限的状态,并且通过云 API 管理自己的部署。对于每个像这样的成功案例,都可能会成为一个相似的故 事:其中该应用程序不能自我扩展,而且无法满足消费者的需求。这种从开发 人员到开发人员/架构设计师的转移的重要性是无法理解的。 看看您的企业数据中心是否能够以这么快的速度将一个应用程序扩展为适应如 此快速增加的工作负荷,以及云计算是否可以测量您的当前能力。 应用程序是组合在一起的,而且设计为可以组合的 这种自助式、按使用情况付费的模式的另一个后果是,就像编写应用程序一 样,通过汇编和配置设备和开放源软件来组合应用程序。可以重构 (Refactor) 以 最大限度地利用标准组件的应用程序和架构,是那些将会在利用云计算效益方 面最为成功的应用程序和架构。同样地,应用程序组件应设计为可以组合的, 这种组合是通过将应用程序构建的易于使用来实现。这要求具备简单而明确的 功能以及精心编写文档的 API。构建大型完整应用程序已成为过去,因为可直接 使用或根据特定用途定制的现有工具库已经变得越来越大。 例如,像 Hadoop (一种开放源 MapReduce 架构实现) 这样的工具可以在多种情 况下使用,其中可以对一个问题及其数据进行重构,以便于其多个部分可以同 时执行。当《纽约时报》想将其 档案 肢体残疾康复训练教师个人成长档案教师师德档案表人事档案装订标准员工三级安全教育档案 中 1100 万份文章和映像转换成为 PDF 格式 时,其内部 IT 机构说这会需要七个星期时间。同时,使用 100 个运行 Hadoop 的 Amazon EC2 简单 Web 服务接口实例的一名开发人员,用 24 小时时间就完成 了这项工作,劳动成本只有 300 美元。(这不包括上载数据所需的时间或存储成 本。) 甚至大型企业都可以使用云计算,用来以比传统企业计算更少的时间和成本解 决重大问题。 Web 应用程序部署示例 举一个虚拟化与自助服务结合在一起如何促进应用程序部署的示例,看看如何 在云中进行一次二层 Web 应用程序部署 (图): 1. 开发人员可以从一个预配置虚拟机映像库中选择负载平衡器 (Load Balancer)、Web 服务器和数据库服务器设备。 2. 开发人员配置每个组件以制作一个自定义映像。配置负载平衡器,通过将 静态内容上载到存储云来给 Web 服务器填充这些内容,并用站点的动态内 容来填充数据库服务器设备。 3. 开发人员把自定义代码层叠在新的架构之中,从而使组件满足特定应用程 序要求。 有关如何完成这一壮举的说明,请 访问:http://open.blogs.nytimes. com/2007/11/01/self-service-prorated- super-computing-fun/01/self-service- prorated-super-computing-fun/ Sun 公司5 云计算架构介绍 4. 开发人员选择一个呈现各层映像并部署这些映像的模式,以便于处理网 络、安全和可扩展性问题。 图.1..以基于云的部署形式将应用程序部署到一个二层 Web 服务器架构模式的示例。 5. 安全而高度可用的 Web 应用程序启动并正常运行。当需要更新应用程序 时,可以在开发-测试-生产链之间对虚拟机映像进行更新、版本控制和复 制,并且可以重新部署整个基础设施。云计算假定一切都是临时的,而且 重新部署整个应用程序就像手动修补一组具体的虚拟机一样容易。 在此示例中,虚拟机映像的抽象性质支持一种组合式应用程序开发方法。通过 重构该问题,可以使用一组标准的组件来快速部署应用程序。借助此模式,可 以迅速满足企业的业务需要,而不需要对服务器、存储和网络基础设施进行耗 时的人工购买、安装、布线和配置工作。 通过网络提供服务 不言而喻,云计算扩大了通过网络提供服务的已有趋势。几乎每个商业机构都 认可与其应用程序的连接的基于 Web 的接口的价值,不管是否通过互联网向客 户提供应用程序,也不管它们是否是可供授权员工、合作伙伴、供应商和咨询 人员使用的内部应用程序。当然,基于互联网的服务提供的美妙之处就在于可 以随时随地使用应用程序。. 尽管企业都清醒地认识到利用安全套接字层 (SSL) 以及严格验证技术来确保通信 安全的能力,但在云计算环境中引入信任还需要认真考虑企业计算和云计算之 间的区别。如果架构设计的合理,互联网服务提供模式可提供各种规模的企业 所需的灵活性和安全性。 开放源软件的作用 开放源软件在云计算中发挥着一种重要的作用,因为开放源软件允许从容易访 问的组件创建其基本软件元素:虚拟机映像和设备。这会产生巨大的影响: Sun 公司6 云计算架构介绍 • 例如,开发人员可以通过将 MySQL 软件层叠在一个 OpenSolaris™ 操作系统 上并执行自定义来创建一个数据库设备 (图 2)。像这样的设备能够根据需 要创建、部署和动态扩展云计算应用程序。例如,看看开放源软件如何使. Animoto 创建的应用程序在几天之内就扩展到 3500 个实例。 ᭄᥂ᑧ ᪡԰㋏㒳 ᑨ⫼⿟ᑣ៪Ё䯈ӊ 䆒໛ 㰮ᢳᴎ᯴ڣ 可以通过把开放源软件层叠在一个虚拟机映像之中,并执行简化其部署的自定图.2.. 义,来创建设备。在此示例中,通过把 MySQL 软件层叠在 OpenSolaris 操作系统上来创 建一个数据库设备。 • 由于用开放源组件汇编大型应用程序非常容易,因而生成更多开放源组件。 这反过来又使开放源软件的作用更加重要。例如,需要拥有一种可在云计算 环境中运行的 MapReduce 算法,这就是刺激开发该算法的因素之一。既然创 建了工具,就可以用它来进一步提高开发人员编写云计算应用程序的水平。 云计算基础设施模式 当从一个标准企业应用程序部署模式向一个基于云计算的应用程序部署模式. 转变时,云计算架构设计师需要考虑许多问题。有的公用云和专用云提供互补 的优点,有三种基本服务模式需要考虑,并且需要对比开放 API 和专有 API 的. 价值。 公用云、专用云和混合云 IT 机构可以选择在各有其取舍的公用云、专用云或混合上部署其应用程序。公 用、专用与混合这几个术语并不规定位置。公用云一般就在互联网上,而专用 云通常在建筑物内,还有可能设在主机托管场所。. 企业可以就选用哪种云计算模式考虑多种因素,而且有可能选用不只一种模式 来解决多种不同问题。如果是临时需要的应用程序,可能最适合在公用云上部 署,因为这样可以避免为了临时的需要而购买额外设备的情况。同样地,永久 使用或对服务质量或数据位置有具体要求的应用程序,最好在专用云或混合云 上部署。 Sun 公司7 云计算架构介绍 公用云. 公用云由第三方运行,而不同客户提供的应用程序可能会在云的服务器、存储 系统和网络上混合在一起 (图 3)。公用云通常在远离客户建筑物的地方托管,而 且它们通过提供一种像企业基础设施进行的灵活甚至临时的扩展,提供一种降 低客户风险和成本的方法。. 如果在实施一个专用云时牢记性能、安全性和数据保存位置,那么,该云中运 行的其它应用程序的存在应对云架构设计师和最终用户都是透明的。的确,公 用云的优点之一是,它们可以比一个公司的专用云大很多,因而能够根据需要 进行伸缩,并将基础设施风险从企业转移到云提供商.—.哪怕仅仅是临时性的。 可以将公用云的部分划出去,以便于独占单个客户端,从而产生一个虚拟专用 数据中心。虚拟专用数据中心不是仅限于在公用云中部署虚拟机映像,而是使 客户在更大程度上清楚地了解其基础设施。现在,客户不仅可以处理虚拟机映 像,而且可以处理服务器、存储系统、网络设备和网络拓扑。利用位于同一场 所的所有组件创建一个虚拟专用数据中心,有助于缓解数据位置问题,因为当 在同一场所内连接资源时,带宽非常充足,而且一般都可用。. 公用云向多个客户提供服务,而且,一般在主机托管场所进行部署。图.3.. 专用云 专用云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量 的最有效控制 (图 4)。该公司拥有基础设施,并可以控制在此基础设施上部署应 用程序的方式。专用云可部署在企业数据中心中,也可以将它们部署在一个主 机托管场所。. Sun 公司8 云计算架构介绍 专用云可由公司自己的.IT.机构也可由云提供商进行构建。在此“托管式专 用”模式中,像 Sun 这样的一个公司可以安装、配置和运营基础设施,以支持 一个公司企业数据中心内的专用云。此模式赋予公司对于云资源使用情况的极 高水平的控制能力,同时带来建立并运作该环境所需的专门知识。 专用云可以托管在某个主机托管场所,也可以托管在企业数据中心之中。它们可以图.4.. 由公司支持,也可以由云提供商提供支持,还可以由像外包公司这样的第三方提供支持。 混合云 混合云把公用云模式与专用云模式结合在一起 (图 5)。混合云有助于提供按需 的、外部供应的扩展。用公用云的资源扩充专用云的能力可用来在发生工作负 荷快速波动时维持服务水平。在利用存储云支持 Web 2.0 应用程序时,这最常 见。混合云也可用来处理预期的工作负荷高峰。专用云,有时称为“超负荷计 算”(Surge Computing),可用来执行易于在公用云上部署的定期任务。 混合云引出确定如何在公用云与专用云之间分配应用程序的复杂性。需要考虑 的问题包括数据和处理资源之间的关系。如果数据量小,或应用程序无状态, 与必须把大量数据传输到一个公用云中进行小量处理相比,混合云要成功得多。 Sun 公司9 云计算架构介绍 混合云把公用云模式和专用云模式结合起来,而且,当这两种类型的云位于同一图.5.. 场所时,混合云特别有效。 云计算的架构层 Sun 公司的云计算观点是一种全面的观点:云计算可描述在从硬件到应用程序 的任何传统层级提供的服务 (图 6)。实际上,云服务提供商倾向于提供可分为 如下三个类别的服务:把软件当作服务 (Software as a Service)、把平台当作服务 (Platform as a Service) 以及把基础设施当作服务 (Infrastructure as a Service)。这 些类别把如图 6 所示的各种层级组合在一起,其中存在某种重叠。 把软件当作服务 (SaaS) “把软件当作服务”的特色是根据需要作为服务提供的一整套应用程序。该软 件的单个实例运行于云上,并为多个最终用户或客户机构提供服务。 最著名的 SasS 示例是 salesforce.com,不过许多其它实例已经进入市场,其中包 括提供基本商业服务 (包括电子邮件和文字处理) 的 Google Apps。 尽管 salesforce.com 诞生比云计算定义的出现早了几年,但它现在通过利用其伴 侣 force.com 运作,后者可定义为“把平台当作服务”。 Sun 公司10 云计算架构介绍 ෎Ѣ Web ⱘᑨ⫼⿟ᑣǃGoogle ᑨ⫼⿟ᑣǃ salesforce.comǃ᡹⿢ǃFlickr Web ᳡ࡵǃFlickr APIǃ Google ഄ೒ APIǃᄬټ 㰮ᢳЏᴎᠬㅵDŽՓ⫼乘䜡㕂ⱘ䆒໛៪㞾ᅮН䕃ӊᷜǃAMPǃGlassFish ㄝDŽ ⾳⫼乘䜡㕂ⱘ᪡԰㋏㒳DŽ⏏ࡴ㞾Ꮕⱘᑨ⫼⿟ᑣDŽ՟བ˖DNS ᳡ࡵ఼ ⾳⫼㰮ᢳ᳡ࡵ఼DŽ䚼㕆ϔϾ VM ᯴ڣ៪ᅝ㺙㞾Ꮕⱘ䕃ӊᷜ ⾳⫼䅵ㅫ㔥ḐDŽ՟བ˖HPC ᑨ⫼⿟ᑣ ᑨ⫼⿟ᑣ ᳡ࡵ Ё䯈ӊ ᪡԰㋏㒳 㰮ᢳ᳡ࡵ఼ ⠽⧚᳡ࡵ఼ ѥ ෎ ⸔ 䆒 ᮑ ⹀ ӊ ੠ 䕃 ӊ ᷜ 云计算意味着把图.6.. IT 基础设施用作一项服务,而且该服务可以是从租用原始硬件到 使用第三方 API 的任何事情。 把平台当作服务 (PaaS) “把平台当作服务”包含一个软件层,并作为一项服务提供此软件层,这项服 务可用来构建更高水平的服务。从服务生产商或消费者的观点看,关于 PaaS 的 观点至少有两种: • 生产 PaaS 的某个人可能通过集成 OS、中间件、应用软件甚至是一个随后 作为服务提供给客户的开发环境来生产一个平台。例如,开发 PaaS 的人可 能会使其以一组 Sun™ xVM 管理程序虚拟机为基础,这组虚拟机包括一个. NetBeans™.集成化开发环境、一个 Sun GlassFish™ Web 栈,并支持像 Perl 或. Ruby 这样的其它编程语言。.. • 使用 PaaS 的人会看到一个封装式服务,该服务是通过 API 提供给用户的。客 户通过.API.与该平台互动,而且该平台执行一切必要的操作来管理和扩展其 本身,以提供规定的服务水平。虚拟设备可以归类为 PaaS 的实例。例如,一 个内容交换设备会将其所有组成软件对客户隐藏起来,而只向客户提供用来 配置和部署服务的一个 API 或 GUI。 PaaS 产品可执行各个阶段的软件开发和测试,也可以专用于某个领域,例如, 内容管理。PaaS 的商业示例包括 Google App Engine,它在 Google 的基础设施上 提供应用程序服务。像这样的 PaaS 服务可提供一个用来部署应用程序的强大基 础,然而它们可能会由于云提供商选择提供的能力而受到制约。 Sun 公司11 云计算架构介绍 把基础设施当作服务 (IaaS) “把基础设施当作服务”通过网络作为标准化服务提供基本存储和计算能力。 服务器、存储系统、交换机、路由器和其它系统都是合用的,并可用来处理从 应用程序组件到高性能计算应用程序的工作负荷。 IaaS 的商业示例包括 Joyent,其主要产品是提供高度可用的按需基础设施的一 系列虚拟化服务器。 云应用程序设计接口 区分云计算与标准企业计算的关键特征之一是:基础设施本身是可以编成程序 的。开发人员不是实际部署服务器、存储器和网络资源来支持应用程序,而是 指定如何配置和互连同样的虚拟组件,包括如何从存储云存储和检索虚拟机映 像和应用程序数据。开发人员指定如何且何时通过云提供商指定的 API 来部署 组件。 这与文件传输 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 (FTP) 的工作方式相似: FTP 服务器维持与会话期间一直开放的 客户端的控制连接。当要传输文件时,该控制连接用来向服务器提供一个来源 或目标文件名,并协商一个用于文件传输本身的源和目标端口。从某种意义上 讲,云计算 API 就像 FTP 控制信道一样:云计算 API 在使用云期间是开放的,而 且控制如何利用云来提供开发人员向往的最终服务。 控制如何利用云基础设施的 API 的使用具有一个缺陷:与 FTP 协议不同的是,云. API 尚未标准化,因此,每个云提供商都有自己用来管理其服务的特定 API。这 是一个新兴行业的典型状态,其中,每个供应商都有其专有技术,这样的技术 往往把客户限制在其服务里,因为专有 API 使得变更提供商非常困难。 请查找在尽可能多的地方使用标准 API 的提供商。标准 API 现在可用来访问存储 设备,而随着时间的推移,用来部署和扩展应用程序的 API 可能会被标准化。 另外,请查找有哪些云提供商了解其市场而且提供存档并部署虚拟机映像和预 配置设备的方法。 云计算效益 要想从云计算中实现最大效益,开发人员必须能够重构其应用程序,使应用程 序可以最有效地利用云计算所支持的架构和部署方式。使用云计算部署应用程 序的优点包括缩短运行时间和响应时间、最大限度地减轻部署物理基础设施的 风险、降低入市成本以及加快创新步伐。 缩短运行时间和响应时间 对于弹性地使用云来运行批量作业的应用程序来说,云计算使得使用 1000 台 服务器在相当于单个服务器所需的千分之一的时间里完成一项任务变得非常简 单。前面引用的《纽约时报》的示例就是一个很好的批作业示例,通过利用 云,极大地缩短了其运行时间。 Sun 公司12 云计算架构介绍 对于需要向其客户提供良好响应时间的应用程序来说,重构应用程序以便把任 何 CPU 密集型任务外包给“工人”(Worker).虚拟机,有助于优化响应时间,同 时还能根据需求进行伸缩,从而满足客户需求。前面引用的 Animoto 应用程序 就是云如何用来扩展应用程序并维持服务质量水平的一个很好的示例。 最大限度地减轻基础设施风险 IT 机构可以利用云来减轻购置物理服务器所固有的风险。新的应用程序是否将 会成功? 如果成功,需要多少台服务器? 部署这些服务器的步骤是否能够跟得上 工作负荷增加速度? 如果不能,投入服务器中的大量资金会不会付之东流? 如果 该应用程序的成功非常短命,IT 机构是否还会在多数时间里处于空闲状态的大 量基础设施中进行投资? 当把一个应用程序推出到云中时,可扩展性和购买太多或太少基础设施就成为 云提供商的问题。越来越多的案例表明,云提供商的基础设施规模如此之大, 以至于可以容忍各个客户的业务量增长和工作负荷尖峰情况,因而减轻了这些 客户所面临的经济风险。 云计算最大限度地减轻基础设施风险的另一条途径是实现超负荷计算,其中企 业数据中心 (也许是实现专用云的数据中心) 通过一个允许其向一个公用云发送 超溢工作来扩大其处理工作负荷尖峰情况的能力。在一个资源不再稀缺而且能 够以较低成本更好地满足资源需求的环境中,可以更好地处理应用程序生命周 期管理问题。 降低入市成本 云计算的许多属性有助于降低进入新市场的成本。 • 由于基础设施是租用的,而不是购买的,成本得到控制,而且资本投资可能为 零。除通过按 Sip 购买计算周期和存储空间来降低购置成本之外,云提供商的 巨大规模也有助于最大限度地降低成本,从而有助于进一步降低入市成本。 • 应用程序与其说是通过汇编倒不如说是通过编程来开发的。这种快速应用程 序开发方法非常 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,有助于缩短入市时间,因而有可能使在云环境中部署 应用程序的机构先于竞争者入市。.. 加快创新步伐 云计算有助于加快创新步伐。降低进入新兴市场的成本有助于使竞争各方处于 同一起跑线,因而使新创企业可以快速而低成本地部署新的产品。这使小公司 可以更有效地与在企业数据中心领域里所经历的部署过程长得多的传统机构进 行竞争。增强竞争能力有助于加快创新步伐,而且由于许多创新是通过利用开 放源软件实现的,整个行业都会从云计算技术所促成的创新步伐加快而受益。 Sun 公司13 云计算架构介绍 第.3.章 实现 IaaS 必须考虑的架构问题 不断发展的应用程序架构 正如我们已经说明的:云计算是当前趋势和最佳做法的自然延伸,从架构观点 看云计算也是如此。再次强调,云计算并非新生事物,不过在其实现中,云计 算改变我们所做的一切工作。 变革架构的途径 在 20 世纪 90 年代,人们谈论的话题是关于如何把一个应用程序分解成各种组 件,然后是如何将这些组件部署到不同的服务器上,以便优化非功能要求,包 括可扩展性、可用性、易管理性和安全性。现在,我们所维持的是一个分解式 应用程序架构,同时实际部署到一个利用虚拟化的整合式架构上。. 云计算通过提供一种有 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 地部署应用程序架构的方法来继续这一趋势,最终 实现一个动态数据中心的承诺。在云计算中,效率受到高度重视;如果无法快 速而有计划地部署应用程序架构,那么该应用程序就可能不是一个适合于此种 模式的应用程序。 变革应用程序设计 过去,应用程序设计为通过垂直扩展来处理大型工作负载。将更多处理器和内 存安装在一个邮件服务器上来处理更大的流量。扩展数据中心服务器以提高吞 吐量。在超级计算机上运行高性能计算作业。 从高度可扩展的对称型多处理器迁移到价格低廉但可扩展性差的 x86 架构服务 器已经对应用程序设计产生了影响。开发人员并不期望应用程序运行于高度可 扩展的服务器,而是重构其应用程序,以便能够在多个服务器之间进行水平扩 展。此应用程序重构并不总是容易进行的,因为应用程序及其数据都必须进行 设计,这样才能把处理和数据同时分解成为较小的数据块。这一已有架构趋势 已经成为推广云计算的一个关键因素。这一趋势的示例包括: 高性能计算. 高性能计算 (HPC) 工作负荷已经在光金属 (Bare-Metal) 计算网格上运行有一段时 间了,这是通过应用程序重构实现的。例如,科学家已经找到为像 3D 气候建 模这样的应用程序削减数据的方法,因而可以在许多服务器上展开应用程序。 网格计算 (Grid Computing) 是云计算的“前辈”,这是因为网格计算使用工具来 供应和管理多架物理服务器,这样,这些服务器就可以共同配合来解决一个问 题。由于具有极高的计算、互处理通信和 I/O 需求,HPC 工作负荷非常适合于作 为服务提供基础设施的云,尤其是提供对 I/O 设备进行更直接访问的光金属服 务器或 Type I 虚拟机。 Sun 公司14 云计算架构介绍 数据库管理系统 数据库管理系统通过水平扩展数据库服务器并在其之间对表进行分区,已经 适应于在云环境中运行。此技术 [称为“分片”(Sharding)] 使多个数据库软件 实例 (通常是 MySQL 软件) 可以在云环境中扩展性能。应用程序现在不是访问 单个中央数据库,而是访问多个数据库实例中的一个,具体取决于哪个“碎 片”(Shard) 包含所需数据 (图 7)。 ᑨ⫼⿟ᑣ ᭄᥂ᑧ ᭄᥂ᑧ ᭄᥂ᑧ 㒣䖛ߚऎⱘᑨ⫼⿟ᑣ᭄᥂ ߚᏗ೼∈ᑇᠽሩ᭄᥂ᑧᅲ՟П䯈ⱘᑨ⫼⿟ᑣ᭄᥂ 数据库分片技术在多个数据库管理系统实例之间对数据库表进行分区,可通过水图.7.. 平扩展来支持大型数据库。 CPU 密集型处理 执行像帧渲染 (Frame Rendering) 这样的活动的应用程序已经设计为不是为每个 帧创建一个新线程,而是创建一个单独的虚拟机来渲染每个帧,因而通过水平 扩展来提高性能。 数据密集型处理 开放源社区正在开发一般化工具,这些工具可帮助处理大量数据,然后将结果 聚集到相应的进程中。例如,Hadoop 就是 MapReduce 问题的一种开放源实现, 这种实现将“工人”(Worker) 虚拟机与他们所需的数据的部署集合在一起。 目标仍然相同 应用程序架构方面的许多进步都有助于促进云计算的推广。这些进步有助于支 持高效地部署应用程序的目标,同时有助于使应用程序具有弹性,并适度地自 动扩展。然而,杰出应用程序架构的首要目标始终没有发生任何变化:那就是 支持同样的始终至关重要的特征: • 可扩展性。此特征的重要性始终未曾改变。为云计算设计的应用程序需要根 据工作负荷需求进行伸缩,这样,性能及与服务水平的符合性就保持适当。 为了达到这一点,必须将应用程序及其数据松散耦合,以使可扩展性最大 Sun 公司15 云计算架构介绍 化。“弹性”这一术语经常适用于伸缩云应用程序,因为云计算应用程序必 须不仅可以扩展,而且必须在工作负荷减小时能够缩小,以免抬高在云中的 部署成本。 • 可用性。无论应用程序是向社交网站用户提供服务,还是管理大型制造企 业的供应链,互联网应用程序用户都期望这些应用程序每时每刻都能正常运 行。Sun 公司在此领域的行业领先地位早在其推出 SunToneSM 认证计划时就已 确立,该计划有助于客户证明其应用程序和服务达到要求的可用性水平。 • 可靠性。随着时间的推移,对于可靠性的重视程度已经发生转变。如果大 型应用程序是指大型对称多处理系统,那么可靠性就意味着系统组件极少发 生故障,而且即使发生故障,也可以在不中断系统正常运行的情况下进行更 换。现在架构适应此特征的方式是把应用程序设计为:即使分解运行应用程 序的一个或多个服务器或虚拟机,应用程序仍能继续运行,而且其数据不会 受到破坏。正是在这个方面,我们曾经担心个别服务器组件发生故障,而现 在我们构建即使全部服务器发生故障也不会造成破坏的应用程序。 • 安全性。设备需要只对获得授权且通过身份验证的用户提供访问权,而且这 些用户需要能够确信其数据是安全的。无论应用程序帮助各个互联网用户准 备其纳税申报表,还是应用程序在公司及其供应商之间交换保密信息,都是 如此。现今环境中的安全性是通过如下手段确立的:利用严格的身份验证、 授权和帐号管理程序,确保静止和移动中数据的安全性,锁定网络,以及硬 化操作系统、中间件和应用软件。安全性是这样一个系统特性,以至于我们 不再单独强调安全性.—.必须将安全性融合到应用程序的各个方面以及应用 程序部署和操作架构和进程中。 • 灵活性和敏捷性。这些特征越来越重要,因为商业机构发现他们必须通过 提高向客户提供应用程序的速度来更快地适应不断变化的经营环境。云计算 强调通过利用最适合的构件 (Building Block) 来快速完成工作,使应用程序非 常快速地面市。 • 可维护性。一旦部署一个应用程序,就需要对其进行维护。过去,可维护性 意味着使用的服务器可以在不停机或极少停机的情况下进行修理。现在,可 维护性是指,更新甚至更换一个应用程序的基本基础设施组件时,不会破坏 该应用程序的特征,其中包括可用性和安全性。 • 效率。这是特征列表上的新特征,或许这是最能将云计算模式与其它计算模 式区别开来的一个特征。效率是云计算的意义所在,而且如果不能方便快捷 地在云中部署应用程序,即使可从模式中受益,该计算模式也可能不是一个 良好的可选模式。例如,企业资源规划应用程序可能最适合于垂直扩展的系 统,并可能在近期通过 SaaS 提供。不过,提取、处理和呈现这些系统中派生 的数据的应用程序可能非常适合于在云中部署。 Sun 公司16 云计算架构介绍 一致而稳定的抽象层 云计算提高了抽象水平,这样,所有组件都抽象化或虚拟化,并可用来迅速组 合较高级别的应用程序或平台。如果某个组件不向其客户或同行提供一致而稳 定的抽象层,该组件就不适合于云计算。 标准部署单位是虚拟机,它本质上可运行于抽象硬件平台。人们很容易过度关 注构建虚拟机映像,而忽视用来创建虚拟机映像的模式。在云计算中,维持该模 式而非映像本身非常重要。该模式是保留下来的,而映像则是从该模式产生的。 虚拟机映像将始终在变化,因为虚拟机映像内的软件层将总是需要修补、升 级或重新配置。不变的是创建虚拟机映像的流程,而且这是开发人员所应重视 的。开发人员可以通过把 Web 服务器、应用程序服务器和 MySQL 数据库服务器 层叠在一个操作系统映像上,应用补丁程序、配置更改,以及互连各层组件, 来构建虚拟机映像。重视模式,而非虚拟机映像,可以通过重新把模式应用到 一组新组件,根据需要来更新这些映像本身。 凭借这一标准部署单位,云架构设计师可以使用有助于以较低成本加快部署速 度的设备。开发人员可以使用一个设备,该设备预配置为通过与该设备的 API 进 行互动,在 OpenSolaris OS 上运行 Hadoop。架构设计师可以使用内容交换机, 这些内容交换机不是作为物理设备部署的,而是作为虚拟设备部署的。部署该 设备所需要做的一切事情只是与其 API 或 GUI 进行互动。即使生产带有许可证的 商用软件的公司都在通过更加灵活、基于使用情况的许可模式来适应云计算。 无论是调用一个创建虚拟机映像的模式,还是定制一个设备,结果产生的虚拟 机映像都需要存储在企业进行版本控制并提供支持的映像库中。 标准有助于解决复杂问题 云计算首先重视效率,因而采用少数标准和标准配置有助于降低维护和部署成 本。拥有可简化部署的标准比拥有用于作业的最佳环境更重要。80/20 规则就在 这里发挥作用:云计算重视可以支持 80% 使用案例的少数标准。这就把经济情 况从成本高的一次性实现转变为选择可最大限度地加以利用的构件。将来还会 继续专业化,但起点应从标准开始。 对于要采用云计算的企业,标准可以包括虚拟机类型、标准虚拟机映像中的操 作系统、工具以及支持的编程语言。 • 虚拟机类型。想想虚拟机选择对于要支持的应用程序的影响。对于社交网站 应用程序、出于安全性进行的隔离,以及出于可移植性进行的高水平抽象, 会建议使用 Type II 虚拟机。对于高性能计算或可视化应用程序,需要直接访 问硬件以实现最佳性能,会建议使用 Type I 虚拟机。 Sun 公司17 云计算架构介绍 • 预安装、预配置的系统。必须像在物理服务器上一样维护虚拟机上的软 件。操作系统仍然需要硬化、修补和升级。拥有一小组标准化的受支持配 置,使开发人员可以使用当前支持的虚拟机。当升级支持的配置时,应设计 要求自定义的模式,以便于容易地将更改重新应用到一个新的虚拟机映像。 设备也是如此,其中,可以通过设备的标准 API 来配置当前版本。 • 工具和语言。企业可能以标准方式使用 Java 编程语言和 Ruby on Rails;小企 业可以以标准方式将 PHP 作为其用于构建应用程序的首选工具。当这些标准 在云计算上下文中成熟时,它们开始形成下一层:把平台当作服务 (PaaS)。 虚拟化和封装技术支持重构 当通过组合和配置一组虚拟机映像和设备重构并创建应用程序时,要将重点放 在特定虚拟机发挥什么作用上,而不是放在如何实现该虚拟机上。虚拟化和封 装技术将实现细节隐藏起来,并使开发人员重新重视组件之间的接口和互动。 这些组件应该提供标准接口,以便于开发人员方便快捷地构建应用程序,同时 利用与性能或成本所要求的相似的功能来使用替代组件。 应用程序开发是有计划地完成的,甚至用来部署应用程序的程序也可以封装, 以便于利用和重新利用。可以封装部署三层式 Web 基础设施的程序,这样,该 程序的参数就会包括指向用于 Web 服务器、业务逻辑和数据库层的虚拟机映像 的指针。然后就可以执行此设计模式,以便于部署标准应用程序,而不必重新 设想或甚至重新考虑 (例如) 支持每层所要求的网络架构。 应用程序维护的云计算原则并非修补,而是重新部署。管理创建虚拟机映像的 模式,而不是映像本身,简化了这种重新部署。部署之后发现的问题解决起来 相当容易,或者通过更新组件虚拟机并调用用于重新部署的设计模式,来发布 应用程序的新版本。当开发人员修补虚拟机时,只需要创建一个虚拟机映像, 而且要有计划地复制并部署其余映像。应对虚拟机进行版本控制,以便于必要 时回滚。 䚼㕆῵ᓣ WEB ᳡ࡵ఼ ᭄᥂ᑧ᳡ࡵ఼ ᑨ⫼⿟ᑣ᳡ࡵ఼ 一种部署模式可以封装起来,以便于重复利用。在此示例中,一个模式指定图.8.. Web 服务器、应用程序服务器和数据库服务器层,而用此模式部署其本身的一个实例所需要 的一切只是指向上述三层中各层的虚拟机的指针。 Sun 公司18 云计算架构介绍 松散耦合、无状态、原地失败 (Fail-in-Place) 计算 几年以来,基于 Web 的应用程序已在向松散耦合和无状态转变。在云计算中, 这些特征甚至更加重要,因为云计算具有更加动态的性质。应用程序映像不修 补,它们是用完丢弃的对象,因而需要是无状态的。如果一个虚拟机失败,应 用程序必须继续不间断地运行。应用程序之间的耦合需要是松散的,这样,任 何组件发生故障都不会影响整个应用程序的可用性。一个组件应该做到“原地 故障”,极少甚至不会对应用程序产生影响。 由于应用程序组件越来越具有临时性,因而不能包含存在时间超过任何应用程 序实例的数据。应通过将状态推出软件来尽可能使应用程序无状态,从而尽可 能地将处理与数据分开。能够做到这一点的技术包括: • 以 Cookie 的形式将状态推出到用户,或者将状态代码编入 URL。 • 将状态下推至后端数据库 • 维护数据的补充副本,这是 Hadoop 使用的一个策略 • 使用基于网络的持久性技术,例如,GlassFish 应用程序服
本文档为【2011年《云计算架构介绍》】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_458462
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:32
分类:企业经营
上传时间:2011-05-19
浏览量:24