字节跳动混沌工程实践总结


本文选自“字节跳动根底架构实践”系列文章。


“字节跳动根底架构实践”系列文章是由字节跳动根底架构部分各技能团队及专家倾力打造的技能干货内容,和咱们共享团队在根底架构开展和演进进程中的实践经验与教训,与各位技能同学一同交流成长。

混沌工程是经过a n ] G v毛病注入的办法协助体系寻觅薄缺点,然后进步体系的稳定性。跟着微服务、云原生相关技能的开展,分布式体系现已盛行在业界各处,但因而也带来了复杂度急剧上升、毛病发作难以预测后果、难以避免与验证等应战。而混沌工程正是经过毛病注入等办法为切入点,协助处理以上; , B v h I z | 5问题。本文评论了字节跳动引进混沌工程以来的相关实践,希望能供给一些参阅。

背景

什么是混沌工程

在出产环境中实践运转分布式体系,不免会有各种不行意料的突发事情发作。一起,云原生的开展,不断推动着微服务的进一步解耦,海量的数据与用户规划也带来了根底设施的大规划分布式演进。分布式体[ _ e U , l q系天然生成有着各种相互依靠,能够出错的当地不计其数,处理不好就会导致事务受损,或许是其他各种无法预期的反常行为。

在复杂的分布式体系中,无法阻止这些毛病的发作,咱q ] 0 (们应该致力于在这些反常行为被触发之前,尽或许多地辨认危险。然后,针对性地进行加固,防范,然后避免毛病{ w u G X Z k | ;发作时所带来的严重后果。

混沌工程正是这样一套经过在出产分布式体系上进行试验,自动找出体系中的脆弱环节的办法学。这种经K y B X : ` 1 8过实证的验证办法显然能够为咱们打造更具弹性的体系,一起让咱们更透彻的掌握t k l 4 h `体系运转时的各种行为规矩。咱们能够在不断b U w T k R W =打造更具弹性(弹性:体^ 0 D r系应对毛病、从毛病中康复的才干)体系的一起,树立运转高可用分布式体系的决心。

实践f m } ] 4 | K混沌工程能够简略如在出产环境中运转 kill -9 来模仿一个P P @ w服务节点的突然宕机,也能够复杂到在线上挑选一小部分(但满足代表性)的流量,按必定规矩或频率自动运转一系列试验。

