【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

混沌实践访谈:混沌工程和系统可观测性密不可分

  • 2019-03-21
  • 本文字数:2964 字

    阅读完需:约 10 分钟

混沌实践访谈:混沌工程和系统可观测性密不可分

在 O’Reilly 的一份新报告“Chaos Engineering Observability: Bringing Chaos Experiments into System Observability”中,Russ Miles 探究了为什么他认为可观测性和混沌工程这两个主题是“密切相关”的。他认为,随着工程师们深入开展混沌实验,他们会提出很多有关系统底层的问题。


在 O’Reilly 最新的一份报告“Chaos Engineering Observability: Bringing Chaos Experiments into System Observability”中,Russ Miles 探究了为什么他认为可观测性和混沌工程这两个主题是“密切相关”的。他认为,随着工程师们深入开展混沌实验,他们会提出很多有关系统底层的问题。观察并理解正在运行的系统是实现这一目标的一个重要的先决条件。因此,报告提供了一个简短的指南,用于收集混沌实验的指标、日志和跟踪信息。


ChaosIQ.io CEO Miles 与 Humio 团队合作,一起产出了这份 32 页的报告。报告主题包括:混沌工程信号(探索如何获得实验进展通知,以及如何针对相关事件采取行动,以便更好地控制实验)、混沌实验日志(需要一种有效的集中式日志解决方案)、跟踪混沌实验(例如发送OpenTracing数据,以便“拼凑出关键的答案,比如发生了什么、事件发生的顺序,以及是谁挑起了整个事件”)。


InfoQ 联系了 Humio 的 CEO Geeta Schmidt,从她那里了解了 Humio 团队如何看待他们与使用日志管理平台和混沌工程所做的工作之间的关系。


借助混沌实验,开发人员、安全团队和运营管理人员可以以故障和威胁注入的形式进行有意的实验,以此来细化、重新校准对系统的理解。对系统的进一步理解为客户和用户带来了更好的体验,并改进了业务结果。


混沌原则”的“混沌实践”一节中提到:“在一开始就定义’稳定状态’,作为系统的可测量输出,用以表明系统的正常行为”。Schmidt 认为,为了“检测系统何时是正常的,以及随着实验的进行它是如何偏离正常状态的”,发展观察系统的能力是非常重要的。她强调,在与 Humio 客户一起工作时,团队已经意识到,访问可定制的、细粒度的、接近实时的度量和日志可以更好地理解实验所带来的影响。


来自 Gremlin 的 SRE 负责人 Tammy Butow 在去年的伦敦 QCon 大会上发表了演讲。他认为,实现有效的混沌工程实践有三个主要先决条件:高严重性事件管理、监控和度量停机影响的能力。最初由 Netflix 赞助,并由 Casey Rosenthal、Lorin Hochstein、Aaron Blohowiak、Nora Jones 和 Ali Basiri 共同撰写的 O’Reilly 混沌工程报告对这个主题进行了广泛的描述,并讨论了识别出需要在实验期间进行观察的指标的重要性。


在最近发布的InfoQ混沌工程电子杂志中,Michael Kehoe 和 Aaron Rinehart 分别在“LinkedIn’s Waterbear: Influencing resilient applications”和“Using Chaos Engineering to Secure Distributed Systems”这两篇文章中讨论了观察故障注入实验和从可控实验结果中获得见解的必要性。Adaptive ability Labs 联合创始人 John Allspaw 表示,“可观测性”一词与之前的含义有所不同,而且与此相关的人为因素不应该被忽视。


InfoQ 最近与 Miles 讨论了混沌工程和可观测性的话题。


InfoQ:感谢你能够加入我们的讨论。如果团队是第一次接触混沌工程和可观测性,他们应该从哪里开始着手?


Russ Miles:可以从“混沌原则”开始。

在此基础上,我们建议使用混沌工具包,学习一些在线教程,然后着手创建自己的一些混沌实验。这样你就会开始质疑系统的可观测性,然后下一步可以参考“Distributed Systems Observability”和“Chaos Engineering”这两本书。

