分享

ISV在SaaS转型中面临的技术挑战

 figol 2009-08-17
随着互联网的迅猛发展,把软件作为一种服务,通过internet来提供给最终用户正在逐渐成为软件行业的发展潮流。

  可以想见,在不久的将来,企业再也不需要花费巨大的成本和精力来维护复杂的IT系统,而是把这些都外包给专业的软件公司,然后通过购买相应的服务来获取IT支持。在这种高度的分工中,企业摆脱了IT技术的烦恼,专心于业务的发展,而专业的软件公司则专注于企业业务需求的分析和相应的IT支持。

  而对独立软件供应商(Independent Software Vendor,简称ISV)来说,SaaS模式意味着分发、部署软件的方式发生了根本的变化,而为了应对这种变化,ISV必须在软件架构上改变思路。

  SaaS模式与传统软件最重要的区别就是互联网和多租户,因此ISV最大的挑战也来自这两个方面,ISV必须应对把软件搬到互联网上以及单实例、多租户模式所产生的种种问题。

  SaaS生态链

  SaaS模式下,不仅企业和IT公司的分工更加明确,IT系统内部也会进行高度的分化。业界人士普遍认为在SaaS潮流下,未来的软件服务业会形成一个更加紧密的生态链。在这个生态链上,各个角色分工高度明确,他们互相支持,互相依赖,紧密合作,共同向企业提供更加高质量的服务。

  对于这个生态系统,微软的描述如图1所示。“最底层的‘Classic’Hosters提供底层的物理支持,例如机房、设备、带宽等;‘SaaS’Hosters则解决账户的结算,对ISV进行管理等运营支撑问题;中间的ISV则面向最终用户,提供相应的SaaS服务。”微软开发平台合作部经理吴淏这样解释这个生态系统。作为微软在中国研究SaaS技术的主要力量,吴淏所在的开发平台合作部一直在研究SaaS技术,并对微软的SaaS业务合作者提供技术支持。

  

图一:SaaS生态链


  通过进一步的分工合作,平台运营商承担起了软件在线运营的一系列艰巨的任务,提供服务性能和可靠性的保证,解决带宽、存储、运营的基础支撑,而这些都是高技术含量,高成本投入的。

  而ISV则可以在现成的运营平台上进行架构,这样就可以抛开那些面向互联网、面向服务的一些基本问题(例如SLA的承诺,安全性和带宽、服务器等),专注于单纯的应用开发和客户需求的满足。

  “实际上,在SaaS模式下,ISV还可以细分为两种角色,一种是专心做软件开发,向其他集成商提供软件和功能。另一种是做服务商,面向最终用户,提供SaaS应用。”苏州市软件评测中心平台合作部经理陈炼说道,他们的团队从2006年开始承担着微软和苏州软件园合作的SaaS孵化器计划。

  在微软描述的SaaS生态系统上,我们也可以看出,在面向最终用户的中间层存在着两种角色,一种是ISV,一种是集成商(Aggregators),集成商则把更多的精力放在对现有ISV提供的SaaS应用的集成上,通过哦集成形成新的服务。

  ISV的技术挑战

  单实例、多租户模型可以说是SaaS应用的本质特点,通过这样的模型,供应商实现了低费用,规模效应的商业模式。但是这就要求供应商能够承担多租户带来的挑战,一方面是多租户同时使用时的承载,另一方面还必须满足多租户不同的个性化需求。

  吴淏认为SaaS应用面临的三个最重要的挑战就是多租户、可配置和可扩展。多租户就是指要能支撑多用户同时在线使用。

  可配置是指当不同租户使用同一个SaaS应用时,租户可以根据自己的需求对此SaaS应用进行配置。通过在软件中提供自定义的功能让用户自主设置,从而避免了ISV为不同客户需求重新开发代码。

  “可扩展则指当用户规模快速增长时,或者当用户的需求发生改变时,能够通过对SaaS软件进行简单的扩展轻松应对。”陈炼解释道。

  根据这三个方面的发展程度,微软对SaaS应用分出了四个成熟度级别,如图2所示。

  

图2 SaaS应用的四个成熟度级别


  第一个成熟度级别就相当于原来的ASP模式,每个租户一个实例,每个实例都根据租户的特定需求进行开发,彼此不同并且互相独立。从技术角度来说,就是每个客户使用一个数据库、一个Web站点或者虚拟目录。数据库中的数据结构和应用的代码可能都根据客户需求做过定制化修改。

  第二个成熟度级别也是每个租户一个实例,但是这些实例都是基于一套相同的代码和数据结构,不需要根据每个用户需求进行重新开发,只不过在软件设计的时候已经考虑了可配置性,所以针对不同需求的客户,可以采用灵活的配置来响应。但是这些实例彼此也是相互独立的,各自为用户提供服务。从技术角度来说,所有客户都是使用一套安装包,数据库结构和一样。

  第三个成熟度级别则用一套实例来满足所有租户的需求,因此除了可配置之外,还增加了多租户特性,使得一套实例能够承担多租户同时在线使用,而所有客户的UI和应用数据是通过授权和安全策略等方式进行隔离。

  第四个成熟度级别则在实例和用户之间加了一个“租户导入均衡器”,对于租户来说,他看到的仍是一套实例,但是通过这个均衡器,这套实例所能提供的性能就更高了。例如不同的租户可能使用人数不同,有的租户使用者只有几人,而有的租户使用者有上千人,这时候向不同租户提供的服务就要考虑到承载能力的区别问题,这些服务也必然彼此不同。通过这个均衡器就能灵活应对这些问题。

  “当前大多数SaaS应用实际上都仍处在第三个级别上,微软中国、苏州SaaS孵化器和新宇软件合作开发出的SaaS应用Crab实际上也是在这个级别上的。微软正在研究第四个成熟级别的具体实现方式,不过在业界,现在都还没有成型的解决方案。” 吴淏说道。

   除了上面的三个挑战外,ISV在向SaaS方向转型时还必须考虑数据安全性、应用状态无关性等方面。在数据安全性上不仅要考虑网络传输的加密,还要考虑数据存储的加密。而这都是ISV以前从未遇到过的。

  从第三个成熟度级别开始所采用的单实例、多租户模型真正反应了SaaS应用的本质特性。在这种模式下对于后台的数据存储也存在着三种方式,分别是:独立数据库;共享数据库,隔离数据架构;共享数据库,共享数据架构。这三种存储方式带来的影响表现在是数据的安全和独立,可扩展的数据模型,可缩放的分区数据。

  独立数据库方式是每个租户对应一个单独的数据库,它的优势是实现简单、易数据恢复、更加安全隔离,缺点则是硬件和软件的投入相对较高,这种情况适合与对数据的安全和独立要求较高的大客户,如银行、医疗系统。

  共享数据库,隔离数据架构就是所有租户采用一套数据库,但是数据分别存储在不同的数据表集中,这样每个租户就可以设计不同的数据模型。它的优势在于容易进行数据模型扩展,提供中等程度的安全性,最大化利用每台数据库服务器的租赁性能。缺点则是数据恢复困难。这种情况比较适合对数据模型有独特需求,安全要求中等的客户。

  共享数据库,共享数据架构就是所有租户使用相同的数据表,并存放在同一个数据库中。它的优势是管理和备份的成本低,能够最大化利用每台数据库服务器的性能。缺点则是数据还原困难,难于进行数据模型扩展,另外所有租户的数据放在一个表中,数据量太大,索引、查询、更新更加复杂。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多