更多混沌工程相关根底介绍,在此v a @ U ( v p不再赘述,相关评论已有许多,可参阅《混沌工程:Netflix 体系稳定性之道》[1]。

V B w界实践

实践上业界干流大厂都有混沌工程实践的身影,较有代表性的项目如下:

  • Netflix 最早体系化i t {地提出了混沌工程的概念,并出版了混沌n B + d L /工程范畴内的首部书本《混沌工程:Netflix 体系稳定性之道》[1],在本书中提出了混沌工程成熟度模型与应费用模型,Y x y并总结了五条高级准则,关于混沌工程的开展具有指导性含义。别的 Netflix 开源了其混沌工程项; K W q目 – Chaos Monkey[$ T Q F x ) a3F S e M $ c ~ 2 S]。
  • 阿里巴巴是国内较早开端探究混沌工程并做出开源的公司N ! !,其开源项目 ChaosBlade[4]能够结合阿里云进行 c_ Z – Jhaos 试验。
  • PingCap 作为国内优异的数据库范畴开源公司,其在混沌工程范畴一直有投入,并在最近开源了内部混沌工程实践渠道 – Chaos Mesh[5]。
  • Greml5 A : O ;in 为一家混沌工程P ( # y , } * ]商业化公司,该公司供给了一个混沌工程试验渠道,经过将其 agent 装置/ ! V k ? .在云主机上触发毛病。一起提出了 chaos gameday[2]的概念。

字节跳动怎么实践

字节跳动各事务线内一直都能看V 9 [ x B ( }到毛病演练的踪迹,也有一些简略的东西,并演化出了毛病演练渠道。在发现该渠道无法满足之后,咱们开端引进混沌工程的理论概念,重新考虑混沌工程。
关于混沌工程,咱们打算分三部分评论:

  • 毛病注入
  • 自动化方针剖析
  • 活动实践落地

在混沌工程的实施进程中,咱们发现需求依靠两个中心的原子才干,分别是Z # , e $ F 0毛病注N R `入与稳定性检测。毛病注入是混沌工程的根底无需过多解释。稳定性检测才干,能够:1. 下降试验的时刻本钱,咱们能够依靠自动化方针剖析,协助咱们进行辅佐判别,然后寻觅更大的产出。2. 下降] C 0试验的危险本# ! } c B q钱,咱们能够依靠自动化方针剖析,进行稳定性判别,作为 chaos 试验自动化中止的决策依: f z据。

别的,关于第三部分活动实践的落地,则是咱! ; r们在 chaos 试验中,出1 K * /于不同意q 4 o 9 K图,或多或少会有一些流程化,事务性的内容,咱们希望将其沉淀在渠道中。

第一代

第一代能够以为] F 是古早时期,此时字节跳动内部有运用一套容灾演练渠道,作为内部毛病渠道,架构如下:

字节跳动混沌工程实践总结
容灾演练渠道架构图

该渠道首要方针是处理毛病注入问题,一起供给了基于阈值的简略方针剖析与自动中止。毛病首要为经过网络干扰模仿下流依靠毛病,此阶段协助部分事务完成了出产环境的部分容灾演练。
但是该渠道存在这样的状况:在毛病注入方面,由于前期规划着眼于网络毛病,因而其架构与模型不方便扩展至其他毛病形状。短少明晰、一致的毛病域描绘,也因而关于爆破半径缺乏明晰的描绘。别的该渠道方针剖析比较简略,在实践活动方G | X面也只是以单纯4 a D G C制作毛病T w ,为主。所以咱们开端引进混沌工程理论,重新打造全新混沌工程渠道。

第二代

该阶段全体仍是环绕毛病建造为主,阶段方针为:

  1. 在毛病注入方K o M S面,规划可扩展的毛病中心,完成精准可控的9 s v 6 H ^ 3毛病。
  2. 在实践活动方面,建立混沌工程规范,探究最佳实践。a $ 8 # e
  3. 解耦毛病完成与 chaos 实践活动办理。

体系规划

全体规划如下7 ? k R j i p 0 i

字节跳动混沌工程实践总结
初步阶段全体规划

其中用户自演练渠道无需关心毛病完成与毛病状况保护,着眼于 chaos 试验方案的办理与编列。一切毛病相关完成下沉至毛病中心,而渠道层只需将任务发给毛病中心即可。
毛病中心笼统了毛病模型,并供给了一套声明式接口,负责对毛病声明进行转化核算,确` P o V i 8 [定发作毛病的容器、物理机 或许 中间件,自动化装置 agent 并下发指令B R P 9 t H。可完成精准控制毛病,= Y p ^保护毛病状况。

毛病模型

在开端评论怎么进行毛病注入之前,咱们首要需求界说毛病模型。关于网络毛病,OS 毛病,下流依靠毛病,中间件毛病等发作在不同e + ^ ^ Y ) @ U d层面的毛病,咱们该怎么笼统描绘?咱们首要建立了一点:

一切毛病的发作,都会直接或直接影响某个微服务。而咱们的终究意图,是调查该服务在各外部依靠反常时,服务本身的 resilience 才干怎么。

故咱们以某个微服务作为调查方针打开毛病的g D y t C ` y @ P界说。毛病* T ~ – [ 0模型如下:

字节跳动混沌工程实践总结
毛病模型
  • TargeP f ] V ;t – 即上文提及的方针微服务,在开端 chaos 试验之前,需求明晰,对m ! ? S 3 4 3什么服务注入毛病,该服务为首要% V w E c调查方针。
  • Scope Filter – 对应w s C r m 0 r & x混沌 7 ! p [工程概念中的爆破半径,为了下降试验危险,咱们不会令服务全流量受影响。通常会过滤出某一布置单元,该单元或为某一机房,或为某一集群,甚至精确到实例等级甚至流量等级。
  • Dependen. w c + L x E jcy – 依靠,咱f P z ^们以为所谓服务被毛病影响,实践是其依靠有反常。该反常或许来自中间件,或许来自某下流服务,也或许来自所依靠的 cpu,磁盘,网络等。
  • Action – 毛病事情,即描绘该服务的外部依靠终究发作了何种毛病,比方下流服务返回了回绝,发作了丢包,或许延时;又比方磁盘发作了写反常,读繁忙,写满等意外状况? 9 B %

依据毛病模型,进行毛病声明的伪代码描绘如下:

spec. //微服务application A 的 clust_ n ) qer1集群内10%的实例cpu突然满载
tareget("application A").
cluster_scope_filter("cluster1").
percent_scope_filter("10%").
dependency("cpu").
action("cpu_burn").
end_at("2020-04-19 13:36:23")

spec. //服务applica) 6 a ~ ition B 的 cluster2集群所依靠的下流application C突然k M .延时添加100ms tareget("applicatf ~ E P H d $ P #ion B"). cluster_scope_filter("cluster2"). dependency(R e C"ae g 7 7 s 8pplication2 ~ K G Z w z v C"). action("delm V l w w O ` 2 yay, 200ms"). en7 A l ^ y ~ v Hd_at("2020-04-19 13:36:2K X R I ^ = Q3")

毛病中心规划

咱们u : O w W在以b z m T r } 1 T上毛病模型根底上规划了一套声明式接口。当注入某一毛病时,只需按上述模型添P = a a B i I $ +加毛病声明即生效;若想停1 ( B L F w止毛病,只需删除该声明。
毛病中心在收到上述相似声明后,便开端向内部研发体系渠道寻觅契合条件的实U O例,并自动装置毛病 agent,经过将相关指令下( H Q @ a G v t E发给 agent,完成毛病注入的意图。毛病中心恰当借鉴了 Kubernetes 的架构规划与理念,其架构规划G 6 + u如下:@ ` d [ { ]

字节跳动混沌工程实践总结
毛病中心架构图

毛病中心由三个中心组件 API Server, Scheduler, C* [ & Iontroller,外加一个中心存储 etcd 组成。其中 API Server负责包装 etN p q 8 , x K +cd 并对外供给声明式接口;Scheduler 则负责将毛病声V G & P }明解析,并依据声明持续寻觅 Target 对应的实例,以K s ^及 Dependency 对应的下流实例/中间件/物理设备;在这之后,Controller 将 action 毛病解析为可履行指令,下发至对应实例的 agent,或许调用对应中间件的– F $ 4 H 6 ? D / API,到达精准的毛病注入。

试验挑选的准则

在 chaos 试验中,咱们考虑到危险以及各事务不同特点对 chaos 理念的承受程度不同,所以界说了试验挑选的准则,可供各事务线L ^ b C Q 2 C w依据实践状况自行决定,其准则如下:

  • 从线下到出产
  • 从小到大
  • 从面向过去到面向未来
  • 从工作日到休息日

从线下到出产

此条指的是环境的挑选。
一般以为,混沌工程只有在出产环境试验才有含义;但咱们以为一种比较温文的试验进程是从线下逐渐走到出产。这也是归纳考虑,从线下开端着手会让各方都比较定{ x B D g d . l M心。不过关于分布式体系而言,布置不同、流量不同都会带来不t 0 | V Q G P一样的作用,唯有在出产进行试验才干真试验证。一条比较好的途径2 0 t f ) 5是:

测验环境->R N R m F ? = ` _ 预发布环境 ->b Y F | y @ 预览环境特定流量 -> 出产集群出产流量

从小到大8 6 [ h Z O b s

此条指的是毛病范围的挑选。
咱们引荐毛病应该从小范围,较温文的开端。当| F l O { u A U建立了满足的决心之后,再进一步扩展毛病范围。一条比较好的途径是:

可控流量 -> 单个接口 -> 单机 -> 单集群 -> 单机房 -> 全链路

从面向过去到面向未来

此条指# 9 F P s的是毛病类型的挑选。
咱们以为曾发作过的毛病是试验优先级最高的。而a , + # 2 –人类前史告诉咱们,人们总是会在一个5 [ K p当地反复跌倒;出产发作过的毛病,很有或许再次发作;且同样或许会在其他链路上发作相似毛病。因而一条较好的途径是:

重现前史事端的毛病 -> 来自前史事^ = V I Q j 7 H端的毛病类型 & 相似链路 -> 各种随机毛病 & 全链路。

从工作日N P V E w & H到休息日

此条指的是混沌工程试验T o u $ (时刻的挑选。
休息日代指恣意时刻。咱们引荐试验时刻从工作日开端测验,最优的是工作日下午 3 点左右(各事务依据本身高低峰期再行: ~ G – 6考虑)。这个/ f H n v s时刻段,相关人员一般都在工作岗位上,有任何状况都% ~ c B能及时处理。混沌工程的前期方针就是为Z e v了在可控的环境中提前暴露问题。当然,跟着混沌工程不断走向成熟,咱们将会慢慢开端测验在恣意时刻进行试验。一条比较好的途径是:

工作日下午 -> 工作m K 6 ; b v d 日晚上 -> 休息日 -> 随机时刻

试验进程规划

在该D X u }阶段,咱们为事务体系规划u U ? 9 ( ) F ^了 chaos 试验进程的最佳实践。按此进程,chaos 试验将会更有意图,调查到的内容亦更有含义. ] 9= , ; I G @ u i I

试验前

0. ⚠️ 在开端你的第一个混沌试验t C b k ) ) X J之前,请确保你的服务现已应用了弹性模式,并预备好处理或许出现的过错,否则不要随意测验。

1. 预备毛病注入的才干
a. 字节跳动混沌工程试验u A P 8 p U m Q (渠道的毛病模仿才干
b. 联系各依靠方手动制P / V { 2 { k q作毛病

2. 选定本次试验的假定,如:
a. 不会由于某个下流服务挂了而影响事务。
b. 不会由于 redis 网络抖动而影响事务。
c. 不会由于某个 pod 突然被杀而影响事务。
d. 当某个中心下流依靠挂了之后,降级方案有必要有用,且副作用可承受。

3. 选定能体现试验假定的方针,并$ L Y 5 Z @调查。
4. 选定能反响服务丢失的@ 5 l / r @ ;方针,并设定底线。
5. 在安排内交流到位。

试验中

1. 履行期间要亲近关注相关方针,由于或许需求随时停止试验。K c d g = r L D
2. 牢记试= Z L T $验的假定,搜集相关方针稍p ; q P A V Y h Z后可辅佐剖析试验作用。
3. 在试验进程中,或许会依据方针的动摇状况,随时调整试验参数(毛病范围与烈度),多测验几次,会有更好的作用。

试验后

依据方针和事务表现,剖析本次试验所能带来的作用。依据经验反馈,一般会取得以下相关作用:
– 找到了脆缺点,并取得改善
– 验h d X C U :证了降级/预案,增强决心
– 找到了体系性能拐点
– 整理出一波无效告警,优化告警效率

总结

在这一阶段,咱们对毛病中心彻底重构,在架构上使得毛病注入愈加简略可控;在模型笼统上,毛病注入的扩展性更强。在这一阶段,咱们整理_ * Z D 8 a了 chaos 试验挑选与流程的最佳实践。在d N 0 = f下一代产品中除了持续丰厚毛病才干外,将会着眼于补齐方针剖析才干,以及进一步沉淀有更大产出的实践活动。

第三代

在完成了初步: B 4 / e d H 2 I阶段的实践之后,chaos 的中心才干-毛病注入现已具备,一起字节跳动各事务线也连续开端了 chaos 之旅。所i x ]以该阶段,咱们的方针是:

  1. 在自动化方针剖析方面,补齐方针剖析才干。
  2. 在毛病注入方面,丰厚毛病的类型。
  3. 在实践活动方面,沉淀上一阶段总结的实践活动,并进一步探} * ) g )究实践方式,发掘更大的价值产出。

体系规划

基于以上意图,全体规划如下:

字节跳动混沌工程实践总结
成熟阶段体系规划

在原子才干层,添加自动化方针调查才干。经过引进机器学习,咱们O o ] U s a 2 R F做到了基于方针前史规矩的无阈) Z 9 g S j ` t p值反常检测。

在渠道层,添加自动化强弱依靠整理,与红蓝对立模块。

自动化方针调t | s @ ^

在 chaE f D Ros 试验中,T g | ] & m t相关方针的整理与搜集是一件繁琐且耗费心力的活动。咱们调查了 chaos, E A F M = # I H 试验进程之后,总结了三类方针,如下:

  • 毛病方针 – 确定毛病是否注入成功 。
  • 止损方针 – 确保体系不会因毛病无法承受而造成过大丢失。
  • 调查方针 – 调查细节,调查毛病导致了哪些相关反常。

毛病方针

  • 方针界说 – 毛病方针源于毛病,因毛病触发了方针动摇。比方咱们注入了毛病:redis 延时添加 30ms,那么该方针则为方针服务 -> redis 之间的均值延时 pct99 延时等。该方针可协助用户直观看到毛病的发作与完毕。
  • 怎么处理 – 关于此类方针,仅做展现即可,能够确保用户明晰看到毛病何时开端,何时完毕。
  • 取得途径 – 来自毛病,渠道制作毛病时,渠道知道会受影响的直接方针是什么。

止损方针

  • 方针界说 – 止损方针关于方针服务/方针事务至关重要,表明该次演练所能承受的最大限度,方针或许来自服务本身相关(比方对外过错率),亦或许来自相关较远的事务方针(比方每分钟点播量),甚至或许来自兜底服务的方针(比方兜底服务的最大承受方针8 q p k p 1);也或许是以上说到的各类方针某种组合。
  • 怎么处理 – 关于此类方针,需求非常精准地标识要害阈值,一旦动摇到阈值时,表明到达了丢失底线,任何操作有必要马上中止,毛病需求康复。

调查方针

  • 方针界说 – 调查方针,关于在 chaos 试验的时分发现新的问题,有很大的辅佐作用。调查方针应该L . x S [ 7 T t是一切与服务和毛病相关的方针。比方服务本身的 SRE 四项黄金方针(latency, traffic, errors, and saturatig E on),比方毛病或许影响的相关方针(redis 延时毛病,是否会导致 redis 其他方针的改变?redis qps,reids errors,降级服务的 qps 改变),比方相关告警记载,相关日志。
  • 怎么处理 – 此类方针,没有明晰的阈值,但往往此类方针在事后剖析的时分最容易发现各种潜在问题,咱们在处理此类方针的时分引进了机器学习办法,与方针前史规矩进行对比,可做到自动化反常检测。

因而方针调查的中心是智能方针挑选和无阈值反常检测。别的配E = / [ B &合一套基于经验的人工规矩,咱们能够面向不同的实践活动做各类自动化判别或许辅佐决策。

红蓝对Z 9 J * 4 6 o B L立实践

字节跳动的红蓝对立实践,吸收自 Gremlin 介绍的 chaos gameday[2]i R + r o V。在字节跳动内部屡次实践E ~ /中,咱们也不断因地制宜调整,终究开展成为字节跳动特征的红蓝对立实践。红蓝对立的实施方针是协助事务体系进行全面了解,也能够[ v 1 } / K s _ t为是对事务体系的稳定性建造方针的一次` B o p集中验证。

