1、云原生架构下的混沌工程实践阿里云智能事业群-高可用架构团队目录混沌工程三连问混沌工程是什么?为什么要实施混沌工程?怎样实施混沌工程?落地案例介绍未来展望混沌工程的概念2017.8月出版PRINCIPLES OF CHAOS ENGINEERINGChaos Engineering is the discipline of experimenting on a distributed systemin order to build confidence in the systems capabilityto withstand turbulent conditions in production
2、.混沌工程是在分布式系统上进行实验的学科,目的是建立对系统抵御生产环境中失控条件的能力以及信心。预计2019.6月上市我对混沌工程的理解一种拥抱失败的技术文化一套抽象严谨的实践原则一种主动防御的稳定性手段一个高速发展的技术领域混沌工程的起源数据中心单点故障业务上云水平扩展能力基础设施运维可靠第三方节点数增加故障率升高ChaosMonkey验证韧性能力源自Chaos Engineering书籍在过去五年左右的时间里,只有仅有的一次节点掉线影响了我们的服务。当时正是混乱猴子终止了一个由于部署失误而没有冗余的服务节点造成了问题。幸运的是,这个故障发生在白天工作时间,在这个故障的服务刚刚部署不久后,对
3、用户的影响也非常小。混乱猴子的美妙之处就在于此,它能尽可能地将服务节点失效的痛苦提到最前,同时让所有工程师在构建一个具有足够弹性应对失败的系统上,达成一个一致的目标。混沌工程原则从故障驱动到故障驱动故障管理活动保障故障应急稳定性度量混沌工程持续集成监控发现限流预案资损防控架构治理一个高速发展的技术领域小结混沌工程作为一个蓬勃发展的技术领域,体现了一种反脆弱的技术思想,提供了一套严谨的实践原则,帮助企业更主动的提升稳定性云迁移(Cloud-Migrate)云就绪(Cloud-Ready)云原生(Cloud-Native)企业上云的几个阶段打法保留原有系统,搭建新系统支持新业务平滑迁移原有系统正常
4、运行,逐渐进行优化和改造不破不立利用新技术和新思路搭建系统,替换老系统顾旧立新挑战稳定的服务质量友好的错误体验企业利益避免重大故障的发生提升组织的效能技术积累构建更具韧性的系统更快速的技术演进客户责任为什么要实施混沌工程减小业务损失,让重大风险在可控范围提前暴露提升系统弹性,持续验证系统对极端场景的容错能力增强团队信心,验证稳定性措施有效性,量化团队价值混沌工程的引入(0-1)结合技术架构,选择实验工具最小爆炸半径,控制实验风险混沌工程的推广(1-N)建立面向失败设计的技术文化围绕战略制定目标,围绕目标设计组织复用成熟产品,提升效能企业如何开始实施混沌工程?一款好的实验工具需要满足哪些条件?丰
5、富度资源、主机、容器、应用 易用性开发框架、实验工具、产品平台开放程度闭源、OpenAPI、支持扩展、开源集成方式代码依赖、架构依赖、无依赖多语言Java、Go、C+、语言无关 活跃状态已停滞、维护、活跃阿里混沌工程的技术演进路线延伸阅读:阿里电商故障治理和故障演练实践开源工具混沌之刃(ChaosBlade)ChaosBlade是一款遵循混沌实验模型,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具,它的特点是操作简洁、无侵入、扩展性强。GitHub 地址:https:/ create dubbo delay-time 3000-consumer-service com.
6、example.HelloService-version 1.0.0blade create cpu fullload-cpu-count 4结束示例:blade destroy 6435335635bbaca5(实验ID)code:200,success:true,result:command:cpu fullload-cpu-count 4-debug false-help false控制爆炸半径,减小实施风险建立面向失败设计的技术文化面向失败设计,因为每一块硬盘,每一个业务系统,每一种技术组件都有出错的可能!分布式系统需要制定分级策略,防止非核心业