人工知能とマシンラーニングでDevOpsはどうなるのか?

■ ソフトウェア開発の初期段階でコーディングからAIやMLツールはすでにデータセットを基盤に自動化されたコードレビューやコード分析を遂行することができる。 これは人間の介入を軽減するのに役立っている

最近、デブオプス(DevOps)で人工知能とマシンラーニング技術が検討されている。 このような取り組みは、既存のDevOpsツールスタックに統合するための強力な候補となっており、意思決定プロセス改善で自動化された作業やコードの品質向上に至るまでDevOpsの未来はAIやMLの助けで立派な道具に生まれ変わっている。

ソフトウェア開発の初期段階でコーディングからAIやMLツールはすでにデータセット(機械が作動して回答するMLアルゴリズムに対する入力)を基盤に自動化されたコードレビューやコード分析を遂行することができる。 これは人間の介入を減らすのに役立つ。

また、ユーザーはコード管理および共同作業道具を使用してチーム構成員間での検討作業を自動的に分散することができる。 最終結果はこれらのアルゴリズムが簡単に発見できるコードの欠陥、セキュリティ問題やコード関連の欠陥を早期に発見することだ。 このような道具はコードレビュー内でノイズの減少、欠陥感知のほかにも自動化されたコードレビューについては、コーディングやセキュリティ標準を適用する。

このようなコード分析及び改善と同じAIやMLで駆動されるスマート道具は数百万行のコードで埋め尽くされたリポジトリ(Repository)で学習することができる。 その後、このような道具はコードの意図を理解して開発者が変更した事項を確認することができる。 ここでこのようなスマート道具は分析するすべてのコード列に提案することができる。

一般的に人たちはコード分析に他のアプローチをとる。 オープンソースプロジェクトで数百万件のコードレビューを分析した後マシンラーニング道具で駆動されるコードの性能は性能に焦点を合わせてアプリケーションの応答時間を損傷させる最も高いコードラインを探すのに役立つ。 このような道具はリソース漏水、潜在的な同時性競争条件及び浪費されたCPUサイクルのようなコードで問題を見つけられ、コードレビュー段階及びアプリケーション性能モニタリング段階でCI/CDパイプラインと統合されることもできる。

この同一の範疇で新しい機能をコーディングした上で開発者はAIやMLで駆動される自動化された単位テスト生成を考察することができる。 これを通じてスプリント内で開発者の時間を約20%節約することができるという。

ビルド後の承認や統合コーディングの次の段階は機能及び非機能テストだ。 ここでAIやMLを使用したコード生成のお菓子が治癒テストコード及び維持管理がDevOps空間で現実化されている。

テスト自動化は大きなボトルネック現象がなることができ、しばしばプロジェクトが遅延している理由として信頼できない非正常的な自動化はテストのプロセスを穏やかになる。 信頼できないテスト自動化の根本原因の一つに、テスト中のアプリ及びテスト内で使用される要素に対する持続的な変更のようなことがある。 スマートな技術はこのような変更事項を識別してテストを調整してより安定的かつ信頼できるよう助けてくれる。

また、強力なテストコードを作る技術は費用がかかり、特にモバイル及びウェブと同じデジタルアプリでいつも使用できるわけではない。 ここでAIやMLテストツールは、アプリの流れ、画面や要素を学習してコードが全くあるいはほとんど無しで自動的にテストを生成することができる。 道具は各テスト実行の間に自家治癒されことができる。

ロウコードまたはコードなし道具を使用すればチーム構成員がテスト自動化生成活動に参加することができる。 ロウコードまたはコードなし道具を使用すると、さらに多くのチーム員がテスト自動化生成活動に参加することができる。 また、開発者が革新的な新機能を作るのと同じもっと緊急な活動に集中する時間を確保することができる。

さらに、AIやMLを使用するテスト自動化の追加の階層は、新たに浮上しているロボットプロセス自動化(RPA)だ。 このような技術は大規模な組織内で多くの受動的で、時間の消耗的でエラーが発生しやすく、自動化することが困難なプロセスを自動化するのに使用することができる。

テスト実行が完了すれば、AIやMLテスト影響分析(Test Impact Analysis、TIA)のツールは、意思決定権者が次のビルドで進行しなければならないテスト、扱わない領域などについて案内することができる。 同一の範疇のテストでAIやMLアルゴリズムは事故テストデータを基に失敗の根本原因分析を識別して相当な量の平均解決時間(Mean Time To Resolution.以下、MTTR)を節約することができる。

最近、DevOpsプロセスの後半部、プロダクションに対するコード配布前後にAIとMLがAIOps内で新しい技術を主導している。 AIOps完全なソリューションは、スマートアプリケーション性能モニター(APM)を含むだけでなく、ITインフラモニタリング(IT Infrastructure Monitoring)およびITサービスモニター(IT Service Monitoring)にも活用する。 これを通じてビックデータおよび高級最新のソフトウェアアーキテクチャ(MSサービス、クラウドなど)について実行することができる包括的な生産及び運営洞察力、分析階層を構築する。

特に、AI能力でチームはアプリケーションのサービス状態を決定することに集中してプロダクションデータに対する制御および可視性を確保することができる。 これを通じてDevOpsチームは自動化されたインシデントの管理を使用してリアルタイムでMTTRを迅速に処理するため​​いる。 ここでAIとMLはプロダクションのアプリ内で観察可能性、傾向や予測をロギングは側面ではるかに多くのことができる。

最後にAIOpsポートフォリオ内でこのような道具を使用してチームはサービス中断時間を減らし予防することができる(予測警告)。また、支援のチケットの解決を促進して大容量のログファイルをもっと速く分析し、根本原因や範疇(セキュリティ、ネットワーク、サーバーなど)を識別することができる。 DevOps及びヒューマンエンジニアリングは決して消えないが、自動化及び維持管理が困難な退屈でエラーが発生しやすい活動を最適化して速やかに処理するのに役立つことができる。

関連記事一覧