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