基于用例的云计算互操作性分析V20_第1页
基于用例的云计算互操作性分析V20_第2页
基于用例的云计算互操作性分析V20_第3页
基于用例的云计算互操作性分析V20_第4页
基于用例的云计算互操作性分析V20_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、基于用例的云计算互操作性分析Cloud Interop Analysis based on Use Case微软(中国)有限公司 方国伟 摘 要 当不同的云计算服务和平台如雨后春笋般层出不穷的时候,如何保障云计算平台间以及云计算平台和本地系统间的互操作性便成了一个重要问题。从四个方面分析了云计算平台的互操作性问题,然后根据典型三层应用的使用模式分析了几个典型的互操作应用场景。并以微软云计算平台为例分析了其对互操作性的支持。关键词 云计算 混合云 互操作性 Windows Azure平台Abstract:There are popping up various cloud platform an

2、d services in the market now, how to make sure the interoperability among these cloud platforms, cloud platforms and on-premise environments becomes a key issue. This paper provides a brand new method to tackle the Interop issue from four perspectives, and then it discusses the three Interop use cas

3、es to illustrate these scenarios. Finally, the paper also analyzes Microsoft cloud platform solution from the Interop perspective.KeyWords:cloud computing; hybrid cloud; interoperability; Windows Azure platform1 云计算的发展大约每隔15年左右,IT产业就会进行一次变革性的转变。不同技术的力量相互碰撞和倾轧,并最终产生出一种能改变整个产业生态的革命力量。云计算就是这样一种力量,它将从根本

4、性上改变IT产业。从根本上讲,云计算是IT服务方式的变革。就像制造业的大规模化生产变革一样,云计算是IT服务本身的规模化生产。经济学上的规模化效应同样可以应用在IT服务上,只不过这里的IT服务可以通过互联网来进行快速放大。云计算是一种能够让用户通过网络访问共享资源池中资源的IT服务提供方式。这些资源可以被快速进行自动化部署和配置而不需要用户进行复杂的管理和交互。根据资源池中资源类型的不同,云计算可以分为软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)三种主要的服务模型。而根据服务对象的不同,云计算又可以分为私有云、公有云和混合云三种主要的部署模型。云计算的快速发展给政

5、府、企业和个人带来了巨大的创新潜力,能够提高效率和降低成本等各种好处。虽然这些好处是很明显的,但是同时我们也看到了一些新的障碍和挑战。由于信息技术互联互通的要求和技术之间耦合度等特点,互操作性对于这个领域显得尤为突出。随着云计算平台的发展,人们会通过各种不同的终端来使用它的服务。无论是个人计算机、手机、平板电脑,甚至是电视机等都可以通过网络连接到云计算平台上来。这些不同的终端设备都需要与云计算平台交换和共享数据。在现实世界中用户还会使用不同的云计算平台,这些云平台之间也需要实现互联互通。因此,对于云计算人们不仅需要安全的服务,同时也需要一个开放的、能够互操作的云计算环境。2 云计算平台互操作性

6、的四大要点同传统的IT部署方式类似,云计算服务也是运行在一个包含多个层次的技术堆栈上面。这个技术堆栈可以粗略分成云计算应用层、云计算平台层和底层基础设施这样三个层次。本文主要讨论云计算平台层的互操作性问题,如果对应到云计算的服务类型,那么这里的云计算平台可以大致分为基础设施即服务和平台即服务两种类型的平台。云平台可以推动云计算服务的发展,因为客户可以在它之上进行应用的部署、开发、测试和运行等。客户在考虑将已有的IT资源迁移到云计算平台上的时候会要求服务供应商在可靠性、性能和安全性等方面与客户自己部署服务时有类似的水平。根据服务种类和服务水平的具体情况,客户可以同时使用多种不同的云计算平台服务。

7、另外,云计算发展也是一个渐进的过程,客户可能同时使用公有云服务和自建私有云平台。这样不同云计算平台之间、第三方云计算平台与客户自建环境之间的互操作性就变成一个非常重要的问题。下面将从数据的可移植性、标准的遵循、服务迁移及部署难易度和开发技术选择性等四个方面阐述云计算平台的互操作性要求。2.1 数据的可移植性从本质上讲,计算就是数据的处理,所以数据的重要性可见一斑。无论客户选择在自建平台上运行应用服务还是在云计算平台上运行服务,数据都是用户最为重要的资产。当应用是运行在客户自建平台上的时候,客户对数据具有高度的控制权。但是当应用和数据在第三方云计算平台上的时候,如何保证客户还是自身数据的拥有者就

