msksgm’s blog

msksgm’s blog

Webエンジニアです。日々の勉強記録、技術書感想、美術観賞感想を投稿します。

「カオスエンジニアリング」感想

概要

カオスエンジニアリングを読みました。 感想を書きます。

www.oreilly.co.jp

前提

目的

本書を読んだ背景は以下です。

  • 2023年7月〜9月の目標の注力分野の 1 つに SRE・DevOps を掲げていた
  • カオスエンジニアリングは SRE を学ぶための書籍の 1 つとして挙げていた
  • JaSST 2023 で基調講演を聴講したり、自身が学習する組織の文化について強い興味を持っていたりしたため、読むことにした

事前知識

SRE 関連では以下の書籍を読んでいました。

DevOps 関連で言えば以下の書籍を読んでいました。

他にも、事前に JaSST2023 の基調講演を聞いたり Software Design 2023 年 9 月号のカオスエンジニアリングの記事を読んだりしていました。

www.publickey1.jp

www.publickey1.jp

www.publickey1.jp

gihyo.jp

読了時間

精読せずに適宜読み飛ばしていました。特に第 Ⅱ 部の企業事例は、ほとんど読み飛ばしています。そのため、必要とした時間は、10 時間ほどだったと考えています。 ただし、上述のカオスエンジニアリングに関する記事や動画を見ていたので、事前知識があったため割と読むのが早かったと考えています。

感想

カオスエンジニアリングの原則によって、複雑性を取り除くのではなく、複雑性と共生する方法について学ぶことができる本でした。 自身の業務で関わるシステムが複雑化したマイクロサービスのため、カオスエンジニアリングの原則が目指すことに共感する部分が多く、非常に為になりました。 具体的に良かった点と個人的な懸念点をそれぞれ挙げていきます。

具体的に良かった点

具体的に良かった点は 3 つあります。

1 つめは、カオスエンジニアリングの聖書的な立ち位置の本だけあって、カオスエンジニアリングの原則について知見を深められたことです。 カオスエンジニアリングは、Chaos Monkey の印象が強い為、「カオスエンジニアリングとはツールによって本番環境を壊すこと」といった印象が強かったです。 しかし、本書ではカオスエンジニアリングの発展した原則して以下のように説明しています。

  • 定常状態に関する仮説を立てる
  • 実世界の事象を多様化させる
  • 本番環境で実験する
  • 継続的に実行できるよう実験を自動化する
  • 影響範囲を局所化する

カオスエンジニアリングの原則の正しい認識を得られたため非常に良かったです。 加えて、これらの原則は自身が目指す「プロダクトの高速かつ持続的な成長」に寄与するものだと考え、非常に納得感がありました。

2 つめは、複雑性に対処するため、以下の 2 つのモデルをソフトウェアエンジニアリングに対して適用した考え方について議論されていることです。 以下のモデルの詳細な説明は省略しますが、ビジネス的な考え方に落とし込めていることは印象的でした。

  • 動的安全モデル
  • 複雑性の経済的支柱

同様にカオスエンジニアリングについて、技術的な側面に加えて、ビジネス的評価方法やカオスエンジニアリングそのものの進化と別分野への適応についても議論されていることです。 それは、継続的検証(CV)だったり、ヒューマンパフォーマンステクノロジだったりします。 新しいエンジニアリングの文化を普遍的な文化にしたり、導入した先の状態に興味があるので参考になりました。

3 つめは、SRE との関連性についてです。 個人的な関心事に SRE を挙げています。 本書の節々に SRE の考え方を関連するものがあったため、興味深く読めた上に SRE を学ぶ一貫として本書を読んで良かったです。

個人的な懸念点

本書を読み終えた後の個人的な懸念点は 2 つあります。

1 つめは、カオスエンジニアリングの考え方について周囲に同意を得られるかです。 カオスエンジニアリングという名前が一人歩きしている点に加えて、カオスエンジニアリングの原則を踏まえて学習する文化を生成するのは非常に難しいと思いました。 よっぽど運用や信頼性の考え方について成熟したチームや組織でないと、いきなりカオスエンジニアリングの原則を語っても理解されなさそうで、敷居が高いと考えています。

2 つめは、本書レベルの実践は大規模な組織で合意が必要なことです。 1 つめの懸念点と共通していますが、周囲の合意だけでなく、さらに大規模な組織レベルで同意が必要になる点が非常に難しいと思いました。 文化を作れても、カオスエンジニアリングの原則を実践するには、年単位で準備してできるかどうかが怪しいと思いました。

実践すること

学習する組織の文化を作ることです。 懸念点に困難な点として挙げましたが、すべてを実践することは難しくても、何かしらができるのではないかと考えています。 具体的にはカオスエンジニアリングの原則を実践するために、ドメインモデリングなどを実践していこうと考えています。

  • 定常状態に関する仮説を立てる
  • 実世界の事象を多様化させる
  • 本番環境で実験する
  • 継続的に実行できるよう実験を自動化する
  • 影響範囲を局所化する

ヤフー株式会社における実践例も、SoftwareDesign 2023 年 9 月号で紹介されていたため、それらを参考に実践を考えていきます。

次に関連で勉強すること

引き続き SRE 関連の書籍を読み進めていきます。サイトリライアビリティワークブックは個人で開催している課題図書としてすでに読み進めています。 ほかの書籍も順次読み進めていきます。

まとめ

SRE について知見を深めるために、カオスエンジニアリングを読みました。 カオスエンジニアリングの原則は複雑性と共生するための一助となる考え方でした。 具体的な実践は難しいですが、原則自体は実践可能だと考えているため、文化づくりに励んでいきます。