生成AIは、ソフトウェア開発やデリバリーにおける単純で時間のかかる側面を軽減し、結果としてDevSecOpsワークフローを加速させるイノベーションの新しい波をもたらしました。しかし、生成AIの可能性を最大限に実現するには、コード作成の段階だけでなく、あらゆる場所にテクノロジーを分散させる必要があります。
DevSeOpsの専門家5,000人以上を対象とした2024年の調査によると、コード作成はデベロッパーの時間の25%未満を占めています。最初のコミットから本番環境に至るまで、AIの恩恵を受けられる重要なタスクは他にもたくさんあります。
AIを各段階に組み込むことで、ソフトウェアをアイデアからデリバリーまで管理し、より優れた、より安全なソフトウェアをより迅速に作成できます。たとえば、失敗したビルドを調べるという作業でも、AIを使用して何が問題だったのか、どのように修正すればよいのかを把握し改善できます。AIによってタスクがなくなるわけではありませんが、タスクを完了するために必要なステップと時間を削減できます。
生成AIの影響を理解し、測定するために、DevSecOpsチームができることをご紹介します。
ワークフローの評価から始める
AIの効果を完全に実現するには、ワークフローの見直しなど、いくつかの事前作業を行う必要があります。AIを使用するアプローチに一貫性を持たせ、AIがもたらす可能性のあるリスクを軽減するために適切なガードレールを確保できるよう、構築できる理想的なワークフローを理解する必要があるでしょう。
たとえば、チームが生成AIでコードを作成している場合、生成されたコードの一部にセキュリティの脆弱性が含まれている可能性があります。 そのため、これらの脆弱性を検出するワークフローを作成し、本番環境に移行してしまう可能性を減らす必要があります。このワークフローを作成すれば、より一貫した方法で多くのAI機能を導入し、開発速度を向上させることができます。
ここでは、ワークフローを事前に評価することで、AIから得られるメリットをどのように改善できるかの例をご紹介します。AIは自動的にテストを構築できますが、コードがすでに作成された後にテストを構築することは望ましくありません。デベロッパーはQAチームの一員ではないため、テストするのは作成したものだけです。生成AIも同様に動作するため、AIが生成するテストのワークフローを早めに開始する必要があります。デベロッパーは問題の詳細を使用して、記述するコードのユニットテストを対話しながら生成できます。ワークフローを考慮すると、最初にテストを含むマージリクエストを作成し、次にブランチをプルして実装の作業を開始すると、コンテキストに適切なテストが含まれるようになるため、コード提案がより堅牢になり、コードを直接開始した場合よりも応答ヒット数が大幅に増加します。
すべてのワークフローを一度に刷新することはできません。そのため、レガシーコードベースのモダナイズ、セキュリティ問題の増加への対応、削減し続ける予算とスタッフでの運用など、ソフトウェア開発とデリバリーの最大の課題に関連するワークフローに重点を置くようにしてください。
AIのガードレールを確立する
また、AIのガードレールを確実に導入する必要があります。AIのガードレールとは、AIがやり取りするデータに関するリスクを考慮し、そのリスクを軽減し、独自のコンプライアンスニーズを満たすための対策のことです。使用しているAIモデル、ベクターデータベースにアクセスしているかどうか、大規模な言語モデル(LLM)がどのようにトレーニングされているかを検討する必要があります。
これらの質問には、法務、コンプライアンス、DevSecOpsチームを結集して、AIプロバイダーに厳しい質問をする必要があります。GitLab AI Transparency Centerと透明性を重視したAI戦略の構築に関するブログ記事から、有益な情報を確認できます。
もう1つの重要なガードレールは、ソフトウェア開発ライフサイクル全体および組織全体で使用している個別のAIツールの数が適切になるよう管理することです。使用するツールが多ければ多いほど、複雑さが増し、運用上の問題、管理上の課題、セキュリティリスクが発生する可能性があります。また、ツールが多い場合、間接費が増加します。
AIの影響を測定する
生産性やその他のキーメトリクスの変化を測定することは、組織におけるAIの影響を真に理解するために不可欠です。通常、組織は、コードを本番環境に出荷する頻度、4つのDORAメトリクス、またはバグの修正にかかる時間の観点からAIがもたらす成果としてのアウトプットを評価します。しかし、それでは全体像を捉えることはできません。
GitLabでは、グループやプロジェクトの階層構造内にワークフローの標準化を構築することでAIの影響を測定し、チームからビジネスユニットへのメトリクスをロールアップし、ユーザーインターフェース内で直接アウトプットを分析できるようにしています。
この構造の上にAIを実装すると、脆弱性の解決速度や、マージ リクエストに対する検証(レビュー担当者やテストが適正か)速度が向上し、結果としてコードレビュープロセスにかかる時間が短縮されます。依存関係を含むGitLab内の各ステージを確認することができ、開発チームがそれらのステージを完了するのにかかる差分も把握できます。ダッシュボードにはその速度の状況が表示され、そのデータに基づいて方向転換しやすくなります。たとえば、ソフトウェアを本番環境にリリースするかどうかを決定できます。
SDLC AIアシスタントの実用的な用途
ソフトウェア開発ライフサイクル全体でGitLab DuoのようなAIアシスタントを使用する実用的な方法をいくつかご紹介します。
-
マージリクエストの説明を作成する: マージリクエストの包括的な説明の作成を自動化し、MRの一連のコミットの要点を迅速かつ正確に把握します。また、記述されたコードとMRにリンクされた問題の意図に基づいて、不足しているタスクを明らかにすることもできます。
-
自然言語でのコードの説明: QAテスターは、コードの説明を使用して、コードを迅速かつ容易に理解できます。たとえば、MRにRustで記述されたコードと複雑なメソッドのセットがある場合、QAテスターはメソッドを強調表示し、変更が何をしようとしているかを自然言語で読み取ることができます。これにより、QAテスターは、あえて比喩的に言えば晴れた日だけでなく雨の日のシナリオもカバーする、はるかに優れたテストケースを作成することができます。
-
パイプラインエラーの根本原因分析: パイプラインが大きくなり、リファクタリングしようとすると、何かが壊れる恐れがあります。この場合、トラブルシューティングが困難になる可能性があります。特に、一連のbashスクリプトを実行している場合や、イメージ内の内部コマンドを活用してDockerイメージを実行している場合は要注意です。受信したエラーを生成AIで実行すると、考えられる根本原因と推奨される修正案が説明されます。それをコピーしてCIジョブに直接貼り付けることができます。
-
脆弱性の修正: セキュリティのシフトレフトの動きが急速に進む中、エンジニアリングチームは早急にセキュリティのエクスパートになる必要がありました。生成AIを使用すると、エンジニアはチャットにアクセスして、脆弱性が何であるか、それがコード内のどこにあるのかを特定し、さらには修正案を含むMRを自動で開くこともできます。これらはすべて開発ウィンドウ内にあるため、頭の切り替えはありません。
GitLab Duo:影響力のある生成AI機能のためのワンストップショップ
当社は、強力な生成AIモデルとハイパークラウドベンダーの最先端技術を使用して、DevSecOpsプラットフォーム向けのAI機能の拡張ツールボックスであるGitLab Duoを構築しています。現在、GitLab Duoには、コードアシスタントから会話チャットアシスタント、脆弱性の説明などの機能があり、機能により一般公開、ベータ版、Experiement版で提供されています。GitLab Duoをソフトウェア開発ライフサイクル全体で一貫して使用すると、サイクルタイムを10倍高速化します。また、組織がより少ないコストでより多くの成果を上げられるようになり、従業員がより価値の高いタスクに時間を費やすことができます。
「Omdia Market Radar: AI支援ソフトウェア開発、2023~24年」レポートでは、アナリスト企業が「エンタープライズグレードのアプリケーション開発に適している」と考える製品の1つとしてGitLab Duoが取り上げられ、「AI支援がSDLCパイプライン全体に統合されている」と評価されています。
GitLab Duoの実際の機能についてはこちらの動画をご覧ください。
監修:知念 梨果 @rikachinen
(GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア)
次のステップ
DevSecOpsにおいてAIの活用を進める
組織がソフトウェア開発ライフサイクルにAIをどのように組み込んでいるかのインサイトについては、世界中の5,000人を超えるDevSecOpsプロフェッショナルからの調査結果をご覧ください。
レポートを読む
組織がソフトウェア開発ライフサイクルにAIをどのように組み込んでいるかのインサイトについては、世界中の5,000人を超えるDevSecOpsプロフェッショナルからの調査結果をご覧ください。
Frequently asked questions
主要なポイント
- AIの可能性をDevSecOpsで完全に活用するには、コード作成の段階だけでなく、ソフトウェア開発ライフサイクル全体にAIを組み込むことが不可欠です。
- 組織全体でAIツールを統合することで、複雑さ、運用リスク、コストを軽減し、効率化された安全な環境を実現します。
- AIの有効性を評価するには、コード生成頻度などの従来のメトリクス以上のものが必要です。組織内で標準ワークフローを実装し、脆弱性の修正時間やコードレビュー効率などの包括的なメトリクスを収集します。