IT業界の進化に伴い、アプリケーション開発を強化して迅速化するためのさまざまな概念が導入されてきました。その中でも、プロセスの自動化が徐々に主流になりつつあります。これまでのところ自動化は、プロジェクトのデプロイプロセスを迅速化するのに最も効果的であると言えます。
そこで登場したのがNoOpsという概念です。NoOpsが普及すると、IT運用での手動介入が不要になる可能性がありますが、これはDevOpsの終焉を意味するのでしょうか。実際には、NoOpsはDevOpsが進化したものだと考えることもできます。この記事では、その理由を探ります。
簡単に説明すると、DevOpsとは、開発者と運用担当者が密接に連携して作業するための実践方法や手法を表します。この一連のプラクティスにより、ソフトウェア開発とIT運用での協力体制を確立し、以下の2つの目的の達成を目指します。
(こちらの一般的なDevOpsの紹介記事もご覧ください。)
NoOpsは、ソフトウェア運用で行われるデプロイ、監視、改善の作業をIT環境内で完全に自動化することを目的とした新しい概念です。
NoOpsを導入すれば、基盤となるインフラのソフトウェアを管理するための専門チームを配備する必要がなくなり、自立した運用が可能になります。最終的には、NoOpsによって開発者はソフトウェア開発に専念できるようになり、ライフサイクルの運用部分が完全に自動化されるため、運用チームの負担も軽減されます。
DevOpsでは、開発と運用のスキルセットが統合されます。これは概念としては非常に素晴らしいものですが、特に大規模な組織では実現が困難であることもあります。DevOpsを導入しても、開発者と運用担当者の考え方やアクションが同じであるという保証はないため、保守が困難になります。
また、DevOpsでは、インフラの専門家とソフトウェアの専門家が協力して作業する必要があります。つまり、状況によっては、一方の失敗が他方の失敗を引き起こす可能性があり、ソフトウェア開発プロセス全体が崩壊してしまう可能性もあります。このような問題があることから、DevOpsの効果に対する疑問は尽きることがなく、その結果としてNoOpsのアプローチが生まれたのです。
NoOpsのアプローチでは、製品、インフラ、管理、セキュリティ、および運用に関するあらゆる作業を改善するためのプロセスやリソースを増やし、プラットフォームによって完全に自動化します。これによって運用に必要な専門知識を減らし、開発者が製品プログラムの作成と改善に専念できるようにすることを目指します。これを実現するのが以下のサービスです。
NoOpsでは、運用に関するあらゆる作業が自動化されたシステムによって制御されるようになります。開発者チームがインフラに関する問題についてシステム管理者とコミュニケーションをとる必要はありません。特にスタートアップ企業や小規模なアプリケーション、Product as a Serviceを提供する企業にとっては、NoOpsは導入しやすい手法と言えるでしょう。
言い換えると、NoOpsは一歩進んだイノベーションと言えます。適切なツールを利用すれば、DevOpsよりも高速なデプロイプロセスを実現できます。
アプリケーション機能の開発、実行、管理を行うプラットフォームを提供するPaaSを利用すれば、アプリケーションの開発やリリースに関連するインフラの構築や保守といった煩雑な作業を回避できます。PaaSを提供するプロバイダーは数多くありますが、主要なプロバイダーは次のとおりです。
NoOpsのアプローチには、次のようなメリットとビジネス価値があります。
どのアプローチにも課題はつきものです。NoOpsには次のような課題があります。
NoOpsによって運用チームの必要性が完全になくなるという保証はありません。次のものは常に管理する必要があります。
これらを管理する責任は、最終的には開発者が負うことになります。
ソフトウェアのセキュリティをより適切に制御し、サイバー脅威がプログラムデータに侵入しようとするのを阻止するには、高度なスキルを持つ経験豊富な運用チームが必要です。また、コンプライアンスの責任については外部に委託できません。アプリケーションがオンプレミスまたはクラウドのどちらで実行されたとしても、規制は適用されます。以下については、PaaSとやりとりする担当者が必要です。
セキュリティチームは、ネットワークポリシーの管理、IDガバナンスの管理、制御の実施についてIT運用チームに頼ることが多くなっています。そうすることで、脅威やインシデント対応、ポリシーの作成に集中することができます。運用チームをなくしてもセキュリティチームを拡大する必要が発生し、そのメリットが相殺される可能性もあります。
最新のPaaSソリューションと互換性のないアプリケーションもあるため、NoOpsは万能なソリューションではありません。現時点でも、NoOpsと互換性がないテクノロジーがいくつかあります。また、企業が専用のデータセンターを所有している場合、NoOpsの実装は効果的なオプションとは言えません。
最後に、完全な自動化を実現するための移行作業においても、多くの企業が困難に直面する可能性が高いでしょう。
業務のほとんどが管理者の手を離れることにより、管理者の手元に残される作業は簡単なセキュリティパッチの適用やサーバー管理のみになります。管理者がコーディングを学び、スキルを高めることは難しくありません。一方、開発者は、ほとんどの時間をFunction as a Serviceとしてのコードの記述、テスト、デプロイに費やすことになり、残りのタスクはプラットフォームで行われます。そのため、開発者がスキルの幅を広げるために管理タスクを学べる機会はあまりないでしょう。
NoOpsには将来性があります。多くのスタートアップ企業やProduct as a Serviceを提供する企業にとって重要な役割を果たす可能性が高く、このような企業がより早く市場に製品を投入して、収益をできるだけ早く獲得するのに役立ちます。また、NoOpsはアジャイルな手法を取り入れて、迅速なリリースを実現します。製品をテスト環境に素早くデプロイすることで、俊敏性を簡単に提供できます。
ただし、NoOpsは今後、AI (人工知能)が行うインテリジェントな運用になる可能性が高いでしょう。この運用では、AIがソフトウェアの管理を正確に行います。NoOpsは、開発環境の拡張や最適化、日常業務の自動化に関心のあるソフトウェア企業にとって、最適な選択肢と言えます。
DevOpsはすでにほとんどの大規模アプリケーションに組み込まれているため、NoOpsによりDevOpsが終わるわけではありません。DevOpsにはメリットも課題もありますが、非常に信頼性の高い手法であることは間違いなく、完全になくしてしまうのは難しいでしょう。NoOpsはDevOpsから進化したものとも言えます。しかし、それは一夜で達成できるわけではありません。
こちらのブログはこの英語ブログの翻訳です。
この記事について誤りがある場合やご提案がございましたら、ssg-blogs@splunk.comまでメールでお知らせください。
この記事は必ずしもSplunkの姿勢、戦略、見解を代弁するものではなく、いただいたご連絡に必ず返信をさせていただくものではございません。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。