程序员人生 网站导航

在IT系统中使用多租户技术提供人员跨部门及虚拟团队的解决方案(草稿)

栏目:互联网时间:2014-11-05 08:13:59


1 前言

        经过量年企业信息化建设,逐渐构成的办公系统中还有9个部门业务网站子系统、9个专业利用子系统、20个独立信息模块、330个流程。这些系统或模块分别搭建在Microsoft IIS、Apache Tomcat、Weblogic、Cordys BOP上,相互彼此独立、互不影响。

        在不斟酌重复投资、资源同享、便于运维的情况下,仍存在1些长时间很难解决的问题:

        (1)、各个系统的组织、账号不统1,保护困难;
        (2)、在1些系统或模块中,对人员跨部门的情况,仍以两个及以上账号的方式处理,不但业务不直观,而且操作性比较差;
        (3)、虚拟团队支持都是通过开发编码处理,实行周期较长,缺少灵活性。

        由于云计算议题的发热,在IaaS虚拟化资源池和共用的数据中心内,如何以单1系统架构与服务提供多数客户端相同乃至可定制化的服务,并且依然可以保障客户的数据隔离,让多租户技术成为上述需求提供1套解决方案。


2 多租户技术概述

2.1 多租户技术概述

        参考百度百科的定义,多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是1种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。

        多租户技术源于1960年代,许多公司为了要使用更多的运算资源,向持有大型主机(Mainframe)的供应商租用1部分的运算资源,而这些用户常常会用到相同的利用程序,当时会以用户在登录系统时输入的数据来决定用户的帐户ID,基于这个ID,Mainframe的供应商便可利用此ID来计算运算的资源使用量,包括CPU,存储器与软盘或磁带等,这个作法也被SAP公司用在其R/1到R/3的产品线。

        到了1990年代,利用程序服务提供者服务(application service provider)模式出现,它的作法与运作模式与租用大型主机时相同,不过租用的资源是在软件上,除操作系统之外也包括了其上的利用程序,例如ERP系统或是CRM等利用,系统可能会运行在数台不同的机器上,或是在相同的主机但同享不同的http://www.wfuyu.com/db/,以辨别并计算客户的资源使用量,藉以作为计费的标准,而此技术也有效的缩减供应商的实体机器本钱(由于可以在1台电脑上同时运行多个用户所租用的利用程序进程)。到了现代,受欢迎的消费者导向Web利用程序(如Hotmail或Gmail等)也是以单1利用程序平台来支持所有的用户,这已是多租户技术的自然演变的结果,多租户技术也能够让客户中的1部分用户得以进1步定制化他们的利用程序。

        在虚拟化(virtualization)技术的成熟与利用性的扩大之下,多租户技术可以驾驭虚拟化的平台,更强化在用户利用程序与数据之间的隔离,让多租户技术能更加发挥它的特点。

        在功能上,SaaS利用需要完成利用需求中的功能要求。这与传统利用之间是没有任何分别的。除此以外,SaaS利用最重要的1个特性就是支持多租户。这1点特别对面向企业的SaaS利用来讲是必须的。

