4.2 公有云解决方案
公有云解决方案即面向可公开通过互联网在线对外提供计算、存储、软件、服务等可量化、可计费的资源租用服务的云计算平台的解决方案,它能大幅降低社会管理成本和信息化成本,推动公共管理信息技术的普及与应用。从部署模型方面,公有云是一种当前热度最高的“云计算公共服务平台”,可以公开通过互联网对外提供服务。
4.2.1 公有云解决方案分类
从服务模型(即服务层次)出发,公有云平台也可以再进行划分。
4.2.1.1 IaaS公有云解决方案
一般会成为企业最先选择的投入模式,它通过对传统数据中心的改造,对外提供计算、存储等各种资源。IaaS公有云也是我国各级地方政府当前最优先选择的推进云计算的项目,其核心目标是按用户定制需求,提供对应操作系统类型、CPU频率、核心数、互联网带宽和磁盘存储空间的虚拟机。如图4-1所示,用户可以通过公有云的入口,包括Portal或客户端接入公有云平台,在线申请资源或远程接入使用。
图4-1 IaaS公共服务平台服务模型
4.2.1.2 PaaS公有云解决方案
与具体的部署、访问、应用模型绑定较为紧密,用户服务受制于具体的某一种平台,导致PaaS公共服务平台的业务有萎缩趋势。如2011年,Google APP Engine关闭了多个地区的服务。
4.2.1.3 SaaS公有云解决方案
这是商业模式最为简单,用户群体广大的公共服务平台。在多个地区面向中小企业提供了SaaS公共服务平台,但是SaaS平台提供的软件在跨云间集成、云间软件与自有数据中心软件的集成、数据安全保证等方面存在较多问题,亟待解决。
4.2.2 公有云解决方案要素
公有云解决方案一般要针对如下核心需求,提供相应的说明。
4.2.2.1 云用户管理
公有云平台中要具备完备的用户管理机制,要能够支持云用户的申请和批准、云用户的创建、云用户身份证书的发放、云用户信息的修改及云用户信息的存储等。一般情况下,公有云用户可以分为以下几类。
(1)资源使用者 是指使用云资源的最终用户,在云计算中有唯一的身份,在通过合法身份认证和资源提供者的授权后获得云资源的使用权。
(2)资源提供者 是指向云计算提供资源的资源所有者和管理者,负责制定资源共享策略以及资源访问授权和控制策略。
(3)云管理员 类似于网络管理员,云管理员主要负责云计算公共设施的管理和维护。
(4)应用开发员 是指在云计算系统层之上开发特定应用服务器软件的设计和开发人员,主要负责软件开发和测试。
(5)系统开发员 是指面向云计算系统本身和资源进行开发的编程人员,主要负责完成云计算系统扩展模块的设计开发以及按照云资源接入框架规范完成资源接入模块的设计开发任务。
此外,平台还需要提供用户审计功能,即用户使用资源的记录汇总和计费。用户记账是对用户进行收费的依据。
4.2.2.2 云资源管理与监控
云平台在系统管理和监控方面要具有以下功能。
(1)云计算平台软件安装与配置工具 这方面的工作需要参考现有大型软件的安装配置技术,实现整个系统的快速安装和配置。
(2)云计算系统维护工具 包括系统状态获取工具、系统备份工具、系统快速恢复工具等。
(3)系统日志分析工具 向云计算管理员和资源提供者提供强有力的支持,可以快捷地获得系统运行的基本信息和产生的问题,提高系统的健壮性。
(4)用户审计分析工具 可以对用户云的行为进行跟踪和回溯,为云计算的访问控制提供支持。
(5)云平台监控工具,即监控模块和维护模块 监控模块主要完成对资源和系统的监测和控制,同时支持全局资源和系统的监控视图,以及局部资源和系统的监控视图。对云资源的监控主要包括资源性能的监测与预警、资源失效的报警和实时处理。对云计算系统的监控主要包括系统软件运行的监测和预警、系统软件的故障恢复等。
4.2.2.3 虚拟机管理与监控
公有云平台一般要提供资源的总体管理功能。当前虚拟化是资源管理的核心,公有云平台要支持虚拟化技术,主要包括以下功能。
(1)虚拟机创建 平台能够从操作系统安装镜像或虚拟机镜像模板两种方式为用户创建虚拟机实例。用户可以通过针对不同的应用场景创建虚拟机模板(包含操作系统和常用办公软件)来提高虚拟机创建效率。
(2)虚拟机重新配置 虚拟机创建后,当资源不能满足用户需求时,用户可以按需对资源进行重新配置,如提供更多的CPU、存储、内存、网络资源等。
(3)虚拟机备份 平台能够根据用户需求,对用户当前的虚拟机镜像进行保存,用户的虚拟机实例所有的应用数据、硬盘数据将作为一个整体被保存下来。用户虚拟机的内存文件也可以被保存下来,以备用户选择时间点进行恢复。
(4)虚拟机恢复 平台能够根据用户需求选择虚拟机备份文件,对虚拟机整体进行恢复。虚拟机恢复时间一般小于10秒,从而保证系统更大的安全性和稳定性。
(5)虚拟机迁移 平台能够实现虚拟机从一台物理机迁移到另一台物理机上的运行。虚拟机迁移是平台实现负载平衡和容灾恢复的基础。
4.2.2.4 云资源管理服务
公有云平台方案中要体现资源的管理方法。一般情况下,公有云平台资源住处组成“树型”结构,称这样的树为资源目录树,这个树包含一个根节点。从根节点开始,各个子树中包含着实际的资源使用信息,如云计算系统中常用的用户、虚拟机映像、节点、网络、性能要求等,通过将这些信息和资源的有效匹配来动态为用户分配资源。平台从统一管理的角度,将用户的资源有效整合,在保证满足用户需求的同时,提高资源的使用效率。
4.2.2.5 信息访问API
在公有云平台中,平台应支持用户程序调用。通过建立一套访问接口API,能够在保证用户数据安全的同时,动态获取用户、资源、应用等信息,提供给用户监控和第三方程序扩展。
4.2.2.6 安全管理
即在公有云环境下,用户提供的访问控制、数据传输、网络控制等公有云资源使用所必需的访问、管理及监控工具或手段等,以最大限度地保证用户数据安全。
4.2.2.7 SLA(服务质量)
公有云方案所能提供的SLA是用户较为关注的。因为公有云服务一般作为通用服务提供,因此能够提供的SLA相对较低,近期如国外的Amazon、国内的盛大公有云服务都曾出现过数据丢失及终端服务问题。
4.2.3 公有云解决方案示例
宝德开开游戏云网络服务平台是基于Eucalyptus的一种公有云架构。根据需求,提供基础的弹性计算平台租赁给运营方,从而做到了全方位的资源的优化配置。该平台不但是一种网络游戏运营平台,更提供了统一的用户共享平台、推广平台、充值计算平台和利益分成监控平台(图4-2)。
图4-2 开开游戏云网络服务平台运营规模
该平台和技术路线是基于宝德科技集团(简称宝德)自主研发生产的软硬件设备,结合宝德十多年网游行业经验,整合全方位信息安全的策略,为网游产品提供一个无限接入的云计算基础设施服务平台,并对产品进行一个资源部署,负责开开游戏平台开发运营。宝德计划有数千台服务器,在全国有100多个数据中心,在哈尔滨有一个大型基地支撑上千款网游运营产品服务,整个技术架构主要包括运维、运营两块。本平台计划拥有1000万以上注册用户,且免费对玩家开放,这样就相当于把一千多万游戏玩家导入到开开游戏平台,推广游戏;同时早在2003年全国有一个CDN平台、100个机房和一个加固节点,目前采用免费策略,用来推广开开游戏云网络服务平台,这是一个云计算服务管理平台。通过虚拟化技术将服务器、存储资源构筑成一个整体资源池,基于资源池动态调配每个游戏厂商分布不同的硬件资源,在游戏应用平台进行网站开发、广告监测系统开发、公共系统开发、充值系统开发、对外标准化接口开发、一卡通系统的开发等。
4.2.3.1 系统流程架构
系统数据处理流程架构思想如图4-3所示。
图4-3 开开游戏云数据处理流程
4.2.3.2 软件处理流程
①用户注册、登录信息经过OutPacket模块打包后发送给sendQueue。
②UdpSession模块从sendQueue接收发送消息,调用Socket模块发送给登录服务器。
③UdpSession通过Socket模块接收返回包InPacket。
④用户信息验证通过之后,通过RasApi32接口拨号连接节点服务器,建立PPTP-VPN连接。
⑤四大网络业务通过PPTP-VPN与节点服务器通信(IP数据包转发)。
⑥HookDll模块负责挂载客户端插件(Plug-Ins)。
⑦SkinTool模块负责客户端界面皮肤处理。
⑧Config模块负责存取客户端配置信息。
⑨Upgrade模块负责最新版本检测和升级、数据更新。
4.2.3.3 安全性设计
系统采用安全的单向加密算法MD5(图4-4),在软件应用层对用户密码进行加密。MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。
图4-4 MD5算法示意图
MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,使其位长度对512求余的结果等于448。因此,信息的位长度(Bits Length)将被扩展至N×512+448,即N×64+56个字节(Bytes),N为一个正整数。填充的方法如下:在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,再在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N×512+448+64=(N+1)×512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。
MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。
当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。
将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。
主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量、文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。