変更履歴
カオスエンジニアリングとは
一般的なカオスエンジニアリングについて
正常稼働中の本番システム上で、あえて障害を発生させて、自動回復システムの動作を確認し、より高いレジリエンス(障害からの復旧力)を持つシステムを構築するための手法です。
この手法では、故意に本番システムにストレスをかけ、それがどのように動作するかを観察します。カオスエンジニアリングを使用することで、予期せぬ障害が発生した場合でも、システムが回復することができます。
あるいは、明かな異常値だけでなく、本番で混入しそうなエラー値を入力することでシステムに予期せぬ障害が発生するかを試すこともあります。マイクロサービスによる分散化が進みシステム全体の挙動が複雑になればなるほど、事前にテスト環境でテストできないことにより本番でのカオスエンジニアリングの必要性が高まるのです。
カオスエンジニアリングは、特に複雑なシステムを扱う企業にとって非常に有益です。この手法を使用することで、システムの様々な部分に問題がある場合でも、それらを特定し、修正することができます。また、システムの耐久性が向上するため、障害が発生しても、システムが停止することがなくなります。
組織にカオスエンジニアリングを行うとは?
カオスエンジニアリングを組織に導入することは、組織の耐久性・耐障害性を向上するために行います。複雑性が高い世の中になり、組織の複雑性も高くなる中で、どのような障害が組織に発生するか予期できない状態においては有効です。
ゆめみも組織の人数が400名近くになり、各ギルドや各メンバーごとに自己完結した取り組みを行い、相互に連携していく中で、組織の複雑性が高くなり組織の全容を把握できる人がいなくなっているため、カオスエンジニアリングが必要となっています。
なお、Googleでも一部で組織に対してのカオスエンジニリングが行われています
ゆめみでの脆弱性とは?
ガイドラインと同調圧力
事業会社では特に特定の個人に依存して、その個人が単一障害点となる脆弱性が高いです。一方で、ゆめみは平準化による特定の個人依存度を下げる試みに一般企業よりもかなり取り組んでいます。(例:委員会制度、PMペア制度、チャレンジ取締役など)
一方で、ゆめみでの課題は上司がいないため、オープンハンドブックなどのルールやガイドラインが判断の拠り所になっていますが、同調圧力が高い日本文化の影響も受けた上で、ガイドラインからの逸脱が生まれにくい傾向が発生しがちです。真面目な人が多いと言われるパーソナリティも相まって、ガイドラインそのままに従ってしまって、そこからの逸脱を恐れる危険性があります。そもそも、ゆめみで定められている多くのガイドラインはその定義から安全に物事を進めるための指針でしかなく、それを参考にした上で自律で行動することが求められています。
ところが、ガイドラインに忠実に従うような硬直的な実行に陥ってしまうと、今後予期せぬ状況に対面した際に、環境変化に適応した行動が取れなくなってしまい悪い意味でも官僚主義になってしまいます。
改めて、カオスエンジニリングを行う中で、オープンハンドブックに嘘などを混入させることで、現実世界の業務において本当に必要な行動を自ら考えることを期待します。嘘については明らかな嘘も含まれる可能性もありますが、本当のような嘘を混入させることもあります。
その他にも、ゆめみで考慮すべき組織の脆弱性はいくつもあるため以下のような取り組みを行います
ゆめみで行うカオスエンジニアリング
- オープンハンドブックに嘘・誤りを混入させる
- シャドーを敢えて誘発することでシャドーへの耐久力を培う
- メンバーが急に連絡が取れなくなった場合に気づくかどうかをテストする
- キーパーソンが一定期間不在にした上での課題を明らかにする
- プロリクに誤った内容を混入させて、本番反映までのステージング環境としての反応を観測する
ゆめみで行うカオスエンジニアリングにおいて注意すべきことは、事前に行うカオスエンジニアリングの内容については明示していくことです。
何が起きるか全くわからない状況では全てにおいて疑心暗鬼や不安になる可能性がある為です。一方で、何月何日何時に「避難訓練」を行いますと伝えるような予測可能にしすぎるカオスエンジニアリングでは、本番での状況とは異なる環境でのテストになってしまいます。
従って、カオスエンジニアリングを行う期間・範囲・対象チームなどについては限定しすぎず、範囲を広げすぎないバランスで行っていきます。
カオスエンジニアリングを行うにあたっての想い
カオスエンジニアリングを行う背景には、組織が脆弱になった過去の様々なアクシデントに伴う痛みが背景にあります。同じことを繰り返さないという強い覚悟があります。
一方で、現在は危機的な状況であるわけではなく、よりよい状況を作るために多少なりとも先手が打てている環境です。何が起きるか分からないカオスエンジニアリングを楽しんでいきましょう。
他方で、不安に対して敏感な人にも配慮を行っていきます。一方で、不安がなくなることはない中で、不安なことが起きた時に不安だと言えることは大切であり、それでいいと考えています。
このようなカオスエンジニアリングを組織に行う事例は少なくとも国内では少ない中で、それが実施できるということは、分散組織において個々人が自律的に行動できており、組織に複雑性を持たせることができている証拠だと考えており、改めて感謝します。
オープンハンドブックでカオスエンジニアリングを行うにあたっての運用方法
オープンハンドブックに嘘・誤りを混入させる場合については、どのページに嘘・誤りが混入されているかを明示的にすることによって、全てのページを疑う認知負荷が高くなることを回避しようとも検討しました。
しかしながら、実態としては現状のオープンハンドブックには既に実態とは乖離した誤りの情報も存在しており、それらを検知する自動回復性を確認する意味でも、嘘・誤りが混入されているページは明示的にはしない事にしました。
オープンハンドブックで嘘・誤りを発見した場合の運用方法
オープンハンドブック内で嘘・誤りを発見した場合は該当箇所に対して、コメントを記載することで嘘・誤りの指摘を行ってください。
なお、誤字・脱字として明確に誤りだと確信した場合は、その場修正して良いものとします。
なお、本ページは1万ユニークアクセスを超えると自動的に消滅します