使用云技术升级改造现有应用系统的思考

时间:2023-01-04 15:03:00

    办公系统已经上线运行4年了,用户提出升级平台、公文(OA)应用与其它应用相互不影响的需求计划。

    其中,升级平台,就是在不额外采购Lisence的情况,平台产品就升级到云计算下的轻量级PaaS平台;公文(OA)应用与其它应用相互不影响正好是云计算下的租户隔离技术所能实现的。

    这样,需要考虑使用云技术升级改造现有应用系统,以适应轻量级PaaS平台。

1、前言

    所谓的云计算有两大技术,一个就是所谓的虚拟化,向下管理硬件资源;第二就是服务化,向外或者向上提供各种各样的服务。而本质上,这两大技术都属于软件技术。实际上软件技术的现状在我们谈到的三个层次都会逐步体现,在PaaS层面的相关模型,以及SaaS层面的多模终端接入等等这一系列的相关技术,大部分还在软件技术上。当然,这些软件技术主要还是集中在这个平台的运行支撑方面。

1.1、基于云计算技术,推进同网、同库、同平台的全局信息化,实现跨部门业务协同和资源整合


使用云技术升级改造现有应用系统的思考


    1、SaaS,软件即服务

    SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它是云计算领域发展最成熟、应用最广泛的服务。它是一种通过互联网,为用户提供软件及应用程序的服务方式。由于基于SaaS的软件只有在用户需要时才被使用,SaaS也被称为“按需”软件。SaaS模式大大降低了软件,尤其是大型软件的使用成本,并且由于软件是托管在服务提供商服务器上,减少了客户的管理维护成本,可靠性也更高。Salesforce是SaaS模式的典型代表。

    2、PaaS,平台即服务

    PaaS是Platform-as-a-Service(平台即服务)的简称,是把计算环境、开发环境等平台作为一种服务提供的商业模式。云计算服务提供商可以将操作系统、应用开发环境等平台级产品通过Web以服务的方式提供给用户。通过PaaS服务,软件开发人员可以不购买服务器的情况下开发新的应用程序。Google的App引擎,微软的Azure是PaaS服务的典型代表。 

    3、IaaS,基础设施即服务

    IaaS,是Infrastructure-as-a-Service(基础设施即服务)的简称,是把数据中心、基础设施硬件资源通过Web分配给用户使用的商业模式。IaaS领域最引人注目的例子就是亚马逊公司的Elastic Compute Cloud。IBM、VMware、HP等传统IT服务提供商也推出了相应的IaaS产品。值得一提的是,IaaS服务很好地实实现了云计算按需付费的理念,通过“弹性云”用户可只在需要时才接入这些基础设施资源,并只为自己使用的部分。

    对于CIO和企业主管来说,SaaS也好,PaaS也好都是服务企业运营的工具。如何利用这些工具更好地服务企业才是最重要的。

1.2、Gartner租户模型

    Gartner提出了7种多租户的部署和实现方式模型,该模型可以作为任何多租户环境的参考模型。在具体的实施中以及大型企业中,可以根据自身的需要来决定采用Gartner提出的何种多租户模型,或者几种多租户模型可以并存在一个云环境中。
    首先,Gartner按照4个层次对多租户模型进行划分,即基础设施层(主要是指各种服务器)、数据层(即数据库层)、应用平台层(即应用运行的容器,通常也称为应用服务器)、以及应用逻辑层(即应用功能)。如下图所示:


使用云技术升级改造现有应用系统的思考

    第一种模型称为“Shared Nothing”,即不共享任何资源。

    在这种模型中,从最底层的基础设施层,一直到最上端的应用逻辑层,每个租户均独享。这种模式也是传统的IT开发和部署模式。即每个客户均要采购硬件设备,然后在自己的硬件设备上部署其他三层。

    第二种模型称为“Shared Hardware”,即共享硬件资源,所有硬件服务器会形成一个硬件资源池,所有租户根据需要来共享这些资源。

    在这种模型中,主要采用底层虚拟化的技术将硬件服务器虚拟出多份,分配给不同的租户使用。但是其他层次上的内容就需要租户自己采购和部署了。这种模式就是现在比较常见的IaaS模式。

    第三种模型称为“Shared OS”,即共享操作系统。在这种模型中,所有硬件资源均安装有相同的操作系统,通过在租户间切分和分配操作系统的进程来实现对计算资源的共享。与第二种模型一样,这种模型也主要集中在对底层计算资源的共享和分配上,而更高层次的内容均是各个租户独享的资源。需要单独购买和部署。

    第四种模型称为“Shared Database”,即共享数据库。在这种模型下,所有租户会共享一个数据库,各个租户自己的应用服务器以及运行于其中的应用会使用共享数据库中为该租户划分的数据资源。

    第五种模型称为“Shared Container”,即共享容器。注意,在这种模型下,各个租户只是共享应用的运行容器,而应用对应的数据库都是各个租户独享的,这一点与第六种模型是根本性的区别。在这种模型中,要求应用运行的容器是支持多租户访问的,即容器本身可以智能化的区分来自各个租户的请求。虽然不同租户可能都调用同一个功能,即发送同一个API请求给该容器,由于容器本身可以分辨出租户的上下文,因此各个租户调用的请求不会互相混淆,而是会送到租户指定的数据源中,返回正确的数据,绝对不会出现数据泄露的问题。

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

    第六种模型具有最理想的伸缩性,对于公共应用是不二选择。而第五种模型具有比较好的数据隔离效果,因此对于租户特有的应用便是比较理想的部署方式。而其他几种谈到的模型由于没有使用支持多租户的应用容器,因此对于应用层面来讲就是传统的开发和部署方式。即便是公共应用,在这几种模型中,也需要给每个租户部署一遍,而且每个租户必须购买和部署对应的应用容器,无形中对资源也是一种不太合理的划分。

    第七种模型称为“Custom Multitenancy”,即定制化的多租户。在这种模型中,实现多租户的方法是在应用逻辑中改造已有的API,增加租户的维度。但是这种模式仅仅是对某一个应用起作用,由于没有使用支持多租户的应用服务器,但是又想让各个租户共享应用容器,所以不得不在应用逻辑中做文章。但是弊端也很明显,如果应用很多,那么每个应用都需要进行相应的改造,对于开发人员来讲,将要付出很多的重复性劳动,使得开发费用攀升。


2、PaaS平台及其上应用特点

2.1、PaaS平台介绍

    PAAS平台即(Platform-as-a-Service:平台即服务),把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了 PaaS(Platform as a Service)。
    1、aPaaS
    Application PaaS(aPaaS)应用平台服务是指用来托管与管理每一个应用程序服务和数据的平台。服务功能包括:为多租户应用软件运行优化的容器服务、持久性和内存数据管理、同类环境下服务的独立管理与独立安全、多语言开发工具、编程模型、内部编配与编排、元数据管理和以计费与优化为目的监控。
    2、iPaaS
    Integration PaaS (iPaaS)集成平台服务是指用来中介和集成aPaaS所托管与独立管理的应用服务的平台。服务功能包括多种可应用于异构分布部署服务环境的中介功能, 包括:注册和存储、策略管理、安全、应用和数据的集成、适配器、编排、编配、流程管理、合作伙伴社区管理、事件代理等等。集成平台既服务可以用来支持SaaS应用程序、云服务、基于aPaaS的应用程序之间以及在用户自己环境里的定制/套装应用程序与B2B集成等场景的集成。


2.2、PaaS平台上应用的特点

    PaaS为部署和运行应用系统提供所需的应用基础设施,所以应用开发人员无需关心应用的底层硬件和应用基础设施,并且可以根据应用需求动态扩展应用系统所需的资源。完整的PaaS平台应提供如下功能特点:

    1、应用运行环境

  • 分布式运行环境
  • 多种类型的数据存储
  • 动态资源伸缩
  • 统一应用技术框架

    2、应用全生命周期支持

  • 提供开发SDK、IDE等加快应用的开发、测试和部署。
  • 公共服务:以API形式提供公共服务,如队列服务、存储服务和缓存服务等。
  • 监控、管理和计量:提供资源池、应用系统的管理和监控功能,精确计量。应用使用所消耗的计算资源。

    3、集成、复合应用构建能力:

  • 除了提供应用运行环*,还需要提供连通性服务、整合服务、消息服务和流程服务等用于构建SOA架构风格的复合应用。

    4、多租户

  • 根据需求增加租户,调整资源是PaaS平台的核心特征。
  • 租户可参照Gartner租户模型。

    基于上述技术功能特点,此平台能为中小型企业、以及相当规模的公共事业单位提供应用服务,将是一个很好的选择。


