基于云计算SaaS模式的集团客户解决方案探讨

基于云计算SaaS模式的集团客户解决方案探讨
基于云计算SaaS模式的集团客户解决方案探讨

科研专业项目成果报告
基于云计算 SaaS 模式集团客户应用方案探讨
院审核人:李方村 项目主管:纪芳 部门审核人:张誌 项目负责人:张华铎 编写人:张华铎、蔡路阔 、茅磊、朱文安 项目编号:KY2011SD21 项目类别:B 类
中国移动通信集团设计院有限公司 二○一一年十一月

中国移动通信集团设计院有限公司
基于云计算 SaaS 模式集团客户应用方案探讨
【摘 要】 :本课题首先分析了集团客户应用平台现状,详细介绍了 SaaS 模式、成熟度
模型、关键技术等几方面内容,最后总结了集团客户信息化应用建设方式类型,并探讨 了 ADC 系统的演进方向。
【关键词】 :集团客户
云计算


1 引言 .................................................................... 2 1.1 课题背景 .............................................................. 2 1.2 研究内容 .............................................................. 2 2 集团客户应用平台现状 .................................................... 3 2.1 ADC ................................................................... 3 2.2 MAS ................................................................... 4 2.3 其他平台 .............................................................. 5 2.4 现状分析 .............................................................. 5 3 SaaS 技术介绍 ........................................................... 7 3.1 SaaS 模式分析 ......................................................... 7 3.2 SaaS 与 IaaS、PaaS 模式的关系 .......................................... 9 3.3 SaaS 系统成熟度模型分级 ............................................... 9 3.4 SaaS 成熟度模型的选择 ................................................ 12 3.5 SaaS 系统关键技术介绍 ................................................ 14 4 他山之石(Salesforce、阿里软件) ....................................... 24 4.1 Salesforce ........................................................... 24 4.2 阿里软件 ............................................................. 25 4.3 小结 ................................................................. 26 5 SaaS 模式集团客户应用建设方案分析 ...................................... 28 5.1 总体分析 ............................................................. 28 5.2 ADC 建设分析 ......................................................... 29 6 结束语 ................................................................. 36
1

中国移动通信集团设计院有限公司
1 引言 1.1 课题背景 近几年来电信运营商个人市场竞争从增量市场向存量市场转变, 随着通信ARPU 不断 降低,电信运营商需要寻找新的增长点。潜力巨大的集团客户信息化市场也成为各个电 信运营商竞争的焦点。发展集团客户信息化业务既是开拓市场、吸引和发展终端用户的 需要,也是适应和迎合我国社会信息化大发展的需要。目前电信运营商为了在集团客户 竞争中获得优势, 为集团客户建设了大量的应用平台, 应用平台大部分为客户订制平台, 在资本开支以及后期运维费用方面面临着越来越大的压力,同时由于应用分散建设的方 式导致无法提供统一运维,系统的可靠性与电信级服务能力也面临着极大的挑战。 另一方面目前云计算技术发展迅速,已成为 IT 业、通信业关注的焦点和未来业界 技术演进的趋势,且诞生了许多成功的以云计算为基础提供集团客户应用的的公司。通 过分析,云计算的理念与集团客户应用平台整合的目标较为切合。因此,无论从解决当 前业务问题角度,还是从未来系统演进的角度,及早研究、选择、应用云计算技术都非 常必要。 1.2 研究内容 本课题首先分析了集团客户应用平台现状,详细介绍了 SaaS 模式、成熟度模型、 关键技术等几方面内容, 最后总结了集团客户信息化应用建设方式类型, 并探讨了 ADC 系统的演进方向。
2

中国移动通信集团设计院有限公司
2 集团客户应用平台现状 山东公司集团客户业务经过多年的发展, 已经形成较为完备的体系, 相关系统包括: ADC 平台、MAS、行业网关、农信通、校讯通等。
政府/企业用户
集团客户业务网
MAS 管理 平台
MAS系统
MAS 服务 器
ADC系统 警务 通 城管 通 OA 财务

