写点什么

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

  • 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:033844
用户头像

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

关注

评论

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

前端规范之路

白玉兰开源

大前端 开发规范

智汇华云 | ArSDN打通软件定义数据中心的“任督二脉”

华云数据

一入爬虫深似海,从此早睡是路人

Thrash

GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理

不脱发的程序猿

人工智能 GitHub 开源 OCR 4月日更

什么是Selenium?使用Selenium进行自动化测试

码语者

DevOps selenium

0门槛成为“技术牛人”!星环科技线上分享课“星课堂”开播,快来报名,一探究竟

星环科技

人工智能 数据库 云计算 大数据 直播技术

分布式锁之Redis实现

Sakura

4月日更

【转载】提高系统开发效率的“银弹”——X-series可视化大规模应用开发工具集

赫杰辉

Flink + Hudi 在 Linkflow 构建实时数据湖的生产实践

Apache Flink

flink

4行指令解决pip下载Python第三方库太慢问题(pip更换国内下载源)

不脱发的程序猿

Python pip 4月日更 Python库安装

三步法助你快速定位网站性能问题

华为云开发者联盟

html 网站 网站优化 Performance面板 瀑布图

https如何使用python+flask来实现

华为云开发者联盟

Python flask https ssl HTTP协议

Golang 对象池

escray

学习 极客时间 Go 语言 4月日更

【转载】图形化系统开发组件X-Series(一)——XrossUnit介绍

赫杰辉

华云大咖说 | 华云数据与数科网维携手共建国产云生态

华云数据

实践案例丨Pt-osc工具连接rds for mysql 数据库失败

华为云开发者联盟

MySQL 数据库 pt-osc工具 rds for mysql

事件分发源码,Android事件分发机制收藏这一篇就够了,威力加强版

欢喜学安卓

android 程序员 面试 移动开发

手把手教你从数据预处理开始体验图数据库

NebulaGraph

数据库 数据预处理

阿里巴巴的“双11”高并发秒杀终极版教程!(Java语言设计)

Java架构追梦

Java 阿里巴巴 架构 面试 秒杀架构设计

轻松带你学习java-agent

华为云开发者联盟

Java Trace Java虚拟机 java-agent 挂载

事件分发机制Android,熬夜整理Android面试笔试题,精心整理

欢喜学安卓

android 程序员 面试 移动开发

5个超好用的Instagram图片下载工具推荐

科技猫

分享 下载 教程 图片 Instagram

从源码分析 MySQL 死锁问题入门

比伯

Java 编程 程序员 架构 计算机

知识分享:SQL注入的流程和步骤

Thrash

sql

2020年12月的面试经历:美团4面+字节4面(均已拿offer),面试真题分享

Java架构师迁哥

云管平台如何纳管多云资源?

嘉为蓝鲸

云计算 运维自动化 cmp 混合云 多云管理平台

前端DDD总结与思考

白玉兰开源

大前端 DDD

重磅来袭:Spring之RequestBody的使用姿势小结

学Java关注我

Java 编程 架构 技术 程序人生

软件测试——教育机构课程顾问常见黑话大全

程序员阿沐

程序员 软件测试 教育 机构 教育培训

前端⼤规模构建演进实践

白玉兰开源

架构 大前端

Redis的适用场景简单剖析

大数据技术指南

redis 4月日更

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