实现DevOps与团队发展的挑战和机遇
1. 实现DevOps的策略与实践
在实现DevOps的过程中,允许程序团队一键将代码发布到生产环境看似存在较高风险。但我们有事后分析流程,即便不追究责任,该流程在追踪和消除根本原因方面也非常有效。通过让开发人员承担部分生产支持负担,并利用公开的计分卡和仪表盘使技术债务可视化,能激发团队内部动力,确保服务的可靠性和可用性。这也有助于团队实现自我监管,因为负责部署的人员熟悉代码、操作、故障点和相互依赖关系,能更好地处理回滚和恢复操作。
一些公司采用“演练日”(Gamedays)的方式来提升应对生产故障的能力。例如Netflix使用Chaos Monkey和Simian Army等工具随意对生产环境进行干扰;亚马逊会突然关闭某个设施,让系统自然故障,以暴露潜在缺陷和意外的故障点;Google会模拟地震、数据中心停电甚至外星人攻击城市等场景。
有一家咨询公司Five Talents将演练日灾难恢复(DR)场景作为最初几次发布的基石。他们的做法是在发布前一周,在沙盒环境中制造一些严重问题来测试团队的准备情况,检查监控工具是否正确触发警报、事件是否正确记录、升级流程是否有效、相关人员能否及时获得所需信息、是否有足够权限进行更改、能否使用标准发布流程修复问题、团队冗余是否足够、操作手册是否全面以及响应人员能否利用知识库解决类似问题等。通过演练日,团队能学到很多,如发现自动修复问题、改进环境设计使其更松散耦合、清理日志、调整升级流程或传播发布管道的知识等。通常需要至少一周时间将这些经验教训融入产品,然后再进行正式发布。
2. 失败的代价与应对策略
在DevOps实施过程中,不能忽视人的因素。有些人可能会出于自身
超级会员免费看
订阅专栏 解锁全文
49

被折叠的 条评论
为什么被折叠?



