张桂芬
(上海市测绘院,上海 200063)
云计算是IT的一个概念,狭义云计算是指IT基础设施的交付和使用模式,通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。广义云计算是指服务的交付和使用模式,通过网络以按需、易扩展的方式获得所需的服务,这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。提供资源(或服务)的网络被称为云,云中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。随着科技的进步,云计算技术已悄然成为热门,国内企业不甘落后,三大通信运营商推出了自己的云计算计划,政府也纷纷推出了自己的云计算计划,像北京、上海等城市都推出了自己的云计算计划,云计算即将给信息产业带来翻天覆地的变化。而被认为与人类百分之八十的日常活动有关的地理信息,怎样通过云计算技术以更高效、更便捷、更准确的方式提供给社会公众,是从事地理信息产业的所有人员正在研究的课题,也将是影响地理信息产业发展方向的一个关键所在。下面就结合城市公共服务平台建设的项目,浅谈云计算技术在地理信息公共服务平台建设中的应用。
地理信息的发展经历了桌面型 GIS、WebGIS、Server GIS几个主要阶段。目前,天地图的建设吹响了中国测绘地理信息公共服务平台建设的号角,各城市都在建设本地的地理信息公共服务平台以满足社会各界对地理信息的需求。以X市的建设为例,平台建设的总体架构,如图1所示。
图1 X市地理信息服务平台总体架构图
主要包含数据层、服务层、运行维护层三部分。数据层管理多源异构的各类地理信息资源,有矢量数据、关系型数据库、栅格数据等。服务层主要是发布并管理各类地理信息服务,如符合OGC标准的WMTS(Web Map Tiled Services)、WFS(Web Feature Services)、WPS(Web Processing Services)等,供用户在不同平台进行二次开发调用的API(Application Programming Interface)和为最终用户直接提供信息的应用程序,服务层是平台的核心内容,对服务效率与服务质量要求均比较高。运行维护层主要是各种运行维护机制的管理。
原有的地理信息公共服务平台在架构设计上采用了传统的Web GIS网络设计路线,依据层次和功能划分资源,主要包含数据库服务器、应用程序服务器、Web Service服务器、地理信息发布服务器、服务管理服务器、安全防御设备和网络设备等。数据库服务器由于存储及管理的数据量大而且结构复杂,需要多台服务器做支撑。地理信息发布服务器需要发布多种地图服务,亦由多台物理机支撑,其他功能服务器均需要进行单独配置以满足需求。由于设备有限,仅有一台机器做备用机,各应用程序及数据均只做物理备份,恢复及拓展均比较困难。
利:该方案根据层次及功能划分服务器(资源),层次分明,平台响应及运算效率比较高,而且便于维护。
弊:数据库服务器、应用程序服务器、Web Service服务器、地理信息发布服务器、服务管理服务器均为物理服务器。为满足不同层次用户的需求提供多种服务接口需要不同的软件环境,确保平台运行的稳定需要备份服务器,保证数据的安全性(因意外事故能及时恢复数据)也需要服务器资源,使得系统架构起来不仅需要大量的硬件设备,而且根据平台运行情况增减设备及软件时均需投入大量的人力物力,各应用程序迁移比较困难。
服务器硬件配置一般都是比较好的,单独按功能来划分服务器会导致有些资源的浪费,如果不按功能(或者合并某些功能)来划分服务器又会使得服务器安装的软件系统比较臃肿,某些软件间的冲突又会影响服务器的性能和处理效率。
云计算以三种基本形式为我们提供在信息技术建设中需要的IT资源,包括基础设施即服务(把CPU的处理能力和海量的内存、存储空间当作服务)、平台即服务(开发平台也是服务)、软件即服务(应用软件即是服务)。作为地理信息公共服务平台的建设者,考虑到平台要用有限的资源高效提供多种地理信息服务,我们可以通过建设私有云来实现,下面笔者将结合自己在基于云计算的城市地理信息公共服务平台建设中进行的尝试及研究展开介绍。
私有云是一种构建在高效、自动化和虚拟化基础设施上的共享环境,由于是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。本文所说的GIS私有云建设是将当前平台运行中心的服务器、存储设备、网络设备等资源整合起来,成为一个虚化的资源池(硬件资源池和软件资源),然后梳理资源池的各项资源(CPU、内存、硬盘等),进而使运行中心发展出自动性、灵活性、可扩展性的优势,实现 QoS(Quality of Service)、SLA(Service Level Agreement)的保证。
将机房不同机型的服务器资源(内存、CPU、存储空间)整合成一个资源池,根据功能需要在资源池划分一定的资源进行虚拟化,安装及配置虚拟机。比如数据库服务器需要8核CPU、16G内存、100G存储空间,根据需要划分出指定资源安装操作系统配置软件环境,然后用压力测试软件对服务器性能进行测试,如果由于CPU或内存等资源不足影响系统响应效率,那么可以动态调整系统的资源,将服务器的内存或CPU数量增加或减少,使服务器既能高效运转,又不浪费资源。根据功能层次划分服务器(或服务器集群),每台虚拟化的服务器均经过仔细评估确定其所需资源,实现真正意义上的按需分配,有些管理用的虚拟机可以在需要使用时才开启,不用时将其关闭,将其CPU或内存资源让给其他服务使用。平台虚拟机映射关系如图2所示。
如图2所示,原来只有7台物理服务器,现在安装配置了19台虚拟机,将数据库服务器、应用服务器、不同方式发布地理信息服务的服务器、运维管理的服务器独立开来,安装不同的操作系统配置不同的软件环境,同时根据需求将部分服务器构建集群以提高效率,使平台能够满足不同终端用户使用地理信息服务的要求,实现平台的多种GIS Services的功能。此外,由于合理利用了服务器资源,在架构设计时还为各种应用安装部署了备用虚拟机,以便出现异常时可以及时恢复系统环境保证平台的正常运行,确保平台的稳定性。
图2 平台虚拟机映射关系图
3.3.1 虚拟化技术
虚拟化是云计算的基础,虚拟化可以在一台物理服务器上聚集多个操作系统和应用程序,以更好地利用服务器的计算资源。虚拟化通常由虚拟平台软件提供,如Hyper-V、VMware、PowerVM、Xen等。虚拟化平台软件帮助客户搭建公有或私有的虚拟平台,供客户部署应用,实现服务器资源的灵活伸缩,降低维护/升级成本。
X市地理信息公共服务平台基于VMware进行架构,涉及的关键技术主要包括:虚拟机的部署、虚拟机的安装、虚拟机的管理、虚拟机与外界的文件传输。部署:根据规划的功能设计虚拟机所需的资源、规划物理服务器安装哪些虚拟机,以确保系统的稳定。安装:根据设计安装虚拟机操作系统及各种软件环境,部署应用程序,同时将虚拟机保存为模板,以便出现意外时可以及时恢复。管理:通过Vcenter来管理Clusters(集群)、Resource Pool(资源池)、ESXI hosts(主机)、Virtual Machine(虚拟机)。传输:虚拟机可以实现与主机或客户端机器共享光驱,有些资源(比如说一些文件)可以通过网络技术上传或下载(如FTP)或借助第三方软件实现。
3.3.2 负载/压力测试技术
不同虚拟机安装的软件不同,实现的功能也不同,怎样才能正确评估虚拟机分配的资源(CPU、内存、网络、硬盘空间)等是否满足了系统设计的要求,需要我们对不同类型的服务器进行负载/压力测试,根据测试结果动态调整虚拟机的各项配备资源,最终达到一个既保证系统高效运行又充分利用资源的效果。
X市地理信息公共服务平台采用LoadRunner软件进行压力测试,进行负载/压力测试主要分4个步骤:
(1)Vitrual User Generator创建脚本
①创建脚本,选择协议
②录制脚本
③编辑脚本
④检查修改脚本是否有误
(2)中央控制器(Controller)调度虚拟用户
①创建Scenario,选择脚本
②设置机器虚拟用户数
③设置Schedule
④如果模拟多机测试,设置Ip Spoofer
(3)运行脚本
分析scenario
(4)分析测试结果
测试完成后每个场景均会生成如图3所示的测试报告(也可以根据需要生成详细的分析报告)。
图3 压力测试报告
根据并发用户数、平均每秒点击数、吞吐量、事务摘要、平均事务响应时间、每秒http响应时间等分析图结合分析报告查看当前设置是否已复合设计要求,如果没有,则增加有关资源的配置,再次测试,逐步达到完美的效果。
3.3.3 Service GIS技术
GIS软件经历了传统的一体化、面向组件、面向服务三个阶段。面向组件实现了对传统一体化软件的改革:首先使GIS功能可灵活组装,简化了GIS系统的开发流程,使GIS与业务功能更加紧密;其次解决了对具体开发语言的依赖。Service GIS则进一步简化了GIS系统的开发流程,并使GIS系统适用于更多客户端。Service GIS将GIS功能的实现由客户端转移到了服务器端,以Web接口的形式提供GIS功能,使基于各个云平台发布出来的GIS功能提供形式无差别,便于客户端开发使用。
地理信息公共服务平台需要提供给用户的GIS功能应该是以Web服务方式提供的,X市基础地理信息公共服务平台提供的各种地图显示、查询接口(WMS、WMTS、WFS、CSW等)均是符合OGC标准且基于 http协议方式提供的。不同层次的用户均不用考虑数据的格式及运算方式,通过规范的接口实现云端的GIS功能(如与自己专题数据的融合分析等功能),达到自己的研究或应用的目的。这样,地理信息公共服务平台即实现了向不同层次的终端用户提供GIS服务的功能。
基于私有云构建的城市地理信息公共服务平台实现了发布管理各种服务的功能,实现效果如图4所示。
图4 X市地理信息公共服务平台实现效果图
基于云计算技术而设计并搭建的城市级基础地理信息公共服务平台,有效解决了基于传统Web GIS架构引发的一系列问题(如服务器资源不够、拓展迁移困难、系统稳定性无法保证)。通过虚拟化技术,实现了不同操作系统及应用程序在同一台物理服务器上运行的可能,进而使得服务器在架构设计时将各服务器的分工更明确、架构层次更合理,而且充分利用了服务器的资源,可根据具体运行情况及时对服务器分配的资源进行调整,达到最优整合的效果,同时,虚拟机可以保存成模板,方便在紧急情况下快速恢复系统保证平台运行的稳定。
基于私有云进行服务器架构设计合理、层次明确,在此基础上开发各种云端的GIS服务,服务内容丰富、形式多样、服务性能稳定高效,使为公众提供最便捷、最高效的GIS服务成为现实。
本文结合城市公共服务平台项目的建设,对基于云计算的城市地理信息公共服务平台的设计进行分析和探究,云计算给地理信息产业带来的影响远不止本文提到的这么多。它不仅降低了地理信息服务提供者的成本(如降低了本地服务器数量和机房配置复杂度,并使远程服务器也随实际需求动态开启和关闭,减少了服务器的电力耗费,噪音污染,促进绿色环保),也为地理信息服务的二次开发商带来了福音(例如他们可以动态的增加、减少私有云中物理服务器的数量,甚至由一台物理服务器平滑迁移到另外一台物理服务器,提升最终用户满意度。),还为最终用户带来了价值、拓宽了地理信息的应用面(主要是能为最终用户节约GIS系统构建成本,极大降低开发难度),将进一步促进中国的地理信息产业的快速发展。
[1]熊信彰.VMware vSphere 4云操作系统搭建配置入门与实践[M].北京:中国水利水电出版社,2011.
[2]北京超图软件股份有限公司.超图通讯[R].2011.
[3]毛炜青.云的畅想[J].中国测绘报,2011(98).
[4]国家基础地理信息中心.“天地图”建设技术文档汇编[R].2011.
[5]胡嘉玺.虚拟智慧:VMware vSphere运维实录[M].北京:清华大学出版社,2011.
[6]http://www.51testing.com.
[7]王少一,于海波,蒋许锋.天津市基础环保地理信息公共服务平台设计与应用[J].城市勘测,2011(5).