2.2 Gartner提出的7种多租户模型


        下面,我们就来看看在SaaS利用搭建进程中,可以采取甚么样的多租户模型。从而能较为清晰地了解未来使用PaaS平台开发的SaaS,可以为用户提供哪些多租户的服务。
        Gartner提出了7种多租户的部署和实现方式模型,该模型可以作为任何多租户环境的参考模型。在具体的实行中和大型企业中,可以根据本身的需要来决定采取Gartner提出的何种多租户模型,或几种多租户模型可以并存在1个云环境中。
        我们首先来看1下Gartner提出的这7种模型,然后再根据本次项目的实际情况,提出使用工作流引擎产品搭建何种多租户模型设计。
        首先,Gartner依照4个层次对多租户模型进行划分,即基础设施层(主要是指各种http://www.wfuyu.com/server/)、数据层(即http://www.wfuyu.com/db/层)、利用平台层(即利用运行的容器,通常也称为利用http://www.wfuyu.com/server/)、和利用逻辑层(即利用功能)。以下图所示:


        第1种模型称为“Shared Nothing”,即不同享任何资源。在这类模型中,从最底层的基础设施层,1直到最上真个利用逻辑层,每一个租户均独享。这类模式也是传统的IT开发和部署模式。

        第2种模型称为“Shared Hardware”,即同享硬件资源,所有硬件http://www.wfuyu.com/server/会构成1个硬件资源池,所有租户根据需要来同享这些资源。这类模式就是现在比较常见的IaaS模式。
        第3种模型称为“Shared OS”,即同享操作系统。在这类模型中,所有硬件资源均安装有相同的操作系统,通过在租户间切分和分配操作系统的进程来实现对计算资源的同享。与第2种模型1样,这类模型也主要集中在对底层计算资源的同享和分配上,而更高层次的内容均是各个租户独享的资源。需要单独购买和部署。

        第4种模型称为“Shared Database”,即同享http://www.wfuyu.com/db/。在这类模型下,所有租户会同享1个http://www.wfuyu.com/db/,各个租户自己的利用http://www.wfuyu.com/server/和运行于其中的利用会使用同享http://www.wfuyu.com/db/中为该租户划分的数据资源。

        第5种模型称为“Shared Container”,即同享容器。注意,在这类模型下,各个租户只是同享利用的运行容器,而利用对应的http://www.wfuyu.com/db/都是各个租户独享的,这1点与第6种模型是根本性的区分。在这类模型中,要求利用运行的容器是支持多租户访问的,即容器本身可以智能化的辨别来自各个租户的要求。

        第6种模型称为“Shared Everything”,即全同享。在这类模型中,所有租户自顶向下同享所有资源。对提供服务的1方来说,可以最大限度的利用各种资源,并且依托支持多租户的利用容器,也能够只开发1套程序,部署1次,即可满足所有租户对公共利用的需要。

        第7种模型称为“Custom Multitenancy”,即定制化的多租户。在这类模型中,实现多租户的方法是在利用逻辑中改造已有的API,增加租户的维度。但是这类模式仅仅是对某1个利用起作用,由于没有使用支持多租户的利用http://www.wfuyu.com/server/,但是又想让各个租户同享利用容器,所以不能不在利用逻辑中做文章。

        在信息平台建设中,应当根据具体客户的需要,来构建恰当的多租户模型,为其提供所需的不同服务级别的SaaS利用服务。对需要更加经济型SaaS利用的客户群,可以提供第6种多租户模型的利用,而对需要更高数据隔离和计算资源需要的客户群,则可以提供第5种多租户模型的利用。


2.3 多租户利用特点

        (1)用户定制
        用户可根据自己的需要自行定制利用程序;
        应允许多个版本同时运行。

        (2)同享实例
        方便部署与管理;
        易扩大;
        为数据集成提供便利。

        (3)利用隔离、数据隔离


2.4 多租户使用处景

        下图为多租户使用目标场景,利用及其部署隔离、http://www.wfuyu.com/db/隔离并采取不同的http://www.wfuyu.com/db/。

        例如,市场经营部门,租用业务流程和专业利用两个业务利用。那末,市场经营人员登录系统后,就能够见到业务流程和专业利用两个利用菜单,有相应权限进行业务操作,业务权限由业务利用管理员进行配置。




3 使用多租户技术实现人员跨部门及虚拟团队功能

3.1 引言

        在信息系统设计中,系统人员存在跨部门情况,也属于常见的现象,通常通过组织管理、角色管理来解决,而当系统逐步庞大起来后,这类解决方案将更趋于复杂,灵活性下降的情况。

        如本文开始所描写的多个独立系统,也是Gartner第1种模型所称为“Shared Nothing”的情况,这是逐一解决的。

        而如今信息化普及情况下,信息系统愈来愈庞大、复杂,初期的内容需要整合到统1平台上,采取“发热级的”云技术架构,这时候,人员跨部门、虚拟团队的解决方案就比较突出了,如何解决更公道呢?


3.2 使用多租户技术的解决方案

        使用多租户技术的解决方案,严格的来讲,不单单是技术方案,而且还包括管理方案。这样,先从技术方案说起。

        (1)在目标业务运营平台上,应存在统1用户账户服务、统1待办任务服务、租户服务。

        统1用户账户服务,是业务运营平台上所有利用的只有1套用户账号和标准组织机构;

        统1待办服务,是针对流程利用的,所有流程利用的待办,都由统1待办服务提供;

        租户服务,是需要平台提供的租户租赁开通管理。

        (2)以下图所示,在租户内容部署利用,如果某个租户有个性化需求,则在原利用版本上个性化新版本,在新的租户上使用。

        按此原理,业务利用通常包括1个基础版本,其他的为拓展个性化和版本,而不是1个大而全的版本,这样,相干的人员跨部门、虚拟组织的功能,做为服务,在利用内解决。        

        如果,从管理方案上说。

        (1)跨部门、虚拟组织,常常是临时性的,或有期限的,这样,从管理角度,新建租户,为临时组织提供相干服务;

        (2)对特殊的多重身份、职能的结构和个人,则建立专用租户,用于解决跨部门、虚拟组织的需求。



3.3 多租户使用举例

        (1)用户使用利用的进程

        以下图所示,用户通过统1组织目录登录系统,获得用户基本信息和权限(利用菜单入口),通过菜单进入开通的利用,这时候,可以获得此利用下的角色权限(用于处理虚拟组织),按虚拟组织角色起草公文。



        (2)用户处理待办任务的进程

        以下图所示,用户通过统1组织目录登录系统,获得用户基本信息和权限(利用菜单入口),通过统1待办读取待办任务,在待办任务中包括租用利用信息,由此直接定位到具体利用功能点,进入开通的利用时,可以获得此利用下的角色权限(用于处理虚拟组织),按虚拟组织角色审批公文。



        综合上述使用进程分析,虚拟组织、人员跨部门,可以进行统1管理。统1管理的概念仅限技术层面,便于在统1业务运营平台上利用。在业务利用是为虚拟团队服务的视角下,应当为虚拟团队开通租户,为虚拟团队部署相干业务利用;在虚拟团队可使用某利用的视角下,在利用里建立虚拟团队的角色组。

        其中,虚拟团队的角色组(权限群集),应进行统1管理,分配给相应的利用里。

4 关于使用SaaS模式开发的思考

4.1 关于SaaS模式

        按百度百科的定义:SaaS是Software-as-a-service(软件即服务)。SaaS在业内的叫法是软件运营,或称软营。是1种基于http://www.wfuyu.com/Internet/提供软件服务的利用模式。1种随着http://www.wfuyu.com/Internet/技术的发展和利用软件的成熟,在21世纪开始兴起的完全创新的软件利用模式,是软件科技发展的最新趋势。

        SaaS不是云计算,云计算也不等于SaaS。SaaS是云计算上的利用表现,云计算是SaaS的后端基础服务保障。云计算将弱化SaaS门坎,增进SaaS发展。云计算利用直接剥离出去,将平台留下,做平台的始终做平台,做云计算资源的人专心做好资深的调度和服务。SaaS服务商只需要关注自己的软件功能表现,无需投入大量资金到后端基础系统建设。

        根据SaaS利用是不是具有可配置性,高性能,可伸缩性的特性,SaaS成熟度模型被分成4级。每级都比前1级增加3中特性中的1种。

  可配置 高性能 可伸缩
Level1 N N N
Level2 Y N N
Level3 Y Y N
Level4 Y Y Y

       (1)定制开发―Level1
        这类模型下,软件服务提供商为每一个客户定制1套软件,并为其部署。每一个客户使用1个独立的http://www.wfuyu.com/db/实例和利用http://www.wfuyu.com/server/实例。http://www.wfuyu.com/db/中的数据结构和利用的代码可能都根据客户需求做过定制化修改。(屡次开发)

       (2)可配置―Level2
        通过不同的配置满足不同客户的需求,而不需要为每一个客户进行特定定制,以下降定制开发的本钱。
但是,软件的部署架构没有太大的变化,仍然为每一个客户独立部署1个运行实例。只是每一个运行实例运行的是同1份代码,通过配置的不同来满足不同客户的个性化需求。
可配置性的比较通用的实现方式,就是通过MetaData(元数据)来实现。(1次开发屡次部署)

       (3)多租架构―Level3
        多租户单实例(Multi-Tenant)的利用架构才是通常真正意义上的SaaS利用架构,它可以有效下降SaaS利用的硬件及运行保护本钱,最大化地发挥SaaS利用的范围效应。(1次开发1次部署)

       (4)可伸缩架构―Level4
        将第3级的Multi-Tenant SingleInstance系统扩大为Multi-Tenant MultiInstance。终究用户首先通过接入Tenant Load Balance层,再被分配到不同的Instance上。通过量个Instance来分担大量用户的访问,我们可让利用实现近似无穷的水平扩大

        SaaS2.0模式要求服务运营商能够提供具有灵活定制、即时部署、快速集成的SaaS利用平台,能够提供基于web的利用定制、开发、部署工具,能够实现无编程的SaaS利用、稳定、部署实现能力。

4.2 使用SaaS模式的思考

        SaaS2.0模式正式企业用户所希望的目标系统。

        以下图所示,通过软件组件(信息发布、信息交互、信息展现、信息统计、UI复合)组装市场竞争信息利用,组装后的市场竞争信息利用提供给市场经营部门租户使用。这样的方案,最好使用SaaS2.0模式,先从架构功能说说。

        (1)利用展现界面可配置或按规则调剂,比较简易的方式是提供信息专栏模版,模版上栏目可配置;

        (2)功能组件按界面接口规范、服务接口规范(Webserice)设计、开发,便于适配组装;

        (3)功能组件粒度应当适中,便于管理和组装,可以这样定义原则: 业务完全性、界面展现模块化、技术服务专业性。




5 在运维管理中的思考

        采取多租户技术的平台及软件,系统必将复杂、灵活、多样,给运维管理带来1定的挑战性。因此,在设计时计划出运维管理,针对人员跨部门、虚拟团队的管理,可以从人员的运维管理入手。

        (1)人员变动

        调剂部门、调剂岗位、转入到不同公司是常见的运维工作。这样,围绕人员的调剂,管理其对应的租户、利用模块(利用清单)、角色、权限,以人为视角进行资源调剂,从原资源信息到目标资源信息调剂,并做好变动日志。

        (2)虚拟团队管理

        从运营平台的角度,统1的、系统的管理虚拟团队,包括团队成员管理、权限管理,这样也存在多角度交叉的问题,都需要在设计时斟酌全面。

        关于运维管理,限于文档篇幅和主题,就谈到这里,以后的文档中再讨论。


        最后,希望本文的讨论,对基于云计算技术进行企业信息化建设起到抛砖引玉的作用,由于时间匆忙,文字及逻辑欠缺的地方,方便时帮着指导12。


参考文献:

百度百科:多租户技术 

百度百科:SaaS模式

信息化建设适应当前改革的思考――简化流程与信息透明

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