it-swarm.cn

你有没有有效的策略来启动v2的a WP 现场?

我和我的团队正在与一个拥有现有WordPress网站的客户合作,该网站包含相当多的内容和他们构建的自定义主题。这是一个群组博客,意味着它在世界各地都有几位博主一直在添加和编辑内容。

我们的工作是创建一个全新的主题,有很多新功能。其中一些功能需要新的自定义小部件,插件和数据库字段。

我们目前正在使用自己的开发机器并将它们集成到一个开发服务器中。所有代码都在SVN中版本化。我们指定的DBA现在手动将任何数据库更改合并到dev DB中,但希望他能够尽快自动化。

我们刚开始谈论我们的生产发布流程。含义:一旦我们完成了,我们如何将所有自定义代码顺利地放到生产(实时)服务器上并尽可能少地中断?

我们有一些计划,但我很想知道其他人如何解决这个问题。是否有任何要遵循的最佳做法或已知的陷阱要避免?

12
Mike Lee

如果您遵循SethMerrick的建议,您可以通过将相应DNS记录上的TTL降低到5分钟左右几个小时(取决于当前TTL是什么)来大大缩短切换时间在更改IP地址之前。

通过这样做,您告诉远程DNS服务器只缓存地址5分钟。更改IP后,可以将TTL增加到之前的状态。为了进一步降低影响,请在低流量时段进行切换。

4
Aaron Terry

我不确定这是否适用,但我刚刚经历了同时迁移和升级高流量网站的类似过程。

基本策略是在登台服务器上工作,然后当一切准备就绪时,在活动服务器上执行mysql转储,将其导入登台服务器,执行任何所需的清理,然后将DNS记录指向登台服务器,从而导致登台服务器成为新的实时服务器。

棘手的一点是然后将在DNS传播期间累积的所有数据合并到登台服务器(现在是实时服务器)中。换句话说,如果在执行mysql转储/更新DNS和DNS传播完成之间经过30个小时,则必须有选择地将旧站点的30小时记录合并到新站点。

这不是一个无缝的过程,但是当我们在路上度过一个星期的时候,所有的纠结都让自己平稳了。

2
SethMerrick

@Mike Lee:很棒的问题,也是WordPress的圣杯之一(或者我熟悉的任何主流开源CMS,如Drupal,Joomla等人)

虽然它肯定不是为了解决你的用例,但请查看 我对相关问题 的回答,该问题描述了我刚才提供的beta级插件WordPress Answers Exchange调用WP迁移Webhosts(是的,我在创意命名方面很糟糕。)

但我也想解决你用插件描述的用例,我正在考虑如何实现这一目标。我正在考虑接近它的方法是放弃一般解决它,而是解决WordPress中存在的已知模式,然后允许其他人“hook”我的插件特殊用例。我也在想一种方法是将WordPress中的数据和结构序列化为PHP文件中的数据,以便将来的插件可以将这些更改应用为增量,就像源代码控制系统应用增量到达一样在当前版本的源代码中。

因此,虽然我没有完全回答或解决您的问题,但我希望我能给您一些好的思考,并希望您或其他人可能希望就最终的解决方案进行合作。

2
MikeSchinkel