ERP
行业应用中间件
接入代理子系统 - A
WAP-A 流量 管理 协议 适配 SMS-A 流量 管理 协议 适配 MMS-A 流量 管理 协议 适配 LBS-A 流量 管理 协议 适配
行业应用网关
管理子系统-M
黑白名单 管理 OoS管理 优先级 管理 实名
LSP
WAP网关
短信中心
彩信中心
邮件PUSH 网关
GIS
BOSS
企业服务 管理门户
图 2-1 集团客户相关平台组成图
2.1 ADC 山东 ADC 平台是为中小企业信息化业务服务的支撑系统,包含了传统电信业务、移 动行业应用和企业应用软件产品,将原来离散的单一的移动信息化产品和企业信息化应 用整合成一个整体的解决方案。目前平台能力支持 1000 家企业,2 万个人用户,500 用 户并发能力;
ADC管理平台体系 架构
图 2-2 ADC 系统结构图
3

中国移动通信集团设计院有限公司
ADC 平台由 ADC 管理平台和 SI 应用系统组成。ADC 管理平台是中小企业信息化应 用的核心业务运营平台,用于支撑 SI 应用系统的接入、管理和运营,对外与行业网关、 BOSS、网管系统连接。目前山东公司 ADC 平台共接入 22 款企业应用,详见下表。
表 2-1
产品名称 彩信报表 企业 OA 客户关系管理 进销存管理 财务管理系统 自主建站 企业邮箱 企业建站 企信通 PushEmail 产品编码(BOSS) pg.adc.corp.cxzs pg.adc.corp.oa pg.adc.soft.crm pg.adc.soft.mss pg.adc.soft.fms pg.adc.soft.site pg.adc.corp.mail pg.adc.corp.wxwz pg.adc.corp.esm pg.adc.corp.pushmailb
ADC 平台接入应用情况
产品类型 服务营销 移动办公 移动办公 移动办公 移动办公 生产管理 服务营销 生产管理 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 服务营销 厂家名称 自有业务 自有业务 自有业务 自有业务 自有业务 自有业务 自有业务 上海高维信 诚 深圳卓望 北京无限立 通 北京无限立 通 北京恒信彩 虹 北京恒信彩 虹 山东邦尼 山东浪潮 济南利众三 纪 济南利众三 纪 山东盈科电 讯 山东盈科电 讯 北京梦天游 济南聚众远 景 山东浪潮 上线时间 2008.11 2006.11 2006.11 2006.11 2006.11 2006.11 2006.11 2009.02 2007.11 2009.02 2011.03 2009.02 2009.02 2009.02 2008.11 2008.11 2008.11 2008.11 2008.11 2008.11 2008.11 2008.11 产品状态 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用 正式商用
企业邮箱(PE) pg.adc.corp.pushemail 虚拟传真 电话会议 手机邮箱 易搜 工商通短信 工商通彩信 采购通短信 采购通彩信 移立讯 彩信名片 销信通 pg.adc.corp.xncz pg.adc.corp.dhhy pg.adc.corp.pushmail pg.adc.corp.yis pg.adc.gst.sm pg.adc.gst.mms pg.adc.cgt.esm pg.adc.cgt.sm pg.adc.corp.ylx pg.adc.corp.cxmp pg.adc.corp.xxt
2.2 MAS MAS 业务指中国移动通过在集团客户(主要为拥有完备企业信息系统的企业)内部 部署移动代理服务器,为集团客户提供的基于移动终端的信息化应用服务。移动代理服 务器业务是主要通过短信的形式,为企业提供短信单发/群发、会议通知、投票调查、短 信答题、短信防伪、意见投诉、日程提醒等功能。
4

