微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

web-server – 如何更新实时网络服务器?

我正在建立一个网络服务器,我想知道更新它所包含的网站的最佳实践方法是什么.我知道我应该有一些并行运行的’test’服务器,以便在它们上线之前首先尝试进行更改.那么测试服务器应该如何模仿生产箱,是否有任何已知的方法可以在测试后轻松地将相同的更改部署到生产箱中?

我真的希望有一个万无一失的测试和应用更改到生产网站的方法,并且非常感谢任何关于此的建议.

平台:
linux ubuntu服务器上工作.运行mediawiki,wordpress邮件服务器.我通过ssh有权访问该框. Mediawiki和wordpress都有PHPMysqL后端.邮件服务器也使用MysqL数据库.

解决方法

我们使用一系列虚拟机,每个实时客户端服务器至少有一个虚拟机,与实时计算机保持同步(除了一些正在进行的数据,因此我们不处理个人识别或其他敏感信息).

转到生产机器的任何一系列更改都放在一个补丁中,该补丁包含所需的任何文件/脚本和脚本(通常用于类Unix环境的shell脚本,批处理文件或vbs脚本)或Windows下的powershell脚本,适当地应用这些文件/脚本.然后,如果VM的副本过时(记得重新运行相关的sql脚本以擦除或随机化敏感数据),我们将从相关VM获取,从生产副本更新其数据库获取它处于此状态的快照(虚拟机和大多数vmware产品支持快照,包括免费的“vmware服务器”,也可能是大多数其他虚拟化解决方案).然后,我们通过运行主控制脚本将修补程序应用于生产服务器.如果应用更改时出现错误,则VM将回滚到快照(最多需要几十秒),以便可以更新补丁并再次尝试.这将根据需要重复,直到补丁干净利落.一旦完成,一些测试人员会被要求全力以赴,以确保新的东西工作,而其他旧的东西没有被破坏(你花多长时间取决于变化的范围和严重程度以及你的水平偏执狂).如果发现问题,则重复回滚,编辑和重新应用循环,直到看起来都很好.一旦一切看起来都很好,假设时间允许,最后一次回滚 – 补丁 – 测试循环就会运行.完成所有这些后,您希望通过运行具有适当参数的单个脚本(即相关密码,因为测试VM上的身份验证凭据应与生产计算机上的身份验证凭据不同),可以将补丁应用于生产环境,并且您可以非常有信心它会干净利落并且没有(或尽可能少)不受欢迎的效果.

在应用对生产系统有意义的任何重要事项之前,请始终采取新的备份,无论您花多少时间测试更新,以防万一,并始终计划至少一些停机时间,在此期间您可以让其他用户离开为更新后的系统提供进一步的偏执测试(如果出现严重错误,请将其回滚到最新备份 – 如果您的生产环境是虚拟化的,那么快照工具也可以在这里使用).

作为一般过程,这可以适用于任何环境.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