2022年6月2日

カオスエンジニアリング

カオスエンジニアリングの利点とその他

カオスエンジニアリングは2010年にシステムの安定性をテストするために登場し、現在ではDevOpsに広く取り入れられています。ここでは、カオスエンジニアリングのメリットについてご紹介します。

62d0ef3bb4e06c0b60831f57_03.-Design_Blog-header-22.png

カオスエンジニアリングは、2010年にNetflixがシステムの安定性をテストするために登場し、DevOpsにおけるテストの次の大きな流れとなっています。NetflixのChaos Monkeyに始まり、LitmusChaos、Chaos Gorilla、Gremlin、Chaos Meshなど、さまざまなカオステストツールが発売されたのです。数多くの組織で、開発者、品質保証、サイトの信頼性など、エンジニアリングチーム全体で採用されています。

62d0ef3ad6c0092ed8a9b192_05.-Banner_Blog-header-1024x320.png

Googleは、「カオスエンジニアリングとは、システムが乱気流に耐えられるかどうかをテストするプロセスである。カオスエンジニアリングの原則に依存し、より回復力の高いシステムを構築するために、ランダムで予測不可能な挙動に着目する」と定義しています。

カオスエンジニアリングは、システムの故障シナリオが進展してダウンタイムを引き起こす前に、それを特定する予防策として登場しました。注入されたトラブルによってシステムがどのように反応するか、実用的なカオステストを行うことで、問題を即座に特定し、修正できます。これにより、エンドユーザーをあらゆる悪影響から守ることができます。

カオスエンジニアリングが大規模な分散システムやマイクロサービスの耐障害性をどのように改善し、利益をもたらすかについて、続きをお読みください。

なぜカオスエンジニアリングを実践するのか

過去数年間、業界の主要な組織は、コストのかかるネットワーク停止に直面してきました。例えば、2018年のAmazonブラックアウトでは最大9,900万ドルの損失が発生し、2019年のMeta Platforms Inc.(Facebook、Messenger、WhatsApp、Instagramの提供元)のダウンタイムでは8,960万ドル以上のコストが発生しました。

これらの災難は、インターネットが始まって以来、どの企業も直面している継続的な問題です。最近、Information Technology Intelligence Consulting (ITIC) 2021 Global Server Hardware, Server OS Reliability Surveyによると、COVID-19の流行、セキュリティーハッキング、リモートワークがこれらの停電の原動力になっていることが指摘されています。これらの要因は全て、巨額の収益損失とメンテナンスコストに帰結します。

しかし、停電に直面した企業が失うものは、お金だけではありません。停電はドミノ効果を生み、お金だけでなく、顧客や従業員の信頼、ブランドの一貫性、株価などに負の影響をもたらします。場合によっては、企業がステークホルダーから法的措置の対象となることさえあるのです。

カオスエンジニアリングの採用について

このように、1つの問題から莫大なリスクが発生するため、耐障害性のあるシステムの長期的なソリューションが待ち望まれていたのです。カオスエンジニアリングによって、企業は次のようなことが可能になります。

  • システムの弱点を特定する
  • システムが強制にどのように反応するかを、現実の出来事としてリアルタイムで見ることができる 
  • 実際の障害に対するエンジニアリングチームの準備と教育をする
  • 障害発生時でもコストを削減できる、費用対効果の高いフェイルオーバープランを作成する
  • 壊滅的な障害が発生した場合のビジネスデータの回復力を検証する

企業にとって、このようなカオスエンジニアリングの事例は、データ損失やサービスへの影響を引き起こす前に、特定された弱点に対処するために不可欠なものです。

それでは、カオスエンジニアリングがもたらす大きなメリットのいくつかをご紹介しましょう。

カオスエンジニアリングのメリット

アプリケーションや分散システムの制限をテストすることで、開発チームや組織に膨大な情報を提供することができます。ここでは、カオス実験ツールを使ってカオスエンジニアリングを実践することで、得られるメリットの一端を紹介します。

1. 信頼性・耐障害性の向上

カオスエンジニアリングツールを使用して計画的なカオス実験を行うことで、システムの能力をテストし、その結果、耐障害性を向上させることができます。

このようなカオス実験を行う際には、測定基準を賢く選択し、定常状態を仮説として定める必要があります。最初のカオス実験は、影響範囲が最小となるステージングまたは本番前の段階で実施することができます。これにより、何らかの悪影響が発生しても、ユーザーが影響を受けずに済みます。

2. エンドユーザーとステークホルダーの満足度向上

