マネージドサービスの概要
マネージドサービスは、社内リソースでは得られない多くのメリットを企業にもたらします。その一端を紹介しよう。
テクノロジーが飛躍的なスピードで進歩するにつれ、遅れをとることがいかに簡単であるかを忘れてしまいがちかもしれない。一見些細なミスが大きな損害やダウンタイムを引き起こす可能性があり、多くの企業にはそのような余裕はない。そのため、企業はあらゆる最悪のシナリオに備えてシステムを準備する方法を模索してきた。
その方法のひとつがカオスエンジニアリングだ。カオスエンジニアリングという名前は奇妙で、やや矛盾しているように聞こえるが、これはネットフリックス、アマゾン、グーグル、マイクロソフトといった業界の巨人たちによって使われてきた正当なテスト方法である。
カオスエンジニアリングとは、コンピュータ分散システムをテストする手法のことで、予期せぬ中断を発生させることで、システムの耐障害性を判断し、潜在的な弱点を突き止める。
このような予期せぬ中断は、ハードウェアを破壊する突然の自然災害、停電、またはサイバー攻撃かもしれない。要するに、カオスエンジニアリングとは、アプリケーションが本番の「カオス」を乗り切るのに十分な強度を持つかどうかを確認するための実践なのである。
カオス工学はテストよりも実験に重点を置いている。カオス工学の実験は、ランダムで予測不可能なシナリオに集中する。カオスエンジニアリングとテストのもうひとつの違いは、テストはしばしば二値的であることで、つまりテストが実行された後、その結果によって何かが真実か否かが決定される。一方、実験は新鮮な洞察を生み出し、新しいデータを明らかにすることが多い。
カオスエンジニアリングの目的は、システムに対する新たな洞察を得ることである。意図的にシステムを壊し、弱点を見つけて特定し、システムの改善に取り組むことでそれを実現する。
カオス工学の特殊な分野に分散コンピューティングがある。分散コンピューティングとは、ネットワークを介して共有リソースに接続されたコンピューターの集合体を指す。このシステムは、予期せぬ事態が発生したときに故障する可能性があり、企業に数百ドルから数千ドルの損害を与える。Information Technology Intelligence Consulting Researchによると、1時間のダウンタイムが企業に与えるコストは平均100,000ドルにのぼるという。
予測不可能な依存コンポーネントを持つ大規模で複雑なシステムとなると、この数字はさらに大きくなる。システムの規模が大きくなればなるほど、その挙動はカオスになるので、デバッグは厄介だ。
そのため、隠れたバグやパフォーマンスのボトルネックなど、目に見えない新たな知識を得るために、カオス・エンジニアは根本原因が無限にあるような問題に目を向ける。より明白な原因よりも、可能性の低い原因に対処する。問題やいくつかの問題は、分散システムに対してテストされ、新しい知識を得る。
カオスエンジニアリングはカオス実験以上のものである。この実践では、予期せぬ障害が発生した場合にシステムがどのように振る舞うかをよりよく理解するために、計画的な実験による体系的なアプローチを用いる。カオス工学は、いくつかのセットと原則に従っている。
システムの「定常」状態とは何か?つまり、カオス・エンジニアは正常なシステム出力の尺度を特定しなければならない。これらの尺度とは、システムのスループット、エラー率、レイテンシ・パーセンタイルなどである。
対照群でも実験群でも定常状態が継続すると仮定する。例えば、あるサービスが利用できないときにも定常状態が継続すると仮定する。
次のステップは、負荷テストと組み合わせて不確実性のシミュレーションを設定することです。次に、テスターは、アプリケーションの以下の4つの柱のうち、1つ以上の柱で発生する変化に目を光らせる必要がある:コンピュート、ネットワーキング、ストレージ、アプリケーションインフラです。テストによって、重要なプロセスに何か問題があることや、意外な因果関係が明らかになるかもしれない。
システムの定常状態に基づいて仮説を立てたので、対照群と実験群の間に違いがあれば、作成した仮説は無効になる。それ以降、エンジニアはシステムの不具合を切り分けて研究し、その知識を使って修正や変更を加える。実験後、システムはより安定し、弾力的になる。
カオス工学の原理を理解してもなお、カオス工学は複雑である。したがって、カオス工学の実験を行う際には、以下のカオス工学のプラクティスに従って実験を成功させるようにしてください。
アプリケーションの限界に挑戦すると、いくつかの利点がある。
実施された実験により、チームや組織は、システムが特定のストレス下でどのように機能するかをよりよく理解することができる。その結果、企業はシステムを強化するための対策を講じる。
ダウンタイムを最小限に抑えるということは、コストのかかる停電や予期せぬ問題で企業が損失を被ることがないということです。また、システムの安定性を損なうことなく、ビジネスの規模を拡大するスペースが企業に与えられることを意味します。
顧客はシームレスなオンライン体験に慣れています。そのため、アプリケーションのパフォーマンスが良く、レスポンスが速く、顧客の要求に常に応えていれば、顧客はポジティブな体験を残すことができます。
経験から得られた洞察は、エンジニア間だけでなく、企業内のチーム間でも共有される。カオスエンジニアリングは、誰もが恩恵を受けるため、実験中にチームが効果的に協力し、望ましい結果を達成するよう動機づける。
同じような停電が発生した場合、カオス・テストによって、さまざまな停電シナリオ下でのシステムの能力と動作を包括的に理解できるため、組織は復旧を早めることができる。
カオスエンジニアリングを導入しようとする人は、その課題も認識しておく必要がある。
最初の課題は、限られたリソースである。先に述べたように、カオス・エンジニアリングを実現するためには、複数のチーム、さらには部門が協力する必要がある。しかし、これは企業によっては問題となりうる。
次に、強力な監視システムの欠如である。カオス・エンジニアリングの最中は、システムの健全性と指標を注意深く監視し、制御下に置く必要がある。爆発半径は簡単に手に負えなくなり、システム全体がダウンする原因となる。また、可視性がないため、問題の根本原因を突き止めることも難しい。
最後に、テスト実行前のシステムの初期状態が明確でないことが挙げられます。システムの安定した状態について明確な理解がなければ、チームはテストが現実にもたらす結果を完全に把握することが難しくなる可能性がある。それゆえ、カオステストの有効性は著しく低下し、他のシステムを危険にさらすことさえある。
カオス・エンジニアリングのプロセスをより効率的にするために、いつでもツールを採用することができる。オープンソースのツールも有償のソリューションもある。選択する前に、ビジネス要件と目標をすでにリストアップしていることを確認してください。
Netflixが2010年に作成した最初のカオスエンジニアリングツールは、Chaos Monkeyと呼ばれている。これは、AWSシステムをテストするために作られたオープンソースのアプリケーションである。現在、Netflixに加え、多くの企業がChaos Monkeyを使っている。詳細なドキュメントがあり、これは良い出発点だ。
シミアン・アーミーは、クラウドベースの障害発生、異常状態検出、回復力テスト・サービス(「モンキー」と呼ばれる)の集合体である。レイテンシー・モンキー、ジャニター・モンキー、ドクター・モンキー、セキュリティ・モンキーなど、多くのカオス・エンジニアリング・ツールで構成されています。
グレムリン・サービスの助けを借りて、カオス・エンジニアリングの実験ができる。あなたには採用すべき攻撃がいくつも与えられる。それらはシステムに入力され、さまざまな計画、プロット、シナリオに変換される。そして、これらの攻撃の効果や害を記録することができる。
カオス・エンジニアリングは、ますます複雑化するワールド・ワイド・ウェブにおいて価値ある実践となっている。私たちは今や、数多くの複雑なシステムにますます依存するようになっている。サイバーセキュリティもまた、近年深刻な問題となっている。カオス工学を適切かつ健全に管理することで、エンジニアはストレス下でシステムがどのように反応するかをよりよく理解し、より強固で回復力のあるシステムを構築することができる。堅牢なシステムは、デジタル黄金時代において不可欠なものとなっている。
Orient Softwareの経験豊富な専任のQAおよびテストチームで、システムの健全性をできるだけ早く監視し、改善しましょう。システムの安定性を真剣に考慮する時です。弊社にご連絡いただき、この分野で最高の専門家の助けを得てください。
マネージドサービスは、社内リソースでは得られない多くのメリットを企業にもたらします。その一端を紹介しよう。
APIプロダクトマネージャーは、APIの開発とAPI管理を担当する。では実際、彼らの役割と責任はどのようなものなのだろうか?
ソフトウェア開発チームの管理の際にあらゆる規模の企業が直面する課題と、それを効率的に行うための重要な戦略について学びます。
ITプロジェクト失敗する13の最も一般的な理由と、ソフトウェアプロジェクトの失敗を回避するのに役立つ5つのベストプラクティスを学びます。
ここでは、最も一般的な10のソフトウェア開発の課題と、それらに適切に対処する方法について説明します。