• 【混沌工程】混沌工程原理


    混沌工程是在系统上进行实验的学科,目的是建立对系统承受生产中动荡条件的能力的信心。

    大规模分布式软件系统的进步正在改变软件工程的游戏规则。作为一个行业,我们迅速采用提高开发灵活性和部署速度的做法。紧随这些好处之后的一个紧迫问题是:我们对投入生产的复杂系统有多少信心?

    即使分布式系统中的所有单个服务都正常运行,这些服务之间的交互也会导致不可预测的结果。不可预测的结果,加上影响生产环境的罕见但具有破坏性的现实世界事件,使这些分布式系统本质上是混乱的。

    我们需要在弱点出现在系统范围的异常行为中之前识别它们。系统性弱点可能表现为: 服务不可用时不正确的回退设置;从调整不当的超时重试风暴;当下游依赖收到过多流量时中断;单点故障崩溃时的级联故障;等等。我们必须在最重要的弱点影响生产中的客户之前主动解决它们。我们需要一种方法来管理这些系统中固有的混乱,利用不断提高的灵活性和速度,并对我们的生产部署充满信心,尽管它们代表着复杂性。

    一种基于经验的、基于系统的方法可以大规模解决分布式系统中的混乱问题,并建立对这些系统承受现实条件的能力的信心。我们通过在受控实验中观察分布式系统的行为来了解它。我们称之为混沌工程。

    实践中的混乱


    为了专门解决大规模分布式系统的不确定性,混沌工程可以被认为是促进实验以发现系统弱点。这些实验遵循四个步骤:

    • 首先将“稳态”定义为系统的一些可测量的输出,表明正常行为。

    • 假设这种稳定状态将在对照组和实验组中继续存在。

    • 引入反映现实世界事件的变量,例如服务器崩溃、硬盘驱动器故障、网络连接中断等。

    • 尝试通过寻找对照组和实验组之间的稳态差异来反驳该假设。

    破坏稳定状态越难,我们对系统行为的信心就越大。如果发现了一个弱点,我们现在就有了一个改进目标,以便在该行为在整个系统中显现之前进行改进。

    高级原理


    以下原理描述了混沌工程的理想应用,应用于上述实验过程。遵循这些原则的程度与我们对大规模分布式系统的信心密切相关。

    围绕稳态行为建立假设


    关注系统的可测量输出,而不是系统的内部属性。在短时间内对该输出的测量构成了系统稳定状态的代表。整个系统的吞吐量、错误率、延迟百分位数等都可以是代表稳态行为的感兴趣的指标。通过在实验期间关注系统行为模式,Chaos 验证系统确实有效,而不是试图验证它是如何工作的。

    改变现实世界的事件


    混沌变量反映了现实世界的事件。通过潜在影响或估计频率对事件进行优先级排序。考虑与硬件故障(如服务器死亡)、软件故障(如格式错误的响应)以及非故障事件(如流量激增或扩展事件)相对应的事件。任何能够破坏稳态的事件都是混沌实验中的潜在变量。

    在生产环境中运行实验


    系统的行为因环境和流量模式而异。由于利用率的行为随时可能发生变化,因此对真实流量进行采样是可靠捕获请求路径的唯一方法。为了保证系统运行方式的真实性以及与当前部署系统的相关性,Chaos 强烈倾向于直接在生产流量上进行试验。

    自动化实验以连续运行


    手动运行实验是劳动密集型的,最终是不可持续的。自动化实验并连续运行它们。混沌工程将自动化构建到系统中,以驱动编排和分析。

    最小化爆炸半径


    在生产中进行试验有可能导致不必要的客户痛苦。虽然必须考虑一些短期的负面影响,但混沌工程师有责任和义务确保将实验的后果最小化并加以控制。

    混沌工程是一种强大的实践,它已经改变了世界上一些最大规模运营中软件的设计和工程方式。在其他实践涉及速度和灵活性的地方,Chaos 专门解决了这些分布式系统中的系统性不确定性。混沌原则为大规模快速创新提供信心,并为客户提供他们应得的高质量体验。

    本文https://www.jiagoushi.pro/principles-chaos-engineering
    讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
    公众号

    【jiagoushipro】
    【超级架构师】
    精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
    我们在等你,赶快扫描关注吧。
    81db07c147752f2b59a3bad9873df29c.jpeg
    微信小号

    【ca_cea】
    50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

    444dbb35291e38d7d16022b154ccfd09.jpeg

    QQ群

    【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
    加QQ群,有珍贵的报告和干货资料分享。

    310d7c5c6b70a35e946ad75a5c5b05c5.jpeg

    视频号【超级架构师】
    1分钟快速了解架构相关的基本概念,模型,方法,经验。
    每天1分钟,架构心中熟。

    2b9fd2f97658cb992c204f791b8b621c.jpeg

    知识星球【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。

    967fd6832f35fd1b7930cbc21d6b1340.jpeg

    喜马拉雅【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
    知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
    微博【超级架构师】智能时刻
    哔哩哔哩【超级架构师】

    877177bb5ccba9f76ded37f16ce38f87.jpeg

    抖音【cea_cio】超级架构师

    f1ffb7bfcc752e5de3c4a0acc6b381bf.jpeg

    快手【cea_cio_cto】超级架构师

    2f8f92e01428931dc0a8673f44749cff.jpeg

    小红书【cea_csa_cto】超级架构师

    e47d528868c12da1e4eee3758d8acd12.jpeg

    网站CIO(首席信息官)https://cio.ceo

    CIO,CTO和CDOhttps://cioctocdo.com

    应用开发和开发平台https://apaas.dev

    开发信息网https://xinxi.dev

    首席架构师社区https://jiagoushi.pro

    超级架构师https://jiagou.dev

    企业技术培训https://peixun.dev

    谢谢大家关注,转发,点赞和点在看。

  • 相关阅读:
    SQL 左连接 LEFT JOIN 关键字||SQL右连接 RIGHT JOIN 关键字
    Python 自动化教程(4) : 自动生成PPT文件 Part 2 (干货)
    STL 中给 vector 去重的三种方法
    1999-2018年地级市一般公共预算收入、支出(教育事业费、科技支出)
    java17 新特性(实用)
    WORDPRESS 和 ELEMENTOR 一样吗?不同点在哪里?
    JMeter 进行函数助手MD5加密
    蓝桥杯 题库 简单 每日十题 day11
    Install kibana manually
    QAConv:信息性对话的问答
  • 原文地址:https://blog.csdn.net/jiagoushipro/article/details/126825602