现在红蓝对立已屡次协助字节跳动引荐中台进行全面了解,发现了从监控、告警到兜底、降级、熔断策略等各方面的问题。

流程规划

在敞开红蓝对立之前,红蓝两边的交& k T { ~ x z流特别要害。赤军(即防卫方)需求进行许多决策,比方评价有决心参加对立的服务与范围,比方评价近期事务迭代节奏,权衡事务迭代与稳定性建造。咱们遵从如下流程进行实践对立前的活动正在完成渠道化沉淀:

字节跳动混沌工程实践总结
红蓝对立履行前流程图

红蓝对立一旦} K { : ^敞开后,首要操作将由蓝方主导j 7 y ~ x 6 X,除非发作预期外状况(这一般也意味着防卫失利)或许需求操作预案开关,否则红方在此进程中,根本处于 stand b) [ 8 g A 3y 状况。首要流程如下:

字节跳动混沌工程实践总结
红蓝对立履行中流程图

在对立完毕后的复盘回顾是要C C k C d 0害环节,经过O C X 0 M将红蓝对立进程中所记载的数据汇总。可明晰地看到对立全体作} P 2 v a x用,一目了然地了解此次方案中方针事务体系的稳定性建造状况。

字节跳动混沌工程实践总结
单场红蓝对立数据汇总

