云计算的开放架构设计
扫描二维码
随时随地手机看文章
随着技术的发展和各行业对云概念理解的深入,云开始在各个层面和各个领域蔓延。它已经变成一种思路、一种潮流,如云计算、云服务、云安全等。它们可以使计算能力、服务、运营能力及安全能力通过一个平台集中提供并控制,并让其成为千千万万的企业和个人可以随需索取的东西。
如何让云深入人们的生活?其中的关键在于开放平台的提供,它可以使云透过标准通用管道,服务于普通百姓人家。可以说,使用云能力的门槛越低、越便利,使用范围才能越来越广。云计算的能力开放,不仅方便最终使用者,更是受益第三方企业,他们能利用开放的接口和服务, 提供超出云计算本身能力的服务。
1 IaaS能力开放架构
1.1 虚拟化能力开放
目前业界已有很多厂商可以提供虚拟化解决方案,如VMWare、 Microsoft、Citrix以及基于开源的Xen/KVM等。各种虚拟化解决方案各有特色,但目前面临的最大问题是:不论是生成的虚拟化文件,还是虚拟化的管理都各自为政、互不兼容。
当前的形式迫切需要一种标准,能向所有参与者提供虚拟化应用的方法,并且减少多个、竞争性的、不兼容的实现所带来的问题。目前,分布管理任务组织已开始使用开放式虚拟机(OVF)格式。OVF支持多虚拟化映像格式,对于任何监管程序的虚拟机都可以使用它引导程序并加载。另外,OVF引导程序是基于数字签名的,确保了免费发布和用户的利益。
虚拟化最主要的参与厂商,像Dell、HP、IBM、微软、VMware以及Citrix都加入了OVF,后几者的加入表明虚拟化厂商参与的重要性,同时也增强了标准被广泛采纳的可能性。
中兴通讯公司在虚拟化的统一管理方面提供了开放的管理平台,能够支持多种底层虚拟化环境,如图1所示。它未来也将可以支持OVF, 并能提供用户侧的监控与网管,自由创建、销毁、迁移及监测各虚拟机及上层应用的状态。由于虚拟机调度可能导致网络设备以及负荷平衡设备的变化,因此将对网络设备也实现统一管理。虚拟化平台向应用层提供可信的虚拟化开放接口,可以让应用系统根据自身需求,动态调度虚拟机。业务系统通过开放的接口调用,就能够实现更加广义的自动化业务弹性可扩展解决方案。
1.2 存储能力开放
存储能力是最基本的能力之一,也是所有数据能够被处理的基础。目前的数据存储主要有3种访问方式:文件存储、对象存储以及块存储。块存储与文件存储面向底层接口,一般来说对应用透明;对象存储属于应用层之上的软接口[1]。
从文件系统的角度来看,云计算主要面向的是分布式文件系统,它是云基础架构中最核心的元素,目前比较著名的有RedHat GFS、IBM 的GPFS及SUN的Luster。这些分布式文件系统对硬件设施的要求较高,往往需要存储节点自身提供数据可靠性的保证。这类文件系统通常会在操作系统核心提供开放接口供文件访问。另外一类是类似Google GFS产品,如开源的HDFS、KFS、阿里巴巴的盘古文件系统等,此类产品使用廉价商用机器搭建分布式文件系统,并在用户态提供开放接口。
不论何种内部实现方式,分布式文件系统都需要提供可靠性存储及可供应用访问的接口。核心域实现的存储开放方式主要是在操作系统内核层面通过专用驱动实现裸设备的暴露,操作系统使用通用的文件系统如Ext3对应用开放。用户域的存储开放方式是Posix接口或专用的私有协议接口。使用用户态开放接口有如下好处:
在用户态文件系统与操作系统松耦合,便于单独升级,稳定性好。
减少操作系统导致的底层交互次数,降低复杂度,提高效率。
接口更丰富,能够实现更好的优化。
安全性更好控制。
当然,用户态开放也有缺点,如接口对应用有侵入性。如果迁移到其他存储系统将需要重新编译相关应用。
对应用户态开放的是通用接口方式,如网络文件系统(NFS)、文件传输协议(FTP)等标准协议。由于这些标准协议制订时并未考虑到分布式问题,所以接口本身的分布式需要重点解决,即接口本身如何寻址、容错、负载均衡等。同时需要重点解决多文件共享访问的读写锁问题。
中兴通讯分布式文件系统对于通用接口方式采用动态域名系统(DNS)结合接口IP虚拟化技术,较好地解决寻址及容错问题,并且通过服务端增加额外一层接口层实现了根据能力的负载均衡技术。
1.3 对象存储技术
直接开放文件系统的存储方式比较适合私有云的构建,对于面向公众服务的公有云服务,我们期望能够和WEB协议(HTTP)兼容。互联网的快速发展对存储系统的容量、性能和功能提出了巨大挑战,主要表现为大容量、高性能、可扩展性、可共享性、自适应性、可管理性,以及高可靠性和可用性,目前市场上没有一种解决方案可以满足所有这些要求。对于快速升级的存储需求,基于对象存储(OBS)技术是一种非常有前景的解决方法,它融合了高速可直接访问的存储网络(SAN)和安全、良好跨平台共享数据的网络附属存储(NAS)的优点。通过对象存储可以很好地屏蔽底层协议及网络结构的复杂性,对象存储的具体特点如图2所示。下一代互联网和PB级存储大规模部署迫切地期待基于对象存储技术的成熟和大规模应用。对象存储设备(OSD) 可以基于独立的设备(如OSD硬盘),也可以在分布式系统上构建。为保证对象的唯一性,面向分布式系统时一般会划分对象组,确保在不同对象组内对象具有唯一性。
对象设备内部管理元数据(空间管理)。
对象ID是访问该对象的唯一标志(每个OSD设备唯一)。
图3所示的是OSD安全模型,它是一个基于证书的访问控制系统,由4个实体组成:应用客户端、安全服务、策略/存储管理者及对象服务。
对象存储一般都要包含如下操作:读、写、列表、删除、获取元数据,例如Amazon 简单存储服务(S3)面向各种应用提供了面向对象的S3。
对象存储主要是面向应用开放,目前各种系统接口尚未完全统一。提供WebService或RESTful的接口比较便于应用的透明接入,但提供基于长链接的定制化客户端接入则比较容易做到高效访问。
中兴通讯开发的分布式键值访问系统就属于典型的对象存储方式。它将数据区划分为不同的桶,每个桶内的对象对应唯一的键。通过键信息,可以获取对应的访问权限验证元数据信息和值信息。为了保证系统的可扩展性,整个系统搭建成无主网络,并且可以做到元数据信息以及键值信息的自动分布与备份。系统为提高性能,同时支持了持久化存储与非持久化存储机制。
1.4 块存储能力开放
块存储将存储区域划分成固定大小的小块,是传统裸存储设备的存储空间对外暴露方式,如图4所示。传统设备的块存储面向的是单一的物理设备,而到了云计算环境,块存储设备也将面临分布式环境。
在云计算中提供块存储能力对于虚拟机与存储系统的有机结合有着其他存储方式无法替代的作用[2]。因为很多应用软件并没有按照云存储形式进行改造或优化,例如大部分的数据库软件。如果想要在虚拟机中有效地部署并使用这些应用,提供块存储能力必不可少。
块存储的一个问题是安全性较差。因并非直接对应用暴露接口,而是面向操作系统暴露底层设备,因此对于存储的内容往往没有较好的办法进行控制。
中兴通讯配合虚拟机技术,实现了分布式的块存储访问模式。通过块存储,能够将多台机器上的物理存储设备虚拟化,并且重新切分,分配给需要使用的虚拟机。使用块存储设备还可以很好地利用淘汰下来的旧存储设备,通过存储虚拟化接口层,将不同的物理底层设备接口进行屏蔽[3-4]。
通过存储虚拟化层整合各种物理存储设备,并将它的内空间按固定的大小统一切片。然后向客户端提供块存储接口,并将多个切片后的小块存储区域通过存储虚拟化层统一调度并组成客户所需要的卷大小,如图5所示。每个小的切片都会由接口将客户机的块访问请求直接映射成为物理机的块访问请求。
1.5 IaaS能力开放的安全性考虑
对于商业系统用户来说,系统的高效访问、可靠性、易用性是其中一个方面,但最终决定是否使用云计算作为企业基础服务的是能力开放的安全性。
(1) 特权使用者的管理
特权使用者,例如运营商的管理员,由于具有绝对的权力,必须严格监管。
(2) 法规的遵守
虽然云计算公司是通过运营商提供服务,但法律法规还需要提供服务的公司遵守并承担,而非运营商本身。因此客观要求不仅是服务公司必须满足相关的法规要求,为其提供服务的运营商也必须满足相关的要求才能够避免法律风险。
(3) 资料所在地理位置的管控
隐私保护权在各个国家和地区有所不同,作为无边界的网络服务,必须有能力满足特定地理位置下用户的隐私规则,以保证符合服务地的法规。有些国家和地区对敏感数据的物理存储地址也有限定,服务提供商必须能够满足这些要求。
(4) 数据的隔离
云服务面向很多用户,因此必须保障数据的有效隔离,必要时要有能够提供数据物理隔离的能力。
(5) 故障情况下数据的恢复能力
故障发生时,如何能够快速恢复服务与数据,并有效备份数据,是必须考虑的。
(6) 对调查的支援能力
某些法律,如《萨班斯法案》中,要求所有的数据操作都有可追溯性。如果面临审计或法律调查,服务提供商要能够有效提供相关的操作数据。
(7) 永久可用性
云服务的供应商不一定可以永久地提供服务,例如HP最近就停止了网络相册服务。在服务终止时,将数据和服务由一个运营商迁移到另一个运营商或自己的数据中心是一个非常重要的安全性因素。
2 PaaS能力开放架构
2.1 基于虚拟化的业务云托管与部署
这种应用场景主要是互联网数据中心(IDC)的运营[5],典型的如Amazon的弹性计算云(EC2),能够支持各种不同的操作系统以及开发环境。这种类型的平台一般向用户提供了如下特性:
灵活性
系统一般容许用户对运行实例的类型、数量、占用的资源量甚至地理位置进行相对自由的定制,并可以根据用户需求随时调整。
低成本
使用运营商提供的这种服务以后,小型企业就不必自行购置昂贵的机器设备及网络设备,可根据服务的容量及时间进行收费。
安全性
运营商一般会提供一整套的安全措施,如基于安全外壳协议(SSH)的访问鉴权、防火墙设置等,同时容许用户对他们的应用自行监控。
易用性
运营商除了提供基础的虚拟机服务以外,还会提供其他一些基础服务,如对象存储、数据库、消息管道等。应用程序不必额外搭建这些基础设施就能够直接使用。
容错性
系统一般都提供一定的网络及存储容错机制,一旦发生故障,能够保障数据的可靠及尽可能稳定的用户服务。
对外提供的访问接口主要有3类:
虚拟机远程访问接口。主要是通过统一验证的SSH服务及可靠数据协议(RDP)服务提供。
管理服务接口。提供用户自行监控虚拟服务集群的状态及创建、删除、调整虚拟节点。
业务服务访问接口。完全由客户在虚拟机内运行的服务提供,但系统可以提供统一的安全访问服务。
2.2 业务能力开放
业务开放平台能够提供网络或业务执行的模块接口。开发者能够通过调用开放应用程序编程接口(API)所提供的各种功能[6],快速集成不同的模块,以建立新的网络应用。目前这类服务有很多,最著名的是Google的地图服务。电信企业也能够开放和电信相关的一些业务,例如手机的位置查询服务、短信群发服务等;淘宝也根据自身需要,开放了与很多用户商品和交易相关的API。
为了让这些不同的服务与资料快速集成,很多公司还同时提供Mashup快速开发工具,例如Yahoo 的Pipe、Google 的Mashup Editor 以及微软的Popfly。
在业务能力开放平台,一般还需要设立开发者沙箱[7],用于协助开发者在开发阶段模拟真实系统操作,同时又不干扰真实系统的运营。图6是业务能力开放平台的一套典型部署结构。
业务能力开放平台对于客户端的接入必须要有访问控制功能,一方面是客户方的鉴权与认证,只有经过合法认证的客户方才能够使用业务服务;另一方面不同级别客户的访问权限及调用频率需要验证,以防错误的客户方或恶意的程序导致服务异常或数据异常。
2.3 在线服务托管模式
在线业务托管平台是企业资源计划(ERP)、客户关系管理(CRM)或通用的服务提供商通过开放平台,容许第三方在托管平台上开发自己的服务并对外提供服务。这些第三方开发的服务有各自明确的用户、独立的需求,但是需要使用平台方提供的基础资源进而对外服务。典型的如Google的App Engine、Saleforce 的force.com及ebay与淘宝的托管平台。第三方服务共享平台的资源、用户和数据,专心开发需求解决方案,有效地补充了平台所不具备的各种能力。例如目前eBay 有45%的商品是通过第三方应用上架。
各平台包含标准的服务框架、数据访问接口以及特定的编程语言支持。部署在平台上以后,平台可以自动根据访问的热度等分配计算资源,进行平滑扩展。
2.4 开放服务接口的版本管理与动态升级
对外服务不可避免地会涉及到接口的版本管理与升级策略,为保证服务的持续性,我们必须保证能够在不中断服务的情况下进行版本升级,保障不同版本客户端之间的兼容性与可用性。图7说明了如何进行向前兼容的服务接口设计及升级流程。
2.5 安全的服务开放
保证服务稳定可靠的关键是提供可信服务,它有3层含义:需要有手段去验证服务的使用者身份,只有授权的用户才能访问特定服务;服务本身是可靠的,非法用户或非法访问不会影响正常的用户访问;服务的数据保存是安全可靠的,只有可信赖的人能够访问可信赖的数据。
保证访问安全有如下一些做法:
访问应用的授权与签名。客户端系统或应用接入云服务前,必须经过云服务商的认证。认证结果以授权码方式交给客户方。以后的每次访问,客户方都需要出示授权码,或请求使用授权码进行签名。系统返回的结果也同样由系统证书进行签名,以达到通信双方的互信[8]。
时间戳方式。对于异步系统,使用时间戳及唯一的客户端ID作为请求的序列号,系统返回时同样使用相同的方式构造序列号以进行适配。
幂等检查。通过客户端生成唯一的序列号,服务端可以检测客户端命令是否重复发送,如有重复将直接抛弃。幂等检查可以保证所有服务请求都是一次性且唯一的,即使被恶意截获并通过网络设备重播,也不会执行。
通过安全白名单进行控制。通过白名单制度,系统保证只有经过安全认证的客户端能够接入,通常可以通过认证证书实现,这是最严格的访问限制。
如果涉及到第三方开发的应用,可以使用系统反向调用方式保证用户输入的认证信息不被第三方应用获取,并且可以通知第三方应用使用者是否有相关授权。
图8说明了用户联邦模式的关系,实现用户联邦模式下的统一用户开放具体步骤如下:
(1) 用户访问第三方应用。
(2) 第三方应用将用户引导到平台侧进行认证。
(3) 平台对用户在平台所属界面进行权限认证。
(4) 平台生成令牌,反向调用第三方应用接口,将用户、用户令牌以及所属授权信息交给第三方应用。
(5) 第三方应用将用户与用户令牌绑定。
(6) 第三方应用需要访问平台侧用户数据时,出示用户令牌,即可按用户权限进行访问。
(7) 访问完成后,第三方应用通知平台注销令牌。
3 SaaS能力开放架构
Force.com的CRM软件巨头Salesforce建立了企业级的云计算平台,它允许其客户在Force.com上开发用于内部使用的应用。2009年,Force.com推出了一个新的分销途径:增值零售商(VAR)。这些VAR通常是为大公司做IT咨询的顾问和系统集成的公司,它们可以基于Force.com开发应用,并把这些应用连同Force.com的基础数据库打包销售给大公司。比如,一个人力资源顾问公司可以基于Force.com数据开发一套招聘应用,卖给财富500强。
这些VAR伙伴不仅能够分销Force.com的云计算平台,也能分销诸如移动能力、存储、建站、开发沙箱等附加功能。为Force.com平台开发企业级应用的可能性非常多。目前,有超过12 万个围绕Force.com开发的应用,如供应链管理、货物跟踪、品牌管理、应收账款、投诉处理等等。
中兴通讯针对电信业务,打造了电信服务能力开放平台,第三方可以通过这个平台定制化开发电信业务的各种能力。这个平台还能够将电信业务的各种原子服务进行组合,在免编程情况下组合成为复杂业务对外提供。
中兴通讯的电信能力开放平台主要由业务开发环境,业务执行环境及管理模块构成,如图9 所示。
4 结束语
云计算作为通用的服务基础设施,必须能够被各种业务和应用使用才能够体现价值,否则只是封闭的专用系统。就像水和电,必须要有标准化的水管与电路才能够引入千家万户。因此云计算的各个层面,均需要进行开放并遵循相关的开放标准,实现通用的云服务。在IaaS层有OVF的虚拟化标准、标准的文件访问以及对象存储和块存储;PaaS层是业务的提供和能力开放平台,这个层面服务本身千变万化,但我们可以遵循一些通用的设计原则保证服务接口的平滑升级以及服务的安全提供;SaaS层面是完整的业务提供,中兴通讯在这个层面关注如何提供平台,让第三方也能够快速开发各种业务。
5 参考文献
[1] 刘鹏。云计算[M]。 北京:电子工业出版社,2010.
[2] 黄然。 虚拟化格式开放推动虚拟化进程[EB/OL]。(2010-01-12).http://virtual.51cto.com/art/200901/106039.htm
[3] FACTOR M, METH K, NAOR D,et al. Object Storage: The Future Building Block for Storage Systems[C]// Local to Global Data Interoperability-Challenges and Technologies: Proceedings of the 2nd International IEEE Symposium on Mass Storage Systems and Technologies(MMST’05), Jun 20-24,2005, Sardinia, Italy. Washington, DC, USA : IEEE Computer Society, 2005:119-123.
[4] SNIA-Storage Networking Industry Association.OSD: Object Based Storage Devices Technical Work Group[EB/OL].http://www.snia.org/tech _ activities/workgroups/osd/。
[5] 杨志强,张炎。构建移动互联网应用基础设施—打造“开放花园”[J]。中兴通讯技术,2009,15(4):1-4.
[6] 王英浩。网络存储技术初探[J]。中小企业管理与科技,2009(4):238.
[7] 李崴。基于SAML联邦身份管理机制研究[C]//全国第19届计算机技术与应用学术会议(CACIS2008),2008 年7月15-20日,乐山。
[8] KING. Salesforce推面向开源的Force云运算架构[N]。 计算机世界,2008-01-19.