3、盘活现有信息化资产

3.1、信息化资产现状

使用云技术升级改造现有应用系统的思考

    企业内部信息化资产基本用于内部业务,随着业务发展不停的升级、淘汰。其实,有些业务都是通用的,例如办公自动化(OA)通用性很强。A单位建、B单位也建,就这样很多;硬件内,特别是服务器,愚估计80%资源是闲置,为满足20%高峰所设计的。

    这些,在云技术兴起前,是必经的发展道路,从单机版软件、C/S版应用、B/S版应用逐步发展到SOA服务,有了云。

3.2、现有信息化资产在云技术下的价值

    现有信息化资产在云技术下,有多少价值呢?

    首先,业务需要连续发展,云技术只是技术层面的革新,也是业务发展的需求产物,业务的延续、再造是最大的价值;

    其次,应用是可以迁移的,把现有的业务迁移到云平台上,SOA架构的可能修改的少些,其他的就需要分析了,多数数据可以平滑迁移;

    再有,中间件的License,中间件升级后,支持云架构,此中间件下的应用很容易迁移,例如:Cordys C3版本下的应用,迁移到BOP4版本,云架构下;

    最后,硬件都是可以利旧的,现在很多中间件可以按用户方式计License,这样,按用户方式,可以利旧更多的硬件。

3.3、盘活现有信息化资产

    升级中间件,不需要单独再购License,迁移现有满足条件的应用到云平台上,数据库服务仍为原先隔离的数据库,原应用为云平台上的第一个租户,内部租户,条件成熟也可以租赁给外部客户,还能获得信息化额外收入。


4、PaaS平台上第一个租户

    对于PaaS平台上第一个租户,举例来说明。

4.1、系统现状

使用云技术升级改造现有应用系统的思考

    现系统是基于Cordys C3版本建设的,已经5年了,建设设计未考虑云计算,并做了点儿个性化,主要问题如下:

    1、办公公文、专业流程等业务未隔离,存在相互影响;

    2、系统应用业务5年的不停变动,系统逐渐变得脆弱;

    3、系统平台仅支持终端浏览器IE6、IE7、IE8(特殊改造才支持,管理界面不支持),而微软操作系统升级到Windows 8了,自带浏览器为IE10。

    仅仅上述原因就替换系统,投资是很大的,怎么办呢?而系统本身还是有很多优势的,主要优势如下:

    1、系统采用SOA架构,每个WebService都采用Soap协议,方便迁移;

    2、界面开发技术采用标准HTML和JavaScript(部分使用JQuery),其本质有很好的浏览器兼容性;

    3、业务方面支持全省集中式管理,流程是BPM。


4.2、升级系统平台,把原应用改造为系统平台上的第一个租户

    把现有Cordys C3版本升级到Cordys BOP4,因为Cordys BOP本身就是一个很好的PaaS解决方案,完全支持云计算,改造现有应用,去掉针对平台个性化内容,把公文管理做为一个租户,专业流程也单独做为一个租户,应用在一个平台上,数据是相互隔离的。

    1、租户与应用示意图

使用云技术升级改造现有应用系统的思考

    租户划分模型有很多,具体操作按需求进行分析,上图所示的是以地域来划分租户的;也可以按应用业务范围划分租户,也可以组合方式划分租户。


    2、系统架构

    系统架构基于Cordys BOP平台提供云计算解决方案进行设计的。主要特点如下:

    一体化平台:

    1)功能一体化,一套平台即包括从SOA到BPM到云计算的完整解决方案;

    2)架构一体化,Cordys平台的各个模块间全部采取统一的数据和消息传输标准,因此,在跨模块传输过程中,可以避免反复的打包与拆包过程,从而提供平台的整体效率。

    轻量级企业平台,Cordys BOP不但提供企业级平台要求的高可用性,伸缩性、安全性。而且还是轻量级平台,主要体现在:

    1)全B/S架构,只需要在服务端安装,不需要在客户端安装任何设计工具和插件,因此已于维护和升级;

    2)只需要一张光盘,在1个小时内就可以完成整个企业级平台的安装,安装过程简单。不需要购买多个模块,并进行复杂的安装过程。

    多租户,BOP平台内建多租户环境,不需要另行二次开发,配合SDF模块,可以获得完整的云管理和计量能力,迅速将BOP平台以及所集成的第三方应用变成可以对外运营的PaaS平台和SaaS应用。

    完整的端到端监控。

