fengzhao / fengzhao/fengzhao-notes

混沌工程

Open
#26 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
16
Forks
1
PR merge metrics
No merged PRs in 30d

Description

# 概述

混沌工程(Chaos Engineering)是通过主动向系统中引入软件或硬件的异常状态(扰动),制造故障场景并根据系统在各种压力下的行为表现确定优化策略的一种系统稳定性保障手段。应用混沌工程可以对系统抵抗扰动并保持正常运作的能力(稳定性)进行校验和评估,提前识别未知隐患并进行修复,进而保障系统更好地抵御生产环境中的失控条件,提升整体稳定性。

自开展软件相关工作以来,从业人员和系统稳定性缺陷的斗争从未停止。随着软件系统规模扩大、复杂度增长以及开发周期缩短,历史上曾爆发多次软件危机,推动着软件从业人员不断完善系统稳定性保障措施。随着分布式系统的广泛应用以及敏捷开发、DevOps 的普及,当今软件系统在规模、复杂度和开发敏捷程度方面再次迈入一个新的阶段,系统稳定性也开始面临新的威胁,混沌工程应运而生。混沌工程作为探究系统缺陷的手段,使得软件从业人员在与系统缺陷的斗争过程中掌握主动权,很好地弥补了稳定性保障措施中的短板。

混沌工程的概念最早由网飞公司(Netflix)提出。2008 年 8 月,网飞公司主要数据库发生故障,导致了长达三天的停机,造成巨大经济损失。于是网飞公司开始尝试利用混沌工程优化稳定性保障体系。其在 2010 年开发了 Chaos Monkey 程序,该程序的主要功能是随机终止在生产环境中运行的虚拟机实例和容器,模拟系统基础设施遭到破坏的场景,使得工程师能够观察服务是否健壮、有弹性,能否容忍计划外的故障。Chaos Monkey 于 2012 年在 Simain Army 项目中开源,为混沌工程工具的发展打下了基础。网飞公司在 2015 年发布了《混沌工程理念》(Principal of Chaos Engineering),主要介绍了混沌工程实验的目的、意义和方法论。2016 年混沌工程商业公司 Gremlin成立,混沌工程正式走向商用化。自 2018 年起,国内诸多企业也开始引入并实践混沌工程,由国内厂商主导的混沌工程开源项目 Chaos Blade 和 Chaos Mesh 在 2019 年和 2020 年被先后推出,现已发展成为具备国际顶级影响力的混沌工程项目。

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.