AI(人工知能)と機械学習(ML)はソフトウェア開発において不可欠なものとなっており、DevSecOpsチームはそれらをさまざまな方法で活用して、時間を節約し、生産性と効率性を向上させています。
開発、セキュリティ、運用の各チームがDevOpsプロセスにAIを組み込む方法をいくつかご紹介します。
DevSecOpsチームにおける9つのAI活用法
1. チャットボットを使ってドキュメント内で質問をする
DevSecOpsチームは、AI搭載のチャットボットを活用することで、ドキュメントやほかの大容量のテキストからリアルタイムで適切な回答を得ることができます。これにより、迅速に回答を見つけ、頭の切り替えを減らすことができます。コードの記述やデプロイを行っているIDEやプラットフォームを離れてウェブを検索するのではなく、組み込まれたチャットボットに質問を投げかけ、作業の流れを中断せずに簡潔な答えを得られます。
2. テストとテストファイルの提案を受け取る
デベロッパーは、AIを活用してマージリクエスト内でテストの提案を受け取ったり、コードのテストファイルを自動生成したりすることができます。これは、テストの強化、変更に対する適切なテストカバレッジの確保、およびテストの作成や考慮にかかる時間の削減に有効です。
3. コード変更を要約する
コミットやマージリクエストを行う際、デベロッパーはAIを使用してコード変更の要約を生成できます。これにより、デベロッパーは変更をコミットしてコードレビューを依頼する際の時間を節約できます。また、AIを使うことで、コードレビューの際にもレビュアーが変更点を事前に把握しやすくなり、より迅速かつ効果的なレビューが可能になります。
4. 適切なコードレビュアーの提案を受け取る
コードレビューは重要ですが、時に煩わしく時間がかかるプロセスです。特に最初に適切なレビュアーに依頼できていない場合は、余計に手間がかかります。
コードの変更とプロジェクトのコントリビューショングラフを参照することで、AIはより迅速で高品質のフィードバックを提供し、潜在的な問題を把握できるコードレビュアーを自動的に提案します。また、提案されたレビュアーが反応しない場合やレビューが不十分な場合には、AIが代わりのレビュアーを提案します。これにより、時間の浪費を防げます。
5. ディスカッションを要約する
ディスカッションが長引いたり複雑になったりしたとき、チームはAIを使ってイシューやチケット内のコメントをすべて要約できます。これにより、チーム全員が同じ情報を把握でき、プロジェクトの進捗状況や次のステップを効率的に理解できるようになり、シームレスなコラボレーションと迅速な成果達成が実現します。
6. コードの提案を受け取る
AI搭載のコード提案機能は、開発中にIDE内でコードを提案することで、デベロッパーがより効率的にコードを書けるように支援します。デベロッパーは、AIを使うことで、コードブロックの補完、関数宣言ロジックの定義・生成、ユニットテストの作成、そして一般的なコードの提案(正規表現パターンなど)を行えます。これらの機能はデベロッパーの効率性を確実に向上させますが、GitLabの調査によると、デベロッパーが実際にコード開発に費やす時間は25%未満に過ぎないため、その範囲は限定的とも言えます。
7. コードの動作を説明する
デベロッパー(またはDevOpsチームのメンバー)は、AIを使用することで、ワークフローを中断することなく、コードブロックの動作やその挙動の理由についての説明をすばやく受け取ることができます。
ほかのデベロッパーが作成したコードや、慣れていない言語で書かれたコードを理解する必要があるデベロッパーにとって、AIによるコードの説明は非常に役立ちます。そして、GitLabの調査によると、デベロッパーはコードの動作を理解するのに作業時間の13%を費やしているため、ここでの時間削減はかなりの差を生むことになります。
8. コードの脆弱性を要約する
新たに検出されたセキュリティの脆弱性を理解し、それを修正するプロセスは単純ではありませんが、AIを搭載したセキュリティツールを使用することで、このプロセスを簡素化して効率化できます。脆弱性のAI生成サマリーは、デベロッパーとセキュリティ担当者が特定の脆弱性について理解し、考えうる攻撃手法や脆弱性の修正方法を把握するのに役立ちます。一部のAI搭載ツールは、軽減方法をサンプルコード付きで提案することもできます。これにより、チームはセキュリティリスクや脅威を回避し、少ない労力で問題に対処できます。
9. 生産性メトリクスを予測する
AIを活用することで、ソフトウェアリーダーは生産性メトリクス(デプロイ頻度など)を予測し、ソフトウェア開発ライフサイクル全体にわたる傾向やアノマリを特定できます。これらの実行可能なインサイトを参考に、チームは効率化とDevSecOpsプロセスの改善を目的とした変更を実施できます。
AIをソフトウェア開発に活用する利点
多くのDevSecOpsチームが、AIの活用を通じて次のような業務を効率化しているか、またはその計画を進めています。
- ソフトウェアデリバリーライフサイクルの効率化
- サイクルタイムの短縮
- コンプライアンスチェックの効率化
- 従業員の生産性向上
- セキュリティ対策状況の強化
- コード品質の向上
- 顧客満足度の向上
- 従業員満足度およびデベロッパーエクスペリエンスの向上
- チーム間のコラボレーション向上
- アプリケーションパフォーマンスの改善
- 繰り返し作業の自動化
- 運用コストの削減
- 頭の切り替えと認知負荷の軽減
- ヒューマンエラーの削減
- 新入の即戦力化
- 従業員の新しいプログラミング言語学習のサポート
プライバシーとセキュリティの問題を避ける
AIをソフトウェア開発プロセスに統合することには多くの利点がありますが、潜在的なリスクや一般的な問題、障害にも注意を払うことが重要です。
当社の調査によると、ソフトウェア開発ライフサイクルでAIを実装する際に、直面した、または直面すると予想される一般的な障害として、回答者はプライバシーやセキュリティ、そしてAI主導のソリューションに関する知識不足を挙げました。特定された障害の中で、プライバシーとデータセキュリティに関する懸念が最も多く(34%)、次いで適切なスキルの欠如(31%)とAIに関する知識の不足(30%)が続きました。
ビジネスリーダーは、プライバシーとセキュリティに関する基準に準拠した方法でAIの導入を進める必要があります。これには、AIのライフサイクル全体にわたってコンプライアンスチェックとバランスを統合し、機密データを保護し、ユーザーの信頼を維持することが含まれます。また、機械学習(ML)モデルが自社データをどのように利用するのかを明示しているAIツールを選ぶことも重要です。
GitLab Duoについて
上記に挙げたコードの説明からテストの提案までのすべての機能は、GitLab Duo(GitLabのDevSecOpsプラットフォームに組み込まれたAI機能群)の一部です。GitLab Duoは、ソフトウェア開発ライフサイクルの各フェーズでAIアシストを活用したワークフローを提供し、DevSecOpsチームの効率性向上、サイクルタイムの短縮、頭の切り替えの回避を支援します。これらすべての機能が、単一アプリケーションで実現されています。
『2024 Gartner® Magic Quadrant™』のAIコードアシスタント部門でGitLabがリーダーの1社として評価された理由をご覧ください。
レポートを取得
Frequently asked questions
主要なポイント
- DevSecOpsのワークフローでAIを活用し、繰り返しの作業の自動化、頭の切り替えの軽減、インテリジェントアシストの提供を行うことで、効率性と生産性を大幅に向上させることができます。
- AIツールは、リアルタイムの提案、潜在的な脅威の要約、修正アプローチの提案を通じて、コード品質とセキュリティの向上を支援します。
- 組織は、プライバシー、知的財産、データセキュリティに関する懸念に対応する戦略を策定し、法的および倫理的な要件に基づいてAIを実装することが重要です。