あなたとチームにカオス実験をする自信がついたら、本番に近い形で実施することができます。全ての実験は、理想的な実装において、本番環境で実際に受け取ったインプットを使って直接行われます。

本番環境は実際のシステムとして扱われるため、ここで実験を進めることで、エンドユーザーが体験することを正確に把握することができます。システムで発生するネットワーク障害やサービス停止が少なくなり、ひいてはユーザーエクスペリエンスの向上につながります。

62d0ef3a5f70f45aefd80331_image-34-1024x538.png

3. チームコラボレーションと信頼感の向上

カオスエンジニアがこれらのカオス実験から得る洞察は、エンジニアリングチームの知識を向上させます。その結果、対応時間が短縮され、コラボレーションと信頼性が向上します。さらに、ここでの学びは、新人の同僚を教育するために使用することもできます。

4. インシデント対応の改善

技術チームは、過去のカオス実験によって意識を高められ、情報を得ているため、トラブルシューティング、修理、インシデント対応の速度が向上しています。したがって、カオス実験の実行後に得られた洞察は、将来の本番インシデントの減少につながる可能性があります。

ゲームデイは、インシデント対応時間を改善するための1つの方法です。ワークフローに余裕を持たせて、本番環境で何か問題が発生したときにどうするかをチームで練習することです。

5. アプリケーションのパフォーマンス監視を改善

カオステストは、パフォーマンスエンジニアリングとテスト手法に対する最も全体的なアプローチの1つと考えられています。カオス実験を定期的に行うことで、分散システムに対する信頼性を高め、予期せぬ大きな障害が発生しても、アプリケーションが正常に動作することを確認することができます。

まとめ

現在のDevOps業界やソフトウェア開発ライフサイクルにおいて、カオスエンジニアリングは、システム全体のリソース、回復力、柔軟性、速度の向上だけでなく、分散システムの運用においても組織を支援する素晴らしいツールに発展しています。

これらの利点とともに、問題が物理的なクラウドインフラ全体に悪影響を及ぼす前に対処することが可能になります。カオスエンジニアリングの導入は非常に重要であり、より良い結果を得るために採用すべきです。

Microsoft、Amazon、LinkedInなどの大手企業は、自社の技術スタックにカオスエンジニアリングを導入しています。カオスエンジニアリングは、分散システムを構築・管理し、高い開発速度を達成しようとするあらゆる組織の耐障害性を強化するためのパフォーマンス達成指標として追加されるべきです。

カオスエンジニアリング市場は、多くの分野と機会を開拓しています。カオスエンジニアリングはまだ若い分野であり、新しいテクニックやカオスエンジニアリングツールは常に登場しています。私はこの弾力性のある技術を心から支持しており、この記事ではカオスエンジニアリングの統合とその顧客が経験した利点について書きました。

Harness Chaos Engineeringツール、またはHarness Software Delivery Platformの全製品をご覧いただき、ソフトウェアデリバリーを次のレベルへ引き上げるために、私たちがどのように支援できるかをご確認ください。

LitmusChaosコミュニティーに参加する

LitmusChaosは、あなたのシステムでカオステストを実施するための素晴らしいカオスエンジニアリングツールです。27,000件以上のGitHubスターと約1,300のSlackコミュニティーメンバーで、若い学習者のための活発なコミュニティーです。LitmusChaosが提供するさまざまなカオス実験を全て含むオープンソースのマーケットプレイスであるChaos Hubをチェックしてみてください!Pod-deleteは最も人気のあるカオス実験です。

62d0ef3aebbe50fd309213c9_image-33-1024x1024.png

LitmusChaosで、Chaosエンジニアになるための旅を始めましょう。質問したり、学んだり、他の人の役に立つ情報を共有したりしませんか?LitmusChaos Chaos Engineering Slackコミュニティーに参加してください。参加するには、以下のステップに従うだけです。

ステップ1:こちらのリンクからKubernetes Slackに参加します。https://slack.k8s.io/

ステップ2:Kubernetes Slackの#litmusチャンネルに参加するか、Kubernetes Slackに参加した後にこちらのリンクを使用します。https://slack.litmuschaos.io/ 

オープンソースの世界からの素晴らしい皆さんにお会いできるのを楽しみにしています。以下、重要なリンク先をご紹介します。

LitmusChaos Twitter

LitmusChaosウェブサイト

LitmusChaos GitHub Repo

LitmusChaos Docs

LitmusChaos YouTubeチャンネル

 

この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。
 

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