首页 > 范文大全 > 正文

PaaS重新定义软件

开篇:润墨网以专业的文秘视角,为您筛选了一篇PaaS重新定义软件范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

如果说IaaS重新定义了硬件,那么paas重新定义软件。作为IaaS与SaaS中间的纽带,同时也作为一个全新的云应用开发平台,PaaS在云生态圈中的重要性不言而喻。PaaS打破了软件的使用者与开发者之间的壁垒,让不具备专业技术的人员也能开发适合自己的应用。PaaS与企业的实际应用相结合,将促进企业的敏捷化发展。

企业敏捷化是经济全球化的结果。企业敏捷化还引发了敏捷式企业应用和敏捷软件的变革。传统的企业软件开发模式与生命周期管理已经不能适应快速变化的应用需求。敏捷化企业的软件应用必须灵活多变,并且允许用户参与应用的变更和实施。因此,可编程社会化的PaaS顺理成章地成为实现企业敏捷化的一种有效的技术手段。先进完备的PaaS是云计算技术的制高点。

软件创新工场

云计算的理论依据是分布式计算机网络操作系统。目前,云计算技术提供的资源服务主要包括三个层面,而这三个层面也同时代表了云计算的三个发展阶段。

第一阶段,基础设施即服务(IaaS)。IaaS服务商通过标准网络将相对廉价的大量服务器组成集群,并通过网络提供一体化的计算和存储服务,其代表产品是Amazon AWS的EC2和S3。

第二阶段,应用软件即服务(SaaS)。SaaS是在IaaS的基础上,将应用软件改造成多租户的模式,并直接投入IaaS运营,使一些既定的应用成为网络资源。SaaS产品的代表有Salesforce的CRM、Zoho的办公软件、Google的Gmail和Google Doc以及微软的Office 365。

第三阶段,应用平台即服务(PaaS)。PaaS为云应用提供了一个应用开发的平台,因而形成了一种全新的软件开发和部署模式。PaaS的代表包括Google Apps、Salesforce的Force。

目前,国内谈论最多的还是IaaS,谈论的焦点主要集中在云数据中心的建设上。但是很少有人谈及PaaS,而PaaS正是云计算发展的核心所在。PaaS出现后,软件的开发从工程师的桌面转移到了云上,这将彻底改变软件的生命周期。在云计算中,PaaS处于技术前沿的地位。云计算应用的未来将取决于PaaS的发展。可以这样说,IaaS改变了硬件服务器的定义,而PaaS将改变软件的定义。

与IaaS和SaaS相比,PaaS代表着云端网络资源的最高境界。如果将云计算服务比作餐饮业,那么IaaS就是菜市场,SaaS是各种套餐(功能固定的一组应用),而PaaS则是自助大餐(可以无限扩展,自动获取甚至自动生成),可为用户提供个性化的按需配餐。

PaaS平台提供各种模块组件,用户可以使用这些模块资源,按自身的需要随意组装出个性化的应用。从这个角度上说,PaaS就是一个由用户参与的创新软件工场,用户可在虚拟的工场里组装自己所需的应用并使用。

从手工作坊到工业化生产

PaaS是一种十分复杂的云计算技术,涉及计算机体系结构、操作系统、计算机网络、分布式计算、并发式处理、程序设计语言、编译系统、运行时间系统以及人机交互设计等学科。

PaaS向上承载应用,向下依托IaaS,其构架中包含了应用开发环境、各种应用层资源的管理和调度以及与外界的各种接口。PaaS通常构建在IaaS之上。当今的SaaS通常与PaaS并行,直接搭建在IaaS之上。然而,由于PaaS提供了全套的应用开发环境,未来的SaaS也可以建立在PaaS之上。准确地说,SaaS未来应该直接并入PaaS,由PaaS衍生出各类云应用。

作为应用平台,一个完备的PaaS应该支持软件全生命周期的开发、部署、运行、维护等诸多环节。因此,PaaS的架构里需要具备如下几个基本构成要素:应用的基础软件和中间件支撑(如数据库、Web服务、应用框架和消息服务),应用的部署和运行环境,应用的多租户支持与管理,云上可编程的开发环境,共享应用资源库和开发社区支持。

