buildout-用于从多个部分创建,组装和部署应用程序的构建系统
Buildout是一个用Python编写并扩展的自动化工具,用于从多个部分创建,组装和部署应用程序的构建系统。
运行构建工具来构建软件。
应用软件和模板以生成配置文件和脚本。
适用于从开发到生产部署的所有软件阶段。
基于核心原则:重复性、组件化、自动化
重复性
重要的是,给定项目配置,无论其历史如何,在同一环境(操作系统,Python版本)中对配置的两次检出都应产生相同的结果。
例如,如果某人已经在项目上工作了很长时间,并将更改提交到版本控制系统,则他们应该能够告诉同事签出他们的项目并运行构建,并且生成的构建应该具有相同的功能。结果作为原始工作区域中的构建。
组件化
我们认为软件应该是独立的,或者至少应该是可能的。满足软件职责的工具应主要驻留在软件项目本身内。
一些例子:
软件服务应包括用于监视它们的工具。操作(包括监视)是软件的责任,因为软件的创建者是最了解如何评估软件是否正常运行的人。
在部署生产软件时,应该有可能将软件配置为监视系统以监视软件。
软件应提供使它的配置自动化的工具。人们不必创建单独的配置,无论是在开发中还是在部署中(或介于两者之间的阶段)。
自动化
软件部署应高度自动化。应该可以使用一个(或两个)简单命令检出项目并获得工作系统。这对于实现可重复性和组件化的目标是必要的,并且通常不浪费人们的时间。
Buildout入门
安装Buildout的最简单方法是使用pip:pip install zc.buildout,当然,您也可以从网盘下载Buildout的源代码包。
生成配置和自定义脚本
该bobo程序不会自己守护。而是要与zdaemon或supervisor等专用守护程序一起使用。我们将使用配方来设置zdaemon。我们的Buildout配置变为:
示例
一个非常常见的Buildout用例是管理用Python编写的库或应用程序主要部分的开发。Buildout通过以下develop选项促进了这一点: