对话Sun资深架构师陈荣华:揭秘SaaS本质

liuyiming0 2009-02-19

【51CTO.com独家特稿】2009年2月19日,51CTO开发频道“SaaS时代的软件开发”专题活动邀请了Sun资深架构师陈荣华老师作客51CTO嘉宾聊天室,与网友们一同探讨SaaS时代的软件开发,就SaaS的基本概念、发展趋势以及SaaS与传统软件开发的区别等热点话题与网友深入交流。

对话Sun资深架构师陈荣华:揭秘SaaS本质

陈荣华:Sun资深方案架构师,具有15年以上的软件开发和管理经验。先后担任了信息技术主管,研发经理,研发总监等职位;带领开发团队研发了进出口业务管理系统、移动话务网网管系统、数据网网管系统等中大型业务系统。对CRM,SOA等系统和技术有较深入研究,他同时也是《SOA概念、技术与设计》一书的译者。他是UNIX的爱好者,平时以一台运行了Opensolaris的笔记本作为工作环境。目前他的主要研究方向有SaaS,HPC,SOA和Web2.0等。

SaaS的概念和起源

51CTO:首先请陈老师来介绍一下什么是SaaS ?SaaS是为解决什么问题产生的?

陈荣华:SaaS,Software as a Service,从字面上讲,可以称之为软件即服务。这个概念在互联网产生并成熟地运用到企业和个人的生活中去后,逐步清晰起来。当互联网技术和软件技术不断融合,并经过几个不同阶段的发展和进化,SaaS就应运而生了。

SaaS是IT业者从一个崭新的角度对软件的应用进行的诠释,指出了软件的服务于企业、服务于行业的本质,同时也为软件发展指明了方向,那就是服务。对绝大多数用户而言,软件是一种工具。用户实际上更关心软件的功能和处理能力,能解决什么问题。

SaaS的产生使得用户能够把精力真正集中在软件所确定的功能和业务流程上,而不需要再花时间去关心其他类似部署、维护方面的问题。SaaS可以看做是目前比较热门的云计算这个环境下的具体应用。

SaaS的应用场景和商业价值

51CTO:SaaS的应用场景定位在软件行业的那个层面?主要针对哪些行业和目标用户?或者说SaaS对哪些行业比较合适?

陈荣华:SaaS的应用场景相当广泛。根据国内外一些研究机构的研究,我们可以将SaaS的类型分为三类:

◆ 桌面工具类软件服务,此类软件服务以电子邮件等为典型代表,这类软件服务的特征是以工具软件为蓝本,通过互联网提供以面向个人为主的软件服务。电子邮件是软件市场上出现最早的软件服务。在后来的发展过程中,类似的软件服务不断涌现,如在线杀毒、在线办公、网络游戏等等。

◆ 企业管理类软件服务 ,此类软件服务以在线客户关系管理软件、在线进销存软件等为典型代表,此类软件服务的特点是以企业管理软件为蓝本,通过互联网提供以面向企业管理为主的软件服务。

◆ 应用开发类软件服务,此类软件服务以Web 服务等为典型代表,此类软件服务的特点是以应用系统开发工具为蓝本,通过互联网提供以面向软件开发人员为主的软件服务。Web服务将软件程序的功能封装成接口,放在网络上供软件开发人员使用。

还有一些形态也属于软件服务,它们利用其他媒介如移动设备(手机)等向外发布服务。对于此类服务,传播介质和手段的不同并不影响其软件服务的本质。 虽然这类的软件服务目前为止尚未发展到一定的规模,但随着移动商务等的兴起它们必定会在不久的将来在软件服务市场上占据一定的份额。

总体而言,工具类软件运营服务早已出现,现在发展已比较成熟。但管理类和开发类软件运营服务则处于刚刚起步的状态。

51CTO:SaaS应用和发展能为我们带来哪些商业价值?

陈荣华:就目前的情况来看,SaaS具有按需使用和收费的特点。SaaS应用不但是软件应用的新的发展方面,同时也提出了软件行业的崭新的商业模式。