中国移动通信集团设计院有限公司
中国移动的 MAS 系统由企业侧 MAS 服务器和移动的 MAS 管理平台组成,MAS 服务器 通过广域网连接到 MAS 平台;MAS 平台提供对企业业务和网络的管理与控制,并与移动 的 BOSS 和其他系统相连。 目前, 统一服务平台由全国统一建设, MAS 通过加密 IP 通道与 MAS 服务器进行通信, 完成对 MAS 服务器的管理和控制, 具体的管理的内容有配置管理、 认证管理、 监控管理、 故障管理、安全管理、升级维护管理;山东公司主要是在省内信息化程度较高的集团客 户中发展 MAS 服务器用户(移动代理服务器) 。 2.3 其他平台 除了上述省公司集中建设的相关系统,为满足集团客户个性化需求,在实际生产中 地市公司也建设了部分信息化平台,下表为某地市公司建设的相关平台。
表 2-2 某地市相关系统 系统名称 农村信息化短信交互平台 农村语音播报平台 功能介绍 各专家通过短信交互平台,可以实现各类技术指导信息的同 步、分级发送。收到短信后可以实时进行反馈和询问可以主 动短信咨询 依托各个村庄建设的有线扩音广播设备,实现覆盖全市的信 息发布、公共应急预警信息语音播报。 农户通过拨打“农村信息化热线平台”咨询问题,接听电话 的是各类权威专家,可以保证解答的科学性与准确性。专家 接听后将农户所提问题现场回复或以短信、彩信形式进行回 复 行业专家现在可以足不出户,把最新的指导方针、政策等即 时传递给广大从业人员。 从业人员对于各类问题可以随时短信咨询。 实现基于短信的政务信息发送 实现企业内部一卡通业务的管理,包括:终端机具管理、本 地发卡管理、门禁、考勤、内部消费的应用管理;同时提供 内部用户管理、系统管理、终端机具监控等功能。 通过校讯通业务, 家长可随时获知子女在校表现、 作业情况、 考试成绩、教师点评等个性化信息,并可随时随地与教师进 行无障碍交流; 学校可借助移动短信、 网络平台将校务通知、 收费信息、家长约谈、临时公告等信息及时递送给家长。
农村热线平台
行业协会信息平台 短信政务平台 一卡通平台
校讯通系统
2.4 现状分析 目前集团客户有很强烈的信息化需求,通过信息化来降低成本、提高效率、增加收 入、提升竞争力,但 ADC 相关标准化产品与实际需求存在差距,缺少统一的途径来生成 个性化的方案;因此地市公司为满足业务发展需求,分散建设了部分集客/行业应用,
5

中国移动通信集团设计院有限公司
总体建设、运营成本较高。 因此,在未来系统建设中,可以考虑引入 SaaS 模式,满足集团客户个性化需求; 通过扩展 ADC 系统功能,支撑新建应用更便捷的快速上线。
6

中国移动通信集团设计院有限公司
3 SaaS 技术介绍 3.1 SaaS 模式分析 SaaS(Software-as-a-service)的意思是软件即服务,是基于互联网提供软件服 务的软件应用模式。作为一种在 21 世纪开始兴起的创新的软件应用模式,SaaS 是软件 科技发展的最新趋势。 SaaS 模式软件与传统软件的最大区别就是支持多租户。 简单而言, 多租户指得就是 一个单独的软件实例可以为多个组织服务。一个支持多租户的软件需要在设计上能对它 的数据和配置信息进行虚拟分区,从而使得每个使用这个软件的组织能使用到一个单独 的虚拟实例,并且可以对这个虚拟实例进行定制化。但是要让一个软件支持多租户并非 易事,因为不仅对它的软件架构进行相应的修改,而且需要对它的数据库结构进行特殊 的设计,同时在安全和隔离性方面也要有所保障。 与多用户不同的是,多用户的关键点在于不同的用户拥有不同的访问权限,但是多 个用户共享同一个的实例。而在多租户中,多个组织使用的实例就算是同一个,也会存 在一定的差异。 因为通过一个软件实例被多个组织共享,从而减低了整体资源的消耗,也同时减低 应用运行的成本和相应的管理开支;而且因为所有组织都共享同一套核心代码,所以能 够让软件更新和开发更简单。但往往会增加整个软件在架构方面的复杂性,且众多组织 的应用和数据共享同一套软件和基础设施,如果出现机器宕机,软件出现问题或者大规 模的数据被暴露等情况,将会造成更严重的影响。 提供 SaaS 服务的运营商为中小企业搭建信息化所需要的软件、硬件运作平台,并 负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招 聘 IT 人员,只需前期支付一次性的项目实施费和定期的软件租赁服务费,即可通过互 联网使用信息系统。服务提供商通过有效的技术措施,可以保证每家企业数据的安全性 和保密性。企业采用 SaaS 服务模式在效果上与企业自建信息系统基本没有区别,但节 省了大量用于购买 IT 产品、技术和维护运行的资金,就像打开自来水龙头就能用水一 样,方便地利用信息化系统,从而大幅度降低了中小企业信息化的门槛与风险。 3.1.1 系统建设方面 ? 可以更快地提供解决方案 SaaS 服务的提供商已对企业即将采用的解决方案进行了规划、设计、实施、部署及
7

