公告推出MongoDB 8.0,史上最快的MongoDB! 了解更多 >>推出MongoDB 8.0,史上最快的MongoDB! >>

平台即服务(PaaS)详解

云计算,即基于虚拟方式(例如,通过互联网)提供基于计算机的服务,已成为各行业的标准。云计算不仅减少了企业对本地IT基础设施的需求,增强了可扩展性,而且支持地理上分散的开发团队,因为组织认识到其全球潜力。

云计算的关键要素之一,平台即服务(PaaS),现在是公共云环境增长最快的方面之一,因为越来越多的组织寻求以新的方式开发和部署自己的应用程序。事实上,PaaS收入预计到2028年将增长超过公共云计算的其他任何元素(见下表)。这相当于年增长率12.29%,到2028年市场规模将达到1153亿美元!(Statista.com,2024)

继续阅读,了解有关PaaS是什么、PaaS如何工作以及选择适合您组织的PaaS解决方案时需要考虑的关键因素。


目录

IaaS、PaaS和SaaS之间的区别是什么?

最受欢迎的云计算服务包括基础设施即服务(IaaS),其中云服务提供商通过虚拟方式支持计算基础设施(例如,数据存储、局域网和服务器),以及平台即服务(PaaS),除了IaaS的好处外,客户端还可以访问云托管资源和发展工具,以开发、运行和维护云启用企业应用程序。最后,还有软件即服务(SaaS),第三方组织(例如,微软、Salesforce、EA Games)在云中部署其应用程序,并通过浏览器或程序界面(例如,微软Office许可证、Food Network GO烹饪课程)销售其应用程序的访问权限。

下方的图解展示了IaaS层如何为PaaS和SaaS云计算层提供基础设施支持。PaaS层随后创建开发和部署环境,以及开发工具、高级开发软件和应用监控服务等,这些都支持SaaS层。然后SaaS层通过互联网通过许可或订阅使客户端设备能够访问所需的应用程序。


The diagram represents the main cloud computing service layers, namely IaaS, PaaS and SaaS.

云计算服务模型,层层叠加

什么是平台即服务(PaaS)?

平台即服务(PaaS)是一种云计算模型,其中云服务提供商授予客户访问用于应用程序开发、测试、部署和管理的现成平台的权限。使用PaaS不仅避免了构建平台的前期成本,也避免了获取构建开发环境所需的开发工具和高级开发软件的需求。此外,由于PaaS提供商(例如云提供商)负责平台管理,因此他们负责所有基础设施和硬件的供应、配置和维护,包括备份、负载均衡和维护。

因此,PaaS对希望专注于增强开发能力和应用逻辑而不是基础设施管理和故障排除的开发者来说非常有用。它还为开发者节省了时间,因为他们不必将资源投入到基础设施管理和相关的故障排除中。最后,PaaS支持地理上分散的开发团队的开发工作,因为他们可以在同一个集成环境中协作,共享相同的开发工具、操作系统等。


PaaS的关键元素


PaaS components includes IaaS, OS, web server, database, BI tools, runtime and many more.

该图表示了PaaS的主要组件


PaaS的一些关键元素包括


基础设施

PaaS自动包括云提供商的IaaS产品。这包括应用程序的计算、存储和网络需求。


托管

提供应用程序的托管环境,该环境抽象化了服务器、网络和存储管理需求。


开发工具

开发工具和库帮助开发团队创建、测试和发布应用程序。它们还可能包括集成开发环境(IDE)、持续集成/持续部署(CI/CD)和版本控制功能。


中间件

中间件是运行在操作系统和PaaS环境中部署的应用程序之间的软件层。


操作系统(OS)

操作系统管理底层基础设施,同时确保为应用程序的开发、部署和执行提供稳定、安全和高效的环境。


运行环境