8、成了一个重要问题。当应用和数据服务部署在第三方云平台上时,保障客户是自己应用服务的拥有者的一种方式是要保证云平台上数据的可移植性。这要求云计算平台至少对外提供一种标准的数据访问接口,而且访问数据的应用还可以独立运行在其他平台之上。这样让客户可以随时把数据从云平台迁移回自建的平台,或从一个云平台迁移到另外一个云平台。一般来讲,应用的可移植性决定迁移成本的高低,而数据的可移植性则决定了迁移的可能性,因此数据的可移植性是避免云计算平台锁定的一个最为基本要求。2.2 标准的遵循史记秦始皇本纪:“一法度衡石丈尺,车同轨,书同文字。”有人说秦始皇最伟大的成就不是修建了长城,而是统一了文字和度量衡。由此可见

9、标准的重要性。实际上,我们在日常生活中已经在享受标准化带来的一些好处和非标准化带来的一些问题。比如,由于USB接口标准的统一,我们可以把不同的外设方便地与计算机相连接。反之,由于没有手机充电器的统一标准,所以可能在家里已有许多充电器时但在买新手机的时候还是需要配置一个新的充电器。云计算平台应该支持业界已有的一些通用标准,这样使得平台及其服务可以和其他基于相同标准的平台和服务进行互操作。在一些情况下,已有的标准并不符合或不能充分符合云计算的场景,这样就需要探讨建立新的标准规范。许多在企业应用使用的标准都是建立在可靠连接和相对小延时的应用场景之上的,这些标准对云计算场景中的那些跨互联网、相对松耦合

10、的应用场景就不太适用。另外,云计算也引入了一些新的需求场景如不同方式的身份认证、SLA的管理和监控、服务计费方式和数据安全等。为了在规范和创新之间寻找一个平衡,制定云计算标准的一个原则是尽量采用已有的通用标准,只在必要的时候才引入新的标准,而且新的标准需要满足大多数云计算供应商和用户的需求。一般建议云平台采用基于Web服务的标准或基于REST方式来提供访问接口,从而使得服务的方式更适合于互联网环境。2.3 迁移和部署难易度在讨论云计算的互操作性时,一般会把注意力放在不同云计算平台之间的互操作上面。但是,在云计算开始发展的很长一段时间内,云计算平台与客户自建平台之间的互操作性是一个更为迫切和现实

11、的问题。一方面由于传统的大型企业和政府组织机构已经有大量投资在构建自己的数据中心和软硬件平台上,因此从保护投资和应用兼容性的角度看客户自建平台也不会立即消失。另一方面,许多组织会由于安全、隐私等方面的原因而采用私有云平台。因此,混合云将是一种非常常见的使用方式。云计算平台供应商需要为客户提供一个相对平滑的迁移路径来降低迁移成本和风险。云计算平台供应商可以通过提供迁移工具和服务来简化这个过程。如对提供基础设施即服务的平台来讲,可以支持虚拟机的迁移来帮助用户简化应用部署的过程。在基础设施之上,云计算平台还可以提供一些常用的公共服务来提升互操作性,如通过身份联邦服务的方式来支持不同平台上的身份认证服

12、务,并尽量采用基于Web的标准。另外,云计算平台厂商也应该提供一个能够让客户的云服务与客户自建环境中的应用进行集成和互操作的技术方法和手段,从而实现不同环境的共存,实现混合云的部署方式。2.4 开发技术的选择性前面三个方面主要是从IT用户的选择性角度来讲的,而开发技术的选择性则主要是从开发人员的角度来看云计算平台的开放性。开放的云计算平台还应该能够支持多种不同的编程语言和运行环境,一方面给开发人员以技术平台的选择,另一方面也有助于他们开发出交互性的和更高质量的应用服务。很多时候选择一种开发语言的同时也意味着决定了底层运行平台,因此这种选择性对客户而言也意味着投资保护,而不仅仅是保护了开发人员的

13、技能。因此,多种开发技术的选择能够让开发人员相对平滑地从传统IT应用的开发过渡到云计算应用服务的开发。3 典型用例分析从典型应用迁移用例或场景出发讨论云计算平台互操作性,可以更好的分析互操作性的需求,并使得讨论平台开放性目的更为明确。理论上许多不同架构的应用都可以迁移到云平台,但是基于Web的三层应用是目前使用最广的一种应用架构。因此,下面我们着重分析典型的三层应用架构在向云计算平台迁移的几种重点场景。典型三层架构应用包括前端的Web服务器,中间业务逻辑层和后台的数据存储,其应用架构如图1所示:图1 典型三层应用架构从用例分析的角度,下面是后面讨论中涉及的一些参与者(Actor):·