中国移动通信集团设计院有限公司
测试。这意味着企业可以使用已有解决方案,而企业要自行实施这样的解决方案需要很 长时间。以大多数 SaaS 解决方案为例,软件已经实时运行、随时可以使用,只需针对 企业需求进行相关个性化配置。 ? 减少企业所需 IT 资源 企业无需再配备 IT 方面的专业技术人员,同时又能得到最新的技术应用,满足企 业对信息管理的需求。用户需要的全部基础设施就是网络及浏览器,对那些规模较小、 不想自行管理 IT 部门这项复杂工作的企业而言,SaaS 无疑是一种行之有效的方案。 3.1.2 系统投资方面 ? 建设投资成本低 SaaS 服务的最大优点之一就是“可重复使用”, 在价格方面可以提供非常显著的规 模经济。之所以如此,原因就在于大多数 SaaS 提供商可以非常轻松地利用其在特定行 业领域“重复使用”的优点,能提供具有高度可复制的“标准化”的解决方案,因此可 以大大节省成本。 企业可以用相对低廉的“月费”方式投资,不用一次性投资到位,不占用过多的营 运资金,从而缓解企业资金不足的压力;不用考虑成本折旧问题,并能及时获得最新硬 件平台及最佳解决方案。 ? 定价模式灵活,符合企业的发展模式 采用 SaaS 的解决方案时,企业通常会使用基于订购、可以确定的定价模式,这种 模式让企业可以在需要时购买所需服务。这意味着企业可以根据发展模式购买相应软 件。企业规模扩大时只要开启新的连接,用不着购置新的基础设施和资源。而一旦企业 规模缩小只要关闭连接即可。这样,企业可以避免被过多的基础设施和资源所累。 3.1.3 系统后期维护和管理方面 ? 更好的支持 由于企业采取租用的方式来使用信息化系统,不需要专门的维护和管理人员,而是 直接使用由 SaaS 服务运营商提供的专家实现 24×7 小时的系统运维服务。从诸多方面 来看,SaaS 提供商相当于企业的信息化延伸部分。 SaaS 的不足之处: ? 谨慎定制 某些 SaaS 应用软件渗透到企业的核心内容,特别是 ERP、财务、商业智能以及制造
8

中国移动通信集团设计院有限公司
系统,这些软件是反映企业区别于竞争者的主要流程,通常都需要高度定制,开发和普 及都有相当难度。 ? 技术复杂 由于要支撑多租户架构,往往会增加整个软件架构方面的复杂性。 ? 安全受限 有些客户认为,在线租赁软件,归根到底不部署在企业内部,信息的安全和使用均 受到限制。 以上几点,是目前用户面对 SaaS 最为关注的问题。 3.2 SaaS 与 IaaS、PaaS 模式的关系 三种模式之间关系是独立的,各自面对不同类型的用户。从技术角度而言,它们并 不是简单的继承关系(如 SaaS 基于 PaaS,PaaS 基于 IaaS) 。实际应用中 SaaS 应用可以 是基于 PaaS 或者直接部署于 IaaS 之上,也可以直接构建在物理资源之上。 3.3 SaaS 系统成熟度模型分级 根据 SaaS 系统是否具有可配置性、高性能、可伸缩性的特性,其设计成熟度分成 四级,每一级都比前一级增加了上述三种特性中的一种。
表 3-1 四级成熟度模型所具备的特性比较 可配置 level1 level2 level3 level4 × √ √ √ 高性能 × × √ √ 可伸缩 × × × √
3.3.1
第一级:定制开发
图 3-1
第一级成熟度模型
9

