カオスエンジニアリングノート

1. カオスエンジニアリングに関する注意事項

カオス エンジニアリングは、フォールト挿入を通じてシステムの弱点を発見し、システムの安定性を向上させることです。マイクロサービスやクラウドネイティブ関連技術の発展により、業界では分散システムが普及してきましたが、その一方で、複雑さの急激な増大、障害による予期せぬ影響、避けられない困難な検証などの課題も生じています。カオス エンジニアリングは、フォールト インジェクションやその他の方法をエントリ ポイントとして使用して、上記の問題を解決するのに役立ちます。

1.1. カオスエンジニアリングとは

実際に本番環境で分散システムを運用する場合、さまざまな予期せぬ緊急事態が発生することは避けられません。複雑な分散システムでは、このような障害の発生を防ぐ方法はないため、このような異常な動作が引き起こされる前に、できるだけ多くのリスクを特定することを目指す必要があります。そして、障害発生時の深刻な影響を回避するために、対象を絞った強化と予防を行います。

カオス エンジニアリングは、運用分散システム上で実験を実施することにより、システム内の脆弱なリンクを積極的に発見する、まさにそのような方法論です。この経験的検証方法により、明らかに、より柔軟なシステムを作成できると同時に、システムの実行時のさまざまな動作法則をより完全に把握できるようになります。私たちは、より復元力の高い (弾力性: 障害に対処し回復するシステムの能力) システムを継続的に構築しながら、可用性の高い分散システムを実行する自信を築くことができます。

カオス エンジニアリングの実践は、運用環境で kill -9 を実行してサービス ノードの突然のダウンタイムをシミュレートするという単純な場合もあれば、オンラインのトラフィックのごく一部 (しかし十分に代表的なもの) を選択し、それに応じて自動的に実行するという複雑な場合もあります。特定の規則または頻度に基づく一連の実験。

1.2. 業界の慣行

  • Netflix は初めてカオス エンジニアリングの概念を体系的に提案し、カオス エンジニアリングの分野における最初の書籍「カオス エンジニアリング: Netflix システム安定性の方法」[1] を出版しました。この本では、カオス エンジニアリングの成熟度モデルと応用が度数モデルとして提案されています。 、カオス エンジニアリングの開発の指針となる重要な 5 つの高レベルの原則を要約しています。さらに、Netflix はカオス エンジニアリング プロジェクト、Chaos Monkey をオープンソース化しました[3]。
  • Alibaba は、カオス エンジニアリングの研究を開始し、オープンソース化した中国の初期の企業であり、そのオープンソース プロジェクト ChaosBlade[4] を Alibaba Cloud と組み合わせてカオス実験を行うことができます。
  • PingCap は、中国のデータベース分野における優れたオープンソース企業として、カオス エンジニアリングの分野に投資しており、最近、社内のカオス エンジニアリング実践プラットフォームである Chaos Mesh をオープンソース化しました[5]。
  • Gremlin はカオス エンジニアリングの商用化企業であり、カオス エンジニアリングの実験プラットフォームを提供しており、クラウド ホストにエージェントをインストールすることで障害を引き起こします。同時にカオスゲームデイ[2]という概念も提案された。

1.3. 参考

https://mp.weixin.qq.com/s/kZ_sDdrbc-_trVLNCWXyYw

https://chaosblade.io/docs/

1.4. 参考文献

  • 「カオス エンジニアリング: システムを安定させるための Netflix の道」:
    https://www.oreilly.com/library/view/chaos-engineering/9781491988459/
  • 《GameDay の実行方法》:
    https://www.gremlin.com/community/tutorials/how-to-run-a-gameday/
  • Netflix カオス エンジニアリング オープンソース プロジェクト - Chaos Monkey:
    https://github.com/Netflix/chaosmonkey
  • Alibaba Chaos Engineering オープンソース プロジェクト - ChaosBlade:
    https://github.com/chaosblade-io/chaosblade
  • PingCAP カオス エンジニアリング オープンソース プロジェクト - カオス メッシュ:
    https://github.com/pingcap/chaos-mesh
  • 分散型整合性テスト フレームワーク - Jepsen:
    https://jepsen.io/
  • 周、翔、他 「システム トレース ログから学習することによる、マイクロサービス アプリケーションの潜在的なエラーの予測と障害の特定」2019 年の第 27 回 ACM 欧州ソフトウェア エンジニアリング会議およびソフトウェア エンジニアリングの基礎に関するシンポジウムの議事録。2019年。:

おすすめ

転載: blog.csdn.net/wan212000/article/details/131456919