ITOps、DevOps、NoOpsは、組織のITチームを構成するための3つの異なるアプローチです。それぞれに異なる責任と目標があり、ITOpsとDevOpsのワーキンググループはどちらも企業に広く採用されていますが、NoOpsの大部分はまだ理論上の存在です。それぞれの特徴と、互いがどのように関係しているのかについて詳しく見てみましょう。
ITOps:ITOpsの範囲は広く、時として漠然としているため、ITに関するあらゆるものが対象であると思われがちです。ITOpsの業務が組織によって大きく異なるのは事実ですが、どのような場合でも、ビジネスに必要なテクノロジーを提供して管理するという責任を負っています。実際、ITOpsにはネットワークの保守、データセンターの管理、セキュリティと規制コンプライアンスの確保、ヘルプデスクの運営、ソフトウェアのライセンス付与と管理など、従業員の日常業務をサポートするさまざまなタスクが含まれます。ここで注意したいのは、プログラムやアプリケーションの開発とそれに関連するタスクは含まれていないことです。
DevOps:DevOpsとは、開発と運用の間で人、手法、ツールを連携させることにより、チーム間の分断を防ぐITデリバリーのためのアプローチです。ただしDevOpsには、社内外で使用するカスタムアプリケーションの開発、実装、保守を担う別の役割もあります。
その名前が示すように、DevOpsは開発とIT運用の役割を1つにまとめたものです。DevOpsの一連のプラクティスに従うことで、アプリケーションやサービスの開発を加速できます。さらに、ITインフラ管理の対応を迅速化することで、変化の速い現在の市場に対応しながらIT製品の導入と更新を行うことができます。
ITOpsとDevOpsは、正反対の異なる原則の上に成り立っています。ITOpsは、基準や規制要件に準拠した安全かつ安定したインフラを確保するという役割を担っており、リスクを最小限に抑える正確なアプローチを好みます。一方でDevOpsは、ソフトウェア開発のライフサイクルを短縮し、市場投入までの時間を短くしながらアプリケーションに最新の技術を導入し、最適化することを重視しています。
当然ながら、これらの異なる原則が対立することもあります。インフラの開発や保守に対するITOpsの確固とした線形アプローチでは、変更をすばやく実装することができず、開発プロセスを遅らせます。DevOpsにはスピードが求められるため、時間的な制約からDevOpsチームがITOpsに対応せざるを得ない場合もあり、システムのセキュリティや安定性にリスクを与える可能性があります。そのため、DevOpsアプローチでは、開発チームがデリバリー目標を達成できるように、ITOpsが責任の一部を放棄し、他の責任をDevOpsと共有する必要があります。
NoOps:NoOpsは「No IT Operations」の略で、DevOpsを進化させ、ソフトウェア開発環境からIT運用を完全に排除したものです。NoOpsの支持者は、インフラの保守作業は完全に自動化可能であり、社内のITOpsチームは不要になると主張しています。NoOpsはプラットフォームではなく、その実現にはAIや機械学習などのいくつかのクラウドテクノロジーを利用します。
NoOpsの支持者は、NoOpsには以下のような潜在的なメリットがあると言います。
- 人的ミスの削減 — NoOpsの完全に自動化されたシステムでは人の介入が不要になるため、手作業による人的ミスとそれに伴うダウンタイム、さらにその他のインシデント管理タスクが最小限に抑えられます。
- スピードアップと効率化 — 安定性とセキュリティを確保するITOpsのアプローチとイノベーションを推進するDevOpsの間の対立を解消することで、開発チームはよりスピーディーかつ俊敏に作業できるようになります。
- ITOpsの役割の向上 — NoOpsによってITOpsは運用に対する責任から解放されるため、IT部門の戦略的な役割が高まり、技術を向上させて、DevOpsチームが必要とするツールを確実に提供できるようになります。
現時点では、NoOpsは実用的なソリューションというよりも、まだ概念に近いものです。ソフトウェアのライフサイクルプロセスからITOpsを排除すると、開発者に過大な責任が生じ、生産の妨げになると考える人もいます。また、現代のシステムの複雑さを考えると、ITOpsのすべての機能を自動化することは単に現実的でないという意見もあります。近い将来、運用の一部は自動化されますが、その他の部分は必然的に人間が行うようになる可能性が高いでしょう。