现代化经济体系的坚实基础 [SaaS的坚实基础:PaaS]
在讨论开源软件的生存和发展模式之初,总是提到生态环境这个概念,也就是说,开源软件并不是被设计出来的,而是无数的开发者的创新性想法在一个生态环境中,以优胜劣汰、物竞天择的方式筛选出来的。
换而言之,开源软件最根本的生存和发展方式就是进化。不知是因为这种进化的方式是宇宙中最根本的生存法则,还是因为越来越多的人接受了这种进化的观点。现在软件技术的发展,也越来越多地打上了进化法则的烙印。无疑,SaaS(Software as a Service)就是这个进化过程中的优胜者,SaaS的理念,以及基于这种理念的技术和商务实现,正在逐步发展壮大,并显现出越来越强大的生命力和广阔的发展前景。
SaaS提出了一种全新的软件交付方式,如果SaaS得以大规模推广的话,那么它也将从根本上颠覆传统的IT部署和管理方式,以及软件的消费方式。
既然SaaS从根本上颠覆了传统的软件交付、部署、管理以及消费方式,那么另一个问题也就由此产生。那就是SaaS作为一种软件的交付和部署方式,其自然也需要有借以部署的基础平台,如果能够由技术实力雄厚的IT公司或专业基础平台运营商来为SaaS的部署提供基础平台,这对于SaaS运营商来说,无疑是一个好消息。因为SaaS基础乎台的搭建是一项高成本、高技术含量、高风险的工作,而自己搭建一个专有的高质量SaaS基础平台,对于一些中、小SaaS运营商来说,无论从经济上还是技术上都是得不偿失甚至是不可实现的。在这种情况下。PaaS(Platform as a Service,平台即服务)的理念应运而生。
平台即服务简介
什么是PaaS,目前对于这个概念的定义也是仁者见仁,智者见智,但是归结起来不外乎如下几个方面:
首先是可为软件提供稳定的、可长时间运行的部署平台。有一句话叫“勿在浮砂建高塔”,这句话充分说明了,对于任何系统来说,强大、稳定的基础平台都是极为重要的。SaaS是一种需要高稳定性和长时间运行能力的服务系统,如果这种服务是针对某个企业的关键业务系统提供的,那么稳定性和长时间运行的能力则变得更为重要。因此,这也要求借以部署SaaS系统的基础平台具有非常高的稳定性和极强的长时间运行的能力。只有这样的基础平台,才有可能支撑SaaS系统长期、稳定地运行,为客户提供有价值的服务。
其次是可为软件提供高隔离度的资源共享平台。既然是一个基础平台,一定会有很多不同的应用软件系统同时运行于其上,这就产生了保持各应用软件系统所使用的资源要最大限度的隔离的需求。另外,从安全性上来考虑,保持各系统所使用的资源的相互隔离,也是保证数据安全的必要条件。如果资源隔离的问题不能得到很好的解决,那么所谓“稳定性”、“安全�”也就根本无法实现。再次是可为软件提供可灵活配置的基础资源,包括存储、数据库、网络等资源的平台。
应用软件系统的运行,一定需要各种基础资源的支持,如存储、数据库以及网络等资源。在PaaS中,这些基础资源已经被高度的虚拟化,应用软件系统所使用的各种资源,也许仅仅是物理存储中的某一文件系统的片断或者影射到某一物理网络接口的虚拟化的逻辑网络接口。但是对于应用软件系统来说,所有这些虚拟化的过程都是透明的,应用软件系统所看到的,只是能够满足其运行的各种资源,而且这些资源可以以灵活的方式、非常精细隔离粒度进行配置。
最后是具备水平缩放能力的平台。具备水平缩放能力也是PaaS的重要特征之一,对面向Internet的应用软件来说,对于资源的需求,是根据用户的访问量来决定的。在高峰时期的访问量,也许将是平时的若干倍,这就需要PaaS能够按照对资源使用的需求,进行水平缩放,在资源使用高峰期实现基础平台的水平扩展,而在访问量比较低的时期,实现基础平台的水平收缩。
PaaS的特点
既然PaaS是平台、又是服务,那么究竟什么样的平台服务可以算作PaaS呢?对于这个问题,我个人的理解是,PaaS一定要具备以下三个特点。
首先是平台即服务。PaaS所提供的服务与其他的服务最根本的区别就是,PaaS提供的是一个基础平台,而不是某种应用。在传统的观念中,平台是向外提供服务的基础。一般来讲,平台作为应用系统部署的基础,是由应用服务提供商搭建和维护的,而PaaS颠覆了这种概念,由专门的平台服务提供商搭建和运营该基础平台,并将该平台以服务的方式提供给应用系统运营商。
其次是平台及服务。PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,而且包括其他的、针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务。PaaS的运营商最了解他们所运营的基础平台,所以PaaS运营商所提出的,对应用系统的优化和改进建议也非常重要。而在新应用系统的开发过程中,PaaS运营商的技术咨询和支持团队的介入,也是保证应用系统在以后的运营中得以长期、稳定运行的重要因素。
最后是平台级服务,PaaS运营商对外提供的服务,不同于其他的服务。这种服务的背后应该是强大的稳定的基础运营平台,和强大的、专业的技术支持队伍。PaaS运营商所对外提供的服务,应该够得上“平台级”,应该能够支撑SaaS或其他的软件服务提供商各种应用系统长时间、稳定的运行。
PaaS的应用
目前,很多厂商已经注意到PaaS理念的前瞻性及其发展的广阔空间,所以纷纷加入到PaaS的队伍中来,并开始提供研究性或适应性的平台供客户或者合作伙伴进行体验、,开发和使用。这些平台环境中,有一些堪称其中翘楚,下面我们就对这几个平台进行简要的介绍。Project Caroline
Sun公司,是推动PaaS技术发展的重要力量之一。ProjectCaroline~Sun公司所领导的一个开源社区,而Caroline则是该社区所进行的前瞻性的高级研究项目,该项目为用户和合作伙伴提供一个可以灵活扩展的基础平台。该平台的核心部分是一个云计算平台,而处于该平台种的地各种资源已经被高度的抽象化和虚拟化,使用者能够以编程方式创建、配置该平台的各种资源,通过该平台所提供的完整的API,SaaS运营商得以快速地开发各种服务,方便快捷地更新这些服务,以及根据运行环境的需求变化,自动、灵活地规划资源及使用各种资源,从而使SaaS运营商得以在短时间内构建高效、稳定的SaaS应用系统,为SaaS运营商在瞬息万变的市场环境中快速反应、占得先机提供了坚实的基础。
Salesforce
Salesforce在SaaS运营中取得了巨大的成功,也正是这种成功,让其认识到基础平台的重要性,因此Salesforce也已经加入到PaaS的行列中,Salesforce从概念上将PaaS的解决方案分为四种类型,他们是社区软件平台、数据计算平台、Web应用平台以及商务应用平台。这四种平台有针对性的支持不同种类的应用,从而降低了应用系统能够运营的开发难度和运营风险。
800APP
这是一个中文平台。这说明在PaaS的推动上,也出现了中国公司的身影。虽然目前PaaS的理念和运营模式与传统的模式相比还处于弱势,但是,作为一个刚刚出现不久的概念就被如此广泛的接受,这足以显示出其强大的生命力和美好的发展前景。相信随着技术的发展,会有越来越多的厂商加入PaaS的行列,这个新兴的服务理念和服务方式一定会成为主要的发展趋势。