SaaS使得用户的投资更加经济。在传统的应用环境中用户需要不停地增加机器,如果有一个应用需要增加,传统的方式就是去买机器,然后配置。用完了,过了使用的高峰时期,负载就降下去了,机器浪费在那里,可能需要花时间重新布置它。

例如很多机房中托管的服务器,实际的CPU利用率在10%一下。如果用虚拟化技术就不用重买机器,重新布署,而是用完了,就把虚拟机放回资源池。我刚才提到的虚拟化技术,也是SaaS应用的一个强大技术支撑。

SaaS提供更快的服务交付。按照传统的一二十前的做法,如果用户购买了软件,合同签署了,然后就需要去安装实施,去部署。部署完软件环境,才开始客户化的配置, 时间可能需要几个星期。对用户来说,第一需要相当长的实施周期和众多的人员;第二,也增加了厂商到市场的时间,开发定制的周期。所以用了SaaS,它可以帮助用户很快提供服务,或者开发工具,很快地把自己定制的软件包放上去,对用户来说,是时间也是金钱的节约。第三,对商业目标保持一致,把IT和商业用户捆绑在一起。因为用户可能有不同的需求。比如从市场上的反馈知道,用户需要这样的应用,需要在IT这边布置然后开发,花一笔钱做出来。

如果IT说我需要很长时间来规划和开发,可能布置出来已经花了几个月的时间,已经和市场已经脱钩了,就不能很快的响应市场的需求,对公司来说就是损失。如果能够很快的把环境部署好,技术人员很快能做出他们要做的事情,这样就跟市场会配合得更好。

SaaS的优势其实是显而易见的。刚才我讲了,从用户的角度来看,很快可以投入使用,不需要去维护软件环境。而且可以按需使用,按需付费,只要有互联网的地方,将来甚至只要有3G网络或是移动数据网络的地方,都能使用。

那么从软件厂商的角度,又有什么价值呢?节省了维护成本。对于不同的用户,厂商可以只维护一套或是几套运行环境。这是很明显的改善。

SaaS时代的软件开发

51CTO:关注我们这次访谈的很多都是软件开发人员。在软件开发层面,SaaS和当前哪些主流的技术有关系?或者说需要哪些技术的支持?

陈荣华:云计算,虚拟化技术,Web2.0,开放存储技术,等等。这些技术每一个都相当大。SaaS应用作为典型的软件应用和服务,需要全面的技术和产品的支持。

51CTO:我们知道,Sun一直是Open Source的主要支持厂商,能说说Open Source和SaaS有什么关系吗,Open Source为SaaS带来什么帮助?

陈荣华:Sun在IT行业的定位是非常清楚的,它是一个IT基础架构的提供商。

Sun一直是Open Source的领跑者,同时也是SaaS的推动者。Sun公司几乎所有的软件产品都是Open Source的,都有对应的社区版本,从Opensolaris,到Glassfish,到Java,到xVM,到最近收购的MySQL,VirtualBox,到今年刚刚推出的Open Storage等等。

而大家可以看到,这些技术和产品,恰恰是SaaS所需要的技术和产品。事实上,Sun已经为国内外的众多发展SaaS的企业和用户提供了这些技术和产品。

说到Open Source能为SaaS带来什么,从根本上讲,就是使得厂商能够以很低的成本去试验和发展SaaS,为SaaS提供现成的技术环境,从而直接推动SaaS的发展。

51CTO:那么传统软件和SaaS存在怎样的区别与联系,传统的应用需求如何转向SaaS?

陈荣华:传统的架构就是一台机器和它的应用是绑死的,一台机器上面就固定了这些应用,但是这些应用要求超负荷的时候,就没有办法操作它,没有办法把应有的资源配置应用,导致它宕机,当宕机的时候对公司的影响就非常大,即使有其他机器空着,也没有办法调整过来。

过去,如果企业要上ERP,要上CRM,要上很多的软件应用的时候,企业都想自己做。这个时候会产生很多问题。随着技术的发展,这些企业对IT的要求来得越来越高。导致企业IT部门头脑发胀,因为有安全性的问题,有的时候有病毒,有的时候有质量问题,可用性问题,架构的系统出现任何问题都要找IT部门。

