您的位置:首页 > 资讯中心

SaaS与云计算世界中的混沌工程

发布时间:2021-02-04 10:11:07      阅读量:143次     

下面列出的三步方法基于在广泛的应用程序中进行混沌工程的经验,以及在过去构建灾难恢复(DR)解决方案的经验。这是一个由2部分组成的系列文章的第1部分,涵盖SaaS产品。我希望它能为你的工程旅行增加价值。

混沌工程是什么?

这是一种自动向活动系统注入故障的技术,以研究系统的影响和可恢复状态。“混沌工程”一词起源于Netflix的内部实践。

混沌工程为什么需要它,需要什么样的系统?

在SaaS世界中,灾难是不可避免的。在无情工程的时代,我们必须预见和预测管理可靠系统的问题。混乱的演习减少了任何灾难的爆炸半径,在许多情况下,在没有用户体验的情况下解决了它。由具有依赖关系的分布式服务或组件组成的系统需要混沌工程来验证SLA不受一个或多个服务中断的影响。

我们如何处理混沌工程演习?

下面列出的三步方法确保了您优化了您的工作并获得了最佳的结果。“混乱”这个词听起来很疯狂,但它仍然必须经过周密的规划&一个可控的练习。

"我们还不知道我们还不知道什么。“

1.准备

这是工程小组为完成以下工作而作出的协调一致的努力:

  • 定义稳定状态指标,以说明系统的总体健康状况(根据客户的经验进行综合检查)。
  • 导出针对上述稳态的各种基线假设。
  • 列出所有著名的灾难场景以及修复(死后分流)。
  • 确定支持自动化所需的所有现有可重用代码/工具。
  • 列出所有的测试,涵盖范围广泛的问题和现实世界的问题.举例如下:
    • 数据中心/区域故障
    • 虚拟/硬件
    • 种族条件
    • 整体或个别服务负载
    • 依赖性分解
    • 功能性臭虫
    • 第三方服务失败
  • 建立:
    • 混沌运动流程规划
    • 进度表
    • 所有权(中小企业)
    • 模板(记录每个触发的测试计划)

"你的产出和你的深度规划和专注一样好。“

2.会议室演习 

建立一个复制生产环境,进行各种灾害演习。这个环境不仅应该模拟基础结构设置中的生产,而且还应该模拟基础结构的负载和流量特性。采用或构建自动化工具来进行混乱练习,这可能因您的技术堆栈而有所不同。对复制品的混乱做法应实现以下目标:

  • 混沌工程操作人员应该对系统有深入的了解.如果不是,现在是训练他们的时候了。
  • 它整合了工具(现成的?)、游戏手册和恢复过程(自动化)。
  • 它通过修复一些问题来减少生产环境的爆炸半径。
  • 它验证了一些假设(但还没有完全忽略它们)。
"现实世界的事件将展示现实世界的问题。“

3.现场锻炼 

此时,您应该已经具备了自动化,以便在您的生产环境中执行您的混乱操作。请记住,您正在尝试破坏系统,但仍然停留在SLO的铁路警卫和遵守您的SLA。很少要采取预防措施:

  • 中小型企业可提供各种服务,并随时待命.
  • 你遵循流程,根据观察到的偏离稳态、相关触发动作和任何战术修正的情况,准备一份事实报告。
  • 根据SLO验证各种指标。如果接近破坏SLO(同样是通过自动化),则终止混乱演习。在你修好它之后再看它。
  • 当您终止/中断混乱操作时,自动化应该清理,并确保没有遗留下来的僵尸进程。
咒语:“更难打破,更稳定的是你的系统。”

混沌工程的终结游戏是什么?

其目标是建立具有复原力的系统,不断改进可持续发展机构和投资回报率。

即将到来,第二部分第二部分: 混沌工程在物联网,机器人和边缘计算的世界。