中国移动通信集团设计院有限公司
第一级成熟度类似于 ASP(Application Service Provider)所采用的软件交付模式。 在这种模式下,软件服务提供商为每个客户定制一套应用软件,并为其部署。每个客户 使用一个独立的数据库实例和应用服务器实例。数据库的数据结构和应用代码可能都根 据客户需求做过定制化修改。这种模式相对传统软件,差别仅仅在于商业模式,在应用 架构上没有任何差别。 符合这一级成熟度的系统,每个客户拥有一个为其定制的应用实例,这一单独的实 例运行在 SaaS 服务提供商的硬件之上。从系统架构而言,这一级别的 SaaS 系统和传统 的本地安装软件非常相似,同一客户的不同终端用户使用客户端软件连接同一个应用实 例,但这一客户实例和服务提供商同时运行的其它客户的应用实例相比是完全独立的。 因此,传统的服务器-客户端的应用可以在花费少量开发资源和无需重新设计整个 架构的前提被改造成符合这一级别的 SaaS 模式的系统。虽然相比起其它更为成熟的 SaaS 模式的系统,这一类型的系统所能给 SaaS 服务提供商带来的收益有限,但它确实 可以让 SaaS 服务提供商通过整合服务器硬件和管理来降低成本。 实际上传统的 C/S、 B/S 软件在商业模式上做出相应的改变,就符合该模型。这种模式下,对于每个客户需要为 其定制发、单独部署等等,因此很难达到规模效应。 3.3.2 第二级:可配置
图 3-2
第二级成熟度模型
第二级成熟度模型是在第一级的基础上的改进,也就是针对每个客户的定制化通过 可配置的方式实现,而不需要通过定制代码、数据库结构来实现。这种模式要求软件开 发商在设计应用的时候已经考虑了扩展性,所以针对不同需求的客户,可以采用灵活的 配置来响应。这种模式下每个客户依然有独立数据库实例和应用服务器实例,但是每个 客户的实例都是相同的版本,通过不同的配置来满足客户不同的需求。符合第二级成熟 度的系统,每个客户各自拥有一个单独的应用实例,但不同之处在于第一级中的用户实
10

中国移动通信集团设计院有限公司
例是根据每个客户的需求单独定制的,而在这里,每个客户使用相同的代码。SaaS 服务 提供商通过详细的具体配置选项来允许客户改变自身应用的外观和系统行为。尽管如 此,不同的应用实例之间还是保持完全独立运行。 将所有客户的应用实例集中于同一代码库之下极大的减少了对于 SaaS 服务提供商 的服务需求,因为此时对系统代码任何微小的改变都会立刻影响所有的当前客户,这下 也就可以节省为每个客户的应用实例单独升级或修改的成本。 同第一级模型类似的是,符合第二级成熟度模型的系统一样需要 SaaS 服务提供商 准备足够的硬件和存储空间来支持潜在的大量的同时运行的应用实例。 这种模式相对第一级成熟度模型可以降低定制开发的成本,但是由于其部署、维护 还都是独立的,还是很难达成规模效应。 3.3.3 第三级:高性能的多租户架构
图 3-3
第三级成熟度模型
在应用架构上,第一级和第二级的成熟度模型与传统软件没有多大差别,只是在商 业模式上符合 SaaS 的定义。第三级的成熟度模型就是单实例多租户,SaaS 服务提供商 部署一个应用的实例即可满足多个客户的要求,同时通过可配置的元数据来给每一个客 户提供不同的用户体验和功能。可配置的权限控制和安全策略确保了每一个客户的数据 被单独存放且与其它客户的数据相隔离。因此,从最终用户的角度出发,他们将感受不 到所使用的应用实例也在同一时间为其他客户所共享。 在第三级模型下,随着 SaaS 服务供应商业务的发展和客户的增多,无需通过提供 更多的服务器资源来运行更多应用实例,可以用同样数量的服务器资源为更多的客户服 务,从而比起前两级成熟度模型的系统,更有效的利用了硬件资源,降低了运营成本。
11