员工的需求也有很多,一会儿有这个要求,比如说我要装个什么软件等等,企业面临很多的需求,所以 IT经理头很大,变得越来越大。他的部门要面对很多很多的问题。

以往的做法需要装这个软件,要部署中间件,部署数据库,部署业务服务器,部署应用服务器等等。Web2.0的时候就考虑说,怎么样用更灵活的平台提供不仅是消费者,或者是企业的一种服务。这对于安全性、可靠性、稳定性、可扩展性、易用性提出更高的要求。如果要做SaaS的平台,就要去满足这些特点。

51CTO:当前的哪些传统软件适合转向SaaS?

陈荣华 : 当前已经有相当多的企业应用开始转向SaaS,例如ERP,CRM,HRM,等等服务于企业的功能化软件,业务流程软件。

理论上讲,绝大部分的企业管理软件都适合转向SaaS。但具体的实现方式会发生改变。我前面已经提到了,有几类不同的应用,桌面工具类软件服务,企业管理类软件服务,应用开发类软件服务,还有现在的移动业务服务,等等。

51CTO:SaaS时代的开发模式会发生哪些改变,与传统的软件开发有什么异同?

陈荣华 : SaaS的开发模式会有不同,将依赖与客户的需求而变化。开发和测试 假如说客户需要开发一种新的应用,需要在1000个节点上进行测试,内部的IT部门很难提供这样的计算资源。但是现在可以在虚拟机上申请所需要的资源,在一个比较短的时间里进行测试。这样就可以知道这个新应用的扩展性。测试结束后,释放所申请的资源。这个过程也可以反复进行,用来改进应用的设计以提高性能。

◆ 批处理 - 比如说有批数据要处理,只需要运行一个简单的程序,但是需要大量的节点同时做运算,而这个处理每年只是进行一次,客户自己的IT部门很难但为这个计算购买全部的计算资源。可以通过HPC,通过云计算中的公有云来实现。

◆ 弹性应用 - 对计算资源的需求是变动的

◆ WEB服务 - 比如为Facebook或开心网提供的应用

在用户所有权关系关系方面可以分为:直接使用、部分使用、自己建设、提供云计算

51CTO:SaaS在数据库与应用架构方面有哪些特点?

陈荣华 : 谈到SaaS的架构,与传统软件很大的一个不同点,就是扩展性,我们称之为Scalability。由于SaaS应用软件大多数都是服务于大量用户甚至海量用户的,对它的扩展性的要求很高。

举例来讲,移动的一些应用,典型的类似短信、彩信业务,或者是Email服务,实际上是SaaS的应用。大家常用的购物网站,类似于淘宝这样的,或是最近很火的开心网,都是SaaS应用的代表。这样的应用特点就是用户增长很快,对架构的要求非常高。无论是从应用服务层面还是从数据库层面,都要求有很好的扩展性。

这个扩展不是简单的设备增减和容量扩展。这两个层面都有水平扩展和垂直扩展两个方面的要求。例如数据库的垂直分割,将对不同功能涉及的数据库表的访问压力分担到多个物理数据中。应用服务层也有这样的要求,常见的就是负载均衡。负载均衡有很多实现方式。

具体的技术我在这里不详细谈了,大家可以去参考网上可以找到的一些大型网站的数据库和应用服务层面的架构实现。这里我推荐大家可以去看看Google的网站架构介绍,它无疑是这方面的典范。

51CTO:SaaS会对开发技术带来哪些趋势性的影响?

陈荣华 : SaaS模式将会成为未来软件应用和销售模式的主要模式之一,将越来越多地抢占传统软件模式的市场。如果传统软件提供商不进行战略转型,将会在未来的市场竞争中处于不利地位。

SaaS的出现将会促使传统软件的商业模式发生变化。由于软件运营服务模式实行的是按需服务、按需付费的模式,对用户的吸引力要高于传统软件的许可证模式。SaaS也会加剧传统软件业的整合与并购。

SaaS与云计算

51CTO:与SaaS相同,云计算也是当前比较热门的技术。很多网友也在关注云计算的问题。云计算与SaaS有什么关系?

