NoOpsの基本:NoOpsとDevOpsとの比較

Observability Stephen Watts

IT業界の進化に伴い、アプリケーション開発を強化して迅速化するためのさまざまな概念が導入されてきました。その中でも、プロセスの自動化が徐々に主流になりつつあります。これまでのところ自動化は、プロジェクトのデプロイプロセスを迅速化するのに最も効果的であると言えます。

そこで登場したのがNoOpsという概念です。NoOpsが普及すると、IT運用での手動介入が不要になる可能性がありますが、これはDevOpsの終焉を意味するのでしょうか。実際には、NoOpsはDevOpsが進化したものだと考えることもできます。この記事では、その理由を探ります。

DevOpsの概要

簡単に説明すると、DevOpsとは、開発者と運用担当者が密接に連携して作業するための実践方法や手法を表します。この一連のプラクティスにより、ソフトウェア開発とIT運用での協力体制を確立し、以下の2つの目的の達成を目指します。

(こちらの一般的なDevOpsの紹介記事もご覧ください。)

NoOpsとは?

NoOpsは、ソフトウェア運用で行われるデプロイ、監視、改善の作業をIT環境内で完全に自動化することを目的とした新しい概念です。

NoOpsを導入すれば、基盤となるインフラのソフトウェアを管理するための専門チームを配備する必要がなくなり、自立した運用が可能になります。最終的には、NoOpsによって開発者はソフトウェア開発に専念できるようになり、ライフサイクルの運用部分が完全に自動化されるため、運用チームの負担も軽減されます。

NoOps登場の背景

DevOpsでは、開発と運用のスキルセットが統合されます。これは概念としては非常に素晴らしいものですが、特に大規模な組織では実現が困難であることもあります。DevOpsを導入しても、開発者と運用担当者の考え方やアクションが同じであるという保証はないため、保守が困難になります。

また、DevOpsでは、インフラの専門家とソフトウェアの専門家が協力して作業する必要があります。つまり、状況によっては、一方の失敗が他方の失敗を引き起こす可能性があり、ソフトウェア開発プロセス全体が崩壊してしまう可能性もあります。このような問題があることから、DevOpsの効果に対する疑問は尽きることがなく、その結果としてNoOpsのアプローチが生まれたのです。

NoOpsを導入する理由

NoOpsのアプローチでは、製品、インフラ、管理、セキュリティ、および運用に関するあらゆる作業を改善するためのプロセスやリソースを増やし、プラットフォームによって完全に自動化します。これによって運用に必要な専門知識を減らし、開発者が製品プログラムの作成と改善に専念できるようにすることを目指します。これを実現するのが以下のサービスです。

NoOpsでは、運用に関するあらゆる作業が自動化されたシステムによって制御されるようになります。開発者チームがインフラに関する問題についてシステム管理者とコミュニケーションをとる必要はありません。特にスタートアップ企業や小規模なアプリケーション、Product as a Serviceを提供する企業にとっては、NoOpsは導入しやすい手法と言えるでしょう。

言い換えると、NoOpsは一歩進んだイノベーションと言えます。適切なツールを利用すれば、DevOpsよりも高速なデプロイプロセスを実現できます。

PaaSに関する補足

アプリケーション機能の開発、実行、管理を行うプラットフォームを提供するPaaSを利用すれば、アプリケーションの開発やリリースに関連するインフラの構築や保守といった煩雑な作業を回避できます。PaaSを提供するプロバイダーは数多くありますが、主要なプロバイダーは次のとおりです。

NoOpsのメリット

NoOpsのアプローチには、次のようなメリットとビジネス価値があります。

NoOpsの課題

どのアプローチにも課題はつきものです。NoOpsには次のような課題があります。

開発者の作業負荷の増加

NoOpsによって運用チームの必要性が完全になくなるという保証はありません。次のものは常に管理する必要があります。

これらを管理する責任は、最終的には開発者が負うことになります。

セキュリティリスクとコンプライアンスに関する問題

