极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:12
登录|注册

新基建下的分布式消息Chaos框架

讲述:初明明大小:4.78M时长:05:12
你好,欢迎收听极客视点。
近些年来,开源数字基础设施迭代不断加快,加速了企业在云上部署其数据中心、业务中心的脚步。多云、混合云架构已经越来越多地成为企业数字办公的首选方案。在这样的背景下,为了让基础设施更好地适合复杂多变的运行环境,提供大规模、超高稳定的运行效率,一种“新”的软件思潮,即“混沌工程学(Chaos Engineering)”被提升到一个很重要的高度。近日,“OpenMessaging 官微”介绍了基于混沌工程的分布式消息 Chaos 框架,值得关注。以下为重点内容。
混沌工程的引入可以让问题提前暴露、提前解决,从而在工程设计与实现上规避风险,不断提高系统弹性,持续交付高质量产品。其基本原则可以概括为:
建立一个围绕稳定状态行为的假说
多样化真实世界的事件
在生产环境中运行实验
持续自动化运行实验
最小化爆炸半径
通过蓄意制造“破坏”来确保容错机制不断运行并接受考验,从而验证系统的可靠性、可用性与弹性伸缩,提高故障自然发生时系统能正确处理的信息。
当前,业界已经存在一些基于混沌工程的框架,但却存在一些问题,比如 ChaosMonkey 提供了故障注入的手段,但无法给出针对于特定分布式基础设施的正确性、可靠性、可用性校验结果。Jepsen 能在特定故障下验证分布式系统是否满足一致性,但是 Jepsen 并未针对领域特有顺序性、故障恢复时间等检测。此外,Jepsen 测试需要用小众语言 Clojure 编写,这给分布式系统的适配带来了不小困难。
在这样的背景下,OpenMessaging Chaos 框架应运而生。作为分布式消息领域的先行者,它借鉴了混沌工程的理念,内置了丰富的、扩展良好的检测模型,通过标准化 API 暴露衡量分布式消息队列的可靠性、可用性、顺序性与可伸缩性的 Observable Entrypoint,非常利于各个 Messaging 厂商的接入。另外,作为消息领域的 Chaos 框架,它操作简单,适配容易,可以被集成到 CI/CD 框架中,持续帮助系统进行演进与迭代,提高云原生消息架构的可靠性。
Chaos 框架总体架构如上图所示,其主要由控制节点和若干个集群节点组成。控制节点由 Driver(驱动)、Model(模型)、Fault(故障)和 Checker(检测器)组件组成。
框架启动后,控制节点会以 SSH 方式远程登录到集群节点,通过自动部署或手动部署方式,使集群节点组成一个待测试的分布式集群,并会根据需要测试的分布式基础设施找到对应的 Driver 组件并载入,根据设置的并发数建立相应个数的客户端。测试开始后,控制节点根据 Model 组件定义的执行流程控制客户端对集群进行操作,测试过程中,Fault 组件会对集群节点进行故障模拟,包括网络分区、网络包延迟、随机杀死进程等。测试结束,Checker 组件对历史日志文件的自动化分析得出测试结果和可视化图表。另外,框架提供了开放 API,方便厂商对 Driver、Model、Fault、Checker 等组件进行自行扩展。
除此以外,Chaos 框架对容灾体系也设定了核心指标。
通常,容灾系统设计中,往往会主要关注两个指标:
一是 RPO(Recovery Point Objective):即数据恢复点目标,以时间为单位,即在灾难发生时,系统和数据必须恢复的时间点要求。RPO 标志系统能够容忍的最大数据丢失量。
二是 RTO(Recovery Time Objective):即恢复时间目标,以时间为单位,即在灾难发生后,信息系统或业务功能从停止到必须恢复的时间要求。
RPO 关注数据丢失,即系统可靠性;RTO 关注服务丢失,即系统可用性。Chaos 框架有内置的检测模型,天然支持针对于消息领域的可靠性和可用性检测。Chaos 框架还支持检测消息领域特有的一些核心指标:
投递语义。检测消息数据是否丢失或重复, 判断消息系统在故障下是否满足预期 At least once、At most once 、Exactly Once 投递语义,验证系统的可靠性。
故障恢复时间。检测集群故障时间段是否发生不可用,以及不可用后的故障恢复时间,即检测系统是否达到预期的 RTO,验证系统的可用性。
顺序性。检测消息系统的顺序性,比如在故障下消息是否满足预期的分区顺序性。
Chaos 框架还提供了可视化的时延图,可以帮助开发人员和测试人员进一步了解被测试的消息平台在 Chaos 框架运行过程中的表现,发现可能存在的问题。
以上就是今天的内容,你看好 Chaos 框架吗?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 小斧
    投递语义。检测消息数据是否丢失或重复, 判断消息系统在故障下是否满足预期 At least once、At most once 、Exactly Once 投递语义,验证系统的可靠性。 故障恢复时间。检测集群故障时间段是否发生不可用,以及不可用后的故障恢复时间,即检测系统是否达到预期的 RTO,验证系统的可用性。 顺序性。检测消息系统的顺序性,比如在故障下消息是否满足预期的分区顺序性。
  • NullPointer
    这个概念应用的要求比较高,短期内的应用选用概率不高吧。
收起评论
显示
设置
留言
2
收藏
49
沉浸
阅读
分享
手机端
快捷键
回顶部