生成 AI を使用して問題の修復とソフトウェアの信頼性を向上
2023 年 7 月 25 日、Dotan Horovits 著
今日のペースの速いデジタル環境では、サービス、特にクラウドベースのオンライン サービスのパフォーマンスを維持することが、競争力を維持するために重要です。 ダウンタイムや遅延の問題は、特にクリックするだけで競合する SaaS ソリューションに切り替えることができる場合、顧客を遠ざける可能性があります。 DevOps チームとサイト信頼性エンジニアリング (SRE) チームは、エラーや問題に対処する際に平均修復時間 (MTTR) を最小限に抑えるという常に課題に直面しています。 Google などの検索エンジンは貴重ですが、入手可能な情報が膨大なため、適切なソリューションを見つけるのは時間がかかる作業になります。 このプロセスを自動化および合理化し、エラー調査をよりインテリジェントかつ集中的かつ効率的に行う方法があったとしたらどうでしょうか?
この記事では、最初の不明瞭なログ行からその中に隠された問題を特定するまでのエラー解決の手順を説明します。 私たちはいくつかの戦術を使用して問題を解決し、最終的には生成 AI を使用して MTTR を削減し、正確な IT 推奨事項を提供します。 この取り組みには、DevOps チームが適用できる有用な対策と原則が含まれており、生成 AI を適用する可能性を探ります。
これを想像してください。ログ行にわかりにくいエラー メッセージが表示されます。最初の直感は、Google でこのメッセージを検索して潜在的な解決策を探すことです。 結局のところ、他の誰かも同様の問題に遭遇したはずですよね? ただし、豊富なリソースと検索結果には圧倒される場合があります。 検索結果は多くの場合、Web サイトの関連性に基づいて表示されますが、必ずしもエラー自体の関連性は考慮されません。 その結果、数え切れないほどの検索結果を選別するために貴重な時間が無駄になり、エラーを理解して修正するまでにさらに長い時間がかかることになります。 システムの安定性を維持する責任を負う DevOps および SRE チームにとって、MTTR の削減は重要な重要業績評価指標 (KPI) です。 ここで次のような疑問が生じます。自動化と人工知能を活用して、検索プロセスを改善し、エラー解決を加速するにはどうすればよいでしょうか?
この課題に取り組むための私たちの組織の最初の試みでは、強引な Google 検索よりも関連性の高い結果を得るためにクラウドソーシング技術を活用することに重点を置きました。 さらに、プロセスを自動化し、オフラインで実行して、インシデントが発生したときに、システムがダウンしたり誤動作したりして検索を開始するのではなく、有用な洞察を提供できるようにしたいと考えました。
このアプローチには、オフライン フェーズとオンライン フェーズが含まれます。 オフライン フェーズでは、取り込まれたすべてのログを分析し、一般的なログ パターンを特定しました。 これにより、このパターンがシステム内でどのくらいの頻度で発生し、どの程度蔓延しているかをカウントすることもできました。 次に、StackOverflow、Google グループ、Bing グループなどの関連テクノロジー フォーラムをクロールして、関連するソリューションを提供できる可能性のあるこれらのログ パターンに関する関連する議論を探しました。 次のステップは、関連性によって検索結果をランク付けし、最も関連性の高いリンクの上位 5 つを取得することでした。
オフライン フェーズでは、既知のログ パターンのライブラリが作成され、それぞれについて、これらのリンクを含む認知的洞察に加え、重大度レベル、このパターンがログ内で発生した回数、最初の発生日などの追加情報が得られました。関連するテクノロジー、ツール、ドメインの追加タグ。
オンライン フェーズは、新しいログが受信されるとリアルタイムで発生します。ログを取り込むと、既知のすべてのパターンと自動的に照合されます。 いずれかに一致すると、そのパターンに関する認知的洞察が得られます。 つまり、問題のあるログが入ってくるとすぐに、DevOps エンジニアは検索結果とコンテキストに焦点を当ててランク付けし、そこから開始するため、調査プロセスが迅速化されます。
最初のアプローチを振り返った後、私たちはひらめきました。 ChatGPT のような大規模言語モデル (LLM) はすでに Web を巡回し、膨大な量の情報を吸収していました。 そこで、彼らの能力を活用して直接洞察を求めてみてはいかがでしょうか? アイデアはシンプルでした。AI に「投稿を読んで」もらい、推奨事項を提供してもらいましょう。 私たちはまず、「考えられるエラーは何ですか?」などの具体的な質問を立てることから始めました。 さらにはさらに一歩進んで、さらなる調査手順を要求した。 ただし、この一見簡単なアプローチの実装には、独自の一連の課題が伴いました。 期待どおりの結果を得るには、生成 AI に質問する前に前処理を実行し、返された回答に対して後処理を実行する必要がありました。 そのプロセスがどのようなものかを見てみましょう。