PaaS的形态有四类:简单PaaS、多租户PaaS、云编程PaaS和社会化PaaS。

当前,多数开源的和商业化的PaaS仅仅满足PaaS构成要素的第一条和第二条,处于简单PaaS的阶段,基本上只是简单地配备Tomcat、MySQL等应用服务器软件,并在虚拟化平台上进行部署和发行。例如,VMware的开源项目Cloud Foundry是一种托管环境,可以支持多种流行的编程框架,包括Spring for Java、Ruby on Rails、Sinatra for Ruby、Node.js以及基于JVM的框架(如Grails)。有了这个环境,开发者不需要花大量的精力来安装和配置这些内嵌的基础软件和中间件,只要专注于在笔记本电脑上开发应用程序,部署、使用即可。开发者可以通过命令行或API来管理这些应用。Google App Engine(GAE)也提供了类似的PaaS功能。开发者需要在笔记本电脑上下载并安装GAE的Eclipse Plugin,开发编译适用于GAE的Java应用。

PaaS作为云应用平台,应该支持多租户。在多租户PaaS形态下,几乎所有的SaaS都具备多租户的能力,有的SaaS应用甚至还要支持多场址(Multi-site)。多租户PaaS与简单PaaS的根本区别在于,多个租户要能够共享基础软件和中间件,例如数据库。这就要求基础软件也必须变成云服务的模式。Google的GAE通过Google的云数据库BigTable和云文件系统GFS实现了多租户PaaS。

PaaS应该是可编程的。可编程的衡量标志为,开发者是否可以在云上直接开发应用,并且进行云编程和应用搭建,而不是像Google GAE那样必须在笔记本电脑上编译好一个应用,再上传到PaaS里。云编程PaaS通常至少支持一种脚本语言,如Sun的Zembly通过Java Rhino支持Javascript。开发者借助Zembly,只需要一个浏览器就可以进行云编程。云编程不能理解为简单的远程编程。与在笔记本电脑上进行的本地编程不同,云编程通常有异常强大的云应用运行时间库(Runtime Library)作为支撑,而这种云应用库由丰富的云服务组成。因此,云编程从本质上说是一种云服务的再组过程(Mash up)。例如,在Zembly上只需几行代码,开发者就能将Zillow API提供的房地产信息通过Google Map API集成到Google地图上。

互联网的社会化并不局限于Facebook、YouTube、Twitter等社交网站和社会化媒体。如果把程序看成是一种特殊的社会化媒体内容,那么PaaS也可以积极地引入社会化元素,享用互联网社会化的成功经验。在社会化PaaS的平台上,开发者之间可以交流,共享代码或云服务的成品。开发者与用户之间也可以互动,以便定义需求和客户服务的内容。显然,社会化PaaS一旦引入电子商务元素,就可以成为一个云应用和服务模块的交易平台。

在PaaS模式下,应用的开发、组装和配置都是在云中进行的。PaaS在不改变一行代码的情况下,就能改变应用的外观和行为。PaaS强调的是软件虚拟化。基于此,在运维系统中采用的PaaS借用了总厂与分厂的概念,总厂(部署在公有云上的大系统PaaS)生产各种各样的Widgets(微件,可按行业和应用分类,其种类及数量十分庞大),分厂(用户私有云中的运营环境)把组装好的各种Widgets部署下去并运营,即公有云PaaS提供大的开发环境,而私有云PaaS提供小巧的运行环境。由各种Widgets拼接生成的应用可以跨越私有云的边界跑来跑去,使得传统的手工作坊式的软件生产进化到工业化的生产。这将是软件产业的一次重大变革。

PaaS推动企业敏捷化发展

社会化云编程PaaS的深远意义在于普通用户也可以参与软件的开发,而软件开发不再仅仅局限于专业的开发者。利用云编程工具,不懂软件开发的用户可以自由配置出自己所需要的个性化云应用。因此可以这样说,PaaS重新定义了什么是软件。用户可以参与软件的开发,软件的使用者就是开发者。用户可以边应用边开发,软件也从有形逐渐走向无形,软件的生命周期变得更加模糊。通过PaaS平台重组再造的云应用,从空间上看是无边无界的,从时间上看是无始无终的。

