被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

简介:无可讳言,对于混沌工程的价值,目前在业内还没有一个明确的度量标准,但是可以通过简单的例子来有效佐证。据中亭介绍,一方面可以先选定一个场景,从结果上看,混沌工程可以保证场景不劣化;另一方面,如果度量组织进行突袭,不管系统架构和人员架构怎么变,监控结果都在合理的范围内。总体而言,混沌工程的核心就是增强信心,保证系统在某个场景下的能力不退化。只要这个组织有度量“特定场景下能力是否退化”的指标,混沌工程的价值就显而易见了。

作者丨张俊宝

为什么阿里巴巴、工商银行、中国移动、华泰证券……都在关注混沌工程?

自从 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 大会出品人,混沌工程布道师。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同为博客,不同风格 ——Hexo另类搭建

简介:通过阿里云云开发平台快速由Hexo创建赛博朋克风格的博客。 一 、通过云开发平台快速创建初始化应用 1.创建相关应用模版请参考链接:Hexo博客框架—轻量、一令部署 2.完成创建后就可以在github中查看到新增的Hexo仓库 二 、 本地编写《赛博朋克风…

即学即会 Serverless | 初识 Serverless

简介:Serverless 架构被越来越多的业务所采纳,成为其技术选型,大多数开发者已经跨越对 Serverless 概念了解,切实向落地实践出发。本文带大家一探究竟,为什么说 Serverless 可以帮助开发者聚焦核心业务价值&#xff0c…

宜搭小技巧|巧用审批按钮,流程随心流转

简介:一键启用流程退回,再也不用担心“一错回到提交前”! 今天,宜小搭提交了产品采购申请单,却因某项产品选错分类被领导拒绝,宜小搭只能重新填写再提交,这样做既麻烦也影响工作效率。 流程已…

阿里云将投入70亿元建国际生态、增设6大海外服务中心

9月22日消息,阿里云在泰国举办的国际云峰会上宣布将继续加快海外市场布局,未来三年投入70亿元建设国际本地化生态,并在海外增设6个服务中心,分别位于波尔图、墨西哥城、吉隆坡、迪拜等地。近年来,阿里云在海外市场获得…

开源|优酷动态模板研发体系为分发提效30%

简介:动态模板技术方案将客户端研发链路实现了串联,通过完备的工具化支撑体系,让开发者可以高效完成组件由原始设计稿到可运行代码的最短通路,本文将对研发体系中涉及到的核心模块就行介绍,希望对技术社区及广大开发者…

比心云平台基于阿里云容器服务 ACK 的弹性架构实践

简介:本文主要探讨比心云平台如何利用阿里云容器服务 ACK,来构建应用弹性架构,进一步优化计算成本。 作者:韩韬|比心技术 前言 应用容器化改造后,不可避免地会面临这样一个问题:Kubernetes 集…

程序员莫名收到谷歌转账170万元,直言:一个月没敢花

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life)近日,Google 公司发生一起乌龙事件, 意外地给一位博客和安全工程师转账近25万美元(约合人民币174万元),当事人表示等待将近一个月…

利器解读:Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术

简介:通过在Anolis 5.10 内核中增强 kfence 的功能,实现了一个线上的、精准的、可定制的内存调试解决方案。 编者按:一直持续存在内核内存调测领域两大行业难题: "内存被改" 和 "内存泄漏"何解?本文整理自龙…

无需修改代码,用 fcapp.run 运行你的 REST 应用

简介:解锁客户不修改代码部署存量REST、网页应用场景,解决客户函数调用返回404问题,支持标准的网关产品与开源组件集成函数计算。 作者 | 阿里云 Serverless 技术研发 落语 背景 阿里云函数计算产品在较早的时候支持了HTTP触发器能力&…

在 Linux 中锁定和解锁用户的 3 种方法

在多用户操作的服务器中锁定(禁用)用户可能有多种原因,比如某个用户的登录密码被泄露,或者某个用户离职,但是该用户下还有部分文档未完成转移,而因为归档的目的暂时不删除该用户,而只是锁定等等…

中小企业掀起“减碳潮”,“上云”提高产品绿色竞争力

中小企业节能减碳需求正进入爆发期。4月22日世界地球日,近2000家中小企业已接入阿里云碳排放优化核算平台“能耗宝”,通过光伏装机和算法优化全年节省4.3亿度煤电,相当于减少44万吨碳排放。其中,浙江、广东及江苏的中小企业走在减…

函数计算 HTTP 触发器支持异步,解放双手搭建 Web 服务

简介:函数计算 HTTP 触发器支持异步调用,为用户搭建 WEB 服务使用函数计算作为全托管平台打通了最后一公里,以后 HTTP 触发器的使用者,也可以感受到异步调用”开箱即用“的便捷体验。 作者| 阿里云Serverless技术专家 澈尔 当前…

如何做好“防御性编码”?

简介:类似于“防御性驾驶”对驾驶安全的重要性,防御性编码目的概括起来就一条:将代码质量问题消灭于萌芽。要做到“防御性编码”,就要求我们充分认识到代码质量的严肃性,也就是“一旦你觉得这个地方可能出问题&#xf…

消息队列Kafka「检索组件」上线

简介:本文对消息队列 Kafka「检索组件」进行详细介绍,首先通过对消息队列使用过程中的痛点问题进行介绍,然后针对痛点问题提出相应的解决办法,并对关键技术技术进行解读,旨在帮助大家对消息队列 Kafka「检索组件」的特…

从这些云原生企业身上,我看到了数字化创新者该有的样子

简介:未来的数字世界是什么样子?手握云原生地图的企业,又将如何颠覆数字化?带着这些疑问,我们采访了教育、金融、新零售、互娱、传媒等领域的多位大咖,他们是数字创新的引领者,也是用云原生技术…

云采销:赋能企业商机转化及营销全流程数字化

简介:介绍云采销-企采商产品的在企业业务中的应用场景和产品功能。 云采销:为企业提供“采购协同工具市场资源数据增值服务”的综合性解决方案。 其中“企采商营销管理工作台”为企业提供了B2B营销全域管理系统,包括商机挖掘、线上推广、销…

Hadoop 王者 Cloudera 新转型,定位为混合数据公司

作者 | 宋慧 出品 | CSDN 云计算 随着 AI 等技术兴起,对于数据的应用分析受到了越来越多的重视,数据赛道热度也持续火热。大数据时代为企业提供 Hadoop 服务的 Cloudera,也推出了新一代数据平台 CDP,并逐渐替代以往的大数据平台 …

大数据在线离线一体化解决方案最佳实践

简介: 本文重点介绍大数据产品集通用解决方案,即大数据在线计算离线计算一体化解决方案,并通过真实案例模拟来说明此通用解决方案在具体项目中是如何落地的。 概述 本方案重点要落地的业务是中央网信办网络安全应急指挥中心相关业务&#x…

基于MaxCompute的大数据安全方案

简介:随着法律的完善,数据安全,信息安全,网络安全,升级成国家安全,所以数据安全不管对用户,还是对公司也都会变的越来越重要。做为大数据云数仓解决方案的领导者,阿里云MaxCompute在…

数据仓库的分层架构与演进

简介:分层架构很容易在各种书籍和文档中去理解,但是把建模方法和分层架构放在一起就会出现很多困惑了。接下来,我会从数据研发与建模的角度,演进一下分层架构的设计原因与层次的意义。 分层架构很容易在各种书籍和文档中去理解&a…