陈荣华 : 云计算是伴随着互联网技术的发展和成熟而成长起来的技术,它所提供的强大的软件和硬件基础设施、环境及基础服务,正成为SaaS的基础和支撑。而SaaS实际上可以看做是云计算这个大家庭中的具体应用实现方式之一。

让我们看看Wikipedia里云计算的定义:它是一种计算方式,IT相关的能力可以当做服务来提供,让用户能从互联网来访问这些通过技术实现的服务,而不必了解甚至精通支撑这些服务的技术架构。

云计算可以分三层,最下面是基础架构,包括硬件、服务器这方面的东西,这是一个公司、一个企业、一个政府部门可以看得到的物理资源。第二层是平台。再上面一层是应用和服务,就是所谓的SaaS。SaaS和云计算怎么结合呢?云计算的优点,作为一个管理物理资源的软件外包,是可以很灵活的支配硬件的资源,可以让它支持像SaaS比较需要灵活分配的资源的应用。

按云计算提供服务的层次进行分类,它有三个级别:

◆ 软件即服务 Software as a Service

◆ 平台即服务 Platform as a Service

◆ 基础架构即服务 Infrastructure as a Service

SaaS正是云计算服务的一个重要组成部分。

Sun是云计算服务的领导者。Sun公司在创立之初的理念和愿景是:网络就是计算机。这一理念到今天一直没有改变过。在2005年,Sun就推出了效用计算的服务,utility computing, 也有翻译成公共设施计算的,意思是说,这个服务就和使用自来水,天然气一样,打开阀门就可以使用,按需付费。

SaaS对软件业的影响

51CTO:对于软件厂商来说,SaaS应该如何运营?

陈荣华 : Salesforce.com就是一个目前为止软件服务运营商最为典型的例子。用户要想管理自己的客户关系,不用再单独去买CRM软件,而后在自己公司的服务器上安装。用户只需要登录到www.salesforce.com,进行注册并办理相关手续之后,就可以在网上运用该公司的CRM系统。

事实上,不止Salesforce.com一家公司在做类似的工作,国内的上海电信等目前也在推广类似的服务。

软件服务运营商的出现,使得软件可以以一种新的模式交付。和传统软件交付模式不同的是,这种模式可以根据服务级别协议(Service Level Agreement,SLA)来给用户提供相应的服务。

51CTO:SaaS都有哪些业务模式?企业如何来选择合适自己的商业模式?

陈荣华 : 可以预见,有四种角色将有可能成为软件服务运营商。第一类角色是以中国电信、中国网通、中国移动和中国联通为代表的电信运营商;第二类角色是以用友、金蝶、SAP等为代表的软件提供商;第三类是以阿里巴巴、Google等为代表的网络服务提供商;第四类是某一专有功能软件的服务运营商。

另外,随着云计算的环境逐渐成熟,越来越多独立的IT厂商,也会加入到这个战团中来,比如Sun已经提供了像network.com这样的云计算服务,Amazon提供EC2和S3的云计算服务。企业可以根据自身业务的模式,业务的开展,来选择合适的商业模式。

51CTO:SaaS的产业链是怎样的? SaaS对传统的软件产业链产生怎样的影响?

陈荣华 : 整体SaaS产业链是相当长的。总体来说,有几个主要方面,一是市场,可能做一些服务,和市场渠道。一个是运营,一个是软件生产。除了应用模式之外,SaaS和软件提供商的另一个重要不同点就是,商业模式不一样。

长期以来,市场上最常见的软件销售模式是软件许可证,用户可以一次付款、终身使用。这种许可证通常不包括软件的升级、维护等服务,用户需另外签署协议,交付费用获取相关服务。永久性许可证具体的销售方式,还会根据市场需求、竞争关系的变化表现出多种形式,如按服务器数量授权、按CPU数量授权、按客户端数量收费等等,有些通用软件还会采取打包的形式来销售,如在客户端数量较少的情况下,以端口个数为一个销售单位打包销售。

这种传统软件的许可证模式最大的问题在于,它太复杂,客户很难真正理解,也很容易让用户陷入厂商所设的陷井中。而SaaS、则采用按需付费(pay as you go)的许可证方式。通过网络,软件资源像自来水和电一样,用户可以在任何时间、任何地点,启用相关的应用软件,而后向运营商交相应的费用。这是软件交付模式变成服务之后,商业模式最重要的创新。这种模式会给用户带来极大的好处,也可以让用户真正享受到“顾客就是上帝”的服务。