中国移动通信集团设计院有限公司
3.3.4
第四级:可伸缩性的多租户架构
图 3-4
第四级成熟度模型
第四级成熟度模型相比第三级成熟度模型,系统扩展为多租户多实例,最终用户首 先通过接入租户负载均衡层被分配到不同的实例上,通过多个实例可以实现应用的近似 无限水平扩展。 在第四级成熟度模型中, SaaS 服务供应商将通过运行租户负载均衡平台来为众多的 客户同时服务,每个客户的业务数据将被单独存放,同时提供使用可配置的元数据来为 每一个客户提供其自身需要的独一无二的用户体验。符合这样一个成熟度的 SaaS 系统 将可以轻易支持一个相当大的客户数目,这是因为在其后台运行的服务和业务实例可以 在不修改系统架构的基础上随着需求动态的增加和减少,任何的系统变动和修复可以轻 而易举的同时作用于数以千计的客户环境中,就如同只为单一客户服务时同样简便。 3.4 SaaS 成熟度模型的选择 虽然从应用架构的角度,同时具备可配置性、高性能和可伸缩性的第四级 SaaS 成 熟度模型是最为理想的应用架构。 但是综合商业需求、 实现成本及复杂度等各方面考虑, 并不是所有 SaaS 应用都必须达到第四级成熟度。具体每个应用应该选择哪个级别的成 熟度模型,需要综合考虑。需要考虑的因素可能包括: ? 应用所面向的客户群的特征与需求 ? 应用租户数量级别 ? 开发商能力及开发/改造成本 3.4.1 应用所面向的客户群特征与需求
首先需要考虑用户是否愿意接受共享应用的模型。很多场景下,部分大客户可能愿 意花费更高的成本来保证其应用的独立性、数据安全性。 其次用户的个性化需求是否强烈。尽管,Salesforce 等一些在 SaaS 领域非常成功
12

中国移动通信集团设计院有限公司
的公司,都将 SaaS 应用的可配置性作为其产品的一个突出的卖点。但以中小企业为目 标客户群,以用户体验简单易用为突出竞争优势的 SaaS 应用,是否需要强大的可配置 性需要进一步考虑。相对于基于元数据实现 SaaS 应用可配置性所付出的架构复杂度和 成本而言,许多 SaaS 类型的应用,并不需要过早考虑可配置性方面的问题 3.4.2 应用租户数量级别
成熟度更高的 SaaS 产品在开发成本上会更高,但在每租户的运行维护成本上会降 低,因此租户数量是决定你选择怎样的成熟度模型的一个重要因素。如下图所示,租户 数量与 SaaS 产品综合成本之间的关系。
图 3-5 第一级与第三级成熟度模型在不同租户量下的综合成本比较 单位:万元 数据来源:阿里软件
虽然在大量租户下, Multi-Tenant 架构的规模效应会得到显著体现。 但是当租户数 量很小,且短期内目标用户群不会发生太大变化时,就需要在传统应用改造成多租户架 构所需要付出的成本与带来的收益间进行权衡。根据阿里软件的判断,当租户数量小于 10 的时候,多租户架构带来的收益并不大;而当租户数量大于 50 之后,多租户架构则 是 SaaS 应用的必然选择。 如下图所示,当租户数量增加到一定程度后,如果无法实现水平扩展,则仅能够通 过向上扩展来提升系统容量和性能,这种情况下每租户的平均硬件成本会显著上升。而 在实现了伸缩性架构之后,虽然初始架构复杂度会增加,开发成本更高。但在大规模的 租户数量下,其水平扩展能力能够保证每租户的平均综合成本不会随着租户数量的增加 而显著上升。
13

中国移动通信集团设计院有限公司
图 3-6 第三级与第四级成熟度模型在不同租户量下的综合成本比较 单位:万元 数据来源:阿里软件
3.4.3
开发商能力及开发/改造成本
开发商的开发能力也是在选择合适 SaaS 成熟度模型时所必须考虑的,更高的成熟 度模型意味着更复杂的结构、更高的开发/改造成本,也是在具体应用中需要综合权衡。 总之,并不是 SaaS 应用成熟度越高就越好,需要根据具体的场景,选择最合适的 技术,选择最合适的成熟度模型。 3.5 SaaS 系统关键技术介绍 其实传统应用与 SaaS 应用从架构层面来分析,最重要差别就是多租户模式,多租 户就是说多个租户共用一个实例,租户的数据既有隔离又有共享,说到底就是如何解决 数据存储的问题。 3.5.1 数据存储多租户方案
现在 SaaS 多租户架构在数据存储上存在三种主要的方案: ①. 方案 1:独立数据库 这是第一种方案,即一个 Tenant 一个 Database,这种方案的用户数据隔离级别最 高,安全性最好,但成本也高。
图 3-7
独立数据库
14

