j7n*_*n7k 7 deployment django postgresql continuous-integration
我们还没有持续的集成设置().但是想要非常频繁地部署.每天一次左右.
我们有一个非常标准的Django应用程序和一个单独的Postgres服务器.我们使用普通租用的虚拟机(NO Amazon或Rackspace).
我们如何最大限度地减少应用程序的停机时间?最好是零停机时间.我们考虑使用两个相同的应用程序和两个数据库服务器进行设置,并逐个部署一个app/db服务器对.
问题是保持数据一致.当一个app/db服务器对正在使用旧代码更新服务器对时,可以为用户提供服务.但是如果用户写入数据库,我们会在切换到更新的对时丢失数据.特别是当我们推送架构迁移时.
我们怎么办呢?这一定是一个非常普遍的问题,但我找不到好的答案.你怎么处理这个问题?
如果您没有架构迁移,我将给您一个实际场景:
保留两个版本的 django 进程( A 和 B ),您可以使用主管来控制它们。在 django 进程前面保留一个 nginx 进程,它将所有请求转发到 A。因此,您将版本 B 上传到服务器,使用主管启动 django 进程 B,然后更改 nginx 的 conf 文件以指向 B,然后重新加载nginx进程..
如果您进行架构迁移,事情就会变得复杂。您的选择包括:
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |