Slide 1

Slide 1 text

Transform your business, transcend expectations with our technologically advanced solutions. Copyright © NTT Communications Corporation. All rights reserved. Mahito Ogura (2019/11/11) @Mahito Chaos Engineering という考え方

Slide 2

Slide 2 text

Copyright © NTT Communications Corporation. All rights reserved. 2 技術開発部 業務:クラウド関連の技術検証など ● ● ● ● 業務:その他 ● エンジニア採用のお手伝い ● エンジニア向けのイベント開催 ● はたらく環境の改善

Slide 3

Slide 3 text

Copyright © NTT Communications Corporation. All rights reserved. 3 本日のお話 前半では の基本的な知識や考え方を 後半では の考え方の変化を、 に登壇した企業が語った内容を併せてお話します

Slide 4

Slide 4 text

Copyright © NTT Communications Corporation. All rights reserved. 4 システムに対し意図的に障害を起こすことで、 障害時のシステムの振る舞いを把握するアプローチ 意図的に引き起こされた障害により問題が生じた際は、 問題を治すことでシステムをより強固なものにすることができる( ) カオスエンジニアリング ≒ 疫学 予防医学 カオスエンジニアリングとは

Slide 5

Slide 5 text

Copyright © NTT Communications Corporation. All rights reserved. 5 英和辞典: はね返り、とび返り、弾力、弾性、 元気の 回復力 英英辞典: 意訳:難しい状況や出来事のあとに、より良くなるための能力

Slide 6

Slide 6 text

Copyright © NTT Communications Corporation. All rights reserved. 6 システムの状態は関連するシステムの数に比例して指数関数的に増大する すべての状態を把握するのは不可能 システムに意図的に障害を起こすことで開発 運用が意図しない障害を起こす → 障害による影響を把握 → 修正することでよりシステムを安定したものに なぜカオスエンジニアリングなのか?

Slide 7

Slide 7 text

Copyright © NTT Communications Corporation. All rights reserved. 7 参考: と の

Slide 8

Slide 8 text

Copyright © NTT Communications Corporation. All rights reserved. “The best way to avoid failure is to fail constantly.” Netflix TechBlog : https://medium.com/netflix-techblog/5-lessons-weve-learned-using-aws-1f2a28588e4c - Netflix

Slide 9

Slide 9 text

Copyright © NTT Communications Corporation. All rights reserved. 9 今年 月にサンフランシスコで開催 発表は で視聴可能 [1]:https://chaosconf2019.splashthat.com/ [2]:https://www.youtube.com/playlist?list=PLLIx5ktghjqIbPU1G2a3ssud26tiGlFUE

Slide 10

Slide 10 text

Copyright © NTT Communications Corporation. All rights reserved. 10 今回のテーマは

Slide 11

Slide 11 text

Copyright © NTT Communications Corporation. All rights reserved. 11 カオスエンジニアリングと は重複する部分が多い ではカオスエンジニアリングの実現に を利用 : 故障時に正しく動くことを確認する手段 障害時の状態をテストするためのアプローチ - 新しい情報を作り出すためのアプローチ カオスエンジニアリング ≒ 障害試験?

Slide 12

Slide 12 text

Copyright © NTT Communications Corporation. All rights reserved. カオスエンジニアリングは ○ :新しい情報を作り出すためのアプローチ △ : の確認や証明するアプローチ

Slide 13

Slide 13 text

Copyright © NTT Communications Corporation. All rights reserved. カオスエンジニアリングは ○ :新しい情報を作り出すためのアプローチ ☓ : の確認や証明するアプローチ 新しい情報を作り出すとは?

Slide 14

Slide 14 text

Copyright © NTT Communications Corporation. All rights reserved. 14 余談:最近社内で読書会やってます https://www.oreilly.co.jp/books/9784873115894/

Slide 15

Slide 15 text

Copyright © NTT Communications Corporation. All rights reserved. 15 Francisco Presencia FandosによるPixabayからの画像 アンチパターン 章:砂の城

Slide 16

Slide 16 text

Copyright © NTT Communications Corporation. All rights reserved. 16 Francisco Presencia FandosによるPixabayからの画像 アンチパターン 「想定不足」

Slide 17

Slide 17 text

Copyright © NTT Communications Corporation. All rights reserved. 17 Francisco Presencia FandosによるPixabayからの画像 どれだけ盤石な基盤を築けるかは、あなたがどれだけの インシデントを想定しているかが鍵なのです。 アンチパターン 章「砂の城」より

