崭露头角的网络初创公司正在使用互联网托管的平台即服务(PaaS)技术相互跨越式推向市场。PaaS 允许这些初创公司通过将更多时间集中在他们的使命上,减少管理硬件和软件的时间来快速创新。战士也可以从 PaaS 中受益吗?是的,如果作战人员控制 PaaS 堆栈 - 并且开源提供了这种控制。
从历史上看,作战人员应用程序通常是从电源插头到正在运行的应用程序的单体 - 它们通常是为单一目的而设计的,没有考虑重用和互操作性。这些单体的设计差异也阻碍了技术和认证与认可(C&A)重用方面的规模经济。缺乏重用可能会阻止应用程序及时到达作战人员手中,还可能导致成本和进度超支。通过确定可以标准化的通用领域,对这些组件进行一次可重用性认证,并更多地关注剩余的差异,机构可以提高效率并节省定期重新认证应用程序所需的时间。平台即服务 (PaaS) 是一种解决方案,可以通过缩短时间表和消除供应商锁定来缓解这些挑战。PaaS 利用跨多个应用程序一致的 IT 堆栈,包括从电源插头到硬件、虚拟化、操作系统和应用程序服务器的所有内容。IT 堆栈可以认证一次,然后多次重复使用,重新认证工作量要少得多。因此,开发人员可以更专注于他们的应用程序,并更快地将其投入生产,因为它运行在其他人已经严格认证的硬件和软件堆栈上。
图 1 说明了开发人员维护的堆栈与 PaaS 堆栈之间的区别。请注意开发人员的工作如何在没有 PaaS 的情况下沿堆栈向下扩散。与其关注应用程序本身,不如花费精力来指定、获取、集成、部署、认证和维护堆栈的所有组件。此外,每个应用程序的开发人员可以为每个组件指定不同的供应商,要求最终客户精通所有组件。这削弱了培训、运营和维护成本以及批量采购方面的规模经济。借助 PaaS,开发人员可以将更多时间投入到应用程序本身上,同时让 PaaS 提供商利用规模经济,同时代表开发人员维护和保护基础结构和平台硬件和软件。
图1:开发人员维护的堆栈与 PaaS 堆栈的比较
专有的PaaS对作战人员来说是不可能的
然而,PaaS的一个问题是,大多数互联网托管的PaaS提供商都是专有的。其中许多 PaaS 提供商仅支持其专有语言和/或库,这些语言和/或库仅在 Internet 上的后端服务器上运行。如果开发人员想要将应用程序移动到另一个 PaaS 提供商或将应用程序移动到本地服务器,则应用程序移植是必要的。对于可能没有互联网连接的嵌入式和/或分类系统,专有的互联网托管PaaS不是一种选择。这就是开源PaaS可以提供解决方案的地方。从上到下开源的 PaaS 堆栈可以在公共云、分类飞地或战术车辆上运行,并提供相同的体验。为一个部署模型编写的应用程序也可以在所有部署模型上移植。开源 PaaS 提供传统 PaaS 的部署效率,平台部署目标选择开源。
图 2 说明了托管 PaaS 提供程序和本地 PaaS 解决方案之间的这种差异。这两种产品都允许开发人员专注于他们的应用程序,但只有本地 PaaS 解决方案才能在最终用户的数据中心、分类飞地、战术车辆、机载或海底平台等中运行。选择 PaaS 解决方案时,应确保在托管 PaaS 环境中编写的应用程序可以在本地 PaaS 环境中运行,几乎无需修改。实现此目的的最佳方法是通过确保 PaaS 解决方案和应用程序基于开源软件构建来确保最大的可移植性。
图2:托管 PaaS 与本地 PaaS 的比较
开源 PaaS 提供敏捷性和控制力
OpenShift 是面向应用程序的自动扩展开源 PaaS,包括托管、本地和社区产品(图 3)。它于 2011 年 5 月首次在开发人员预览版中发布,旨在使用开源原则满足与供应商无关的 PaaS 需求,并作为上述 PaaS 概念的一个很好的例子。它运行在红帽企业 Linux 之上,每个用户开发的应用程序都作为 Linux 容器内的 PaaS“齿轮”运行。通过使用 Linux 容器,而不是为每个应用程序提供自己的虚拟机,可以精简快速地配置应用程序,这是大规模以及小型嵌入式战术部署的理想选择。即使应用程序是多租户的并且运行在相同的 Linux 操作系统上,Linux 容器也使用称为 cgroups 的 Linux 资源控制组以及通用标准认证和 NSA 开发的 SELinux 进行限制。
图3:OpenShift 组件
配置应用程序设备后,开发人员可以选择应用程序框架、语言以及 SQL 和 NoSQL 数据库的预制 PaaS“盒式”。通过选择这些盒式磁带,开发人员将该代码的维护和安全性留给集中式 PaaS 管理员。这提供了规模经济,因为 PaaS 管理员可以将错误或安全修复程序应用于磁带盒一次,并且使用该磁带盒的所有开发人员的应用程序都会立即受益。
一旦盒式磁带就位,开发人员就可以使用 git 或带有兼容 PaaS 插件的 Eclipse IDE 将特定于任务的应用程序代码添加到 PaaS。一旦代码被推入齿轮,它就会启动并运行。部署后,还可以添加 Maven 和 Jenkins 等 DevOps 工具,以实现自动化构建和持续集成。当应用程序投入生产时,如果它变得“病毒式”(以一种好的方式),PaaS 甚至有一个 HA 代理盒,可以根据服务器负载自动启动和降低其他齿轮。通过构建在开源之上,任何为 PaaS 编写的应用程序都可以在没有它的情况下运行,因此消除了供应商锁定。此外,可以在PaaS上开发应用程序,然后在没有它的情况下部署,例如在轻量级战术或嵌入式环境中。
PaaS 是未来
各机构被迫用更少的资源做更多的事情。他们需要确定冗余领域,并在不损害其任务的情况下巩固努力。正如私营部门所证明的那样,PaaS 提供了快速部署应用程序的能力,它更多地专注于任务,并让 PaaS 提供商经济地提供一个安全稳定的平台来构建。对于作战人员来说,互联网托管的PaaS通常是不可能的。应用程序需要在战术和/或分类环境中断开连接运行。同样,开源PaaS,例如Red Hat的
审核编辑:郭婷
-
嵌入式
+关注
关注
5082文章
19100浏览量
304621 -
互联网
+关注
关注
54文章
11145浏览量
103186 -
服务器
+关注
关注
12文章
9107浏览量
85310
发布评论请先 登录
相关推荐
评论