DevOpsはビジネスの世界に革命をもたらし、既存の製品やサービスに新しいソフトウェアを追加するプロセスを、かつてないほど迅速かつ効率的にした。しかし、人工知能(AI)と機械学習(ML)をDevOpsに取り入れれば、企業はそのスピードと効率をさらに高められる可能性がある。
この強力な組み合わせにより、DevOpsに伴う負荷の大部分を自動化できる。開発者と運用チームはより高度な業務に時間を集中でき、重要度の低い作業はコンピューターやロボットに任せられるようになる。
DevOpsの進化
自動テスト、継続的インテグレーション、Infrastructure as Code(コードとしてのインフラ)を考えれば、DevOpsがここ数年で広く普及した理由は容易に理解できる。DevOpsにとって次の大きなステップの一つは、DevOpsプロセスのあらゆる部分に機械学習と人工知能を統合することになるだろう。
ここ数年で、組織によるDevOps手法の導入方法は大きく変化した。今日では、企業が意識しているかどうかにかかわらず、どの企業もDevOpsの要素を何らかの形で導入していると言ってよい。Enterprise Management Associates(EMA)の最近の調査によると、組織の80%がアプリケーションワークフローの自動化をDevOpsプロセスに取り入れている。
自動化とセルフサービス機能を導入した企業では、アジャイルな開発とデプロイメントの文化への移行が急速に進んでいる。開発者がコードのデプロイを完全に管理できれば、新しいアップデートが利用可能になった時点で容易に活用できる。
このレベルの俊敏性は生産性を大幅に高める一方、市場投入までの時間も劇的に短縮する。こうした新しい開発手法を補完するため、企業は現在、業務のあらゆる側面で全体的な効率を高めるさまざまなAI・ML技術を導入している。
関連記事:DevOps:継続的インテグレーションと継続的デリバリー(CI/CD)
DevOpsにおけるAIとMLの役割
MLとAIは組織内でさまざまな役割を担うが、通常は次の3つのカテゴリーに分類できる。
- 顧客重視の役割は、最適化されたシステムによって顧客により良いエンドユーザー体験を提供することに重点を置く。
- 業務効率化を重視する役割は、チーム全体のプロセスやタスクをより効率的にすることに重点を置く。これにより、単純作業に費やす時間を減らすとともに、開発者が新しい機能の開発に専念できるようになる。
- コンプライアンスを重視する役割は、構造化データまたは非構造化データの大規模なデータセットを分析し、業界標準を満たしているかどうかを判断することに重点を置く。
一般に、組織は業務効率を実現するため、それぞれの役割にAIとMLを導入することを主な目的としてきた。しかし今後は、価値の付加(機能の追加)だけでなく、価値を生まない作業の削減にも、これらの技術を活用する方向へと変化していく可能性が高い。これは、過去のデータを使って将来の結果を予測する教師あり学習アルゴリズムや、過去のデータからラベルのない変数の傾向を特定する教師なし学習によって実現できる。
AIとMLでDevOpsを自動化するメリット
AIとMLによるDevOpsの自動化には多くのメリットがある。DevOpsワークフローを完全に自動化すれば、コストを削減し、収益を増やし、製品品質と顧客満足度を向上させられる点を覚えておきたい。AIとMLでDevOpsを自動化するメリットには、次のようなものがある。
- DevOpsとITの全プロセスに対する可視性の向上
- テスト、リリース、デプロイの高速化
- 人的ミスが本番環境に広がるリスクの低減
- 人間の処理能力を超えるデータ量への対応
- 定型作業に必要な手作業の削減
- サービスプロビジョニング全体の自動化
- データに基づいて、MLはエラーの予測を支援し、AIはパターンを理解して障害の兆候を予測できる
DevOpsとは、リリースまでの時間を短縮するために、製品の開発、品質保証(QA)、テスト、デプロイ、監視を統合する取り組みである。AIとMLのアルゴリズムを使ってDevOpsを自動化する目的は、一貫したデプロイのルーチンを構築し、品質の低下やコードの欠陥を招くことなく、ユーザーへのリリースを数週間または数カ月から数分または数時間へと短縮することにある。
AIとMLによるDevOps自動化の課題
AIとMLによってDevOpsプロセスを自動化できる可能性は広く知られている。しかし、AIとML技術を使ってDevOpsワークフローの自動化を成功させるうえで、組織の妨げとなる課題も存在する。
大きな課題の一つは、DevOpsプロセスを自動化するためのディープラーニングアルゴリズムの開発だ。自動化されたワークフローで、単純な二値判断よりも複雑なアルゴリズムを使う場合、実行中の任意の時点で入力データセットの変数が一つでも誤っていたり欠落していたりすると、ミスの修正が難しくなる。
機械学習の進歩により、プロセスの各段階で人間の介入や指示がなくても、より賢い意思決定が可能になっている。一方で、最適な結果を得るために過去のデータに大きく依存するアルゴリズムもある。システムのトレーニングが不十分だと、誤った結果を出す可能性がある。
関連記事:DevSecOpsとITセキュリティの統合:ベストプラクティス
DevOpsの文化にMLとAIを適用する方法
AIとMLは本質的には、機械が示す人間の知性である。MLでは通常、データから学習できるアルゴリズムによってこうしたプロセスを実現する。
これらの技術の背景にある理論は、データが増えるほどシステムの知識が深まり、開発環境と本番環境におけるソフトウェアシステム間の相互作用をより深く理解できるようになるというものだ。より具体的には、大量のログを処理し、人間だけでは検出できない相関関係を自動的に発見するために利用できる。
AIとMLはチームにさまざまなメリットをもたらす。特に重要なのは次の点だ。
適応型システム
機械にさまざまなシステムに関する大量のデータと知識を与えると、何を変更・修正すべきかを指示しなくても、時間の経過とともに改善できる。例えば、特定の時間帯にウェブサイトの訪問者が大幅に減ることに気づかない場合でも、AIなら時間が経つにつれてそうしたパターンを問題なく検出できる。
人間の介入が不要
機械に休憩は必要ない。プログラムやサービスの細部を完了するまで最適化するために、24時間365日、可能な限り懸命に動作できる。これにより、企業はかつてないほど多くの業務量に対応しながら、チーム全体を常時稼働させるための間接費を削減できる。
テスト手法の強化
適応型AIとMLは、コードベースの別の場所で発生しているイベントに基づいてアラートを生成する。つまり、何かが見落とされるケースが減り、製品のあらゆる側面が綿密に監視されるため、全体をより一貫してカバーできる。
DevOpsの核心は、開発者と運用エンジニアのコラボレーションにある。両者が別々にではなく、一緒に機能をシームレスに更新できるようにするためだ。開発者はAPI呼び出しを使って新しい関数を記述し、更新をトリガーする。その後、運用担当者がパフォーマンスを監視して問題に迅速に対処することで、短期間で変更を本番稼働させられる。
DevOpsチームでAIとMLを効果的に活用する
これらの技術が成熟し続ける中、あらゆる業界の企業が新たな方法で活用し始めている。その一例が運用管理だ。AIとMLはDevOpsの適用方法を変えつつある。AIは、規模、時間、正確性の面で人間に任せることができない問題を解決できるため、より多くの組織がこれらのツールを導入し、データ処理、データベースのパフォーマンス、ログファイルの分析などを自動化している。
AIとMLはITの状況把握も迅速化する。サーバーからデータセンターの運用、アプリケーションパフォーマンスに至るまで、AIを使えば人間なら見落とす可能性のある異常を発見できる。さらにMLを使えば、ボトルネックが発生する前に予測し、回避できる。
パブリッククラウドコンピューティングが企業で普及する中、組織はIT運用を改善する手段として自動化に注目するようになっている。イノベーションのペースを加速するため、開発から本番までのDevOpsをAIとMLで自動化しているのだ。基本的な考え方は、自動化された環境へ移行することで、エラーを減らし、開発者の手作業をなくし、新機能やアプリケーションのデプロイ時間を短縮し、生産性を高めるというものだ。