rbu*_*hum 11 deployment django postgresql amazon-ec2 django-south
问题:使用Django时,实现0(或尽可能接近0)停机时间的好策略是什么?
我读到的大多数答案都说"使用南方"或"使用面料",但那些非常模糊的答案恕我直言.我实际上使用了两者,我仍然想知道如何尽可能地实现零停机.
一些细节:
我有一个体积适中的Django应用程序,我在EC2上主持.我使用South进行模式和数据迁移以及使用boto进行结构化,以自动执行通过一组Jenkins(持续集成服务器)任务触发的重复部署/备份任务.我使用的数据库是标准的PostgreSQL 9.0实例.
我有一个...
我们的团队不断编辑的暂存服务器,包含所有新内容,并加载了最新最好的代码和...
不断更改用户帐户和用户数据的实时服务器 - 全部记录在PostgreSQL中.
目前的部署策略:
部署新代码和内容时,会创建两个服务器(实时和暂存)的两个EC2快照.直播切换到"正在更新新内容"页面...
停工开始了.
实时克隆服务器迁移到与登台服务器相同的模式版本(使用南).仅创建我想要保存的表和序列的转储(特别是用户帐户及其数据).完成此操作后,转储将上载到登台克隆服务器.从实时保留的表将被截断并插入数据.随着我的实时服务器中的数据增长,这一次显然在不断增加.
加载完成后,实时服务器的弹性ips将更改为分段克隆(因此它已被提升为新的实时).实时实例和实时克隆实例终止.
停工结束.
是的,这有效,但随着数据的增长,我的"虚拟"零停机时间越来越远.当然,我想到的是以某种方式利用复制并开始研究PostgreSQL复制和"最终一致"的方法.我知道我可以使用负载平衡器做一些魔术,但同时创建的帐户问题使它变得棘手.
我建议你看什么?
更新:
我有一个典型的Django单节点应用程序.我希望有一个解决方案可以更深入地了解django特定问题.例如,我想到了使用Django支持多个数据库以及自定义路由器以及复制的想法.有些问题与我希望回答的问题有关.
| 归档时间: |
|
| 查看次数: |
1229 次 |
| 最近记录: |