1年前に Forrester は Augment DevOps with NoOps (DevOps を補強する NoOps) というレポートを公開した。その中で同社は,近い将来に一部企業のクラウド依存がますます高まり,開発者のビルドやテスト,デプロイなどの作業がさらに自動化されることによって NoOps に到達する,と予想している。NoOps という用語からは,それらの企業が運用スタッフの雇用を止めるような印象を受ける。しかし実際のレポートは,開発者が運用を実施する上でのより優れた自動化ツールへの取り組みや,手動操作の必要性を低減するツールに関して言及したものだ。
クラウドコンピューティングの新たな発展は,オンデマンドなインフラストラクチャやリソースのセルフプロビジョニング,柔軟なアプリケーションアーキテクチャという新しい時代の到来を告げるもので,開発者の対話的なリリース作業の必要性を大幅に減少させます。コラボレーションに重点を置いた DevOps は,オートメーションを重視した NoOps へと進化します。ただし魔法はありません – この野心に満ちた NoOps の将来において,運用のプロフェッショナルたちはインフラストラクチャを活用して,開発者がより少ないマニュアル作業でよりよい成果をあげられるように,これまでとは違う作業を行う必要があるのです。DevOps の追求を継続するのと同時に,クラウドベースのサービスの普及に応じて NoOps でそれを補強する準備をしなければなりません。
GigaOM が今年発行した,AppFog の創立者 で CEO の Lucas Carlson 氏による インフォグラフィック では,2013 年がプログラマにとって NoOps の年になるだろう,と予測している。そこではコンピュータモデルが 1990年代のデータセンタから 2000年代の仮想化ソリューション,さらに IaaS (AWS) へと進化するのに伴って,新興企業のコンピューティングコストが指数級数的に減少する一方,その生産性が指数級数的に増加する様子が示されている。この傾向は 2011 年になって,システム化されたシスオペ管理によってさらに加速され,Chef や Puppet のような製品を使用した高度に自動化されたオペレーションの採用となって顕在化している。氏の評価によると,現在の開発者はその時間の 60% をプログラミングに,残る 40% を運用 – ミドルウェアやネットワーク,仮想化ハードウェア管理,さらにはプロビジョニングやセキュリティ – に費やしているのだ。
アプリケーションライフサイクル管理が,VMWare Cloud Foundry や RedHat OpenShift などの PaaS ソリューションを通じて急ピッチで普及するであろうこの1年を経て,Carlson 氏は 2013 年を NoOps の1年になると予想する。AppFog や Heroku の提供する PaaS 管理ソリューションを利用する新興企業では,開発者が運用 – ミドルウェア,サービス,フェイルオーバ,ログおよび監査管理 – に費やす時間はわずか 5% に留まり,その他の運用作業はクラウドが担うことになる,というのだ。
Carlson 氏のインフォグラフィックでは新興企業について述べているが,Netflix はすでに NoOps を実現している と,同社のクラウドアーキテクト Adrian Cockcroft 氏は言う。
Netflix は NoOps を実践しています …
サービスの更新はすべて,そのコードを書いた開発者自身が行います。DevOps スキルセットのひとつである信頼性工学のため,中央で調整作業を行う担当者は何人かいます (彼らは開発組織に所属してコードを書いている人たちであって,事務担当者ではありません) 。ただし彼らがコードを修正するのではなく,開発者,つまり Dev に通知を行うのです。開発者は新しいバージョンのコードをローンチして (ピック,クリック) ,トラフィックをコードのこのバージョンに送る (クリック) ように指示します。インスタンスの実行数は,Autoscaler がトラフィックによって判断します。アラートは PagerDuty が管理する Dev のオンコール当番表に従って,開発担当者に直接送られます。システムには運用,すなわち Ops に相当する機能やチームは存在しません。すべて Dev なのです。ラップトップ管理や電子メール,DVD 出荷などを処理する IT システムには運用担当者がいますが,彼らがストリーミングサービスを運用管理することはありません。
ここまでの部分はすべて合理的と思われる。しかし NoOps という用語が,運用コミュニティ全体に大きな波紋を広げているのだ。同じような反響を受けた No* という用語が以前にもあった。NoSQL である。元来は SQL を持たない SQL データベースを表すものとして Carlo Strozzi 氏が 1998 年に作り出した造語を,Rackspace の Eric Evans 氏が 2009 年に SQL 技術に依存しないデータストアの意味で再紹介したものだ。しかし後になって SQL 自体,あるいは SQL に長年投資を続けてきた人々を侮辱するものとして受け取られてしまった。当初は SQL が消え去って NoSQL に取って代わられるものと解釈されたり,もう少し穏やかな Not Only SQL の意味である,という主張がされたりした。
NoOps にもこれと同じような不幸な意味合いがある – 運用不要 (no to operations),あるいは運用担当者不要 (no to ops people) だと解釈されているのだ。Etsy の運用担当副社長である John Allspaw 氏は,もっとも手厳しい批判者 のひとりである。
"NoOps" はこの分野の造語としては "クラウド" や "アジャイル",あるいは "SOPA" など以上に非常識なマーケティング用語です。
全体的に見て,この言葉には "no" が含まれています。つまりそれを "持っている" ものを否定しているのです。
@LivingSocial の技術運用担当副社長である Mark Imbriaco 氏も,
NoOps に対して今これほどの悪感情を抱きながら,明日このポッドキャストをレコーディングするというのは,あまり良い気分ではないですね ...
NoOps を吹聴する PaaS プロバイダたちが,彼ら自身のプラットフォームの運用方法を知っていると信頼できますか? できる訳がないでしょう。
さらに enStratus の製品戦略担当副社長である James Urquhart 氏は,NoOps という用語への失望 を "つまり NoOps に対する私の懸念は,開発者がすべてを行うという点にではなく,言葉そのものにあるのです。" と説明している。"かつての NoSQL のように。"
運用業務は確実に変化している。システムを自社の中で稼働させる大企業は,今後も存在するだろう。そこでは Ops が引き続き重要な役割を果たすことになる。クラウドに依存して運用担当者を削減する企業も現れるだろうが,そのクラウドには膨大な数のシステム運用スペシャリストが在籍しているのだ。開発者が運用の役割を習得し,ある面では推測することによって DevOps を推進し続ける企業もあるだろう。さらには運用業務の大部分を PaaS クラウドの管理下に隠蔽して,開発者が必要最小限のオペレーションを行うような状況もあり得る。どの方法でも構わないが,いずれにしても NoOps というのはいかにも凡庸な用語だ。無 (nothing) の上に 何か (something) を構築するのは不可能なことだからだろう。