传统软件迈向“云时代”之路
来源:移动通信杂志 更新时间:2013-08-14
 以某套传统管理软件为例,阐述了其如何适应“云时代”要求而进行“云化”转型的过程,提出了传统软件向SaaS软件转型的三步曲:第一步,采用传统软件结合云计算IaaS的模式;第二步,实现多租户单实例的应用架构;第三步,实现高性能应用。改造后的传统管理系统可向各类企业提供统一的“云门户”,快速形成满足企业信息化需求的开放式集成化SaaS管理系统。
1 引言
    随着软件工业的迅速发展,实现各种功能的软件层出不穷,企业可选择的软件产品也是琳琅满目。在信息社会下,企业为了经营需要,必须购买相应的专业软件产品。为了支撑这些软件的运行,企业除了需要添置个人电脑、服务器和网络设备之外,往往还需要配备相关的IT系统维护人员。随着企业的不断成长壮大,业务需求越来越多并向精细化发展,传统的IT系统不能再像以前那样通过信息化为企业减少成本带来价值,反而导致了IT系统不实用、管理困难、成本超支等问题。广大的中小企业,面对传统的软件模式带来的高昂支出望而却步,不仅影响了自身的信息化发展,也使传统软件厂商的市场开拓陷入困境。而云计算的诞生,使整个IT产业重新找到了发展方向,在短短的两三年间就产生了巨大的影响力。
    云计算是一种企业基于互联网获取相关IT服务的增加、使用和交付的模式,企业可通过网络以按需、易扩展的方式获得所需IT服务。毫不夸张地说,现在全世界正在步入一个“云”的时代,硬件供应商、软件开发商、系统集成商、服务提供商纷纷试水云计算领域,整个IT产业将面临新一轮的洗牌和产业调整,这是让所有IT人不断创造、创新的一个大舞台。
2 云计算服务层次简述
    云计算有3种服务层次:IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务),国内云计算的投入大多集中在IaaS及SaaS层面。SaaS的核心概念是软件的服务化,即将软件看作一种服务,而不是一种商品。SaaS软件相对于传统软件,将原本由软件使用者承担的软硬件、网络、系统维护的费用,变为支付给SaaS服务提供商的租用费用。
    SaaS软件可给企业用户带来许多优点:无需安装、拿来即用,用户也无需维护;先天防毒,给用户省去不少麻烦;使用风险较低,相对于传统软件的一次性投入,成本大大降低;只要有网络的地方就可使用,而且用多用少完全由用户自己决定。SaaS也给软件商带来了新的机遇,可以减少软件商的销售成本,还能降低维护软件和客户服务的成本。更重要的是,SaaS带给软件厂商一种稳健的商业经营模式,可以让软件商和客户之间形成良性的循环,真正达到软件开发商和软件使用者双赢的目标。
3 传统软件向SaaS软件转型的三步曲
    传统软件向SaaS软件转型的过程中,遇到的重要挑战就是多租户的思维转变。传统软件的销售模式决定了软件的每一个运行实例单独服务于一个客户,因此对于性能、可配置性、伸缩性方面的处理策略都是针对单一客户设计的;而对于SaaS应用,为了最大化SaaS的规模效应,一般采用的都是多个租户共享一个运行实例的架构,即多租户架构。但是要将传统软件产品改造成具备可配置性、高性能和可伸缩性的高成熟度的SaaS应用,从开发成本、复杂性和团队开发能力来考虑,并不是一件容易的事。
    本文提出传统软件向SaaS软件转型的三步曲,进行分步式实施改造。
    3.1 第一步,采用传统软件结合云计算IaaS的模式
    现阶段云计算尚属新生事物,出于对安全性、保密性等因素的考虑,虽然对SaaS应用的需求很旺盛,但真正愿意马上使用SaaS软件来替代传统应用的用户并不多。在这种情况下,软件服务提供商需要为每个客户定制一套软件,并为其部署在云端,每个客户使用一个独立的数据库实例和应用服务器实例。通过云计算的IaaS服务,可以将硬件资源的利用最大化,降低硬件及运行维护成本。考虑到每个客户都有定制化的需求,软件的可配置性是这个阶段需重点关注的,从数据、功能、界面、流程4个方面提供很好的可配置性,来适应各种不同类型的租户的实际情况,见图1:
  130190235023313140_new.jpg (429×321)