14、 云服务供应商:主要指提供公有云服务,包括SaaS、PaaS和IaaS等类型的云计算服务的厂商;· 云应用开发者:为云计算平台开发或迁移应用的软件开发人员;· 云管理员:管理、运行和维护云计算应用的人员;· 云计算用户/消费者:云计算服务的最终用户;· 云身份认证服务:提供身份联邦和访问控制的云计算服务。3.1 完全迁移迁移包括两种情况,一种是从企业自建环境中迁移到第三方云平台,另外一种是从一个第三方云平台迁移到另外一个第三方云平台。完全迁移指的是用户把整个三层应用都从一个平台迁移到另外一个平台,包括Web服务器、中间业务层和数据库。完全迁移是一种最为常

15、见的迁移方式,下面是这种场景中涉及的一些主要技术,当然这些技术在其他的迁移方式中也同样适用。首先是应用迁移的封装格式。应用目前主要通过两种方式进行封装:一种是通过服务器虚拟化即虚拟机的方式,另外一种是通过应用虚拟化的方式。通过虚拟机的方式有时也被称为虚拟应用装置(Virtual Appliance),它可以封装所有软件堆栈和配置,这样方便应用在虚拟化环境之间的迁移。不同的IaaS类型的云平台之间理论上可以通过这种方式实现应用的迁移。DMTF(Distributed Management Task Force)已经发布了开放虚拟格式(OVF,Open Virtualization Format)

16、标准来实现不同虚拟平台间的虚拟机迁移。应用虚拟化的方式只会把应用本身进行封装,而不会包含平台及其配置,因此这种应用迁移方式对底层平台的要求会比前一种方式严格。其次是用户批量数据的导入和导出功能。对于那些已经运行了一段时间并且积累了大量数据的应用来说,批量数据的导入和导出功能显得非常必要。这个功能可以基于标准接口通过互联网在线实现,也可以基于标准格式通过拷贝到存储介质离线实现。另外,云平台还需要提供用户在迁移走之后彻底删除数据的功能。最后是虚拟机或应用的管理和控制。无论是采用哪种方式,当一个应用从一个平台迁移到另外一个云平台的时候,他们需要提供资源的管理和控制功能。比如,当应用以虚拟机方式进行迁

17、移的时候,云计算平台需要提供最基本的针对虚拟机的CRUD操作。理想的情况是能够有一套统一的语法规范来定义这些操作,目前比较流行的做法是定义一些基于REST接口的操作。3.2 混合部署混合部署是指应用的一部分运行在企业数据中心,而另外部分运行在第三方云计算平台上的一种部署方式。从完全部署在自建平台上迁移到混合部署方式是一种折中的方式。从理论上讲,三层应用架构的任意层次都可以单独部署在云平台上面或自建环境中。但是实际应用部署的架构取决于应用的类型和客户需求。比如对于那些需要大量数据存储需求而客户又不想自己构建大的存储平台,那么客户可以把数据存储放在云平台而在自己平台上展示和处理数据。而对于那些想要

18、借助云平台可扩展性,但是对数据安全性要求比较高的应用,客户就可以在云平台上部署前端展示层,而把后台数据部署在自己的数据中心,如图2中所示:图2 迁移到混合部署模式混合部署方式要求云平台上应用与企业自建数据中心中应用能够通过合适的方式进行集成,包括展现层面、应用层面和数据层面。另外,由于应用间的通信是基于互联网的,因此随之而来的一个挑战是如何保证不同平台之间进行安全的通信。混合部署迁移的另外一种场景是保持部署在企业内数据中心部分的应用不变,但是把部署在第三方云平台上的应用迁移到另外一个云平台。在这种场景中就涉及到两个不同云平台之间的应用和数据的迁移。理论上可以通过基于虚拟机的方式迁移应用,但是两

19、个平台在网络和安全设置上往往存在差异,从而增加了迁移的难度。3.3 多个云平台这里多个云平台是指应用服务同时运行在多个云平台之上。应用可以是从企业内数据中心迁移到多个云平台,或者是从原来运行的一个云平台迁移到多个云平台。这类把应用分布式运行在多个云平台方式不像前面两类那么常见,但是我们现在已经看到一些这样的案例。比如,有厂商针对其终端设备用户推出一个提供数据存储和同步的云计算服务,但是后台的数据存储使用亚马逊的AWS和微软的Windows Azure服务。从云计算发展的角度来看,随着不同云平台之间互操作性的提升,这类应用场景会变得更为常见。图3 多个云平台运行在多个云平台上面的模式与Web 2

