SCI期刊 | 网站地图 周一至周日 8:00-22:30
你的位置:首页 >  互联网 » 正文

互联网PaaS平台建立

2021-4-10 | 互联网

 

随着互联网技术及其应用的快速发展,互联网业务提供者越来越呈现小团队、草根化的趋势.这些小型的业务提供者往往具备新颖的技术和业务理念,但由于规模不足、资本薄弱,需要面对应用访问网络能力困难和应用提供成本高、风险大等挑战.这些挑战严重影响了“草根”开发者业务创新能力的发挥.近年来,高速发展的云计算技术[1]为解决上述困境提供了可能.在云计算的3种应用形式[2]中,PaaS是云计算技术与业务提供平台相结合的产物,它不但可以为更高可用性、更具扩展性的应用提供基础平台,还可以提高硬件资源的利用率,降低业务运营成本,被认为是解放“草根”开发者业务创新能力行之有效的解决方案.

 

笔者首先从对工业界有影响的PaaS平台的分析和比较入手,深入研究了PaaS平台的体系结构,抽象出PaaS平台的通用概念模型;然后针对互联网应用的特殊需求,提出了面向互联网应用的PaaS平台体系结构;最后通过对具体项目中该体系结构的实现和测试,进一步说明了该体系结构的有效性和高效性.

 

1相关工作

 

目前,以Google、新浪为代表的众多互联网公司都推出了基于云计算技术的PaaS平台[3],如GAE(googleappengine)和SAE(sinaappengine)[4].

 

GAE是Google管理的数据中心用于web应用程序的开发和托管平台,是互联网应用服务的一个引擎,支持Python和Java开发.SAE是由新浪公司开发运营的开放云计算平台的核心组成部分,其目标是为应用开发者提供稳定、快捷、透明、可控的服务化平台,支持Java和PHP5运行环境.有了GAE和SAE这样的PaaS平台,用户不用再为建设一个小型网站而去租用主机并选择托管商.用户只需要利用PaaS平台,就能创建、测试和部署应用与服务,与传统的软件开发相比,费用要低得多.

 

通过对常见PaaS平台的分析可以看出,PaaS平台应具备如下功能特性[5].首先,PaaS平台为应用开发提供了一系列非功能属性支持,具体包含以下3点:第一,平台提供了应用程序的开发和运行环境,开发者不再需要租用和维护软硬件设备,同时免去了繁琐复杂的应用部署过程;第二,平台提供了应用程序的运行维护能力,开发者通过平台可以得知应用的运行状态和访问统计信息,全面掌握用户对应用的使用情况;第三,平台提供了应用的高可用性和高可扩展性,开发者无需关注底层硬件的规模和处理能力,平台会根据应用负载自动调整服务规模[6].其次,PaaS平台提供了大量的网络能力,开发者可以便捷地在其应用中调用这些能力.

 

然而,现有的PaaS平台也存在一些不足[7].第一,应用托管环境单一化,仅提供特定编程语言或脚本语言的运行环境.由于应用往往对相应的运行环境配置有较高的依赖,这种单一化的运行环境将导致应用兼容性低,需要引入应用迁移成本.第二,能力组件封闭化.虽然PaaS平台向应用提供一系列能力已经成为PaaS平台的标准做法,但是仅依靠平台提供商提供能力的做法显然大大限制了平台能力的丰富性,无法满足应用开发者对能力多样化的需求.

 

因此,提出的互联网应用PaaS平台将重点关注和解决如下问题:第一,为各种应用提供运行环境,不仅支持常用编程语言和脚本语言,还可以提供兼容性更强的、更为通用的运行环境,即将虚拟机也作为一种运行环境提供给应用;第二,提供开放式的能力组件机制,平台本身不但可以向应用提供能力,而且允许第三方基于此平台提供能力.

 

2PaaS平台概念模型

 

PaaS平台概念模型如图1所示.PaaS平台概念模型采用分层结构,由用户平面(UP)、应用平面(AP)、资源平面(RP)、物理平面(PP)和管理平面(MP)组成.

 

CUP反映了PaaS平台的目标使用者,即应用开发者(Dev/Developer).应用开发者可以开发多个应用,并将其部署到平台中.

 

AP反映了应用开发者所开发的大量的不同类型的应用(APP/Application),每个应用可以包含多个应用实例(AI).这些应用具有不同的资源消耗和用户访问模型,包括应用逻辑、应用的计算和通信资源开销以及用户请求的分布情况.这些信息将作为MP对应用进行管理的依据.

 

RP反映了AI运行的逻辑环境,由一系列不同类型的容器(CT/container)组成.这些容器将PP所提供的以主机为单位的分散物理资源汇聚在一起,形成资源池.在该平面中,不同类型的AI运行于相应的容器中,使用容器所提供的计算、存储和连接等资源.因容器中承载的应用类型不同,容器可以分为多种类型,如Javaweb服务器容器(JavaWS-contain-er)、虚拟机容器(VM-container)等.鉴于容器是一个相对独立的逻辑运行环境,容器中既可以运行第三方应用,也可以运行平台的自建应用.同时,第三方应用也可以作为平台的能力成为其他第三方应用可调用的组件,从而使得PaaS平台支持能力具有高的可扩充性.

 

PP反映了PaaS平台底层的物理资源,由一系列物理实体(PE)组成,包括物理主机(HS/host)、存储器(ST/storage)和交换机(SW/switch)等硬件设备,为平台提供了底层的计算、存储和通信能力.

 

MP负责完成对其他各平面的调度和控制.该平面包含2个组件:资源调度组件(RA)和任务调度组件(TS).RA定义了应用经过多层映射最终分布到物理主机上的部署关系,即应用与AI的对应关系(APP-AI)、AI与容器的对应关系(AI-CT)以及容器与主机的对应关系(CT-HS).TS定义了应用访问请求(REQ/request)到达平台后的转发规则,即为此请求选择合适的AI规则(REQ-AI).

 

3面向互联网应用PaaS平台

 

3.1体系结构

 

PaaS平台概念模型提供了面向互联网应用的PaaS平台的设计思路.基于此PaaS平台概念模型,面向互联网应用的PaaS平台体系结构如图2所示.该体系结构主要包含3个组件,分别是应用集群管理(AppMaster)、智能应用路由器(AppRouter)和应用服务器集群(AppServer).

Top