混沌工程:起源与发展
混沌工程的兴起
混沌工程在软件开发领域仍是一个相对较新的学科。过去三年,行业关注的问题已从“是否应该开展混沌工程”转变为“如何最好地开始实施混沌工程”。这一转变的背后有着一段故事,它始于 Netflix。
Netflix 的困境与管理理念
2008 年,Netflix 公开宣布从数据中心迁移到云端。此前在 8 月,数据中心发生的重大数据库损坏事件导致其三天无法配送 DVD,当时 DVD 配送是其主要业务。Netflix 认为数据中心的架构存在单点故障问题,如云数据库和垂直扩展组件等。迁移到云端可以采用水平扩展组件,从而减少单点故障。
然而,迁移并非一帆风顺。一方面,完全脱离数据中心花费了八年时间;另一方面,向水平扩展的云部署实践的转变并未带来预期的流媒体服务正常运行时间的提升。这是因为 2008 年的 Amazon Web Services(AWS)还不够成熟,云计算并非像现在这样是默认的部署选项。而且,在云端环境中,实例偶尔会毫无预警地消失,这种故障在数据中心较为罕见。
尽管有一些常见的方法可以构建对实例消失具有弹性的系统,如集群中的冗余节点、限制故障域、跨地域部署冗余、自动扩展和服务发现自动化等,但 Netflix 面临一个难题:由于其独特的管理理念,无法强制工程师遵循特定的代码编写模式。Netflix 的管理理念体现在以下几个方面:
- 只雇佣有相关经验的高级工程师。
- 给予工程师充分的自由来完成工作,并承担相应决策的后果。
- 信任员工决定工作的执行方式,管理层确保员工理解要解决的问题,员工再告知管理层解决方案并付诸实践。
- 高性能团队高度一致但松散耦合,即团队成
超级会员免费看
订阅专栏 解锁全文
997

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



