第1回のO’Reilly Software ArchitectureカンファレンスでBryan Cantrill氏は,OS仮想化コンテナのアーリーアダプション(early adoption)に関わるビジネスの構築から,自身が学んだ教訓について講演を行った。アドバイスの中心となったのは,一度に多くの方向に改革しないこと,技術的な差別化要因を特定すること,利用/適用の容易性に注目すること,そして諦めないこと – 技術革命は,人々が期待するよりもはるかに時間を要するのだ。
JoyentでCTOを務めるCantrill氏の講演は,同社が10年近くにわたって,OS仮想化コンテナこそがコンピューティングの未来だと考えていた,という話題から始まった。コンテナによる効率向上には目を見張るものがあるかも知れないが,しかしそれだけでは,主流となるために十分ではなかった。コンテナ技術の採用曲線を最終的にアーリーマジョリティ(early majority)へと押し進めたのは,Dockerの登場と,開発者のアジリティへの期待だったのだ。
テクノロジのアーリーアダプションに関するCantrill氏の旅の物語は,クラウド技術の推進役として仮想化が果たした役割から始められた。マルチテナントコンピューティングの実用性は,1960年代にはすでに予見されていた。しかしながら,それがクラウドコンピューティングとして実現するには,インターネットの登場,コンピューティングのコモディティ化,そして仮想化技術を待たねばならなかった。Cantrill氏は,マルチテナントオペレーションにおいて,仮想化が必須の要素であることを論じたが,ここで大きな疑問になるのは,スタックのどの部分を仮想化するのか,という点だ。
仮想化に関する選択では,柔軟性とテナント機能,パフォーマンスのバランスが問題となります。
仮想化の選択が経済面のトレードオフを促すのです。
ハードウェアの仮想化により,テナントがオペレーティングシステムを自由に選択できるようになる。テナントの数と同じ位,多くのオペレーティングシステム(OS)があるのだ。しかしながら,オペレーティングシステムはコンピューティングリソースを共有するように設計されていないため,ハードウェアの仮想化が必要となり,大きなコストがかかる。アプリケーションプラットフォーム層を仮想化すれば,ハードウェア仮想化というテナンシの課題は解決するが,抽象化は開発者に“押し付けられる”ことになる。同じ問題が,現代的なプラットフォーム・アズ・ア・サービス(PaaS)製品が提供するAPIと,環境的な制約の間にも存在する,とCantrill氏は指摘している。
このような問題に対する理想的なソリューションはOSレベルの仮想化だ,とCantrill氏は言う。単一のカーネルを提供することで,テナント性とパフォーマンスを最大化するための,効率的なハードウェアリソースの利用が可能になる。さらに,分離された仮想インスタンスを,OSによってセキュアにコンパートメント化することも可能だ。ユーザは外見上,高レベルのソフトウェアが動作する仮想マシンにアクセスする。本質的にこれは,ハードウェア仮想化に伴うコストを必要としない,インフラストラクチャ・アズ・ア・サービス(IaaS)の機能である。
OSレベルの仮想化は,IaaSの汎用性とPaaSの使いやすさを提供します。
Joyentは同社のSmartOS製品を経由して,OSコンテナをクラウド上で動作させている。Cantrill氏は,OSレベルの仮想化の採用が少数派から主流へと移った過去10年の間にJoyentが遭遇した課題と,それを克服したストーリのいくつかを公開した。ケーススタディとして取り上げたのは,node.jsの開発やOSベーツの仮想化PaaS,KVMとSmartOSのコンビネーション,ビッグデータプラットフォームのManta開発といったものだ。
革新的なテクノロジのアーリーアダプタとして成功することによって,“未来の犠牲者”となる不合理性は容易に回避できる,とCantrill氏は言う。しかし,その便利さには,実は制限がある – ただし,それと気付くのは,非常に難しいかも知れない。技術的な差別化を享受するために,痛みを伴うシナリオに耐えねばならないのでは,革新の経済的メリットは損なわれる。
新たなテクノロジへの理解が高まり,関連する意識が移行するとしても,それが主流となるまでには長い時間が必要だ。企業のビジネスモデルがこのテクノロジに基づくものである場合,これは問題となるかも知れない。“あなたの支払能力にお構いなしに,市場は不合理であり続ける”,という経済学者John Maynard Keynes氏の言葉を引用することで,Cantrill氏は注意を喚起している。
そのような危険のある一方で,Cantrill氏は,成功する技術のアーリーアダプションに期待できるメリットには,そのリスクに比較してはるかに大きなものがある,とも述べている。
新技術への大胆な掛けは,志を同じくする技術者の賛同を集めます。それによって,イノベーションのための肥沃な土壌を作り出すことができるのです。
アーリーアダプションが志の同じ技術者によるオープンソースコミュニティに基づくものならば,そのイノベーションは企業の枠に限定されるものではない。Cantrill氏はこの点について,オープンソースは農場システムである,と表現する。
アーリーアダプションに関するビジネス構築は万人向けのものではないが,すべての企業が何らかの形で,理想的にはオープンに,アーリーアダプションに関与すべきだ,と氏は自身の講演を結論付けて,この点についての一連のガイドラインを掲げている。
- 一度に多くの方向に革新しないこと。
- 技術的な差別化要因を特定し,その他は使いやすさ,適用しやすさに重点を置くこと。
- 柔軟性と適応性を保持すること - 方向性は正しくても,具体策は誤りの場合もある。
- 諦めないこと。 技術革新の実現は,人々が期待するよりはるかに遅く – 人々が可能だと思うよりはるかに早いのだ。
Bryan Cantrill氏が講演 “The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers”で使用したスライドは,slideshareで提供されている。講演の様子は,O’Reilly Software Architecture 2015カンファレンスのWebサイトで公開される予定だ。