中国移动通信集团设计院有限公司
优点: 为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租 户的独特需求;如果出现故障,恢复数据比较简单。 缺点: 增大了数据库的安装数量,随之带来维护成本和购置成本的增加。 这种方案与传统的一个客户、一套数据、一套部署类似,差别只在于软件统一部署 在运营商那里。 ②. 方案 2:共享数据库,隔离数据架构 这是第二种方案,即多个或所有租户共享 Database,但一个租户一个 Schema。
图 3-8
共享数据库,隔离数据架构
优点: 这种模式相对比较容易被实现,而且从数据扩展性而言,这种解决方案和独立数据 库一样,客户可以相对自由的对其中的数据结构进行新增和修改。一般在最初创建该客 户的模式时,系统会预先创建一整套默认的数据结构,但在那之后,客户可以对其做个 性化的修改来符合其实际业务需求。 方式 2 在数据共享和隔离之间获得了一定的平衡,既借由数据库共享使得一台服务 器就可以支持更多的客户,又在物理上实现了一定程度的数据隔离以确保数据安全。 这种模式比较适合应用在每个客户拥有比较少的表数量的情况下,可以在每台服务 器上支持比独立数据库方式更多的客户数量,减低了服务供应商的运营成本。 缺点: 当系统出现异常情况需要将历史备份数据重新恢复的话,流程相对复杂。因为如果 每个客户拥有独立数据库,那么只需恢复该客户最近的数据库备份即可。但在独立数据 架构模式下,如果简单的恢复数据库备份,那就意味着数据库内所有客户的数据将一同 被恢复,无论该客户是否数据受损或需要做数据恢复。因此,如果系统管理员希望恢复 某个特定客户的数据,需要将数据库的备份解压到某临时服务器空间内,然后选定特定
15

中国移动通信集团设计院有限公司
客户的表数据将其覆盖到系统主数据库内,一般来说,这将是一项非常复杂且耗时的工 作。且每个租户之间的数据难综合共享,如果需要跨租户统计数据,存在一定困难。 ③. 方案 3:共享数据库,共享数据架构 这是第三种方案,即租户共享同一个 Database、同一个 Schema,但在表中通过 TenantID 区分租户的数据(见图 3-16) 。这是共享程度最高、隔离级别最低的模式。
图 3-9
共享数据库,共享数据架构
优点: 三种方案比较,第三种方案的维护和购置成本最低,允许每个数据库支持的租户 数量最多。如果希望以最少的服务器为最多的租户提供服务,并且租户接受以牺牲隔离 级别换取降低成本,这种方案最适合。 缺点: 隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;数据备份和 恢复最困难,需要逐表逐条备份和还原。 ④. 三种方案比较 从隔离和共享两个相反的方向比较,依次是方案一、方案二和方案三,如何选择取 决于产品的定价策略和租户对数据安全的接受程度。
表 3-2 模式 独立数据库 共享数据库,隔离数据架构 共享数据库,共享数据架构 三种数据存储方案比较 隔离级别 高 中 低 共享级别 低 中 高 安全性 高 中 低 成本 高 中 低
3.5.2
基于方案 3 的 SaaS 多租户设计
现有系统改造成 SaaS 多租户的重点在于租户管理和数据隔离。租户管理:包括注 册、订购、计费等;数据隔离:变更表结构,增加 TENANT_ID 字段等。
16

中国移动通信集团设计院有限公司
①. 租户管理 SaaS 模式的系统可以服务于各类租户, 允许不同客户通过互联网随时随地开通、 订 购和使用产品,需要在原有系统中增加租户管理管理功能。
图 3-10
租户与用户
Tenant:租户;User:租户下的用户账号,一个租户下可以有多个用户账号。比如 一个公司中可以有多个员工的帐号。Tenant 的 status 属性用于定义租户的当前状态: 待审核、已审核、启用、禁用、取消等。登录时必须判断租户的状态,只有处于“启用” 状态的租户才能登录进入系统。 同时要增加针对租户的业务订购、统一计费等相关功能模块。 ②. 数据隔离 数据隔离即每个租户只能看到自身的相关数据,无法查看其他用户的信息。因此需 要为每个要隔离的业务表加上 TENANT_ID 字段以实现租户数据之间的隔离,这是最通常 的做法。TENANT_ID 属性是 SaaS 多租户模式相对于传统模式最大的不同点。 3.5.3 应用可配置
SAAS 应用要求实例本身在不同的应用环境下有很强的配置能力。 具体说来, 需要对 以下三个方面提供配置能力: ? 数据可配置 ? 功能可配置 ? 界面可配置 ①. 数据可配置 在实际应用中,不同租户之间需求的差异导致系统需要针对不同租户保存许多扩 展性数据。在传统应用中,可以通过定制实例,增加客户的扩展数据,来满足其个性 化要求。在多租户 SaaS 应用中,如果采用上述方案 3(共享数据库、共享数据架构)
17

