使用GitHub和EC2的Python Web应用的部署系统
项目描述
Asuka是一个用于Python Web应用的部署系统,它旨在高度依赖于Distribute(setuptools的现代分支)、GitHub和Amazon Web Services。
http://crosspop.github.com/asuka/
动机
我们开始制作这个系统的主要原因是我们应该能够轻松地部署Web应用而几乎不冒风险。为此,我们高度受到GitHub的内部部署系统的启发。
以下是我们的目标列表
每个功能(每个分支)都应部署到测试服务器(EC2实例),每个功能之间具有隔离的状态。这使得功能能够被协作者独立验证。
如果一个功能看起来没有问题,它应该能够合并到上游(master)。幸运的是,GitHub使这个过程非常简单:pull requests。
每次部署都应该能够随时回滚,包括数据库模式,至少在1分钟内。