共计 3806 个字符,预计需要花费 10 分钟才能阅读完成。
简介:无可讳言,对于混沌工程的价值,目前在业内还没有一个明确的度量规范,然而能够通过简略的例子来无效佐证。据中亭介绍,一方面能够先选定一个场景,从后果上看,混沌工程能够保障场景不劣化;另一方面,如果度量组织进行突袭,不论零碎架构和人员架构怎么变,监控后果都在正当的范畴内。总体而言,混沌工程的外围就是加强信念,保证系统在某个场景下的能力不进化。只有这个组织有度量“特定场景下能力是否进化”的指标,混沌工程的价值就不言而喻了。
作者丨张俊宝
为什么阿里巴巴、工商银行、中国移动、华泰证券……都在关注混沌工程?
自从 Netflix 开源 Chaos Monkey,越来越多的国内公司看到了混沌工程在建设零碎在生产环境中信念的能力,开始尝试通过混沌工程进步可靠性。阿里巴巴作为国内较早对外输入混沌工程能力的企业,早在 2012 年就开始在电商业务上,尝试通过故障注入技术去解决微服务的依赖问题。
应用层谋求更全面、更便当、更快捷的服务,倒逼技术层面零碎越来越简单,可供观测和继续保护的难度一直加大,错综相连的软件服务节点越发依赖技术手段和能力。随着分布式和云原生技术成为支流技术趋势,混沌工程也随之备受关注。因为混沌工程本身个性,难以量化度量简直成为业内共识,但对于企业混沌工程建设的成熟度,也须要探讨衡量标准。
现在,随着中国信通院成立了国内首个混沌工程实验室,混沌工程在国内的倒退走到了新阶段。为此,InfoQ 和阿里云资深技术专家中亭,聊了聊混沌工程在阿里巴巴的技术实际。
9 年,混沌工程在阿里巴巴从摸索到开源
不同企业关注和引入混沌工程的工夫不同,但开局相似。阿里巴巴最开始引入混沌工程,也是为了解决理论问题。据中亭介绍,阿里巴巴摸索混沌工程的工夫线和 Netflix 差不多,只不过 Netflix 从根底资源开始实际,阿里巴巴则是从应用层开始。阿里巴巴最开始是为了解决技术架构变动和组织变动的问题,才去演进一些新的实际。
混沌工程一步步走进阿里巴巴,能够分为五个阶段:
第一个阶段在 2012 年,阿里巴巴电商业务遇到了微服务依赖不合理的问题,导致整个零碎架构出问题,花了很长的工夫做依赖的自动识别及治理,最初通过突破业务和稳定性之间的边界、引入故障注入的技术,解决了微服务的问题。
第二个阶段,阿里巴巴开始尝试做线上容灾、异地多活等容灾技术。通过比拟大的断网等机房切换演练等形式,解决问题。
第三个阶段在中亭眼里是里程碑的阶段。在 2015 年备战双十一之后,阿里巴巴技术团队发现整个备战的办法能够十分体系化:当零碎简单到肯定阶段,纸面梳理曾经难以解决问题,是否能够通过一种逆向的形式裸露问题?2015-2016 年,阿里巴巴开始去做线上故障演练,也是明天提到的混沌工程的后期阶段。中亭提到,在这个阶段的外围是心愿借助混沌工程解决分布式技术,不只是微服务,对整个线上稳定性的问题做全方位的度量,包含工具零碎和监控预案等。
第四个阶段开始于 2018 年,阿里巴巴开始做两件事件:阿里云技术团队开始对云底座进行混沌工程摸索,晋升基础设施的韧性;随同着阿里巴巴技术上云,开始把外部的高可用保障技术,通过云的形式对外输入,解决客户利用高可用的问题。能够看到,随着云服务云能力的对外输入,混沌工程能力开始服务内部客户。
等到第五个阶段,也就是在 2019 年 -2021 年,阿里巴巴在混沌工程上的摸索开始分为两条线,一条是商业服务和开源一体化,清晰化技术演进路线、减速技术演进速度,体现在当初就是面向开发者的一站式混沌工程平台;另一条是阿里巴巴团体外部把混沌工程器重水平提到一个空前的规模。
据中亭介绍,2020 年阿里巴巴做了生产突袭我的项目,把所有可能影响高可用的重大故障因子,全副都聚合在一个平台,公司的管理层会在一个不定时的时刻随机的去发动这种突袭。这次生产突袭的外围要求是,被突袭业务具备在 1 分钟发现,5 分钟定位,10 分钟复原。
他谈到,在这个阶段,曾经把混沌工程和阿里巴巴团体的上云,包含人员组织的应急,曾经齐全串联起来,在外部的阶段积淀到明天,其实曾经是一个比拟好的阶段。据悉,在阿里巴巴外部,将“高可用架构”和“韧性架构组织”降级成为“平安生产”,目前混沌工程曾经成为平安生产的一个根底能力,当初外部的各个团队借助混沌工程去自发性地做垂直演练。基本上笼罩了阿里巴巴外部的几千个利用,所有的外围业务都有笼罩,包含生态公司如考拉和高德。
“过来大家对混沌工程的了解会比拟浅,次要可能就间接把它等同于故障注入了,呈现混沌工程准则后,有了一个绝对谨严的逻辑定义,如果用一句话概括的话,混沌工程分两层:一层是混沌工程平台,一层是混沌工程实际,两层配套能力帮忙企业残缺进行混沌工程落地。”中亭谈道。“整体来看,对混沌工程的了解应该是分层的,整条脉络串联起来的话,你会发现其实混沌工程在企业的整个技术周期或者研发周期很多中央有所影响。”
相较于测试关注的是固定的输出和输入是什么,混沌工程更加强调试验和摸索。“一个非常明显的区别是,我在生产区执行各种试验,而后我是不心愿去突破我在线上的一个稳态。”中亭谈道。InfoQ 在系列访谈中也发现,间接在生产环境做混沌工程测试,须要持审慎态度,这是绝大部分业内专家的共识。
“我”能够引入混沌工程吗?
阿里巴巴的混沌工程实践经验是否能够套用到其余企业呢?从行业角度看,混沌工程技术没有显著的行业限度。在对混沌工程的拥抱水平上,中亭认为,从引入目标和策略上次要是两类企业:一类是与阿里巴巴相似的互联网企业,关注线上故障的应急;另一类是有本人的云或者阶段性上云的企业,面向 C 端或政策法规有要求的企业(如:证券、银行)。
因为混沌工程的属性和行业特殊性,在金融行业的尝试较早。一方面,金融行业是对高可用严谨性有着高要求的行业,另一方面,金融行业正在面临转型。“所以目前混沌工程、分布式数据库或者其余方面的架构降级,背地都须要这样一个抓手来配合,所以混沌工程是比拟适合。”中亭通知 InfoQ:“对互联网业务而言,线上能够分阶段来说,从爆炸半径来讲,阶段性的建设,配合环境技术单元化。”
不敢引入混沌工程,大多数企业的顾虑在于,不同部门对混沌工程的认知不清晰,担心落地的后果。中亭倡议想要引入混沌工程的企业,能够先围绕企业特点做针对性试验,外部要有明确的组织,晓得如何配合策略落地某项的工夫,不再走“老路”,对混沌工程持有发现故障、发现 bug 的态度,而是从系统管理角度想要度量全局稳定性能力。
从技术根底、组织架构、流程制度和技术、人才储备上来说,混沌工程对企业引入没有太多前置要求。中亭谈道:“对企业的技术架构没有特地的要求。混沌工程的前提要求是须要对企业稳态的察看指标有一个精确的形容,所以须要企业在可观测性上有肯定的积攒,有一些根底监控就能够了。”混沌工程次要解决两个层面的问题:单机的零碎设计和周边环境的问题,比方磁盘、单机网络等;集群之间的问题,所以只有企业自身反对肯定的分布式化,就能够落地。
据他介绍,在阿里巴巴外部有一个制度:第一,被演练过的所有产生的故障,都要具备线上可演练的机制,真正验证是否能够复原;第二,所有微服务的架构或分布式系统的架构,一级或外围级利用与非核心级别的利用的关系不能是强依赖,须要有本人的预案;第三,从组织的角度有肯定的验收,比如说监控发现率、问题处理率等,须要在一个量化的数字之间。中亭谈到,只这三条制度,企业从引入到落地就须要进行很长一段时间了。
相辅相成的混沌工程和云原生
通过多年的倒退,目前从技术的角度,行业内曾经有了一些通用的混沌工程试验解决方案供企业抉择。能够看到的是,混沌工程的试验和云密切相关。随着云服务渗透到各行各业,逐步倒退成为新的行业基础设施,对云服务的韧性提出了更高要求,而混沌工程被验证能够无效测验云原生零碎的韧性架构。
“韧性架构的前提是先要对架构有一个了解,不论是 Java 语言体系,还是 GO 语言体系,阿里云帮忙客户做的第一件事是搭建整个架构,第二件事是尝试把外部产生过的故障、在行业看到的故障,以专家教训的形式固化在平台中,联合架构做针对性演练计划的举荐。当企业把这些场景都验收,企业零碎的韧性就达到了肯定的程度。”中亭谈道。
在企业上云晚期,能够在上云前后的平行环境下,针对性地做混沌工程场景试验,观测整个架构的反馈是否统一,进而为企业应用云服务、考量架构的容灾能力提供可判断的根据。在企业上云后,混沌工程试验能够帮忙运维工程师测验云服务。中亭解释道:“大家会关注用云姿态是否正确,比如说容器中间件,来去看企业是不是依照云的最佳实际。”
无可讳言,对于混沌工程的价值,目前在业内还没有一个明确的度量规范,然而能够通过简略的例子来无效佐证。据中亭介绍,一方面能够先选定一个场景,从后果上看,混沌工程能够保障场景不劣化;另一方面,如果度量组织进行突袭,不论零碎架构和人员架构怎么变,监控后果都在正当的范畴内。总体而言,混沌工程的外围就是加强信念,保证系统在某个场景下的能力不进化。只有这个组织有度量“特定场景下能力是否进化”的指标,混沌工程的价值就不言而喻了。
嘉宾介绍:
中亭,2011 年退出阿里高可用架构团队,主导阿里混沌工程畛域规模化实际落地。目前任全局高可用 & 混沌工程团队技术负责人,负责异地多活和混沌工程畛域的技术。QCon 大会出品人,混沌工程布道师。
原文链接
本文为阿里云原创内容,未经容许不得转载。