基于SaaS多租户云网站群的研究与设计
2020-11-26刘薇
刘薇
(广州铁路职业技术学院 广东省广州市 510430)
1 引言
我国逐步进入云发展成熟应用阶段,云计算将成为基础设施,各种应用需求都将从云端获得。这需要越来越丰富的云应用产品。但是,纵观我国的云计算应用产品,依旧过多的集中在云存储、云分享、云主机等业务比较的单一的IaaS 服务状态。当前在SaaS(Software as a service,软件即服务)软件领域[1][2],己有一大批优秀的知名软件公司如Salesforce,Google,Microsoft,IBM,亚马逊,阿里巴巴,八百客等在这个领域推出了自己的产品[3],但是一般都是面向特定应用的。
目前,全球网站数量数以亿计。网站建设包括软硬件购买、开发、部署和运维等过程。传统建站方式主要面临问题:(1)软硬件均需要购买,成本高;(2)专业人员开发,一定技术依赖性;(3)代码复用程度低,不支持自定义;(4)网站独立部署和运维,一定维护难度。[4]基于SaaS多租户云网站群是指基于云平台上提供SaaS 的网站服务,可较好地解决传统的建站和运维问题。
本文结合SaaS、多租户、网站群等相关技术提出一种通用SaaS 多租户云网站群的实现方法,提供以信息发布管理为主的云网站群为基础,实现精品课程云网站群,并设计开发了SaaS 多租户精品课程云网站群原型。如果要其它云网站群,如中小学网站,只需在云网站群管理平台扩展相关的业务功能组件。实验证明:SaaS多租户网站群使用单一网站实例,通过简单配置,让用户能以低成本和低风险的方式使用网站软件服务,并具备快速部署、资源重用等优势。
2 SaaS多租户云网站群应用模型及关键技术
SaaS 多租户云网站群中,企事业单位或个人通过网络租用具有可自定义配置的多租户网站,云网站群管理员根据需求分配业务组件及租户账号。租户通过浏览器登陆自己网站的后台管理系统,通过后台管理系统提供的业务组件及可视化的租户页面编辑器配置自己网站的信息栏目,内容管理,风格设计等页面内容,然后保存到SaaS 多租户应用的云平台中。租户网站的用户(访客)可以通过浏览器访问租户自定义好的网站,这种建站方式实现了租户快速编辑网站,而无需关心网站部署跟维护。
SaaS 多租户云网站群需要解决的关键技术有:
(1)多租户(multi-tenancy technology)技术。是SaaS 实现的核心技术。多租户环境下各个租户实际上使用的是同一个系统或程序实例,由于系统或程序的个性化能力的支持,租户之间是感知不到正在和其他租户共享一套系统或程序的,他们会认为自己在专用着这个系统或程序[5],多租户技术核心多租户数据库设计及数据切分技术。
(2)页面自定义技术。指满足页面展示的设计技术,租户只需要通过浏览器就像使用Office 一样可视化的编辑自己网站页面,并且按照自己的美学观点进行页面设计,包括页面布局、页面显示颜色、页面显示字段、页面编辑等等。
(3)云环境部署和资源调度:根据租户网站的负载变化和负载预测,自适应调度云资源的技术,实现云资源自适应调度。
3 SaaS多租户云网站群原型系统
3.1 系统体系框架
基于SaaS 的多租户云网站群运行在云平台上,划分为SaaS 层与PaaS,其中SaaS 层分为租户视图服务,网站业务服务,网站基础服务,PaaS 层分为多租户数据库系统,分布式文件系统,资源池监控,租户资源监控及租户自适应调度,最底层为云基础设施。SaaS 层是面向应用服务,所以用户需求会存在多样性,在云基础设施及PaaS 层因为客户需求的一致性,所以产品比较成熟,比如说Sina App Engine(SAE),本文SaaS 多租户云网站群是建立在成熟产品Sina App Engine(SAE)之上,不太合适?改为品高云平台Bingo Cloud 查一下实验室版本,系统应用架构。
访问代理与负载均衡:为所有租户及访问用户提供统一的云网站群访问入口。使用访问代理服务器将请求转发给内部的Web 服务器,让代理服务器将请求均匀转发给多台内部Web服务器之一上,从而达到负载均衡的目的。
租户视图服务:包括模板引擎,租户页面编辑器与租户页面自动生成器。该服务层提供给租户的一个配置该租户网站页面的窗口,租户通过页面编辑器定制或者选择模板配置初始化自己的信息,然后通过租户页面自动生成器自动生成所配置的页面。
网站群业务服务:主要包括基础业务服务和网站业务相关服务,其中基础服务作为平台的基石,主要包括了租户数据缓存,租户数据隔离,文件转换服务以及租户数据访问等;业务相关服务包括了租户管理服务组件,用户管理服务组件,身份认证服务组件,数据模型服务组件,行业可定制通用业务组件及站群管理服务等。网站群业务服务除了需要提供给用户软件服务之外,还需要负责系统业务逻辑处理,即业务请求处理和业务逻辑调用。平台业务服务是在基础服务层之上,但是不强制依赖于基础层。通过软件服务注册、授权的方式,解除服务之间的耦合度、增强可移植性,同时保证了底层逻辑变化不影响上层业务的运转。基础层中的租户数据隔离是为了支持单实例多租户,数据存储时为各个租户建立私有存储空间和共享存储空间,达到数据的隔离和共享。
数据存储与资源调度:数据存储主要为云化部署的多租户分布式、可伸缩云数据库系统与分布式文件系统。网站群自适应资源调度为多租户云网站群场景,根据租户网站的负载变化和负载预测,自适应调度云资源的技术。资源监控为采用虚拟机CPU 使用率、虚拟机内存利用率、虚拟机硬盘使用率作为特征值监控资源的使用状况与进行资源预警。
3.2 功能框架
基于SaaS 的多租户云网站群按功能分为四大部分:网站群门户、网站后台管理门户、运维和业务管理基础平台、业务功能平台。网站群门户是整个平台的入口,主要提供租户注册,平台管理员登陆,租户管理员登录,服务提供商登陆,业务功能展示,平台公告展示等功能。网站后台管理平台实现了租户根据通过浏览器就像使用Office 一样可视化的编辑自己网站页面。运维和业务管理基础平台实现业务及运行的基础服务。业务功能平台提供可供租户订购的业务功能组件,如内容管理组件、多租户论坛等,业务功能组件war 包的形式存在的,可以是平台提供,可以是第三方服务提供商开发提供,开发遵循平台规定,加入平台要经过审核,租户可以增加或者减少自己订购的组件的数目;并且对该租户所定制的组件进行管理。
业务功能平台具有可扩展性,同时开放接口,第三方服务提供商按照规范,将业务功能组件加入平台,这样使业务功能组件多样性,从而实现SaaS 服务的多样性。
3.3 多租户数据库结构及主要数据库设计
3.3.1 数据库整体结构
整个平台划分为多租户逻辑上较独立的各个工程,这些工程在数据层面是相互交织的,这里从较高的层面看待库结构的设计,总体分为基础库(整个平台共享):人员库、租户管理库、应用库、定制库、模板库、统计库、权限库、消息库,表结构一旦确定就不再变化,它们支撑的业务比较复杂且交织;内容管理应用库(CMS库)、业务功能组件及其可扩展性由权限库、应用库、定制库等实现。
权限库是租户、用户进行业务的行动依据,租户可以CRUD角色,租户可以在分配其他用户的角色;每个角色可以绑定一些租户定制的应用的权限;权限数据是在应用提交到平台后,调用平台API 注册到Authority 表中。
应用库存放审核过的业务功能组件,依据平台API 开发的网站应用需要平台管理员注册审核的过程,应用库中方有其记录,,将其应用的权限注册到平台的权限表中;经过上述过程的应用会在租户的注册页面出现,实现租户的按需定制。
定制库记录租户对业务功能组件的定制状况,租户通过注册页面定制自己的程序;租户通过管理后台增减自己的应用定制数量;平台管理员通过管理后台修改租户对应用的使用状态(status)。
CMS 库是平台的CMS 应用的库(应用个性化库),是平台本身提供的一个常用的业务功能组件。
3.3.2 内容管理应用基本库设计
此处CMS 视为平台的一个应用库实例,将用来构建平台的“平台公告”等栏目,同时可以用来满足内容发布类型的网站群建设需要。
租户可以通过嵌入的内容管理子系统元数据管理页面修改元数据;Menu 里面根据tenant_id 取出的数据将重建成一个栏目树,叶子节点关联Content 表中的记录;每个栏目显示的名称从Menu_Name 表中读取,租户可以修改配置;Content 记录更加is_exted标记决定是否要从CMS_Metadatd 表中查找扩展字段;从CMS_Metadata 表中查出的元数据继续从Ext_Valve 表中查到value 值,然后统一将基础数据和扩展数据组装成JSON 等对象。
3.4 多租户云网站群原型系统
信息发布为主的网站群是在总结各类信息发布技术和现有建站工具局限性的基础上研发的一种多租户架构的SaaS 多租户网站群平台服务。通过平台提供的CMS 业务组件,快速订制的SaaS 多租户云网站群,业务功能展示平所示,个性化网站建设快捷高效。
4 精品课程的云网站群应用实例
多租户精品课程云网站群在SaaS 多租户云网站群原型上进行的二次开发。某学校课程可通过租用可自定义配置的多租户精品课程网群系统用例,低成本拥有专属的精品课程网站。精品课程网站的基础计算存储、网站部署和网站运维以一种云共享的方式进行。
(1)页面管理包括:课程首页、一级子栏目页、二级子栏目页;管理操作包括:首页设计、首页编辑、子栏目页面增加、子栏目页面删除、子栏目页面修改、多级子栏目的增加、多级子栏目的删除、多级子栏目的修改。
进入相应页面编辑器定义配置网站,提供页面自定义界面,分为两部分:左侧为页面设计的工具条,右侧为像office 一样进行编辑自定义页面。
(2)租户可对自己空间进行管理:如发消息及邮件,班级论坛等,教师用户可以进行发布作业,查看、添加、修改及删除学生信息等,学生用户可以提交作业等。
(3)随访问量增加网站的负载扩展,不需要增加购置服务器、带宽、负载均衡设备等再部署,可以通过云平台的资源动态调度完成。
(4)可充分结合云平台运维管理能力,网站安全、运维服务统一由云平台运营商负责。
5 结束语
为了解决用户快速共享使用基于SaaS多租户云网站群。本文结合SaaS、多租户、网站群等相关技术,提出一种以信息发布管理云网站群原型,在扩展业务功能的实际网站群实现方法,以及在云环境部署运行。通过精品课程云网站群实例完成了可定义配置的应用,使多租户能简单快速配置建立各种课程精品课程网站,此项目已在华南范大学投入试用。从而验证了本文部署的实用性和有效性,对研究和开发SaaS 多租户云网站群有现实的奠基意义。