title: 平台即服务(PaaS) category: page slug: platform-as-a-service sortorder: 0704 toc: False sidebartitle: 平台即服务(PaaS) meta: 使用 PaaS 部署应用代码的方案会有其它方面需要权衡的风险。快来 Full Stack Python 学习更多相关知识吧。 translators: blog.chriscabin.com updated: 2016-07-11 10:25

平台即服务(PaaS)

平台即服务(PaaS)提供了硬件基础设施和软件层,这样可以在它上面部署 web 应用。使用 PaaS 方案部署你的 web 应用,就意味着你不必了解更多关于服务器基础、操作系统、web 服务器、以及常提到的 WSGI 服务器的相关知识。

注意:如果你对使用 PaaS 方案部署 web 应用没什么兴趣的话,可以去阅读 WSGI 服务器 一节的内容。

PaaS 层定义了应用程序应该如何访问诸如计算时间、文件以及外部服务这样的资源。相对于在一台服务器或者在 IaaS 上部署应用的方案,PaaS 为使用计算资源提供了更高层次的抽象。

使用 PaaS 方案使得部署和操作变得更加简单,因为它会强迫开发者让应用程序符合 PaaS 架构。例如,在部署应用期间,Heroku 会在仓库的基目录查找 Python requirements.txt 文件,因为基目录就是那个文件的实际社区标准位置。

传统 LAMP 服务栈对比基础设施即服务(PaaS)栈

如果你走的是使用 PaaS 的路线,那你就可以跳过配置操作系统和 web 服务器的步骤,它们都由 PaaS 预先配置并提供了。 PaaS 提供的服务通常起始于 WSGI 服务层。

平台即服务(PaaS)的职责所在

虽说 PaaS 提供的服务会简化服务器、操作系统和 web 服务器的设置和维护,但开发者们仍然需要对他们的 web 栈中其他各层负责。

虽然了解一些用于支撑你的 PaaS 的操作系统知识是有好处的,例如 Heroku 使用的是 Ubuntu 10.04,但是你不必学习很多关于操作系统和服务器层面的安全知识。然而,部署到 PaaS 的 web 应用在在作为 LAMP 堆栈上的应用层依然会因为安全漏洞而易受攻击。这依旧是你的职责去保证你的 web 应用框架和应用能够及时更新并且保证它们的安全。阅读 安全部分 获取更多信息。

支持 Python 的平台即服务(PaaS)

与平台即服务(PaaS)有关的资源

平台即服务(PaaS)学习清单

  1. 回顾上述列出的一些潜在的 Python 平台即服务(PaaS)选项。

  2. 找一个最适合你的应用需求的 PaaS 供应商,并在那儿注册一个账户。Heroku 是推荐给初学者的 PaaS 选择,因为它提供了详细的文档,并且在网上有很多不错的教程。当然,其他的选择也是可行的,因为他们的目的就是让应用部署尽可能地简单。

  3. 在 PaaS 上部署应用后,检查一下是否有任何需要的 PaaS 相关的详细配置文件,从而让你的应用以适当的方式运行。

  4. 在 PaaS 上部署应用。

  5. 将你的应用配置与数据库同步。

  6. 为你应用的 静态内容 设置内容分发网络(CDN) ,除非你的 PaaS 供应商已经帮你完成了这个部署步骤。

  7. 检查你的应用是否正常工作,并在必要时进行调整。