Slide 18

Slide 18 text

Copyright © NTT Communications Corporation. All rights reserved. 18 Francisco Presencia FandosによるPixabayからの画像 問題: ● 何が起きるかという想定がされていないこと ● 想定への対策が十分に検討されていないこと 発売当時( 年)だと ● コンサルや専門家を雇う ● 自分たちで考える 現在だと という選択肢もある

Slide 19

Slide 19 text

Copyright © NTT Communications Corporation. All rights reserved. カオスエンジニアリングは 想定外( )を知るための手法

Slide 20

Slide 20 text

Copyright © NTT Communications Corporation. All rights reserved. 20 ● 問題として起きていないが、 解決方法が明確なもの ● すぐに にできるもの ● 問題と解決方法を知っている ● 完全に理解した ● 何が起きるのか知らない ● 起きてから対応が必要 ● 問題として知っているが、 解決策がわからない ● 仮設を立て、テストと実験を繰り返し チームで解決すべき問題 データ 経験 知識 理 解 度

Slide 21

Slide 21 text

Copyright © NTT Communications Corporation. All rights reserved. 21 https://speakerdeck.com/chaosconf/a-roadmap-towards-chaos-engineering?slide=14

Slide 22

Slide 22 text

Copyright © NTT Communications Corporation. All rights reserved. 22 [1]: https://www.amazon.co.jp/dp/4764903296 [2]: https://www.amazon.co.jp/dp/4274217884/ 「テスト」の古典的な定義を引用するなら、「ソフトウェア・テストの 技法 第 版 」 が上げられるでしょう。 テストとは、エラーを見つけるつもりでプログラムを 実行する過程である。 ソフトウェアテストの世界における本来のテストとは、認知の外を 探求する、いわば創造的破壊行為です。 テスト駆動開発 付録 訳者解説 テスト駆動開発の現在 より

Slide 23

Slide 23 text

Copyright © NTT Communications Corporation. All rights reserved. 23 ● 問題として起きていないが、 解決方法が明確なもの ● すぐに にできるもの ● 問題と解決方法を知っている ● 完全に理解した ● 何が起きるのか知らない ● 起きてから対応が必要 ● 問題として知っているが、 解決策がわからない ● 仮設を立て、テストと実験を繰り返し チームで解決すべき問題 データ 経験 知識 理 解 度

Slide 24

Slide 24 text

Copyright © NTT Communications Corporation. All rights reserved. 24 ● 問題として起きていないが、 解決方法が明確なもの ● すぐに にできるもの ● 問題と解決方法を知っている ● 完全に理解した ● 何が起きるのか知らない ● 起きてから対応が必要 ● 問題として知っているが、 解決策がわからない ● 仮設を立て、テストと実験を繰り返し チームで解決すべき問題 データ 経験 知識 理 解 度

Slide 25

Slide 25 text

Copyright © NTT Communications Corporation. All rights reserved. 25 Unknown Knowns ● 問題として起きていないが、 解決方法が明確なもの ● すぐにKKにできるもの Known Knowns ● 問題と解決方法を知っている ● 完全に理解した Unknown Unknowns ● 何が起きるのか知らない ● 起きてから対応が必要 Known Unknowns ● 問題として知っているが、 解決策がわからない ● 仮設を立て、テストと実験を繰り返し チームで解決すべき問題 データ 経験 知識 理 解 度 Failure Testing Fault Injection Chaos Engineering Chaos Engineering カオスエンジニアリングで未知の問題を知り 解決することで なシステムを作る!

Slide 26

Slide 26 text

Copyright © NTT Communications Corporation. All rights reserved. 26 システムに関係するありとあらゆる ものが障害を起こす原因になる 耐障害性を謳う分散システムも壊れること はある ありとあらゆるものは障害を起こす Application Message Queue Database OS Hardware Network Data Center Filesystem 本当は恐ろしい分散システムの話

Slide 27

Slide 27 text

Copyright © NTT Communications Corporation. All rights reserved. 27 https://speakerdeck.com/chaosconf/humans-are-fallible?slide=4

Slide 28

Slide 28 text

Copyright © NTT Communications Corporation. All rights reserved. 28 https://speakerdeck.com/chaosconf/humans-are-fallible?slide=4 間違えを起こす人間が作るから システムに間違いはつきもの!

Slide 29

Slide 29 text