运行环境在操作系统之上为使用特定编程语言构建的应用程序提供通用设施,以便它们可以平稳运行(例如,Java虚拟机(JVM)用于Java,Node.js运行时用于JavaScript,.NET运行时用于C#)。


数据库管理系统

数据库管理系统负责数据库与请求信息的系统之间的读写操作,以及数据库维护、扩展和备份。


安全性

平台级别的安全性允许开发团队专注于他们的应用程序,而不是由PaaS提供商管理的安全协议。


应用程序编程接口(API)

API帮助应用程序在开发环境中相互通信,在数据库管理系统、平台以及更远的地方。


应用程序监控和商业智能(BI)工具

应用程序监控工具提供应用程序性能指标,而BI工具则支持数据分析和可视化,从而支持数据驱动的决策。

PaaS是如何工作的?

平台即服务(PaaS)通过提供支持整个应用程序开发生命周期的云环境来工作。


The image shows how PaaS works, i.e. how PaaS products are accessed as service over public, private and hybrid cloud models.

PaaS的工作原理

PaaS应用程序开发生命周期支持

应用开发生命周期中PaaS支持的步骤概述包括

  • 代码开发支持:开发者使用PaaS提供商提供的集成开发环境(IDE)和支持的编程语言和框架编写代码。

  • 应用测试:然后使用平台上可用的自动化工具,在指定的测试环境中对代码进行测试。

  • 应用部署:测试成功后,应用被部署到实时的PaaS环境中。PaaS平台现在负责资源分配和运行环境设置。

  • 应用资源伸缩和监控:PaaS平台监控应用性能,根据实时需求调整资源伸缩。

  • 使用报告工具:开发者和运维团队使用平台提供的监控工具跟踪性能指标,确保平稳运行。

  • 持续维护:PaaS提供商还负责管理底层基础设施的更新和维护,确保应用能够受益于最新的特性和安全补丁。

PaaS用例

一些典型的PaaS应用场景包括以下内容

  • 跨平台和移动应用开发:开发者可以在平台上现有的工作流程、安全和其他开发能力中创建代码。

  • 开发和运维(DevOps)自动化:PaaS和DevOps合作可以加快应用生命周期管理,因为PaaS CI/CD管道支持DevOps自动集成代码更改和部署流程。

  • 项目时间表:通过自动化维护任务、重用现有服务和减少基础设施管理任务,组织可以变得更加灵活,提高生产力,并缩短应用上市时间。

  • 采用新技术:PaaS支持多种技术,帮助组织随着业务需求的变化迁移到新技术,同时在整个过渡过程中支持运营。

  • 商业分析:PaaS客户可以使用内置的分析和业务智能解决方案,而无需购买许可证,这将大大降低成本。

  • 将应用迁移到混合模式:PaaS负责基础设施、容器编排、跨平台应用的可移植性和集成,使组织能够将其工作负载从本地迁移到云,或从一家云迁移到另一家云。

选择PaaS解决方案时的考虑因素

有许多PaaS提供商可供选择——每个提供商都有自己的优点和缺点。在评估时,请仔细考虑您组织的需求,并使用Gartner Magic Quadrant等工具,以及云服务提供商的规格。


选择PaaS提供商时需要提出的问题

在选择PaaS提供商时,常问的问题包括

  • 云提供商(例如,PaaS提供商)提供的功能是否足够满足您的应用需求,并且当应用用户群增长时,它是否能够高效地扩展?

  • PaaS提供商是否支持您的组织使用的框架和编程语言?如果不支持,将如何解决任何运行时问题?

  • 如果需要在以后某个时间支持多租户能力或混合模式,应用迁移将有多复杂?

  • 客户评论和推荐如何关于售后服务,例如维护、升级、补丁和整体客户满意度?


选择PaaS提供商时的其他考虑因素

一旦确定PaaS提供商将提供与组织要求相匹配的开发能力、开发工具、部署环境、分析工具等,就到了考虑您的关键云能力企业应用如何与PaaS平台接口的时候。在AWS、Microsoft、Google和Oracle等顶级PaaS提供商的情况下,除非应用非常独特或是在内部定制的,否则很少会出现问题。在这个过程中,通常可以找到或创建一个应用程序编程接口,以实现平稳运行。

好消息是,许多关键软件应用都可以与各种PaaS服务提供商兼容。例如,MongoDB Atlas是构建高度可用和可扩展的互联网应用的首选文档数据库,与包括AWSMicrosoft AzureHerokuGoogle Cloud在内的多种PaaS提供商兼容。对于希望采用多云模型的患者,可以使用MongoDB Atlas Kubernetes操作员在您选择的PaaS提供商上配置和部署完全管理的Atlas集群。

常见问题解答

云计算服务的常见层级有哪些?

云计算服务的常见层级包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。

什么是平台即服务(PaaS)?

平台即服务(PaaS)是一种云计算模型,其中云服务提供商授予客户访问一个用于应用开发、测试、部署和管理的现成平台,而不需要构建或维护该平台基础设施。

PaaS的关键要素是什么?

PaaS的关键要素包括

  • 基础设施。
  • 托管。
  • 开发工具。
  • 中间件。
  • 操作系统。
  • 运行环境。
  • 数据库管理系统。
  • 安全。
  • API。
  • BI工具。

PaaS支持的应用生命周期步骤有哪些?

  1. 代码开发支持
  2. 应用测试
  3. 应用部署
  4. 应用资源伸缩和监控
  5. 报告工具使用
  6. 持续维护