写点什么

谷歌云推出面向分布式系统的混沌工程框架与实践指南

作者:Claudio Masolo

  • 2025-11-19
    北京
  • 本文字数:1391 字

    阅读完需:约 5 分钟

大小:698.99K时长:03:58
谷歌云推出面向分布式系统的混沌工程框架与实践指南

谷歌云专家服务团队发布了一份关于云端分布式系统混沌工程的详细指南。该指南强调,人为制造故障对构建弹性架构至关重要。它为用户在谷歌云环境中实施可控的故障测试提供了开源方案和实用指南。

 

谷歌云团队纠正了业界的一个重大误解:认为云服务提供商的服务等级协议(SLA)和内置的弹性功能会自动保护业务应用程序。实际上,如果应用程序在设计时没有考虑故障处理或持续提供服务,那么一旦云服务中断,它们就会崩溃。无论云基础设施做了什么承诺,这种情况都会发生。

 

谷歌云提出的这个框架基于五大核心原则。首先,团队必须建立“稳态假设”,在引入干扰前明确系统正常行为的特征。其次,实验应复现系统在生产环境中可能遭遇的真实场景。第三点,也是最特别的一点,混沌实验必须在具有真实流量和依赖关系的运行环境中执行——这正是混沌工程与传统测试方法的根本差异。

 

第四个原则强调自动化,将弹性测试视为一个持续的过程,而不是一次性事件。团队必须对实验的“爆炸半径”进行全面评估。他们应根据应用程序和服务对客户的影响程度,将其划分为不同的层级。

 

实际实施时有六项关键实践:

 

  • 定义稳态指标,如延迟和吞吐量。

  • 制定可测试的假设,例如“删除这个容器 Pod 不会影响用户登录”。

  • 从受控的非生产环境开始,然后扩展到生产环境。

  • 直接向系统注入故障,以及通过环境变化间接注入故障。

  • 使用 CI/CD 管道自动化实验执行。

  • 从结果中得出可操作的见解。

 

为了降低初始难度,谷歌云建议使用Chaos Toolkit。这是一个开源的 Python 框架。它采用模块化设计,并支持谷歌云、Kubernetes 等的扩展库。PSO 团队在 GitHub 上提供了一整套的谷歌云实践指南。每项指南都针对一个特定的故障场景。

 

自诞生以来,混沌工程已经发生了巨大的变化。全球各大科技公司如今都在采用这种方法,并根据自身的基础设施需求创造了各自独特的实践方式。

 

2010 年,Netflix 创建了Chaos Monkey。它通过随机停止 Netflix 云架构中的实例和服务来测试系统的稳定性。该公司后来增加了Simian Army。这个套件包括像 Latency Monkey 这样的工具,用于增加人为延迟,以及 Chaos Kong,用于模拟整个可用分区出现故障的情况。2014 年,Netflix 引入了故障注入测试(FIT),通过向其系统推送故障模拟元数据,实现对故障注入的更精确控制。

 

与 Netflix 开发 Chaos Monkey 同时,谷歌推出了灾难恢复测试,或称为DiRT。谷歌使用它定期和自动检查其系统,确保它为任何灾难做好了准备,能够进行响应和恢复。随着时间的推移,DiRT 变成了一个年度的多日测试活动,旨在检查谷歌整体的灾难准备情况。

 

亚马逊云科技也有自己的混沌工程工具,称为AWS故障注入模拟器(FIS)。这是一个全托管的服务,用于运行故障注入实验。它模拟现实世界的 AWS 故障,并与 Chaos Toolkit 和Chaos Mesh等工具搭配使用。这扩展了可供测试的故障类型。亚马逊云科技还创建了一个场景库。它提供预构建的实验,用于测试应用程序的弹性,并简化混沌工程实践。FIS 场景库的特色实验包括 AZ 可用性:电源中断。这模拟了特定分区停电的情况。

 

现代架构已经从单体系统转变为基于微服务的系统。这种变化增加了服务依赖的复杂性。云环境非常分散,因为应用程序分布在许多可用分区和区域中。这种分布方式会产生许多潜在的故障点,而传统的测试方法往往难以全面覆盖这些问题。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://www.infoq.com/news/2025/11/谷歌-chaos-engineering/

2025-11-19 14:001

评论

发布
暂无评论

喜迎华诞,openEuler 22.09 正式发布,与1265名开发者共建面向数字基础设施的开源操作系统

openEuler

开源 开源操作系统 open Euler

Qt示例 | 模拟时钟示例 Analog Clock Example

YOLO.

qt 10月月更 C++

基于纯前端类Excel表格控件实现在线损益表应用

葡萄城技术团队

前端 Excel 报表

MASA Framework的异常处理

MASA技术团队

.net MASA Framewrok MASA

云原生时代的DevOps平台设计之道

北京好雨科技有限公司

全息投影正在威胁LED显示屏在舞台的地位

Dylan

LED显示屏 led显示屏厂家

大学毕业后转行软件测试我后悔了

测吧(北京)科技有限公司

测试

重磅 ! Redis+Nginx+JVM+设计模式+Spring全家桶+Dubbo

程序知音

Java 数据库 spring JVM 后端技术

数据结构学习,串篇(顺序串及算法)

IC00

学习 数据结构 算法 学习笔记 10月月更

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript

开源云原生平台对比 KubeSphere vs Rainbond

北京好雨科技有限公司

STM32L051测试 (五、串口测试 — 与Enocean模块通讯问题)

矜辰所致

stm32 串口通信 STM32L051 10月月更

中软鸿联:数字为运动蓄能,智能为健康充值

中软国际AIoT开发者社区

智能穿戴 运动健康

synchronized 和 ReentrantLock 的区别

zarmnosaj

10月月更

都说复盘能力很重要,如何复盘更有效?Superset你值得拥有

王中阳Go

Code Review BI 分析工具 项目复盘 Superset 10月月更

从零开始实现一个Promise

helloworld1024fd

JavaScript

开奖啦!看看 9 月月更获奖名单有没有你?

InfoQ写作社区官方

热门活动

ctk流程

留白的艺术

Qt | 本地存储配置信息 QSettings

YOLO.

qt 10月月更 C++

【数据结构之红黑树】深入原理与实现

C++后台开发

数据结构 后端开发 红黑树 linux开发 C++开发

一条 SQL 语句是如何执行的

说故事的五公子

MySQL 数据库 sql

NFT 数据基础设施 NFTScan 的产品介绍【科普】

NFT Research

区块链 NFT 数据基础设施

手撕常见JS面试题

helloworld1024fd

JavaScript

直播预告|Apache APISIX x KubeSphere 在线 Meetup 来袭

API7.ai 技术团队

APISIX KubeSphere

中软鸿联:集聚智能化能量势场,点燃小家电创新星火

中软国际AIoT开发者社区

智慧家电

行业大咖秀,第二期开播!

云计算

公网对讲SDK| 快速搭建公网对讲应用

anyRTC开发者

音视频 监听 快对讲 AI降噪 录音

C# ref用法,实现引用传递(地址传递)

IC00

C# 学习 程序员 上位机 10月月更

2022互联网母婴行业用户洞察

易观分析

互联网 母婴

真机调试设备不够?荣耀云调试帮你忙

荣耀开发者服务平台

开发者 手机 云服务 荣耀 honor

MySQL高级--性能优化之慢日志查询

Java学术趴

10月月更

谷歌云推出面向分布式系统的混沌工程框架与实践指南_云计算_InfoQ精选文章