2012-06-06 29 views
0

我有一位客户,他当前拥有Magento的一台服务器,他的admin将整个站点关闭了多个小时的更新。我想,使其瞬间的过程,让我想建议他如何应该已经设置了新的解决方案:Magento升级流程和基础设施以尽可能缩短停机时间

  • Magento的生产服务器1(WEB + DB)
  • Magento的生产服务器2(WEB + DB)
  • Magento的开发服务器1

DB将不得不被那些2个服务器之间以某种方式同步(集群?复制?)和我在想,是最小的停机时间可能先更新应该在开发测试服务器(在升级之前从生产服务器同步的DB/WEB)和后检查它工作正常,并知道过程看起来像我会禁用LoadBalancing或RoundRobin DNS到服务器1,然后做服务器2上的升级/更新,然后切换到服务器2作为生产服务器和更新服务器1.当两者都完成后打开LoadBalancing/Round Robin。

我来自Windows环境,所以这是我如何做到这一点在Windows上(也许与单独的数据库和Web也)和像RedGate SqlCompare/Sql数据比较等工具应该工作。

但我不知道的Magento在所有所以请让我知道什么是可能的,也许这个应该怎么做,如果客户不想与他的店是下降到结束......

回答

1

你肯定会需要一个生产服务器,以及某种阶段/版本管理系统。 我建议检查版本管理的Subversion或Git。 可以首先将更改提交到存储库,然后更新到实时站点,而不会停机。这对于开发环境来说绰绰有余。

对于更大的更改,如Magento版本升级,您可能仍然希望/需要在半夜将网站关闭几个小时,因为这是一个更大的过程。

至于多台服务器,作为一个例子,我运行负载平衡器,它在主服务器和辅助服务器之间进行平衡。有一个数据库服务器是分开的。对使用Subversion提交给主服务器的开发服务器进行了更改,然后主服务器和辅助服务器之间的任何更改每隔60秒对辅助服务器进行rsynced。

对于此解决方案,会话和缓存数据存储在数据库中。

1

恕我直言,拥有良好的托管环境,除非你真的在成千上万的同时访问者,你不需要多台服务器。插件是管理员相关问题的常见原因。

我们在“云”环境中取得了巨大成功。实例化一个新的云实例,获取该IP,然后在你的“主机”文件中,指向像dev.yourdomain.com这样的东西进行测试。唯一真正的停机时间是,当数据库转换为新版本(可能需要几个小时)时,应冻结生产站点。我们的mySql数据库备份是3 GB左右,但谢天谢地的下降到280 MB。

我们使用nginx和php-fpm,它们很快就会变得很淫秽。我

典型的迁移路径:

  1. 备份生产现场
  2. 开始新的云实例和复制生产现场开发站点 (恢复生产数据库)
  3. 尝试升级开发站点一个在步骤时间看什么中断
  4. 启动新的云实例并完全安装最新的 magento版本
  5. onc E使用,恢复生产数据库,看着已经被榨干上 转换它,看看有什么突破升级还是全新之间
  6. 挑安装
  7. 备份生产MYSQL,把生产现场维护模式 而开发站点转换数据库
  8. 将域名转换为新的IP地址
+0

仍然存在停机时间......大型网站在做什么?我无法想象有这么庞大的商店这样做吗? – MadBoy

+0

当然,他们会......当他们知道他们处于最低流量时他们会这样做。真正庞大的网站将拥有分布式服务器,升级将推出。然后有人将必须整理关于“旧”数据库上的订单的松散结局... –

+0

我正在考虑使用这个http://www.shopping-cart-migration.com/,以便我将设置新的磁带店从头开始升级,然后用它迁移数据..这是什么东西,看起来和工作好吗? – MadBoy