AI による DevOps の変革: ワークフローを強化する実践的な戦略
投稿者: Junaid Jagalur、5 月 10 日
DevOps に興味がある者として、AI の進歩が私の分野にどのようなメリットをもたらすのか疑問に思いました。OpenAI はディープラーニングを使用して ChatGPT や Sora などの画期的な製品をリリースしました。Microsoft も同様の技術を使用して製品を刷新し、特に Copilot で GitHub を強化しました。多くのスタートアップが生まれ、大手テクノロジー企業が AI 研究に数十億ドルを注ぎ込んでいます。
結局のところ、エンジニアはこのテクノロジーをどのように活用して労力を削減し、ソフトウェア開発ライフサイクル (SDLC) に価値を加え、開発速度を向上させることができるのでしょうか? 興味深い選択肢がいくつかあります。
さまざまなサービスを提供する多数のポッドを備えた分散システム環境があるとします。また、CPU 使用率、メモリ使用量、ディスク I/O、ネットワーク統計、さらにはコンテナ ログなどのシステム メトリックのストリームを提供する Prometheus などの観測ツールもいくつかあります。
ランダム フォレストは、自己修復システムの構築に役立ちます。ローリング平均、変化率、エラー ログ数を取得するためのクリエイティブな機能エンジニアリングにより、ランダム フォレスト分類子は修正アクションを生成できます。たとえば、デプロイ後にポッドが起動しない場合はサービスをロールバックしたり、CPU とネットワークの 1 秒あたりのクエリ数 (QPS) がしきい値を超えた場合はサービス上のポッドを増やしたりできます。
ランダム フォレスト分類器は、それぞれが機能のサブセットでトレーニングされた多数の決定木の集合体であるため、複数の決定木を平均化してマルチクラス出力を提供することで、過剰適合を最小限に抑えながら非線形データを効果的にモデル化できます。そのため、私は、これらすべての利点を提供しないサポート ベクター マシン (SVM) や決定木よりもランダム フォレスト分類器を好みます。
CPU 使用率や QPS などのネットワーク統計などのメトリックは、サービスによって継続的に出力されます。これらを時系列として自然に解釈し、長短期記憶 (LSTM) ニューラル ネットワークを使用して異常を見つけることができます。LSTM は、長期的なイベントを「記憶」するのに優れたリカレント ニューラル ネットワーク (RNN) の一種です。
たとえば、CPU 使用率データでトレーニングされた LSTM は、夜間のバックアップなどの季節的なイベントや、ホスト間の移行などのメンテナンス イベント中のわずかな上昇などの重要でないイベントを無視できます。また、セキュリティ侵害によってオフピーク時に発生した原因不明の上昇などについても警告できます。
たとえば、全体的なトラフィック QPS の履歴データで LSTM をトレーニングできます。デプロイされると、現在の QPS を参照して将来の値を予測し、後で実際の将来の値と比較できます。差が大きすぎる場合は、アラートが発せられます。検出された異常はカタログ化して、時間の経過とともにパフォーマンスを向上させるためにモデルを微調整するために使用することもできます。
もう少し高度な話になりますが、Q ラーニングは、パフォーマンス メトリック、ログ、再起動やデプロイメントなどのイベントを調べて、システム構成を更新できる強化学習アルゴリズムの一種です。たとえば、メトリックが CPU の負荷が高いことを示している場合、アルゴリズムは CPU を追加してポッドをスケールアップするか、追加のポッドを起動するかを決定できます。強化学習エージェントは、アクションの結果から学習し、人間の介入なしにポリシーを調整できます。
これを構築するには、状態 (さまざまなパフォーマンス メトリック)、アクション (ポッドのスケールアップなど)、およびアクション後の報酬 (システム パフォーマンス) を定義する必要があります。その後、手動でラベル付けすることなく、履歴データでモデルをトレーニングし、バックテストを行って良好なパフォーマンスを確保できます。
大規模言語モデル (LLM) とは何か、そして LLM がいかに強力であるかは、もうおわかりでしょう。LLM ベースのモデルは OpenAI のようなリソースが豊富な企業でしかトレーニングできませんが、これらのモデルの API は、高額ではあるものの、一般公開されています。しかし、LLM を利用できる場合は、「開発環境で X イメージを使用して新しいサービスをセットアップし、デプロイメント レポートを作成する」などの自然言語の指示を受け入れるボットを構築できます。その後、適切に統合された LLM がアクションを実行できます。
LLM が手元にない場合は、Bidirectional Encoder Representations from Transformer (BERT) が、シーケンスツーシーケンス (seq2seq) ユースケースに使用される別のモデルです。BERT は、より限定的ではあるが、より制御された方法で同様のことを実現できます。たとえば、「ノード 5 で Web サーバーを再起動する」は、{“action”: “restart”, “target”: “web server”, “node”: 5} に変換され、従来のプログラムで解釈できます。
AI は製品開発の様相を変えつつあり、ソフトウェアやテクノロジー全般に欠かせないものとなっています。最先端の AI を使うのは楽しいことですが、AI を直接使用して労力を削減し、ビジネス成果を向上させる方法を学ぶのも有益です。シンプルなモデルは、より少ない投資で実証済みの結果を提供することでこの目的を達成できますが、より大規模なモデルは、会社の SDLC に革命をもたらす可能性があります。唯一の間違った選択は、AI についてまったく考えず、通常どおりビジネスを続けることです。
分類: AI、ブログ、DevOps のビジネス、DevOps の実践、DevOps ツールボックス、DevOps の実践、ソーシャル – Facebook、ソーシャル – X タグ: ai、ai アルゴリズム、devops ツール、lstm、機械学習、生産性、ワークフロー
先週のクイズの結果はここにあります。
2023年10月3日 | ミッチ・アシュリー
2023 年 9 月 1 日 |ネイサン・ソロモン
2023 年 8 月 8 日 | サスキア・ソーヤー
2023 年 5 月 30 日 |カロリナ・ジュンチテ
2023年1月10日 | ブレンナ・ワシントン
セキュア コーディング プラクティス ステップ 1/7 14% 組織では現在、ソフトウェア開発プロセスにセキュア ガードレールを実装していますか?(必須) はい、すべてのプロジェクトにわたって広範囲に実装しています はい、特定のプロジェクトまたはチームのみに実装中です いいえ、近い将来に実装する予定です いいえ、実装する予定はありません 開発プロセスにセキュア ガードレールを実装する際に直面する最大の課題は何ですか? (該当するものをすべて選択してください)(必須) 認識または理解の欠如 統合における技術的な問題 開発チームの抵抗 適切なツールの不足 コストの制約 その他 その他、詳細をお知らせください: セキュア ガードレールは、プロジェクトのセキュリティ脆弱性を防ぐのにどの程度効果的だと思いますか? 1 (効果なし) から 5 (非常に効果的) のスケールで評価してください(必須) 1 2 3 4 5 セキュア ガードレールはどの程度自動化されていますか?( (重要度の高い順にランク付け)既存のワークフローへの統合のしやすさセキュリティ脆弱性の包括的なカバー特定のプロジェクトのニーズに合わせたカスタマイズ性開発速度への影響が最小限実用的な洞察と推奨事項幅広いプログラミング言語とフレームワークのサポート 今後 12 か月以内に、セキュア ガードレールの導入または強化に関して組織が計画していることは何ですか?(必須) セキュア ガードレールの使用をより多くのプロジェクトに拡大する 既存のセキュア ガードレールの機能を強化する 現在のセキュア ガードレールの使用レベルを変更せずに維持する セキュア ガードレールへの依存を減らす セキュア ガードレールに関連する計画はありません あなたの主な役割に最も近いものは何ですか?(必須) セキュリティ エンジニア DevOps エンジニア プラットフォーム エンジニア 開発チームのセキュリティ チャンピオン ソフトウェア開発者 CISO (または同等の役職) 上級管理職 (CEO、CTO、CIO、CPO、VP) マネージャー、ディレクター その他 Δ