Copyright © NTT Communications Corporation. All rights reserved. 29 前半まとめ カオスエンジニアリングは ○ :新しい情報を作り出すためのアプローチ △ : の確認や証明するアプローチ

Slide 30

Slide 30 text

Copyright © NTT Communications Corporation. All rights reserved. 30 後半は について紹介

Slide 31

Slide 31 text

Copyright © NTT Communications Corporation. All rights reserved. 31 英語版 https://principlesofchaos.org/?lang=ENcontent

Slide 32

Slide 32 text

Copyright © NTT Communications Corporation. All rights reserved. 32 日本語版 https://principlesofchaos.org/?lang=JAcontent

Slide 33

Slide 33 text

Copyright © NTT Communications Corporation. All rights reserved. 33 序文から 分散 の文字が消えた https://github.com/chaos-eng/chaos-eng.github.io/issues/22

Slide 34

Slide 34 text

Copyright © NTT Communications Corporation. All rights reserved. 34 序文から 分散 の文字が消えた https://github.com/chaos-eng/chaos-eng.github.io/pull/23/files

Slide 35

Slide 35 text

Copyright © NTT Communications Corporation. All rights reserved. 35 分散だけでなく への適用事例 https://speakerdeck.com/chaosconf/think-big-chaos-testing-a-monolith

Slide 36

Slide 36 text

Copyright © NTT Communications Corporation. All rights reserved. 36 https://speakerdeck.com/chaosconf/think-big-chaos-testing-a-monolith?slide=36

Slide 37

Slide 37 text

Copyright © NTT Communications Corporation. All rights reserved. 37 https://speakerdeck.com/chaosconf/think-big-chaos-testing-a-monolith?slide=39

Slide 38

Slide 38 text

Copyright © NTT Communications Corporation. All rights reserved. 38 https://speakerdeck.com/chaosconf/think-big-chaos-testing-a-monolith?slide=91

Slide 39

Slide 39 text

Copyright © NTT Communications Corporation. All rights reserved. 39 他の発表でも障害から学ぼうという話が [1]: https://speakerdeck.com/chaosconf/forming-failure-hypotheses?slide=31 [2]: https://speakerdeck.com/chaosconf/hot-recipes-for-building-chaos-experiments?slide=12 [3]: https://blog.newrelic.com/engineering/how-to-run-a-game-day/

Slide 40

Slide 40 text

Copyright © NTT Communications Corporation. All rights reserved. 40 https://speakerdeck.com/chaosconf/think-big-chaos-testing-a-monolith?slide=117

Slide 41

Slide 41 text

Copyright © NTT Communications Corporation. All rights reserved. 41 https://speakerdeck.com/chaosconf/think-big-chaos-testing-a-monolith?slide=117

Slide 42

Slide 42 text

Copyright © NTT Communications Corporation. All rights reserved. 42 何が起きるか知っていますか? ▪ もしくは が障害 ▪ の が消える ▪ サービス間のレイテンシが増大 ▪ 対向サービスから例外が返ってくる ▪ サーバ間の時刻がずれている ▪ エラー ▪ コアが張り付く ▪ の障害

Slide 43

Slide 43 text

Copyright © NTT Communications Corporation. All rights reserved. 43 上に のカタログが公開されている https://github.com/open-chaos/experiment-catalog

Slide 44

Slide 44 text

Copyright © NTT Communications Corporation. All rights reserved. 44 さらに

Slide 45

Slide 45 text

Copyright © NTT Communications Corporation. All rights reserved. 45 資料:https://speakerdeck.com/chaosconf/keynote-chaos-engineering-for-people-systems 動画:https://youtu.be/sn6wokyCZSA

Slide 46

Slide 46 text

Copyright © NTT Communications Corporation. All rights reserved. 46 資料:https://speakerdeck.com/chaosconf/keynote-chaos-engineering-for-people-systems 動画:https://youtu.be/sn6wokyCZSA 企業を分散システムとして捉え を導入 ▪ ▪ ▪ ▪ 一番複雑なのはソフトウェアやハードウェアではなく人間 人間もシステムの一部として の対象になる

Slide 47

Slide 47 text

Copyright © NTT Communications Corporation. All rights reserved. まとめ

Slide 48

Slide 48 text

Copyright © NTT Communications Corporation. All rights reserved. カオスエンジニアリングは - 新しい情報を作り出すためのアプローチ - 学びの場、ナレッジを共有する方法 - だけでなく人間も含んだ広い意味でのシステムに適用可能

Slide 49

Slide 49 text

Presentation by NTT Communications