最后,你也可以加入一些很棒的社区,在社区中交换意见,获得免费的建议。可加入的社区有谷歌混沌社区、Gremlin 混沌工程社区 Slack 频道,以及我们的团队和社区 Slack 频道。

混沌工程是构建永不停机系统的一个令人兴奋的旅程。在前进的路上,这些社区可以帮助你,我们都认为混沌工程是一个关键的心态和纪律,可以帮助我们建立更强大、更有弹性、可靠和安全的系统。


InfoQ:在进行混沌实验之前,系统可观测性有多重要?


Miles:这个问题的关键词是“之前”。拥有良好的系统可观测性是非常重要的,但不管是否进行混沌工程实验,这个都很重要,因为它不只是一个先决条件。

混沌工程和可观测性这两者配合得很好。

在某些情况下,在进行混沌实验之前,你可能已经具备了一定的系统可观察性,这在通过混沌工程实验来诊断系统漏洞表面偏差时无疑是有帮助的。当然,在通进行混沌工程实验过程中,这将成为一种“强制性功能”,如果不存在更好的系统可观察性,它将会提出明显的要求。

因此,根据我们的经验,良好的系统可观测性并不是混沌工程的一个强有力的先决条件。更多的时候,在进行混沌实践时,对系统可观测性的需求将会凸显出来。随着时间的推移,这两种技术将会相互促进和加强。

有趣的是,这也是为什么混沌工程会成为其他非功能性或以运营为重点的系统改进的一个很好的“强制性功能”。混沌工程通常会使这种容易被遗忘或被降低优先级的关注点变得完全不可忽视,它帮助每个人意识到这些挑战的存在,并设计和实现系统健壮性和弹性策略来应对这些挑战。

简而言之,混沌工程使每个人都成为一个更好的系统所有者,而系统可观察性是一种几乎立即就能获得极大好处的能力。


InfoQ:混沌工程实践会面临什么特别的挑战吗?理解和观察混沌实验本身有多重要?


Miles:组织实践混沌工程失败的原因有很多。他们可能不理解这种理念,或者混沌工程师限制其他团队进行混沌实验。混沌工程做得不好很容易导致这种理念被拒绝。

ChaosIQ 团队相信,组织中的每个人最终都会加入实践混沌工程的行列。混沌工程并不是专属于少数人的技术,而是一种有用的理念,适用于所有拥有关键任务业务系统的人。这意味着即使对于中等规模的组织来说,也存在大规模的混沌工程挑战。从规模上看,混沌工程失败的几率增加了。

不管对于什么样的规模,将混沌工程实践当作一种惊喜是走向失败的原因之一。也就是说,在运行实验时,如果有人感到惊讶,那么这对每个人来说通常都是一个糟糕的时刻,因为这些大吃一惊的人通常会请求不要再运行实验。

有时候,用混沌实验来给团队一个惊喜也是有用的,比如说作为一个游戏日的一部分。为了探究团队如何应对动荡的环境,比如探究人员/实践/流程的弱点,你可能不会告诉团队接下来将会应用哪些条件,因此对他们来说可能是一个惊喜。然而,游戏日本身并不会令人感到意外,这一点很重要。

在执行混沌实验时,确保这些实验不应该让任何人感到惊讶。每个可能受到混沌实验影响的人都应该知道正在执行什么样的混沌实验、何时执行、针对什么执行以及为什么要执行这些实验。

混沌工具包和平台的实验格式以及可插拔混沌工程可观察性工具的组合使得这种跨团队和跨组织的可见性成为可能,从而避免了意外混沌的危险以及可能会出现的不良反应。

因此,在很多方面,无论团队的大小和混沌工程的能力如何,将混沌实验引入到整个系统的可观察性中对于避免这些陷阱来说都是至关重要的。混沌工程实验也是系统中的公民,它们应该是良好的公民,除了运行时系统的其他方面,它们的活动也需要一起被了解和观察。


