Full Stack Python logo Full Stack Python

全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码

部署

部署是一项涉及了为你的 web 应用打包,并且在生产环境下运行的技术。

为何部署是必要的?

你的 web 应用必须存在于除了你的台式机或者笔记本之外的设备上。生产环境是指正式版本,它包含了你当前的应用及其相关数据。

部署主题框图

Python web 应用部署由多个环节构成,并且每个环节都需要独立配置好。下面这幅图清晰地描述了部署的各个环节是如何相互联系的。点击这幅图片可以获得对应的 PDF 版本。

Full Stack Python site map.

部署托管方案

这里提供了四种部署并托管 web 应用的方案:

前三种方案是类似的。开发者首先需要准备一台或多台安装了 Linux 发行版的服务器。然后要在服务器上安装系统程序包、Web 服务器、WSGI 服务器、数据库以及 Python 运行环境。最后,将从源码生成的应用安装到配置好的环境中即可。

需要注意的是,可以通过系统特定的程序包管理系统来安装一个 Python web 应用。因为它们是比较高级的部署技术,所以我们没有包含进来。

部署有关的资源

  • 如果你需要一个渐进式的 Python web 应用部署指南, 我刚好写了 一本书 是专门针对应用部署的,它叫 全栈 Python 指南之部署, 会对你有很大的帮助。

  • 部署 Python web 应用 是著名的“和我讨论 Python” 播客系列中的一节,我在那儿讨论了在基于很传统的虚拟私有服务器、Nginx 以及“绿色独角兽(Green Unicorn)” 的栈上部署 web 应用。

  • Web 应用部署沉思录 讲解了应用部署的各个环节,包括源码控制,制定计划,持续部署以及监测结果等。

  • 部署软件 是理解如何恰当地部署软件的必读长文。

  • 持续部署实践 给出了交付与部署的定义,同时讲解了部署的流程图。

  • 在这个 Neal Ford 制作的免费视频 中, 他谈论了持续交付在工程上的实践。他解释了关于 持续集成、持续部署和持续交付间的区别。极力推荐这部视频作为部署概念的综述,同时也是对这个系列视频的介绍。

  • 在 Instagram 使用持续部署 讲述了他们在部署上的成长故事,即从单一的大结构脚本到持续部署的改进历程。在成长过程中,他们遭遇了在代码审查、测试失败、候选版本构建以及回滚这些方面的问题。这是一篇佳作,阐述了如何才能很好地部署大规模的 Python 应用。

  • Stack Overflow 上关于 他们如何部署 的指南是一篇很有深度的文章,它涵盖了从 git 分支到数据库整合的有关话题。

  • 如果你正在使用 Flask 的话,那么阅读这篇 在 Ubuntu 上部署 Flask 应用详解 是让你熟悉部署过程的良好途径。

部署学习清单

  • 如果你赶时间的话,看看这个 平台即服务(PaaS) 方案吧。你可以以免费或者较低的成本部署一款低流量的 web 应用。相比使用传统服务器的方案,你根本不用担心设置操作系统及 web 服务器这样的问题。理论上来说,使用 PasS 托管,你可以更快地在网上看到你的 web 应用在运行。

  • 传统服务器方案 是你学习完整的 Python 网络栈工作方式的最佳选择。随着你的应用规模逐渐扩大,相对使用 PaaS 方案,你会发现使用虚拟私有服务器通常会更省钱。

  • 阅读有关服务器、操作系统web 服务器 以及 WSGI 服务器 的内容,从而对运行一款 Python web 应用需要配置那些组件有更宽泛的了解。

你想怎样部署你的 web 应用?

给我展示裸机和虚拟化服务器方案。

我该如何使用 PaaS 方案部署我的 Python 应用?

我有服务器了,我该如何配置它?

#### 在这里注册以便每月能收到一份邮件资料,内容包含本站的主要更新、教程和 Python 书籍的打折码等。

The Full Stack Python Guide to Deployments 想找到一个完整的,一步一步的部署方案吗?请看《The Full Stack Python Guide to Deployments》.

邮件获取更新

##### 注册以便每月能收到一份邮件资料,内容包含本站的主要更新和 Python 教程。

目录

1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.

部署

重要的更新内容会通过 Twitter 账号@fullstackpython发布。


需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。

Chapters

1. 简介2. 开发环境3. 核心语言4. Web 开发5. 数据6. Web APIs » 7. 部署 8. 测试9. Meta …or view the full table of contents.


This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!

此网站由 @haiiiiiyun开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目