中国移动通信集团设计院有限公司
来实现数据存储,所有租户都使用同一个数据架构,常见的解决办法就是实现扩展数 据的可配置。常见的有三种方案: ? 定制字段 定制字段就是根据客户的需求在数据表上增加相应的定制字段来保存扩展数据。 例如,根据客户 1 的需求,在客户表中增加来源 C3 字段 ,用来存储位置信息。这种 方式的缺点就是随着客户的增多,客户表的字段数据将会变的非常多,一个客户定制 的字段对于另外一个客户来说是毫无意义的,严重破坏了数据表的结构。但是其不需 要处理复杂的数据延伸。
表 3-3 定制字段数据示例 TenantID 1 2 3 4 Name 张三 李四 王五 赵六 Department 综合部 市场部 技术部 网络部 C1 null 员工 null 经理 C2 null null 2000 4000 C3 济南 济南 null null
? 预定义字段 预分配字段是指在用户可能有扩展需求的表中预设一定数量的字段。当用户提出 扩展需求时,使用其中的一个或者多个字段来保存扩展数据。从数据存储来看是没有 问题,但展示数据的时候如何将数据转换成原有的真实数据类型?比如对租户 1、2, C1 字段的含义是城市,需要转化成字符串类型;而对租户 3、4,需要转换成整数类 型。这就需要单独定义一个配置元数据的数据表来保存相关预定义字段的含义和类 型。对于不同租户使用的各表中的每一个扩展字段,分别保存一条配置记录。
表 3-4 TenantID 1 2 3 4 Name 张三 李四 王五 赵六 预分配字段数据示例 C1 济南 济南 2000 4000 C2 null 2000 员工 经理
Department 综合部 市场部 技术部 网络部 表 3-5
预分配字段元数据 Column c1 c2 c1 c2 Content location salary salary post DataType string int int string
ConfigId 1 2 3 4
TenantId 1 2 3 4
Table staff staff staff staff
预分配字段的缺点是无法事先确定预定义字段的数量。在预分配字段的总个数不 大于单个租户要扩展的字段个数情况下,就可以满足客户的数据可配置需求。
18

中国移动通信集团设计院有限公司
? 名称值对 名称值对的方式将扩展数据的保存和原数据表分离,另外用一个统一的扩展数据 表来保存。扩展数据表将数据表的横向扩展列转换为纵向的数据集,将每一条原始数 据记录的一个扩展字段,都保存成一条扩展数据行。将数据表中的数据记录与配置元 数据表中的配置记录关联, 构成扩展数据记录。 可以提供无限数量的自定义扩展字段。 但是其增加数据操作的复杂性,查询时也要多次访问数据库才能得到完整的业务数 据。这些都会影响数据访问性能。
表 3-6 TenantID 1 2 3 4 ExtensionId 1 2 3 4 5 ID 1 2 3 4 5 Name 张三 李四 王五 赵六 TenantId 1 2 2 3 4 RecordID 1 2 2 3 4 名称值对关联结构表 Department 综合部 市场部 技术部 网络部 content location location salary salary post ExtensionID 1 2 3 4 5 RecordID 1 2 3 4 DataType string string int int string Value 济南 济南 2000 2000 经理
②. 功能可配置 对于 SaaS 应用,面对为数众多的租户,大部分租户可能只会使用到应用中的部分 功能。因此系统需要支持租户有选择的使用自己需要的功能,满足功能可配置要求。 ? 原子功能划分 要实现功能可配置,首先需要将整个系统的功能进行分解。整个应用需要分解成最 基本、相对独立、互不重叠的原子功能。所有原子功能叠加起来,就是整个应用所提供 的全部功能。 进行原子功能划分,首先就是功能分解,即将整个系统的功能分解成最基本的相对 独立的原子功能,应遵循以下几个原则:
19

相关主题
相关文档
最新文档