别的,咱们将进程中发现的问题汇总记载,并保存对立时分的完整记载。这q e & N f使得发现% = ~ 问题可追踪,剖析问题有现场。

字节跳动混沌工程实践总结
单场红蓝对立作用汇总

强弱依靠自动化整理实践

服务的强弱依靠信息关于服务治理,容灾体系的规划都至关重: ? W G P I s } _要,而强弱依靠的真实状` c n 7 V { y h况只能在毛病发作时才干得到验证% r F K。故咱们敞开了强弱依靠的验证工作,并跟着) I a A @ `实践打磨,不断进步强弱依靠整理的自动化程度。在经过引进机器学习协助咱们进行无阈值方针反常检测之后,强弱依靠整理进程已根本完成全自动化。

现在强弱依靠整理已根本掩盖抖音与火山的中心场景,为其服务治理与容灾体系规划都供给了巨大的输入。

强弱依靠自动化整理的全体流程如下:

字节跳动混沌工程实践总结
强弱依靠自动化整理流程

总结

在该阶段,咱们t D 0 { | &补齐了方针剖析才B b c I c干,经过引进机器学习,很大程度下降了方x $ ?针剖析本钱。: P g # &

基于自动化方针剖析才干,咱们测验结合新的实践活动发掘了更多的产+ P a出。红蓝对立活动协助事务体系对本身稳定性有个更全面的了解。而强弱依靠剖析则协助事务体系对本身的稳定性细节有了更深的知道。

未来阶段

面向根底设施的混沌工程

以上关于混沌工程的评论,首要集中在事务层关于毛病的 resilience 才干建造。不过,根底设施的混沌工程建造其实更为重要。特别是各类核算,存储组S _ H 2 v n o件在互联网企业作为上层事务的基石,其稳定性的确保是上层x f [事务稳定性确保的前提。

但是,越接近根底设施的毛病r T x模仿,也越有应战。例如存储组件所依靠的中心,磁盘,其毛病模仿会一步步需求W j r z深化到 OS 内核7 4 H * w ; % , O态,甚至物理层进行毛病模仿。

别的q y [,存储组件的数据验证也是一个较大的论题,其中包含了分布式存储在毛病下是否能确保其许诺的一致性特性,以及T W { L N j | 2怎么验证该一N Q R 0 x 9 }致性[6]。

这也是咱们即将开端测验探究的一个全新方向,怎么面向根底设施服务进行混沌工程。

IAAS With Chaos

在面向根底设施的混沌工程中咱们说到了,根底设施服务的依靠过于底层,咱们也在考虑,是否能够经过 OpenStack 构建一个 IAAS 集群,在该集群+ e ,中还原出产等效的布置模型。之后经过 OpenStack API,在虚拟化层进行更深化毛病模仿。由此供给一个自带 chaos 特性的 IAAS。

全自动随机% p ] 9 +的 Chaos 试验

跟着红蓝对立实践的普及,红蓝对立渠道将会逐渐堆集满足的事务防卫方针,该方针描绘了事务体系所能承受, ( 3 e j R的最大毛病才干。那么咱们` q R U l [ 9 O将能够开端测验在防卫方针范围内,开端不定期的自动化进行随机毛病注入,以到达随时验证其稳定性的意图。

毛病智能确诊

咱们也在考虑,经过混沌工程的自动毛病注入才干,是否能够堆集满足数量级的毛病与方针。然后训练出方针的某种 pattern 特征与毛病的对; ] m f V应联系。这 z : K o {将可助力于出q [ z H J产排障,到达毛病智能确诊的意图[7]1 1 4 E v 2 ^

结束

Q Z ? ] l / l C |沌工程的前期探究,其实在行业界一直M d P k ~ K有,曾经是以毛病测验、容灾演练等身份存在。而跟着微服务架构的不断开展,以及分布式体系的不断巨大,混沌工程开端崭露头角,越来越被重视。当} l 8 [ 9 _ Netflix 正式提出混沌工程概念后,0 n d G L { : &相关理论也开端飞快丰厚。NetI ? E g _ 0flix 的实践也证明了混沌工程在稳定性范畴所带来的巨大含义。
一起,咱9 – @ D R = M .们在不断发掘,经过混沌工程手法能否有更大产出。相= r 3 { ) g信跟着互联网逐渐转变成一项根底设施服务,其稳定性将被n ^ = 0 P :不断着重。而咱们要做的只是直面毛病,不惧毛病,避免黑天鹅事情R q u l # y 2 G Q的发作。在此也欢迎各位参加咱们,一起进行混沌工程实践,推动混沌工程范畴开展。

参阅文献

  1. 《混沌工程:Netflix 体系稳定性之道》:https://www.oreilly.com/library/view/chaos-engineering/9781491k % 0988459/
  2. 《How To Run a GameDay》:https://www.gremlin.com/community/tutoria/ } – o ! G ) Mls/how-to-run-a-gameday/
  3. NetflixL , C J ` X m # u 混沌工程开源项目 – Chaos Monkey:https://github.com/Netflix/chao. q / l R ( e !smonkey
  4. 阿里巴巴 混沌工程开源项目 – ChaosBlade:https://github.com/4 b 9 & A Qchaosblade-io/chaosblade
  5. PingCAP 混沌工程开源项目 – Chaos Mesh:https://github.com^ ~ ] a/pingcap/chaos-mesh
  6. 分布式一致性测验框架 – Jepsen:https://jepc H k H i d fsen.io/
  7. Zhou, Xiang, et al. “Latent error prediction and fault localization for microservice applications by learning from system trace logs.” Proceedings of the 2019 2` Q B X Z U7th ACM Joint Meg L ? S 6 Eeting on European Software Engineering Conference and Symposium on t| Y d ; Z l ahe Found~ g / $ ^ V batiZ C x D xons of Software Engineering. 2019. htW ) l p Jtps://dl.acm.org/doi/10.1145/3338906.3338961

更多共享

gdb 提8 ] e ~ } t H s示 coredump 文件 truncated 问题排查

字节跳动在 RocksDB 存储引擎上的改善实践

字节跳动自研万亿级图数据库&图核算实践

欢迎参加字节跳动技能团队

发表评论

提供最优质的资源集合

立即查看 了解详情