51CTO:能不能向我们介绍一些SaaS的成功案例,他们有哪些明显的SaaS特性?

陈荣华 : SaaS最典型的案例就在电子商务。

无论是B2B还是B2C,无论是国外的Amazon还是国内的阿里巴巴和淘宝网,都是SaaS很成功的案例。当然,这些案例是比较大的厂商。实际还有一些中小型的厂商,例如CRM系统方面的Salesforce,或者类似网店系统的供应商,它们都是SaaS解决方案的提供者。

SaaS的一个例子就是Amazon。作为SaaS的消费者,只要简单地使用就可以了。其客户群是非常广泛的,重点是开发人员,Startup公司,多媒体应用,SaaS应用,社交网络应用开发人员等。同时它提供公有云的服务。

私有云,一般是大的企业自己来建设,拥有云的全部。一个原因就是企业往往对使用公共云存在一些顾虑,比如安全性,延迟时间,数据传输时间等。

混合模式,也就是自己建设一部分,还有一部分使用公共云。一个例子是Smugmug,关于用户管理,计费,SLA等,都是自己建设,可以运行在私有云里,另外的功能性的服务在公共云中来实现,包括视频的转换,图片的存储等,其实现依赖EC2和S3。其实对于企业来讲,这样的混合模式可能是更普遍的。

51CTO:目前都有哪些主流厂商在支持SaaS?在技术上有哪些特色?

陈荣华 : SaaS作为业界发展的方向,几乎目前所有的主流厂商都在支持它。Sun不但是SaaS的支持者,更是SaaS的推动者和技术提供商。

Sun能够为云计算和SaaS做什么?为云的建设提供系统和软件,这是Sun的传统强项,所依靠的是全面的服务器,存储和软件的产品线。为开发人员提供开发环境,Netbeans 为开发人员提供一个最优化的开发平台。

Sun 的虚拟化产品为SaaS提供了强有力的支持,基于Xen的xVM服务器是当前最为流行的开源虚拟化产品之一。

Sun将会提供SaaS建设的评估服务,架构设计服务,实施服务,培训和支持等。 必须要说的另外一个技术是OpenStorage。这项技术的核心是Solaris带来的ZFS和 Dtrace,去年年末推出的7000系列开放存储产品线,结合SSD,为业界提供了极佳性价比的统一的开放存储解决方案。Q-Layer是Sun刚收购的一家比利时公司,其技术能灵活地对计算机,存储和网络进行管理,让用户快速地在云里部署各种应用,突出强调的就是云计算的敏捷性。其中的一个产品VPDC(Virtual Private Data Center)能让用户快速地构造和管理一个私有云。 想看看DEMO,可以访问下面的地址:http://www.qlayer.com/index.php?option=com_content&task=view&id=134&Itemid=165

51CTO:作为一个经验丰富的开发人员和架构师,有什么经验可以跟51CTO的网友分享的?

陈荣华 : 今天有机会为大家介绍一些SaaS的简单情况,实在是抛砖引玉。SaaS的范围很大,涉及到技术的方方面面,因此也无法一一回复各位网友的问题。我的联系邮箱是[email protected],各位有任何问题,可以给我写邮件,我会尽我所能给予答复。祝各位能够在自己的工作和事业上更加进步。

感谢陈荣华老师。通过这次访谈,陈老师向我们详细讲解了SaaS概念以及SaaS的行业定位和发展趋势,特别是关于SaaS与云计算的关系的解析以及SaaS的技术趋势和应用案例让我们对SaaS时代的软件开发有了一个比较全面的的认识。

网友问答实录

51CTO网友:收费的是不是SaaS的一个特征?SaaS的本质是不是靠服务收费?

陈荣华:收费不能算SaaS的特征。传统软件也是收费的。但是SaaS的收费模式与传统软件不同,也就是说,商业模式不同。SaaS的本质当然不是靠服务来收费,而是把软件作为服务来运营。是全新的业务模式,打破了传统软件的开发,部署,应用方式。

