简介
云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而形成强大的网络服务能力。
云计算中讨论的服务包括基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)三个层次的服务。平台即服务(PaaS)是云计算的重要组成部分,提供运算平台与解决方案服务。在云计算的典型层级中,PaaS层介于软件即服务与基础设施即服务之间。PaaS提供用户将云端基础设施部署与创建至客户端,或者借此获得使用编程语言、程序库与服务。用户不需要管理与控制云端基础设施(包含网络、服务器、操作系统或存储),但需要控制上层的应用程序部署与应用托管的环境。PaaS将软件研发的平台做为一种服务,以软件即服务(SaaS)模式交付给用户。PaaS提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。即PaaS为生成、测试和部署软件应用程序提供一个环境。
PaaS是云中的完整开发和部署环境,其资源使组织能够提供从简单的基于云的应用到复杂的支持云的企业应用程序的所有内容。资源是按照“即用即付”的方式从云服务提供商处购买的,并通过安全的Internet连接进行访问。
PaaS通常用于以下场景:
基于云计算的PaaS平台为应用开发者提供了稳定的应用运行环境和各种能力组件,开发者只需关注应用的核心业务逻辑而不用关心应用部署环境和扩缩容等问题,从而大大缩短了应用上线周期,降低了运维成本,因此PaaS平台迅速得到了开发者,特别是草根开发者的关注和广泛应用。
开发框架。PaaS提供了一种框架,开发人员可以基于该框架进行构建,从而开发或自定义基于云的应用程序。就像Microsoft Excel宏一样,PaaS使开发人员能够使用内置软件组件创建应用程序。包含可扩展性、高可用性和多租户功能等在内的云功能减少了开发人员的代码编写工作量。
Analytics或商业智能。借助作为PaaS服务提供的工具,组织可以分析和挖掘其数据。他们可以查找见解和模式并预测结果,以改进预测、产品设计和投资回报等业务决策。
作用与特点
作用
PaaS之所以能够推进SaaS的发展,主要在于它能够提供企业进行定制化研发的中间件平台,同时涵盖数据库和应用服务器等。PaaS可以提高在Web平台上利用的资源数量。例如,可通过远程Web服务使用数据即服务(Data-as-a-Service:数据即服务),还可以使用可视化的API,甚至像800app的PaaS平台还允许你混合并匹配适合你应用的其他平台。用户或者厂商基于PaaS平台可以快速开发自己所需要的应用和产品。同时,PaaS平台开发的应用能更好地搭建基于SOA架构的企业应用。
此外,PaaS对于SaaS运营商来说,可以帮助他进行产品多元化和产品定制化。例如Salesforce的PaaS平台让更多的ISV成为其平台的客户,从而开发出基于他们平台的多种SaaS应用,使其成为多元化软件服务供货商(Multi Application Vendor),而不再只是一家CRM随选服务提供商。而国内的SaaS厂商800app通过PaaS平台,不仅改变了CRM供应商的市场定位,而且实现了BTO(Built to order:按订单生产)和在线交付流程。使用800app的PaaS开发平台,用户不再需要任何编程即可开发包括CRM、OA、HR、SCM、进销存管理等任何企业管理软件,而且不需要使用其他软件开发工具并立即在线运行。
面向个人的EC站点(electronic commerce site)的巨头公司Amazon,把最初为了自己公司的运营用的构筑起来的系统平台,进行出租,用户可以自由选择操作系统和中间软件,以这样的方式提供硬件以及软件平台作为服务,最初被海外以一些冒险事业的企业所使用。从2006年开始[AmazonEC][AmazonS3]开始作为服务推向市场。
还有现代软件业霸主同时又是次时代计算的先驱的Google,大家都知道在世界上构筑以及运行了非常多的数据中心。以搜索引擎以及新的广告模式而闻名。他们使用便宜的计算机和强有力的中间件,以及自己的技术装备出了世界上最强大的数据中心,以及超高性能的并行计算群。2008年4月发表的PaaS服务[Google App Engine]和Amazon的EC2,S3,SimpleDB等服务拥有相似的功能。这些稳定的平台上同样搜索引擎,GMail等服务也在运行。同样以ASP~SaaS成功的Salesforce,2007年开始用于提供SaaS的系统基盘对外公开,用Force这个名称开始进入PaaS业务。他所提供的PaaS服务里采用Java类似的语言Apex以及Eclipse开发平台,整合的开发环境也作为服务进行提供(Development as a Service)。Google/Amazon/Salesforce这三个软件巨头非常的重视PaaS这种新的商业模式,Amazon的PaaS服务为了用户可以自由的组合服务提供了更多的自由度,Google的话提供了更多的服务使用户能够方便的使用,去掉了一些繁琐的作业。Google/Salesforce的PaaS不仅是基础硬件的提供开发环境的同样被提供属于真正的平台作为一种服务(PaaS)
特点
PaaS能将现有各种业务能力进行整合,具体可以归类为应用服务器、业务能力接入、业务引擎、业务开放平台,向下根据业务能力需要测算基础服务能力,通过IaaS提供的API调用硬件资源,向上提供业务调度中心服务,实时监控平台的各种资源,并将这些资源通过API开放给SaaS用户。PaaS主要具备以下三个特点:
(1)平台即服务:PaaS所提供的服务与其他的服务最根本的区别是PaaS提供的是一个基础平台,而是某种应用。在传统的观念中,平台是向外提供服务的基础。一般来说,平台作为应用系统部署的基础,是由应用服务提供商搭建和维护的,而PaaS颠覆了这种概念,由专门的平台服务提供商搭建和运营该基础平台,并将该平台以服务的方式提供给应用系统运营商;
(2)平台及服务:PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,而且包括针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务。PaaS的运营商最了解他们所运营的基础平台,所以由PaaS运营商所提出的对应用系统优化和改进的建议也非常重要。而在新应用系统的开发过程中,PaaS运营商的技术咨询和支持团队的介入,也是保证应用系统在以后的运营中得以长期、稳定运行的重要因素;
(3)平台级服务:PaaS运营商对外提供的服务不同于其他的服务,这种服务的背后是强大而稳定的基础运营平台,以及专业的技术支持队伍。这种“平台级”服务能够保证支撑SaaS或其他软件服务提供商各种应用系统长时间、稳定的运行。PaaS的实质是将互联网的资源服务化为可编程接口,为第三方开发者提供有商业价值的资源和服务平台。有了PaaS平台的支撑,云计算的开发者就获得了大量的可编程元素,这些可编程元素有具体的业务逻辑,这就为开发带来了极大的方便,不但提高了开发效率,还节约了开发成本。有了PaaS平台的支持,WEB应用的开发变得更加敏捷,能够快速响应用户需求的开发能力,也为最终用户带来了实实在在的利益。
应用
平台即服务(PaaS)已存在了相当长的一段时间了,这是一种在基于云计算的系统中使用一套被提供的工具来开发和部署应用程序的高效既定方法。它的核心理念是将软件开发平台作为一种服务提供给用户,使得各类的应用程序所需的运行时环境在平台中良好支持。PaaS抽象有效地隐藏执行物理资源分配(CPU,内存,磁盘等),服务生态系统管理,操作系统和网络配置等细节。PaaS还使负载平衡和资源扩展自动化,并为PaaS组件和服务提供高可用性和容错能力。
如果一家企业承受着把应用程序软件迁移至网络或移动设备的压力,那么PaaS则具有明显的优势。企业业务进入市场的时间更短,这样也就避免了开发时间冗长、上市时间过长的产品开发过程。这样的产品必定是高质量的,同时也必须能够被快速提供。PaaS可让企业更专注于他们所开发和交付的应用程序,而不是管理和维护完整的平台系统。
对于小型企业和初创型企业来说,PaaS也是比较有用的,因为这些企业并没有广泛的、具有较高依赖性的旧应用程序需要迁移。PaaS的多租户特性可实现应用程序和数据资源的最大数量共享,同时让开发资源继续专注于应用程序的交付和连接,而不是开发和支持数据库资源。PaaS的未来发展空间似乎在小型企业和初创企业,这类公司由于不依赖于与旧应用程序的集成而更适于在云计算中进行应用程序开发。
PaaS区别
简单地说,PaaS平台就是指云环境中的应用基础设施服务,也可以说是中间件即服务。PaaS平台在云架构中位于中间层,其上层是SaaS,其下层是IaaS。在传统On-Premise部署方式下,应用基础设施即中间件的种类非常多,有应用服务器,数据库,ESBs,BPM,Portal,消息中间件,远程对象调用中间件等等。对于PaaS平台,Gartner把它们分为两类,一类是应用部署和运行平台APaaS(Application platform as a service),另一类是集成平台IPaaS(Integration platform as a service)。人们经常说的PaaS平台基本上是指APaaS,如Force和Google App Engine。
国内日前上线的中国云应用平台,能够为软件厂商提供领先的IaaS基础平台,使得软件厂商能够将注意力集中在其应用产品的云化之上,而将对基础资源的需求,包括云服务器、云存储、云监控等完全依托在理念领先、技术成熟、安全可靠的IaaS平台上。
中国云应用平台将加盟入驻的传统软件向SaaS软件转型,采用传统软件结合云计算IaaS的模式,逐步实现多租户单实例的应用架构最终实现高性能应用。未来大量传统软件企业在与华云数据的合作过程中,通过与PaaS平台的整合,可以快速实现云化与SaaS化改造。
企业级
云计算起源于大型互联网企业。对于互联网企业,成本压力和指数级的业务增长压力使他们关注于物理资源的利用率和应用的可扩展性。在应用服务器这层,通过Cluster Session来实现水平扩展;在数据存储这层,采用基于BASE模型的NOSQL数据存储来实现扩展。互联网企业主导面向公众服务的公有云PaaS平台,如Google App Engine和Amazon Beanstalk。对于公有云PaaS平台,PaaS就是云环境下的应用部署平台。
(1)基于商业软件的部署方式:Application-Framework/Libs-Websphere/Weblogic+RDBMS
(2)基于开源软件的部署方式:Application-Frameworks/Libs-Tomcat/JBoss+RDBMS
(3)云环境下的部署方式:Application-Frameworks/Libs-PaaS(Goole App Engine,Amazon)
注:1、WebSphere:是IBM的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变Web应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere提供了可靠、灵活和健壮的软件。
2、Weblogic:是一个基于Javaee架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
3、Tomcat服务器是一个免费的开放源代码的Web应用服务器
4、JBoss是一个管理EJB的容器和服务器,支持EJB1.1、EJB2.0和EJB3.0的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
5、RDBMS:指的是关系型数据库管理系统。
这种情况下,PaaS实质上就是一个预先装好的Web Container和一组公共服务,如数据存储服务(不一定是关系型数据库)、消息队列、集中式session及cache等等。对于个人用户或者简单应用来说,公有云PaaS平台使得开发人员仅关注应用逻辑开发本身,不用把精力花费在基础实施和应用的扩展和维护上。
所谓企业级PaaS平台,主要包含两类,一是大型企业内部的私有云PaaS平台,另一类是面向ISV厂商的PaaS平台。然而对于企业级PaaS平台,PaaS不仅仅是云环境下的应用部署平台。抛开安全问题不讲,私有云PaaS平台和公有云PaaS有如下核心区别:
(1)复杂的多租户模型:对于公有云PaaS平台,其租户模型是(用户->应用->应用实例),一个用户可以部署多个应用,每个应用可以有多个运行时实例,应用实例共享资源池。对于一个大型企业,一个大部门可能是一个租户,大部门下面的子部门也是一个租户;或者一个SaaS应用系统的一个实例就是一个租户。对于租户的资源使用,大部门租户是共享资源池里面的资源,也可能某些关键租户需要独占一些资源以保证安全。
(2)已有应用的兼容:企业的历史应用都是基于关系型数据库的,某些PaaS平台不支持关系型数据存储,即使是简单的已有应用都无法迁移到PaaS平台上。
(3)复合应用的构建:企业On-Premise应用在很长一段时间内都是要存在的,私有云PaaS平台要成为On-Premise和公有云之间的桥梁。私有云PaaS平台除了是应用部署平台外,还需要提供集成和方便构建复合应用的能力,就是Gartner所提的iPaaS能力。企业级PaaS平台不仅仅是应用部署平台,而且是复杂多租户环境和复杂应用环境下的共享基础设施平台,是On-Premise部署通往公有云部署的必经之路。