你有没有任何有效的策略来推出可湿性粉剂网站的v2?

时间:2010-08-12 作者:Mike Lee

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

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

我们目前正在开发自己的开发机器,并将它们集成到一个开发服务器中。所有代码都在SVN中进行版本控制。我们指定的DBA现在正在手动将任何数据库更改合并到开发数据库中,不过希望他能很快实现自动化。

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

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

3 个回复
最合适的回答,由SO网友:Aaron Terry 整理而成

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

这样做就是告诉远程DNS服务器只缓存地址5分钟。一旦更改了IP,就可以将TTL增加到以前的任何值。为了进一步减小影响,请在低流量期间进行切换。

SO网友:SethMerrick

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

基本策略是在临时服务器上工作,然后在一切就绪后,在实时服务器上执行mysql转储,将其导入临时服务器,执行任何所需的清理,然后将DNS记录指向临时服务器,使临时服务器成为新的实时服务器。

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

这并不是一个无缝的过程,但到了一周后,所有的问题都解决了。

SO网友:MikeSchinkel

@迈克·李:好问题,WordPress(或我熟悉的任何主流开源CMSE,如Drupal、Joomla等)的圣杯之一

虽然它肯定不是为了解决您的用例,但请检查my answer to a related question 它描述了我刚刚通过WordPress Answers Exchange提供的一个beta级插件,名为WP Migrate Webhosts(是的,我在创造性命名方面很差劲)

但我也想解决您用插件描述的用例,目前正在考虑如何实现这一点。我认为解决这个问题的方法是放弃一般性的解决方法,而是解决WordPress中存在的已知模式,然后允许其他任何人“钩住”我的插件以用于特殊用例。我还认为一种方法是将WordPress中的数据和结构序列化为PHP文件中的数据,以便将来的插件可以将这些更改作为增量应用,就像源代码控制系统应用增量来获得当前版本的源代码一样。

所以,虽然我没有完全回答或解决你的问题,但我希望我给了你一些思考的好食物,也希望你或其他人可能希望合作最终解决问题。

结束

相关推荐