基于云的平台即服务框架
I. 引言
云计算作为一种新的计算模型出现,旨在取代传统计算模型,满足对资源、软件和基础设施日益增长的需求。云计算是21世纪出现的全新计算模型[1‐3]。云计算被定义为一种按需服务,根据客户端在特定时间段内的需求,提供共享的资源、信息、软件及其他设备[4]。
开发和维护本地软件被认为是一项复杂、昂贵且高风险的任务。所有软件都需要硬件、操作系统、数据库和网页服务器。一旦提供了需求,一组开发者就必须寻找复杂的编程框架。此外,还需要一组网络、数据库和系统管理专家来确保所有系统正常运行。不可避免的是,业务需求的变化将要求对软件进行修改。
然后会开始一个漫长的构建、测试和重新部署周期[1]。
大型企业通常需要特殊的设施来容纳其数据中心。还需要大量的电力来为服务器及其冷却系统供电。此外,还需要一个备份站点来镜像数据中心,以便在发生灾难时进行替换。
NIST 将平台即服务(Platform‐as‐a‐Service)定义为:“向消费者提供将消费者创建或获取的应用程序部署到云基础设施上的能力,这些应用程序是使用提供商支持的编程语言、API、服务和工具创建的。消费者不管理或控制底层云基础设施(包括网络、服务器、操作系统或存储),但可以控制已部署的应用程序以及可能的应用程序托管环境的配置设置”[5]。
然而,随着云市场的增长,平台即服务(PaaS)作为使云对企业具有价值的部署模型,也是提供商最大化云收入的最大机遇[6]。
该论文首先定义了云部署模型和服务模型。研究问题在第三部分中提出。所提出的框架在第四部分及其子章节中进行了描述。第五部分描述了实证研究并展示了结果。最后 一部分对论文进行了总结。
II. 部署模型
A. 公共云
云基础设施向公众或大型行业群体开放,由销售云服务的组织拥有。
B. 私有云
云基础设施仅为一个组织运行,可由该组织或第三方管理,可位于本地或异地。
C. 社区云
可供社区成员使用。社区成员可能隶属于不同的组织。
D. 混合云
上述模型的组合。
III. 云服务模型
A. 软件即服务(SaaS)
软件即服务通常提供在云基础设施上运行的特定且已开发好的应用程序。一个非常著名的SaaS是基于网页的电子邮件。
大多数软件云计算服务都是基于网页的应用程序,可以通过瘦客户端接口(如网络浏览器)从不同的客户端节点访问。软件即服务云的客户端不管理或控制底层基础设施和平台,客户仅可使用有限的用户设置[7]。
B. 平台即服务(PaaS)
平台即服务云提供受管的高级应用基础设施,客户端可以使用云服务提供商支持的工具、环境和编程语言来创建和部署特定类型的软件与服务。此类服务包含对底层基础设施(如服务器、网络、存储或操作系统)的使用,客户无法控制这些底层设施,因为它们在平台之下已被抽象化[1, 7, 8]。
C. 基础设施即服务(IaaS)
赫弗在[7]中将基础设施即服务描述为:“云基础设施作为服务通常提供虚拟化平台,这是已知多年的虚拟专用服务器产品的演进。客户购买资源,而无需自行设置服务器、软件和数据中心空间,并根据消耗的资源进行计费。他们将自己的软件部署在虚拟机上,并对其进行控制和管理。虚拟实例可根据需要租用,最短可租用一小时。”[7]
IV. 问题描述
大多数企业面临的主要问题在于计算机硬件和软件的管理、维护及采购,特别是对于资源有限的小型企业而言。
购买硬件和软件的过程显著增加了企业的运营成本。此外,在软件开发领域也存在在真实环境中开发、部署、实施和测试软件的需求相当大。
这也可能导致以下问题:
- 任何业务需求的变更都将需要对应用程序进行更改,这将再次启动漫长的开发、测试和重新部署周期。
- 必须管理软件和硬件升级。
- 还需要大量电力来为服务器以及系统冷却供电。
- 数据必须在不同的数据中心进行复制,以便在发生灾难时能够恢复。
V. 所提出的框架
本研究提出了一种新的框架,用于基于云PaaS模型为软件公司建立平台。所提出的框架包含三个阶段,如图1所示。
VI. 开发阶段
A. 基于浏览器的IDE
从软件开发的角度来看,仅使用浏览器编写、构建和部署软件应用程序是一种很有前景的方法。近年来,直接在基于浏览器的IDE中编写代码的趋势越来越受到关注,其中一些开创性的例子如Cloud9‐IDE。图2描述了基于浏览器的IDE的工作流程。
B. 基于Web的IDE操作
在云中提供一个开源的集成环境。它支持更多语言,包括对 PHP、JavaScript/Node.js 和 Go 的 A 类支持。它使开发者能够通过预配置的工作区(workspaces)立即开始编码,与同行协作,并使用编码功能和网页开发功能进行开发,同时支持网页预览和浏览器兼容性测试[9],如图3所示。
C. 代码仓库
代码仓库被开发者在全球范围内使用,以便他们共同协作并将在互联网上可访问的系统中保存源代码,如图4所示。
GitHub 是一个 Git 仓库,我们提供了所有分布式版本管理(SCM)功能特性。与 Git 不同,GitHub 提供了基于网页的以及移动端集成的控制,并支持多种协作管理、缺陷跟踪和项目[10],如图5所示。
VII. 部署
基于云的基础设施已构建并部署。平台即服务主要关注整个软件应用,使应用程序的部署比以往更加简便和可靠。
平台即服务通过浏览器为基于的集成应用程序提供商提供选择软件、数据库、应用程序框架等的能力,而无需进行任何配置。使用平台即服务,应用程序的部署仅需将应用程序(例如 .wsgi 文件)上传到选定环境即可,无需任何配置。平台即服务提供商为部署提供版本控制,因此应用程序可以重新部署应用程序的旧版本。
A. Stackato
Stackato 是一个服务平台,其基础组件主要为 CloudFoundry & Docker。其广泛的目标是提供对编程语言、框架和基础设施的统一访问(支持任何基础设施即服务)。Stackato 支持应用程序的部署,无论是否使用应用程序的部署,因此可用于多种用途。
B. 将应用程序推送至云端:
云客户端的“targets”指向 API 地址(例如 api.192.168.1.101.xip.io),并通过“cloud login”命令进行身份验证。
“application push”命令会启动将应用程序代码部署到云中。prompt for 配置信息 as shown in 图7。
创建了应用程序 URL 并进行配置。创建了一个包含应用程序依赖的临时包。客户端要么拥有应用程序,要么在 Stager 中创建容器,进行组装,并生成“droplet”。
VIII. 实证研究和结果
本研究对尼罗河中心的程序员进行了实证研究。该实证研究基于该框架的实际应用及其参与者。研究结果表明在 5 个不同的样本中:
第一个问题:平台即服务是否增加了开发过程的进程数量?
如图8和表1所示,大多数程序员表示,平台即服务增加了项目的开发数量。
表1:增加开发数量
| 选项 | 回答人数 | 百分比 |
|---|---|---|
| Yes | 20 | 80% |
| 中立 | 4 | 16% |
| No | 1 | 4% |
第二个问题:PaaS 是否降低了开发成本?
如表2和图9所示,大多数参与者指出:PaaS 降低了开发成本。
表2:降低开发成本
| 选项 | 回答人数 | 百分比 |
|---|---|---|
| Yes | 17 | 68% |
| 中立 | 5 | 20% |
| No | 3 | 12% |
第三个问题:平台即服务是否能够促进开发流程并消除复杂性?
如表3和图10所示,大多数受访者认为:PaaS 有助于开发过程并消除复杂性。
表3:消除复杂性
| 选项 | 回答人数 | 百分比 |
|---|---|---|
| Yes | 18 | 72% |
| 中立 | 6 | 24% |
| No | 1 | 4% |
IX. 结论
云计算已成为计算机科学领域的重要方向。基于云的平台即服务(PaaS)是构建和维护应用程序的经济高效框架。本研究提出了一项实证研究。研究结果表明,使用平台即服务(PaaS)在多个方面增强了系统的性能。
开启与未来工作:
PaaS 作为增长最快的云主要成功因素之一。本文提出了一种用于软件开发和构建的框架,该框架通过实证研究进行评估,实证研究揭示了软件开发过程中的问题。
1425

被折叠的 条评论
为什么被折叠?