被PaaS重新定义之后的软件可以称之为敏捷软件(Agile Software)。敏捷软件没有明确的生命周期,总是不断地被改进、丰富、完善、淘汰,用户始终参与其中。敏捷软件将成为下面提到的企业敏捷化的一个重要实现手段。

IT给企业带来的益处有两点:开源和节流。云计算中的IaaS和SaaS分别改变了硬件资源和软件资源的使用模式,从而降低了IT的成本。简单PaaS只是简化了软件的部署运行环节,并不创造新的价值。简单PaaS虽然也是一种能为企业省钱的技术,但其效益远不如IaaS。

一个具有云编程能力的比较完备的PaaS是一种能为企业创造新价值的技术。如果说简单PaaS是酒店式公寓,旅客可以拎包入住,那么云编程和社会化的PaaS则是酒店的开发商和运营商。云编程和社会化的PaaS通过实现企业的敏捷化为企业创收。

企业敏捷化(Business Agility)是经济全球化的必然趋势。IBM曾经调查了全球1000强企业中的250位首席执行官。他们认为,全球经济的变化及其复杂性和不确定性对企业来说既是挑战,也是新的发展机遇。IBM总结出企业敏捷化的三个动因:客户的期望值不断提高,要求企业具有可见性(Visibility),并且能够迅速响应市场的不断变化;竞争对手和合作伙伴可以突然出现在世界的任何地方,威胁不再仅仅来自于大型企业,而商机和合作机会也变得无穷无尽;外界环境的快速变化以及新技术的发展要求企业具备更灵活的流程与系统,并允许机构中更多的员工参与企业的管理。

传统的企业软件开发模式与生命周期管理模式已经不能适应今天云计算的应用需求。企业应用软件的方式也将发生巨大的改变。可编程社会化的PaaS有助于促进企业技术与应用的创新,增强企业竞争力。

相关链接

PaaS的发展历程

2000年,Google将云计算提升到了应用的层面,此举对云计算产生了深刻的影响。Google贡献了三大技术:云端文件系统GFS、BigTable(非关系数据模型大数据库)和MapReduce(一种云计算的编程模式)。依托这三大技术,Google在2008年4月推出App Engine,打造了Google的PaaS。App Engine是一个依附于Google应用的多租户PaaS。

2007年5月,Facebook推出FB平台,把一种混合式PaaS——Social Operating System对外开放,并鼓励第三方将应用放到Facebook上。FB平台是多租户PaaS,并且具备非常原始的可编程能力(通过FBML和FQL)。尽管FB平台的技术相对单薄,对开发人员有诸多限制,但是由于Facebook的巨大影响力和平台的开放性,FB平台还是在短短时间内吸引了大量应用,尤其是社会化游戏,从而极大地推动了开放式PaaS平台模式的发展。Facebook FB平台是真正意义上的PaaS鼻祖。

云编程PaaS兴起于Web 2.0后期的Mash up浪潮。2007年2月,Yahoo Pipes问世,这是一个较早且较完备的PaaS。Yahoo Pipes使用视觉编程方式搭建应用,把Flickr、Google Maps、RSS之类的网络应用串接起来。与此同时,Sun的Zembly项目也在秘密进行中。码实信息科技创始人夏淳博士曾担任Zembly初创团队中的社会化构架师。他率先在Zembly中引入社会化编程理念。2008年,Zembly问世,它在当时是最先进的社会化云编程PaaS。开发人员在PaaS中按应用项目自然地形成社区,共同探讨、开发、分享云应用模块组件。遗憾的是,Zembly这种工具型PaaS在当时并没有一个实在的商业模式作为支撑,而其他大大小小的公司开发的各种工具型云编程PaaS也没有对市场产生比较积极的影响。今天,随着云计算在企业中的普及,云编程和社会化的PaaS一旦与具体的企业应用相结合,将对企业应用软件产生巨大而深远的影响。