图1 传统软件“云化”三步曲之一:实现可配置性
    为了更好地理解传统软件“云化”的三步曲,下面以一套传统管理软件的改造为例进行说明。
    这套传件在网络互联基础上采用了先进的B/S架构,是一套可移植的、面向对象的Java语言开发的管理软件。该软件以企业内部作业链为主线,以人力资源管理、财务管理、供应链管理、审计管理为载体,整合、优化企业资源,构筑企业精确化管理的机制与平台,满足各级管理层精确化管理的需要,为企业运营决策提供数据支撑。正因为采用了先进的设计理念,本着开放性、先进性、灵活性、可靠性和安全性的设计原则,系统在可靠、高效的基础上,具有较强的可配置性和扩展性。整个应用软件的体系架构如图2所示。
 130190235228314865_new.jpg (403×514)
图2 一套传统软件的应用体系架构
    本套传统软件是在三层结构的基础上设计而成的,三层结构技术将原来两层结构中客户端的大量事务处理逻辑或数据库服务器上的存储过程放到中间层来实现,从而减轻了客户端和数据库服务器端的负荷,保证了系统良好的扩充性和稳定性,并统一和规范了业务开发、管理和维护。
    由于采用了分层的结构,在设计阶段就充分考虑到系统的可配置性和可扩展性,所以这套传统软件要实现“云化”的第一步非常容易,除了做计费模式的改变(实现按需付费)外,应用架构上几乎不需要变化。
    3.2 第二步,实现多租户单实例的应用架构
    当租户规模达到一定数量时,要发挥SaaS模式相对于传统模式在降低成本方面的最大优势,必须实现多租户单实例的应用架构,这才是真正意义上的SaaS应用架构,也就是需要实施改造的第二步(图3)。实现多租户架构的关键是通过一定的策略来保证不同租户间的数据隔离,确保不同租户既能共享同一个应用的运行实例,又能为用户提供独立的应用体验和数据空间。改造多租户架构的方案有独立数据库、共享数据库独立数据结构、共享数据结构等,最常见的是共享数据结构的实现方法。
  130190235399954682_new.jpg (478×340)
图3 传统软件“云化”三步曲之二:实现多租户单实例
    本套软件在进行了“云化”的第一步后,随着租户规模的增加,可通过增加租户管理(包括注册、订购、计费等)和数据隔离(变更结构、增加租户ID字段)来实现“共享数据库,共享数据结构”的多租户设计。
 3.3 第三步,实现高性能应用
    在实现了多租户单实例的应用架构之后,随着租户数量的不断增加,集中式的数据库性能就将成为整个SaaS应用的性能瓶颈。如何通过一定的策略来满足SaaS应用水平扩展的要求,成为SaaS应用架构设计需要解决的问题。即在用户大量增加的情况下,无须更改应用架构,而仅需简单增加硬件设备,就可以支撑应用规模的增长,这就是第三步所要致力解决的问题。
    由于本套管理系统的架构采用了J2EE应用模式的三层架构,即前端是处理HTTP请求的HTTP服务器,中间是处理应用逻辑的应用服务器,而后端是实现数据存储和交换的数据库服务器;因此基于Apache的HTTP服务器,可以轻松实现负载均衡和集群。通过HTTP服务器的租户管理,按照租户的不同而实现服务请求的流量聚合和派发,将能实现在租户粒度上的SLA(服务级别协议)管理,见图4。
  130190235788156886_new.jpg (450×341)
图4 传统软件“云化”三步曲之三:实现高性能
4 结论
    云计算给传统IT带来的最大变革是颠覆了现有的商业模式。传统上,企业花钱购买软件,雇佣专业的IT人员进行管理;而IT厂商则是面对面地向客户推销自己的产品。在“云时代”,IT厂商可打造一个云平台,在这个平台上提供丰富的信息服务供企业用户选择。无论是来自平台商的还是第三方的信息服务,企业用户都可以按需购买,而且价格一定比企业自建系统优惠,这就是所谓的“超市”模式。
    通过“云化”三步曲改造后的管理系统可在云计算基础设施(IaaS)的基础上,向各类企业提供统一的“云门户”,企业用户可自由选购需要的信息服务,服务将包括财务管理、物流管理、人力资源管理、客户管理等应用;从而按照不同类型租户的实际要求,为租户便捷地选取和组合模块提供帮助,快速形成满足企业信息化需求的开放式集成化SaaS管理系统;也可以在政府的鼓励和政策扶持下,借助由电信公司、IT硬件厂商、软件提供商联合建设和运营的云计算中心,为当地几百个中小企业乃至全国的企业用户提供按需付费的云服务,降低中小企业信息化的门槛,提升中小企业的市场竞争力。