使用云技术升级改造现有应用系统的思考

    此架构中,业务数据与系统级元数据及运行数据分离,不同业务数据根据业务、管理需要也可以按租户模型进行隔离;

    在服务层按需包装或定制开发PaaS服务,例如:早期个性化定制AppToolKit中用户管理,需要重新设计开发成PaaS用户管理服务,替换掉原依赖LDap的用户、权限、角色管理模式;快速流程配置功能也需要重新定制服务等等;

    在应用层,可以分为企业内部应用服务、在线服务(对外),其中,企业内部应用服务可以基于SaaS模型进行改造。此系统的第一个租就是企业内部应用服务,例如省公司办公管理业务应用就是此系统的第一个租户。


5、基于PaaS平台上云应用的运营

5.1、运营模式方案

    此轻量级PaaS平台,首先,是满足企业内部服务需求,也是在投资最少的情况下,升级系统平台,以租户模式迁移原应用到升级后的平台上。在系统稳定后,有余力的条件下提供给市场部门。

    此方案是在统一平台上,数据库是内外隔离的,每个业务数据库也是隔离,也可以是不同的数据库,例如:Oracle、MySQL。

使用云技术升级改造现有应用系统的思考

    如果此方案适合通讯行业运营商内部实施,特别是省级规模。对内、对外提供主要服务有:

    1、PaaS服务有:流程服务、用户管理服务等;

    2、SaaS应用服务有:办公类应用服务,以及其他定制服务。


5.2、信息安全等相关问题处理

    1、云计算租户提供数据库隔离;

    2、系统平台提供服务级ACL。平台管理员可以对用户或角色能够访问和调用的Web Service进行权限控制,这样就可以在角色权限的基础上,对颗粒度更细的服务层面进行权限控制。而且,系统还支持数据级的ACL,可以指定用户或角色可以访问或无权访问的数据表、数据字段、甚至是符合某些条件的数据;

    3、支持对网络上传递的SOAP消息进行加密,并符合行业的开放标准Basic Security Profile中的WS-Security标准;

    4、支持基于NTLM、LDAP或自定义算法的用户身份认证方式;

    5、支持客户端与服务器之间采用SSL方式进行安全访问,保障信息安全;

    6、对于应用的隔离,一是主机隔离,在集群里,应用部署到不同的主机里(不能是系统租户);二是虚拟机隔离/或者叫服务容器隔离,应用部署到不同的服务容器里。


6、总结

6.1、把现有应用改造升级到PaaS平台上可行性

    1、把现有应用升级到云计算的PaaS平台上,理论上技术是可行的。

    在逐步迁移式升级过程中,通过业务梳理、管理整合、技术复用,可以设计出很多PaaS上的服务,为应用提供技术服务,迁移后的应用可以演化为SaaS服务。

    2、业务活动需求

    现有的业务系统需要改造,才能适应经营的需要,而直接改造各个系统,或集中式改造,都是缺少持续发展、与云计算对接的内容。


6.2、可以解决的问题

    1、避免业务间相互影响,各个业务系统可以独立运营管理;

    2、系统支持国际上通用的浏览器,例如:Internet Explorer、Google Chrome、FireFox等等。

    3、系统平台支持HTML5,将很容易支持手机应用;

    4、系统业务处理主要是通过Web Service完成,而且是标准的Soap格式,这样第三方平台很容对接,例如原系统所提供服务给UMAP平台,由UMAP平台提供办公应用手机终端支持。


6.3、结论

    升级改造现有系统平台仅仅是利旧资源和技术手段,重点还是研究运营平台,可以快速自行建设的轻量级运营云平台,阿里云、百度云不可复制,而轻量级运营云平台将可以在运营商内复制,面向客户群、提供服务也是主要面向中、小企事业单位。

    具体内容详见后续文章。


参考资料:

1、《阮志敏谈平台即服务PaaS 》http://www.infoq.com/cn/articles/rzm-paas-in-my-view

2、“第四届中国云计算大会”资料

3、Cordys公司技术解决方案