第1回 Chaos Engineering 読書会@リモートのログ

javaee-study.connpass.com

初回でした。前回から引き続き Discord によるオンライン開催。

対象の本はこれです。

learning.oreilly.com

こんな感じで進めてます。

  • 当日まで
    • 分担を決めた部分を要約してくる(立候補制)
      • 最終的に内容が理解できるなら形式は自由です
      • 非公開の Dropbox Paper で共有してます
  • 当日
    1. 自己紹介
      • 好きなものとか最近の興味とかそういう
    2. 要約した人が読む!(文字通り読み上げてる)
    3. 原文の意図であろうと、要約した結果であろうと、意味のわからないところにつっこみを入れ、納得できる落としどころを探る
    4. 次の章に進む(2に戻る)

次回は 2020-05-23 の 13 時から始まる予定です。

javaee-study.connpass.com

対象

この辺です。

Netflix でどのようにカオスエンジニアリングが成長してきたのか、どうして成長できたのか、どういうことをしたいのか、みたいな。

私たちの扱うシステムは基本的に複雑すぎるため、人間には要素間の相互作用を完璧に理解することはできないから、アプローチを考え直した方がいいよ、と

分かっていることを確認するのがテスト、分からないことを試してみるのが実験。私たち人間にはシステムを理解できないのだから、実験を繰り返しながら分かる部分を増やしていくしかない。

全てを確かめる(validation)のではなく、入り口と出口を確かめよう(verfication)。

  • Introduction: Birth of Chaos
  • Part I. Setting the Stage
    1. Encountering Complex Systems
  • 1.1 Contemplating Complexity
  • 1.2 Encountering Complexity
  • 1.3 Confronting Complexity
  • 1.4 Embracing Complexity
    1. Navigating Complex Systems
  • 2.1. Dynamic Safety Model
  • 2.2. Economic Pillars of Complexity
  • 2.3. The Systemic Perspective
    1. Overview of Principles
  • 3.1. What Chaos Engineering Is

トピック

「セカンドシステム効果」

人月の神話【新装版】で紹介された言葉。

原文では、偶発的な複雑さの原因となる要素として書かれてました。

セカンドシステムでは作り込みすぎてしまうから複雑になりやすい、みたいな。

参加者の感想。

動的安全モデル

おそらくこの辺の論文のモデルを再定義した、という話なんだけど、違和感を感じる人がちらほら。

qualitysafety.bmj.com

  • Economics(会社を破産させるような無茶はしないよね) は分かる
  • Workload(業務可能な時間は有限だから無茶はしないよね) も分かる
  • Safety(システムの可用性とセキュリティをおろそかにしないよね) はよく分からない
    • (私見: 組織の一員としての振る舞いを表すモデルとして理解できるんだけど、確かに抽象度が合わないような気もする)

Economic Pillars of Complexity

この節、可逆性の重要さを訴えるのが本筋で、それ以外はただのこじつけじゃないか(暴論)、という判断で落ち着きました。

エンリコ・ザニノットやケント・ベックからの引用と書かれてる話はおそらくこれら。

元は Dimensionality / Interdependencies / Uncertainty / Irreversibility だったけど、それをカスタマイズしたら State / Relationships / Environment / Reversibility になったようだ。

不可逆性(Irreversibility) を可逆性(Reversibility) として矛盾しないように全体を再解釈してるのはすごいんじゃないかな。

Principles of Chaos Engineering

個人的にとても納得できる内容でした。こういう論法。

  • 人間に全てを理解することはできない
  • 理解したところしかテストできない
  • 理解できてないところは実験しないと分からない
  • 実験して壊れたところを直していけばだんだん強くなる(脆さの対義語としての強さ)
  • 実験しても壊れないなら何回でも実験できる

オンライン読書会 Tips

  • 休みどころがつかみにくい
    • 1時間以上続くやりとりでは、意識して休憩時間を設けないとたぶん消耗する
  • Krisp の無効化
    • 最近 Discord の音声入力設定でノイズキャンセリングのための Krisp が使えるようになったけど、有効にすると音声がプツプツと途切れがちになる
    • たぶん話し手が意識すればいいんだけど、それはそれで面倒なので無効化しておく
  • リアクション問題
    • Discord の Live 配信にはリアクションを送れないのでチャットのほうであれこれ書くことになる
    • たぶん Discord はそういう文化なので利用する側が最適化したほうがいいんだと思う