什么是 PaaS?平台即服务定义
平台即服务 (PaaS) 是一种云计算模型,其中第三方提供商通过 Internet 向用户提供硬件和软件工具。通常,应用程序开发需要这些工具。PaaS 提供商在其自己的基础架构上托管硬件和软件。因此,PaaS 使开发人员无需安装内部硬件和软件来开发或运行新应用程序。
PaaS 工具往往被吹捧为简单易用。考虑到与本地替代方案相比可能节省的成本,组织可能会发现迁移到 PaaS 具有吸引力。
PaaS 的工作原理是什么?
如上所述,PaaS 并不能取代公司的整个 IT 基础设施进行软件开发。它通过云服务提供商的托管基础架构提供。用户最常通过 Web 浏览器访问产品。PaaS 可以通过公有云、私有云和混合云交付,以提供应用程序托管和 Java 开发等服务。
其他 PaaS 服务包括:
- 开发团队协作;
- 应用程序设计和开发;
- 应用程序测试和部署;
- 网络服务集成;
- 信息安全;和
- 数据库集成。
用户通常必须按使用量支付 PaaS 费用。但是,一些提供商对访问平台及其应用程序收取固定的月费。
PaaS、IaaS 和 SaaS 之间有什么区别?
PaaS 是云计算服务的三大类之一。另外两个主要的云计算类别是基础设施即服务(IaaS)和软件即服务(SaaS):
- 借助 IaaS,提供商提供基本的计算、存储和网络基础架构以及虚拟机管理程序(虚拟化层)。然后,用户必须创建虚拟实例(如虚拟机和容器)、安装操作系统、支持应用程序和数据,并处理与这些任务相关的所有配置和管理。IaaS 服务的一些示例包括 DigitalOcean、AWS、Azure 和 Google Compute Engine。
- 借助 PaaS,提供商提供了比 IaaS 更多的应用程序堆栈,将操作系统、中间件(如数据库)和其他运行时添加到云环境中。PaaS 产品包括 AWS Elastic Beanstalk 和 Google App Engine。
- 借助 SaaS,提供商提供了整个应用程序堆栈。用户只需登录并使用完全在提供商的基础架构上运行的应用程序。通常,SaaS 应用程序可以通过 Internet Web 浏览器完全访问。SaaS 提供商管理应用程序工作负载和所有底层 IT 资源;用户仅控制 SaaS 应用程序创建的数据。SaaS 的示例包括 Salesforce、Dropbox 和 Google Workspace。
PaaS 与 SaaS
PaaS 和 SaaS 之间的区别可能很模糊。这两种模型都提供对通常基于云的服务的访问,因此有必要区分平台和软件。
SaaS 产品提供对已完成应用程序或工作负载(例如 HR 或财务应用程序)的访问,以换取经常性费用。SaaS 应用程序托管在提供商自己的远程基础架构上。这样一来,企业就无需在内部购买、部署和维护该应用程序,从而能够减少其内部 IT 占用空间。
PaaS 产品通常提供对一系列相关应用程序或工具的访问,旨在帮助企业执行复杂的相互关联的任务;最常见的例子是软件开发和测试。PaaS 组件也托管在提供商自己的基础设施上,用户可以访问平台的组件,但需要支付经常性费用。PaaS 可以从本地数据中心消除整个工具集,从而进一步减轻组织的 IT 负担。
主要区别在于 SaaS 提供完成的工作负载,而 PaaS 提供帮助企业创建和管理自己的工作负载所需的工具。
PaaS 的优点和缺点
PaaS 的主要好处是用户的简单性和便利性。PaaS 提供商将提供大部分基础设施和其他 IT 服务,用户可以通过 Web 浏览器在任何地方访问这些服务。按定期(订阅)或按使用付费的能力使企业能够消除传统上用于本地硬件和软件的资本支出。实际上,PaaS 将提供、管理和更新关键工具的责任从内部 IT 团队转移到外部 PaaS 提供商。
许多 PaaS 产品都面向软件开发。这些平台提供计算和存储基础设施,以及文本编辑、版本管理、编译和测试服务,帮助开发人员快速高效地创建新软件。PaaS 产品还可以使开发团队能够协作和协同工作,无论他们身在何处。
PaaS 架构使其底层基础设施对开发人员和其他用户隐藏。因此,该模型类似于无服务器计算和功能即服务架构,这意味着云服务提供商管理和运行服务器,以及控制资源的分配。
然而,就缺点而言,服务可用性或弹性可能是 PaaS 的一个问题。如果提供商遇到服务中断或其他基础设施中断,这可能会对客户产生不利影响,并导致代价高昂的生产力下降。但是,PaaS 提供商通常会提供和支持相对较长的正常运行时间,尽管可用性受提供商的服务级别协议 (SLA) 的约束。
供应商锁定是另一个常见的问题,因为用户无法轻松地将许多服务和数据从一个 PaaS 平台迁移到另一个竞争的 PaaS 平台。用户在选择 PaaS 提供商时,必须评估服务停机和供应商锁定的业务风险。
PaaS 产品的内部更改也是一个潜在问题。例如,如果 PaaS 提供商停止支持某种编程语言,选择提供一组不同的开发工具,甚至停止使用平台的部分或全部组件,则对用户的影响可能是困难且具有破坏性的。用户必须遵循 PaaS 提供商的服务路线图,以了解提供商的计划将如何影响其环境和功能。
Types of PaaS
Various types of PaaS are currently available to developers:
- public PaaS;
- private PaaS;
- hybrid PaaS;
- communications PaaS (CPaaS);
- mobile Paas (mPaaS);
- open PaaS;
- integration platform as a service (iPaaS);
- database as a service (DBaaS); and
- middleware as a service (MWaaS).
公共 PaaS。 此模型最适合在公有云中使用。公共 PaaS 使用户能够控制软件部署,而云提供商则管理托管应用程序所需的所有其他主要 IT 组件的交付,包括操作系统、数据库、服务器和存储系统网络。
公共 PaaS 供应商提供中间件,使开发人员能够设置、配置和控制服务器和数据库,而无需设置基础结构。因此,公有 PaaS 和 IaaS 一起运行,PaaS 在使用公有云的同时在供应商的 IaaS 基础架构上运行。不幸的是,这意味着客户端绑定到他们可能不想使用的单个公共云选项。
一些中小型企业已经采用了公共PaaS,但由于它与公共云的密切联系,大型组织和企业拒绝接受它。这主要是由于公有云中的企业应用程序开发存在大量法规和合规性问题。
私有 PaaS。 私有 PaaS 选项旨在提供公共 PaaS 的敏捷性,同时保持私有数据中心的安全性、合规性、优势和潜在的低成本。此模型通常作为用户防火墙中的设备或软件提供,该防火墙通常在公司的本地数据中心进行维护。私有 PaaS 可以在任何类型的基础架构上开发,并且可以在公司的特定私有云中工作。
私有 PaaS 使组织能够更好地为开发人员提供服务,改善内部资源的使用,并减少许多公司面临的代价高昂的云蔓延。此外,私有 PaaS 使开发人员能够部署和管理其公司的应用程序,同时遵守严格的安全、隐私和合规性要求。
混合 PaaS。 混合 PaaS 结合了公共和私有 PaaS,为公司提供了由公共 PaaS 提供的无限容量的灵活性,以及在私有 PaaS 中拥有内部基础设施的成本效益和控制力。混合 PaaS 使用混合云。
通信 PaaS。 CPaaS 是一个基于云的平台,使开发人员能够为其应用程序添加实时通信,而无需后端基础设施和接口。通常,实时通信发生在专门为这些功能构建的应用程序中。例子包括Skype,FaceTime,WhatsApp和传统电话。
CPaaS 为创建实时通信功能提供了一个完整的开发框架,而无需开发人员构建自己的框架,包括基于标准的应用程序编程接口、软件工具、预构建的应用程序和示例代码。
CPaaS 提供商还通过提供支持和产品文档在整个开发过程中为用户提供帮助。一些提供商还提供软件开发工具包,以及可以帮助在不同桌面和移动平台上构建应用程序的库。选择使用 CPaaS 的开发团队可以节省基础设施、人力资源和上市时间。
移动 PaaS。 MPaaS 是使用付费集成开发环境来配置移动应用程序。在 mPaaS 中,不需要编码技能。MPaaS 通过 Web 浏览器提供,通常支持公有云、私有云和本地存储。该服务通常按月定价租用,根据包含的设备数量和支持的功能而有所不同。
MPaaS 通常提供面向对象的拖放界面,使用户能够通过直接访问设备的 GPS、传感器、摄像头和麦克风等功能来简化 HTML5 或本机应用程序的开发。它通常支持各种移动操作系统。
公司经常使用 mPaaS 来创建应用程序,这些应用程序将提供内部和面向客户的用途。此实施可以推广 BYOD 环境和生产力应用程序,而无需移动应用程序开发人员或额外的 IT 支持。
打开 PaaS。 Open PaaS 是一个免费的、开源的、面向业务的协作平台,在所有设备上都具有吸引力,它提供了有用的 Web 应用程序,包括日历、联系人和邮件应用程序。Open PaaS 旨在使用户能够快速部署新应用程序。它的目标是开发一种 PaaS 技术,该技术致力于企业协作应用程序,特别是那些部署在混合云上的应用程序。
集成平台即服务。IPaaS 是一个广泛的服务保护伞,用于集成不同的工作负载和应用程序,否则这些工作负载和应用程序可能无法进行本地通信或互操作。iPaaS 平台旨在提供和支持这些不同的集成,并缓解组织在整个企业中让不同工作负载协同工作的挑战。
数据库即服务。DBaaS 是提供程序托管的数据库工作负载,作为服务提供。DBaaS 可以涉及所有数据库类型,例如 NoSQL、MySQL 和 PostgreSQL 数据库应用程序。DBaaS 模型通常通过定期订阅提供,包括用户操作数据库所需的一切,本地和其他基于云的工作负载可以使用 API 访问这些数据库。
中间件即服务。MWaaS 提供了一套将前端客户端请求连接到后端处理或存储功能所需的集成,使组织能够使用 API 连接复杂和不同的应用程序。MWaaS 在原理上与 iPaaS 类似,其重点是连接和集成。在某些情况下,MWaaS 可以将 iPaaS 功能作为 MWaaS 功能的子集,这也可以涉及 B2B 集成、移动应用集成和物联网集成。
PaaS 和 iPaaS 有什么区别?
虽然 PaaS 和 iPaaS 的名称听起来相似,但它们支持的技术不同,并且这两种云服务具有不同的用途。
IPaaS 自动化工具连接部署在不同环境中的软件应用程序,通常用于将本地数据和应用程序与存储在云中的数据和应用程序集成。iPaaS 平台与中间件更紧密地结合在一起,并被视为中间件,可以作为 MWaaS 产品的一部分包含在内。
另一方面,PaaS 提供云基础设施,以及通过互联网交付的应用程序开发工具。
PaaS 用途
PaaS 工具经常用于移动应用程序的开发。但是,许多开发人员和公司也使用 PaaS 来构建跨平台应用程序,因为它提供了一种快速、灵活和动态的工具,能够创建几乎可以在任何设备上运行的应用程序。PaaS 的核心是为企业提供了一种更快、更简单的方法来构建和运行应用程序。
PaaS 的另一个用途是在 DevOps 工具中。PaaS 可以提供应用程序生命周期管理功能,以及适合公司产品开发方法的特定功能。该模型还使 DevOps 团队能够插入基于云的持续集成工具,这些工具可以在不造成停机的情况下添加更新。此外,遵循瀑布模型的公司可以使用他们用于日常管理的同一控制台来部署更新。
PaaS 还可用于通过自动化或完全消除内务处理和维护任务来缩短应用程序的上市时间。此外,PaaS 还可以帮助减轻管理可扩展基础设施的负担,从而减少基础设施管理。PaaS 消除了负载均衡、扩展和分发新依赖服务的复杂性。PaaS 提供商负责,而不是开发人员控制这些任务。
借助 PaaS 为更新的编程语言和技术提供的支持,开发人员可以使用该模型引入新的技术增长渠道,例如容器技术和无服务器功能。这与技术变革是一个缓慢过程的行业尤其相关,例如银行业或制造业。PaaS 使这些组织能够在不完全改变其业务流程的情况下适应最新的产品。
PaaS 示例:产品和供应商
有许多 PaaS 供应商和产品的例子,它们提供在云中构建企业应用程序和集成所需的工具和服务。以下是一些领先的提供商和平台:
- 谷歌云
- Microsoft Azure
- AWS系统
- IBM 云
- 红帽 OpenShift
- VMware(Pivotal)Cloud Foundry
- Oracle 云平台 (OCP)
- 基于 Heroku 容器的 PaaS
- 西门子低代码 aPaaS
- 发动机堆场云 PaaS
- OpenStack的
- Apache CloudStack的
- 芥末云存储
Google App Engine 支持使用 Java、Python、PHP 和 Go 的分布式 Web 应用。红帽 OpenShift 是一种 PaaS 产品,用于使用各种语言、数据库和组件创建开源应用。Heroku PaaS 提供 Unix 风格的容器计算实例,这些实例在隔离环境中运行进程,同时支持 Ruby、Python、Java、Scala、Clojure 和 Node.js 等语言。
Microsoft Azure 支持使用 .NET、Node.js、PHP、Python、Java 和 Ruby 进行应用程序开发,并使开发人员能够使用软件开发人员工具包和 Azure DevOps 来创建和部署应用程序。
AWS Elastic Beanstalk 使用户能够在 Apache、Nginx、Passenger 和 IIS 等常见服务器上创建、部署和扩展使用 Java、.NET、PHP、Node.js、Python、Ruby、Go 和 Docker 开发的 Web 应用程序和服务。
尽管许多 PaaS 提供商提供类似的服务,但每个提供商都有独特的细微差别和局限性。用户应测试潜在的提供商,以确保其服务满足任何业务或技术要求,例如支持的语言和服务可用性。例如,Wasabi 提供基于云的对象存储作为 PaaS,而 OpenStack 和 Apache CloudStack 等开放平台使组织能够构建自己的私有 PaaS 资源。
平台即服务包含哪些内容?
特定的 PaaS 功能可能因不同的供应商和产品而异。但是,PaaS 的核心功能套件通常包括基础架构、开发工具、中间件、操作系统、数据库管理工具和分析:
- 基础设施。PaaS 包括 IaaS 包含的所有内容。这意味着 PaaS 提供商将管理服务器、存储、数据中心和网络资源。这还可以包括用户用于与 PaaS 基础结构和服务交互的 UI 或门户。
- 应用程序设计、测试和开发工具。PaaS 为客户提供构建和管理应用程序所需的一切。无论物理位置如何,都可以通过浏览器通过 Internet 访问这些工具。特定的软件开发工具通常包括但不限于调试器、源代码编辑器和编译器。
- 中间件。PaaS 通常还包括中间件,即弥合操作系统和最终用户应用程序之间差距的软件。因此,PaaS 订阅者不必将其内部开发人员和资源用于构建中间件。
- 操作系统。用于运行应用程序以及开发人员从中构建应用程序的操作系统由 PaaS 供应商提供。
- 数据库。PaaS 提供商通常会维护数据库,并为客户组织的开发人员提供数据库管理工具。
- 监视和管理工具。PaaS 提供商通常会包括商业智能服务,例如监视和分析,以帮助业务用户了解 PaaS 的使用方式,并帮助解释每次使用的成本和利用率特征。
谁负责监督组织中的 PaaS?
对 PaaS 的控制有时是一个视角问题,通常是提供者和用户之间的共同责任。
PaaS 提供商实际上拥有并运营 PaaS 平台。提供商拥有并运行底层基础结构。他们负责构建、部署、管理和维护 PaaS 产品中的软件应用程序和服务。提供商必须确保 PaaS 正常运行并遵守承诺的 SLA。当问题发生时,提供商必须排除故障并修复任何问题。
出于所有实际目的,PaaS 是用户业务所依赖的第三方资源(业务合作伙伴)。在私有 PaaS 的情况下,组织将构建自己的平台,提供商和用户或客户是相同的。
但是,对于无数寻求提高生产力和摆脱本地基础设施的组织来说,PaaS 是一个重大的范式转变。使用 PaaS 的决定、PaaS 采用的目标和期望、特定 PaaS 的选择、对 PaaS 使用情况的持续监控以及 PaaS 价值或成功的最终确定都是由业务领导者做出的。
考虑到 PaaS 采用的重要性,PaaS 监督和管理很少是企业中单个人的角色。这通常取决于整个组织的 IT 部门的协作努力:
- 首席信息官/首席技术官可以推动 PaaS 计划,指导员工检查和评估 PaaS 作为本地管理工具集的补充或替代方案。
- 软件架构师和工程师可以识别并帮助选择特定的 PaaS 作为工作负载开发、现代化和集成的有意义的引擎。
- 开发人员使用 PaaS 产品,通常是参与 PaaS 评估和选择的关键人员。
- IT 管理员可能参与 PaaS 管理,从用户/客户的角度负责 PaaS 设置、配置、安全和监控。
- 其他业务领导者(如法律合规官)也可以参与 PaaS 决策,以确保 PaaS 的使用符合组织的业务连续性和法规要求。
评估和购买 PaaS 的最佳实践
向 PaaS 的迁移可能令人生畏。PaaS 的成功取决于对业务需求的敏锐理解、对 PaaS 产品和功能的清晰识别以及大量的信任。有几种做法可以帮助组织评估和迁移到 PaaS:
- 了解需求。PaaS 模型究竟需要为企业做什么,以及采用合适的 PaaS 如何比传统的本地工具集更好地使组织受益?例如,目标可能是改进和简化 Java 软件开发,或促进新旧应用程序之间的复杂集成。企业领导者和决策者必须知道他们在寻找什么,然后才能找到它。
- 货比三家。有许多 PaaS 提供商和产品/服务。每个 PaaS 产品的范围、特性、功能和性能可能会有很大差异。例如,当需要 MWaaS 时,CPaaS 可能不会这样做。尝试一些不同的 PaaS 产品,看看哪种产品最适合手头的任务。筛选几个潜在的产品,并在原理验证项目中对其进行测试。在此类 PaaS 评估中投入时间和精力可以建立信心和经验,并防止买家以后后悔。
- 了解提供程序。仔细查看 PaaS 提供程序。采用 PaaS 基本上是与业务合作伙伴合作。与提供商交谈,了解他们的人员配备、业务历史和模式、领导团队、服务支持和 PaaS 路线图。提供商及其 PaaS 会在两年、五年或更长时间内存在吗?PaaS 产品生命周期是什么样的?
- 了解细则。考虑成本、计费方案和支持机制。服务成本应易于理解,并以与业务一致的方式计费。此外,寻找 SLA 并仔细研究它:您的业务可能依赖于 PaaS,而 SLA 是提供商在正常运行时间、可用性和争议解决等方面对您作为客户的唯一承诺。
- 考虑风险。采用 PaaS 始终存在风险。提供商可能会倒闭。关键功能可能会在将来被弃用和删除。路线图中承诺的功能可能永远不会实现。如果 PaaS 遇到服务中断或不可用,您的工作负载会发生什么情况,企业如何应对此类问题?PaaS 具有一定程度的锁定性,迁移到替代 PaaS 可能很困难,甚至不可能。
现代 PaaS 与传统 PaaS
大多数 PaaS 产品的根本目的是简化和简化开发任务,但现代 PaaS 可以远远超出各种有用的工具的简单组合,创建一套紧密集成和互补的应用程序,专注于开发功能、效率、编排和自动化。
例如,VMware Tanzu Application Platform 预计将提供一套高度集成的基于 Kubernetes 的应用部署和基础架构管理工具。这将使 VMware 的云原生 IT 自动化产品能够与 Kubernetes 容器编排平台集成。它将为开发人员提供一个全面的工作流程,以快速构建应用程序并在 Kubernetes 上进行测试。
PaaS 行业成熟的另一个标志是外部集成和支持的兴起。PaaS 产品(如 VMware Tanzu Application Platform)还应支持其他管道工具和 Kubernetes 版本,例如 Jenkins 和云托管的 Kubernetes 服务。此外,这些产品应支持更广泛的编程语言,例如 Python、JavaScript、Go 和 .NET。
PaaS 市场和商业模式的未来
PaaS 已成为用于开发、运行和管理应用程序的经济高效且功能强大的云平台,预计到 2027 年,PaaS 市场将越来越受欢迎并增长。例如,IDC 预测,从 2021 年到 2025 年,云和 PaaS 市场的复合年增长率应为 28.8%。
这种期望是基于企业需要加快应用程序上市时间、降低复杂性、摆脱本地基础设施、建立协作(尤其是对于远程和地理位置分散的团队)以及简化应用程序管理任务的需求。
PaaS 的扩展和增长也受到云迁移和云优先或云原生应用程序开发工作以及其他新兴云技术(如 IoT)的推动。
预计到 2027 年,iPaaS 的作用也将取得可观的进展,因为各种规模的企业都在寻求在不同的软件应用程序之间实现现代化、连接和共享数据,并在整个企业及其客户群中提供统一的工具。
继续阅读 关于什么是 PaaS?平台即服务定义和指南
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/309311.html