20、.0概念中的混搭模式(Mashup)有许多相似的地方,但是混搭方式更多侧重于上层应用服务之间的整合。多个云平台的方式扩展了混搭方式,使得平台服务和底层基础设施的服务都可以进行跨平台之间进行整合。在不同平台上部署应用带来的一个问题是用户身份认证和访问控制的统一问题,也即提供云身份认证服务。在这个领域,云计算服务供应商需要利用已有的一些标准,比如WS-Trust、SAML和OpenID等。在访问服务的实现上可以采用基于安全令牌服务(STS,Secure Token Service)授权方式。4 微软云平台的互操作性分析简单的讲,Windows Azure平台就是一个为应用程序提供托管和运行的互联网

21、规模的平台。这个应用托管平台是完全按照云计算的要求和技术来构建,比如资源按需动态分配、弹性扩展、按照使用量计费等。云应用开发人员只需要针对平台开发应用程序就可以了,而不用再关心底层平台的具体情况,比如平台安全、系统升级、补丁等。Windows Azure平台包括一个云计算操作系统、云关系型数据库、一个为开发者提供的服务集合或云中间件以及其他一些辅助服务。微软在设计Windows Azure平台的一个目标是建立一个相对开放的云平台,因此它在运行环境、标准支持以及平台迁移等方面都做了开放性的设计。4.1 支持多种开发语言和运行环境大部分其他的PaaS类平台都只能支持一种或两种编程语言,但是微软云平

22、台可以支持大部分主流编程语言,从而使得开发人员可以充分利用现有的开发技能和经验。开发人员可以使用熟悉的语言和工具,比如广大开发者最习惯的C#、VB.NET、PHP、Java、Ruby等语言和Visual Studio、Eclipse等工具,都可以在微软云平台上开发云计算应用程序。开发人员无需放弃现有的甚至是多年积累的开发技能和经验,无需重新花费时间成本学习全新的开发语言和工具,而且还可以从传统编程方式相对平滑地转移到面向云计算的编程方式。Windows Azure不仅为这些开发语言提供了对应的软件开发包(SDK),而且也针对不同客户端平台提供了SDK,包括像Windows Phone、Andr

23、oid和iPhone这样的移动设备。云计算平台是现有IT和互联网技术以及业务模型逐渐演变的结果,而一个成功的云计算平台也应该可以最大限度地发挥现有软件开发经验、能力和各种资源。4.2 支持多种开放标准作为一个开放平台,Windows Azure在设计中使用了多种业界常见的标准。Windows Azure服务访问是通过REST、SOAP和XML,比如其数据存储服务和平台管理的访问接口都是基于REST方式。Windows Azure平台的身份认证和授权服务中使用了SAML和OAuth。为提升平台中数据的可移植性,Windows Azure使用了传统的TDS协议和开放的OData协议(Open Da

24、ta Protocol)。对于网络层服务则主要依赖于HTTP、HTTPS和TCP协议设计。Windows Azure在Web层设计中通过支持FastCGI来实现多种语言环境支持。另外对于基于虚拟机的计算方面,微软一方面开放自己的虚拟硬盘(VHD,Virtual Hard Disk)文件格式,另一方面微软也是OVF标准的发起者之一。通过使用这些标准协议和规范,Windows Azure可以与其他异构平台进行交互,从而保障客户对应用服务的互操作性要求。4.3 不同平台的对称性如图4所示应用平台可以分为七个层次,从最高层的应用软件到开发工具,再到下面的应用服务器、操作系统、数据库以及操作系统底层的管理,每一层都有不同的分工。微软的发展目标是实现同一个应用程序既可以在Windows Azure平台上运行又可以在Windows Server上运行,而且不同平台之间的迁移应用程序不需要修改代码而只需要修改XML配置文件。这样用户可以根据企业业务的发展阶段自由决定是采用微软这样的第三方公有云服务还是运行在自己数据中心中服务器平台上面。不仅如此,如果用户既使用了Windows Azure服务又自己部署了Windows Server环境,那么用户还可以通过统一的系统管理工具System Center在同一个管理窗口中同时监控这些应用。图4 对称的云平台技术4.4 混合部署的集成能力在云计算的

温馨提示

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

评论

0/150

提交评论