一个悲剧
最近在开发一个部门内部的项目,用户都是同事。由于系统只在内部使用,所以开发过程中流程不太规范。
项目刚开始时,由于运营服务器还没有申请到,所以开发服务器和运营服务器在同一台机器上,通过配置Virtual Host
和不同的数据库空间来区分两个环境。
几个月来,一直没有问题。最近,运营服务器和域名申请完毕,但是由于现在的模式并没有多大不妥,而且最近需求催
得比较紧,所以就没有将运营环境与开发环境分离。数据备份也不频繁,最近一次数据备份是2个月前的。
昨天,悲剧发生了 … 有位同事误操作,将一个比较靠近根目录的目录删除了!项目的开发环境,运营环境,运营数据全部都在这个目录下。
结果很严重
- 开发,运营环境必须重新搭建,估计至少需要花费2人天完成;
- 运营数据全部丢失,无法挽回,严重的伤害了系统的用户感情
事情竟然已经发生了,抱怨也没有用,而且这种事情也无法避免,误操作这种事情,你我都有可能犯,“rm”一个密令就行了。所以,心态要好点。这类事情也是项目开发中的风险,需要考虑在内。
经验总结
- 开发环境与运营环境物理分离。最好不要在同一台机器上,如果实在没有办法,也不要在同一个目录或盘符下。这样即使上述类似事情发生,也不会导致两个环境同时丢失,一定程度上的规避了风险。需求再紧,也要分离环境, 不要以“需求紧”作为接口,“需求”永远做不完。
- 运营数据需要频繁备份。这次事故丢失了几个月积累的运营数据,而且昨天早上刚将新特性发布,用户刚刚输入了一些新的运营数据,但是顷刻间全部丢失,真不知道如何向他们交代。极大的伤害了用户的感情,本人表示很内疚。吃一堑,长一智。以后开发项目时,一定要频繁备份数据。
备份策略
经过这次教训后,目前采取了如下策略备份数据:
- 工作时间(9点~22点),每小时备份一次,文件按备份时间点的格式归档
- 将数据库dump文件远程发送到特定的数据备份服务器
- 定期删除多余文件,保留最近一个月的数据