ソフトウェアのセキュリティをより適切に制御し、サイバー脅威がプログラムデータに侵入しようとするのを阻止するには、高度なスキルを持つ経験豊富な運用チームが必要です。また、コンプライアンスの責任については外部に委託できません。アプリケーションがオンプレミスまたはクラウドのどちらで実行されたとしても、規制は適用されます。以下については、PaaSとやりとりする担当者が必要です。

セキュリティチームは、ネットワークポリシーの管理、IDガバナンスの管理、制御の実施についてIT運用チームに頼ることが多くなっています。そうすることで、脅威やインシデント対応、ポリシーの作成に集中することができます。運用チームをなくしてもセキュリティチームを拡大する必要が発生し、そのメリットが相殺される可能性もあります。

互換性の欠如

最新のPaaSソリューションと互換性のないアプリケーションもあるため、NoOpsは万能なソリューションではありません。現時点でも、NoOpsと互換性がないテクノロジーがいくつかあります。また、企業が専用のデータセンターを所有している場合、NoOpsの実装は効果的なオプションとは言えません。

最後に、完全な自動化を実現するための移行作業においても、多くの企業が困難に直面する可能性が高いでしょう。

学習のギャップ

業務のほとんどが管理者の手を離れることにより、管理者の手元に残される作業は簡単なセキュリティパッチの適用やサーバー管理のみになります。管理者がコーディングを学び、スキルを高めることは難しくありません。一方、開発者は、ほとんどの時間をFunction as a Serviceとしてのコードの記述、テスト、デプロイに費やすことになり、残りのタスクはプラットフォームで行われます。そのため、開発者がスキルの幅を広げるために管理タスクを学べる機会はあまりないでしょう。

DevOpsとNoOpsの比較

NoOpsの将来の展望

NoOpsには将来性があります。多くのスタートアップ企業やProduct as a Serviceを提供する企業にとって重要な役割を果たす可能性が高く、このような企業がより早く市場に製品を投入して、収益をできるだけ早く獲得するのに役立ちます。また、NoOpsはアジャイルな手法を取り入れて、迅速なリリースを実現します。製品をテスト環境に素早くデプロイすることで、俊敏性を簡単に提供できます。

ただし、NoOpsは今後、AI (人工知能)が行うインテリジェントな運用になる可能性が高いでしょう。この運用では、AIがソフトウェアの管理を正確に行います。NoOpsは、開発環境の拡張や最適化、日常業務の自動化に関心のあるソフトウェア企業にとって、最適な選択肢と言えます。

NoOpsによりDevOpsは終わるのか?

DevOpsはすでにほとんどの大規模アプリケーションに組み込まれているため、NoOpsによりDevOpsが終わるわけではありません。DevOpsにはメリットも課題もありますが、非常に信頼性の高い手法であることは間違いなく、完全になくしてしまうのは難しいでしょう。NoOpsはDevOpsから進化したものとも言えます。しかし、それは一夜で達成できるわけではありません。

こちらのブログはこの英語ブログの翻訳です。

関連記事

GitOpsビギナーガイド
オブザーバビリティ
11 分程度

GitOpsビギナーガイド

GitOpsは、オープンソースのバージョン管理システムで、チームはソフトウェア開発に使用するのと同じツールを使ってインフラを管理できます。GitOpsの仕組みとGitOpsを使用すべき理由、そして適用方法について説明します。
ネットワークとサービスのインテリジェンスが現代のインシデント対応戦略に欠かせない理由:パート2
オブザーバビリティ
6 分程度

ネットワークとサービスのインテリジェンスが現代のインシデント対応戦略に欠かせない理由:パート2

現代のインシデント対応では、スピードだけでなくスマートさが重要になります。このシリーズのパート2では、ネットワークテレメトリがインシデント対応にどのように影響し、根本原因分析を加速させ、チーム全体でビジネスを意識した行動を促進するかについてご説明します。
リリース前テストの重要性:本番前環境の外形テストでドリフトを検出
オブザーバビリティ
9 分程度

リリース前テストの重要性:本番前環境の外形テストでドリフトを検出

リリース前テストをお忘れなく!本番前の「本番マイナス1」環境を本番環境と同じ重要度で監視する方法についてご説明します。