Miles 的报告“Chaos Engineering Observability: Bringing Chaos Experiments into System Observability”可通过 Humio 网站下载,下载前需要进行注册。


查看英文原文:


https://www.infoq.com/news/2019/03/chaos-engineering-observability


2019-03-21 10:033670
用户头像

发布了 731 篇内容, 共 434.5 次阅读, 收获喜欢 1997 次。

关注

评论

发布
暂无评论
发现更多内容

阿里云丁宇:云原生激活应用构建新范式,Serverless奇点已来

阿里巴巴云原生

阿里云 Serverless 容器 RocketMQ 云原生

联通DataOps和MLOps:将机器学习推理作为新的数据源

Baihai IDP

人工智能 大数据 AI DataOps MLOps

如何做好线上服务质量保障?

老张

软件测试 质量保障

【愚公系列】2022年11月 微信小程序-app.json配置属性之entryPagePath

愚公搬代码

11月月更

计算机网络:随机访问介质访问控制之ALOHA协议

timerring

计算机网络 11月月更 ALOHA

CSS学习笔记(一)

lxmoe

CSS 前端 学习笔记 11月月更

应对大规模的资产扫描一些小Tips

穿过生命散发芬芳

11月月更 资产扫描

数据库的体系结构

阿泽🧸

数据库 11月月更

深入理解Metrics(一):Gauges

冰心的小屋

Java metrics Guages

数据驱动科研,清华大学中国新型城镇化研究院使用 ModelWhale 云端协同创新平台

ModelWhale

人工智能 新基建 云平台 数据科学 学科交叉

Spring Boot「25」外部配置元数据

Samson

Java spring 学习笔记 spring-boot 11月月更

一年经验年初被裁面试1月有余无果,还遭前阿里面试官狂问八股,人麻了

程序员小毕

Java spring 程序员 面试 程序人生

【炫丽】从0开始做一个WPF+Blazor对话小程序

沙漠尽头的狼

HTML5学习

Studying_swz

html 前端 11月月更

Vue自定义指令(一)初识

Augus

vuejs 11月月更

算法题学习---链表中的节点每k个一组

桑榆

算法题 11月月更

第四次工业革命的“知识力”,流淌在百度这条创新流水线上

脑极体

2022-11-07:给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。 图用一个大小为 n 下标从 0 开始的数组 edges 表示, 节点 i 到

福大大架构师每日一题

算法 rust 福大大

Cox 比例风险回归模型

heart_6662

11月月更 cox 生存分析 生物信息学

Verilog语法之测试文件

智趣匠

Verilog 11月月更 测试文件

发力新市民圈层,银行系消费金融这半年都有哪些行动?

易观分析

金融 银行

数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比

Lansonli

数据湖 11月月更

vue_Promise学习

Studying_swz

前端 11月月更

CSS学习

Studying_swz

CSS 前端 11月月更

袋鼠云陈吉平:深耕国产自研数字化技术与服务,持续为客户创造价值

袋鼠云数栈

docker-compose下的java应用启动顺序两部曲之二:实战

程序员欣宸

Docker Docker-compose 11月月更

随机森林-机器学习中调参的基本思想

烧灯续昼2002

Python 机器学习 算法 随机森林 11月月更

前端食堂技术周刊第 58 期:TypeScript 4.9 RC、10 月登陆浏览器的新功能、Turbopack 真的比 Vite 快 10 倍吗?100 天 Modern CSS 挑战

童欧巴

typescript chrome

设计千万级学生管理系统的考试试卷存储方案

3分钟快速掌握Go语言正/反向代理的姿势

有态度的马甲

DevOps|乱谈开源社区、开源项目与企业内部开源

laofo

DevOps 研发效能 工程效率

混沌实践访谈:混沌工程和系统可观测性密不可分_软件工程_Daniel Bryant_InfoQ精选文章