网友King:请问现在做中小企业在线财务托管,还有市场吗?

陈荣华:从我个人的角度来看,SaaS的商业市场刚刚起步。SaaS已经经历了托管,ASP等几种形态的变迁,逐步跟随技术的发展成熟起来。

比方说,早期想做在线的CRM的,ERP的,由于Web技术还不成熟,可能可用性和用户的体验很差,现在有了Web2.0的技术,有了虚拟机的技术,具体来讲,有了像PHP,Perl,Ruby这样的飞速发展,那么很多应用都可以落实了。

51CTO网友:SOA是面向服务的架构,SaaS是软件即服务,这两个概念之间有没有什么联系?

陈荣华 : SOA的确是一种架构。SaaS目前已经不光是一种理念了。SaaS我们可以看成一个Ecosystem,就是生态系统,它有明确的理论模型,用户和角色分类。

在这个生态系统中,软件的功能为多个组织所重用和共享,同时所有软件活动统一管理。由于互联网技术的发展,SaaS的实际操作基于互联网访问和管理应用软件。SOA作为一种架构和一种技术,在SaaS应用中承担了重要的角色。

举例来讲,一些企业的管理软件,可以通过SOA来更好地描述和实现自身的业务流程,从而更好地为企业服务。

网友ttSaaS:电子邮件很早就有了,算是最早的SaaS吗?那时的SaaS是因为网络技术没到火候才没发展起来的?还是现在的某种技术对SaaS的普及有了支撑?有没有什么关键技术是SaaS得到目前的关注和发展?

陈荣华 : 我个人认为电子邮件就是SaaS的一种早期形式。现在很多国内的电子邮件运营商,如163.com,263.com,提供了不同级别的邮箱,同时也收取不通级别的费用,运营商提供不同级别的服务。

比如我每个月付10块,就能得到pop3的收件服务,而如果我愿意出20块,我的邮箱空间可能还能更大。这个就是很典型的按需服务,对每个人就有了差异化的软件服务。

SaaS作为一种不同的软件提供方式,是和很多技术的支撑息息相关的。SaaS不是一天形成的。实际上,有什么样的技术,就提供什么样的服务方式。比方说,在早期,技术不成熟,可能就只能提供服务器的托管,邮件的托管,慢慢地,等到网络速度上来了,互联网普及了,就自然而然得多。

SaaS作为一种不同的软件提供方式,是和很多技术的支撑息息相关的。SaaS不是一天形成的。实际上,有什么样的技术,就提供什么样的服务方式。比方说,在早期,技术不成熟,可能就只能提供服务器的托管,邮件的托管,慢慢地,等到网络速度上来了,互联网普及了,就自然而然很多需求就出来了,服务器托管也就进化成了SaaS。

SaaS的发展,市场需求的推动作用更胜于技术需求。比方说,金融危机的影响,中小企业过冬的要求,等等。

51CTO:参与我们访谈的网友中,有很多人在关注SaaS的安全问题,把企业的业务和财务放到SaaS平台上安全吗?

陈荣华 : 安全问题一直是软件业最关心的问题之一。这个要看是谁来运营,将来的运营模式如何。把企业的业务和财务放到SaaS平台上安全吗?就好比大家现在通过移动或者联通发送短信,大家觉得安全吗?这个数据安全的问题,可能不仅仅是需要技术方面的答案,还有很多制度,法律方面的因素要考虑。

我还注意到有网友在问安全的问题。这个问题很大。前面他们问的是指数据安全的一部分,其实各个方面都有安全的议题,不是我不愿回答,实在是一句两句很难讲得全的。

51CTO:有网友提到,陈老师刚刚讲的SaaS的角色分类太抽象,能具体说一下吗?

陈荣华 : 主要由几种不同类型的角色组成。分别是:用户、软件运营商、SaaS服务集成商、SaaS软件提供商、SaaS服务平台提供商、咨询实施维护服务提供商、软件基础设施提供商,以及硬件和网络基础设施提供商等等。

网友“小郎君”:对软件外包业务从业者来说,SaaS有什么影响呢?

相关推荐