「世界を牛耳るのはギークだ」——インフラの権威が語る次世代データセンターの姿、開発者が定義する「DDI」って何?

Jerry Chen氏は Greylock Partners のパートナーで、Dockerの取締役である。かつては VMware でクラウドとアプリケーションサービスのバイスプレジデントをしていた。


Image Credit: Docker
Image Credit: Docker

もし「ソフトウェアが世界を牛耳る」ようになれば、開発者によって私たちが生かされる時代になるだろう。

ここ何年にもわたって、ソフトウェアエンジニアの重要性が説かれてきた。技術分野専攻の学生たちが他専攻のクラスメートを圧倒し、彼らの平均給与もここ数年で跳ね上がっているというのが実情である。実際、開発者らは会社の最高給取りの仲間入りを果たすようになるだろう。もちろん、あらゆる業界の会社で、だ。シリコンバレーの会社だけではとどまらない。

時代は開発者が定義するインフラ(developer-defined infrastructure 、以下略してDDI)の時代に入りつつある。歴史的にみて、多くのアプリケーション技術の中で開発者の発言は限られていた。90年代、私たちはMicrosoft .NETとJavaの世界で快適に過ごし、データベースにはOracleを当たり前のように使用してきた。しかしここ数年、開発言語とフレームワーク(Go、Scala、Python、Swift)、さらにデータインフラ(Hadoop、Mongo、Kafkaなど)が急速に増え、開発技術とアプリケーションインフラの新しい潮流を私たちは目の当たりにしている。

オープンソースの力を得て、開発者は今、理に適った開発言語、ランタイム、データベースを選択することができる。しかし、開発者はアプリケーションインフラを決めているだけではない。それが動作するクラウドインフラも決めている。彼らはアプリケーションがどこ(プライベートまたはパブリッククラウド)で動作するかだけでなく、ストレージ、ネットワーク、計算、セキュリティーがどこで管理されるべきかも決定している。これがまさにDDI時代であり、ITの展望は今までとは全く異なったものになるであろう。

開発者とシステム管理者の役割の分離と定義について:

開発者はソースコード管理、障害追跡(Git、Jira)のような開発ツールを決定し、システム管理者(サーバー管理者、ストレージ管理者、ネットワーク管理者)は製品、インフラの基準を管理していた。しかし、現在は Amazon Web Services (AWS)のようなクラウドへの移行により、開発者はどのインフラサービスを使用するかの選択肢が与えられている。

どのようにして、こうした状況へ至ったのだろうか? データセンターの進化を簡単に見ていくことにしよう。

データセンターの3つの時代

facebook-data-center
via Flickr by Intel Free Press. Used under the Creative Commons CC BY 2.0 license.

ハードウェアが定義するインフラ(1985年頃から1999年)

クライアントサーバー時代が到来し、企業はメインフレームをミニコンピュータ、そしてパーソナルコンピュータと組み合わせたパワフルなサーバーコンピュータへ移行した。これはハードウェア設計とハードウェアベンダーがIT戦略を牽引していた時代であった。エンジニアはCPUのアーキテクチャ(RISC対CISC)、Power対X86対SPARCについて議論し、この世代の戦略ベンダーはSun MicrosystemsやIBM、HPなどであった。

ソフトウェアが定義するインフラ(2000年頃から2014年)

ハードウェアが定義するインフラにおいて、ソフトウェアは通常ハードウェアと対にされた。2000年代前半、Intel X86アーキテクチャがCPUで圧倒し、サーバーとシステムの標準化が可能になった。一旦ハードウェアの標準が確立されると、ソフトウェアのエコシステムはこれらのサーバーを中心に成長し、物理(ハードウェア)から論理(ソフトウェア)の分離が始まった。WindowsやLinuxのようなオペレーティングシステムはハードウェアを仲介するソフトウェアのレイヤーとなった。最終的に、VMWareがソフトウェア仮想化のアイデアで先駆的な役割を果たした。

ソフトウェア仮想化はIT管理者が仮想コンピュータ、ディスク、ネットワークを全てソフトウェアで構成することを可能にした。ムーアの法則に従い、VMWare はハードウェアが定義するインフラをソフトウェアが定義するインフラへと転換した。実体性のあるものからバーチャルなものへの進化の状況は、SunのようなシステムベンダーからVMware、Microsoft、Red Hat、そしてCPUのデファクトスタンダードとしてのIntelなど、ソフトウェアが定義するインフラの勝者に利益マージンが流れたかを見れば追跡することができる。VMWareは仮想化コンピュータからストレージ(vSAN)へ、そしてネットワーキング(NSX)へと移行した。

もしVMwareがソフトウェアが定義するインフラで先駆的な役割を果たしたとすれば、GoogleやFacebookのようなウェブスケール大手はこれを完成させたと言える。「最終的にはソフトウェアが機能する、ハードウェアはいずれ動作しなくなる」という格言にに従って、彼らは完全には信頼できないハードウェアを信頼できるものにすべく、汎用ハードウェアとソフトウェアを使用する価値を見出した。

こうしたソフトウェアが定義するデータセンターの影響は、実体性のあるものが定義するインフラ時代の行く末に一部見ることができる。例えば、Dellは上場廃止した。IBMはx86サーバーをLenovoに売却し、HPは今でもアイデンティティクライシスに陥っている。

開発者が定義するインフラ(2015年から~?)

DDIの時代へようこそ。ここでは開発者がアプリケーションを動かす方法、内容、場所に関する決定を行っている。DDIは、ソフトウェアが定義するインフラが自然な形で進化したものだ。ハードウェアをソフトウェアに変える力は、ある意味では、実体性のあるものからソフトウェアへという論理が分化したものと言えるが、その実は、ソフトウェアに反映されるハードウェアを手にすれば、コードのようにハードウェアを扱うことができるという事実だ。ハードウェアを移動させたり、プログラムでつくったり、そのためのプログラムを記述することができる。

例えばAWS上では、全てのものにアプリケーションプログラミングインターフェース(API)があり、それをプログラムできる(ストレージ、コンピュート、ネットワーキング、セキュリティなど)。今日、開発者はITやオペレーションのような思考をしなくてはならない。そして、IT管理者は開発者に制約を与えるのではなく、彼らがインフラを選択できるようにしなくてはならない。DevOpやクラウドが現れている中、開発者はDDIをサポートするためにアプリケーションを構築、運営、管理する技術を求めている。つまり、VMwareが過去15年間のプラットフォームであるとするならば、 Dockerのような企業は今後15年のプラットフォームとなるかもしれない。Dockerが特にサポートしているのは以下の通りだ。

  • プログラマビリティとポータビリティ:インフラストラクチャーはちょっとしたソフトウェアのように扱わなくてはならない。物理的な場所にもはや縛られることのないDockerコンテナは、コーヒーショップ内でのノートパソコンからクラウドへと簡単に移動させることができる。さらに重要な点として、DockerのようなDDIはそのAPIを使用してプログラム可能である。
  • コンソリデーション:これこそ、多くのITやシステム管理者を惹きつけているDockerの特徴だ。仮想化が1台の機械で実体性のある10のサーバーを10の仮想化サーバーに変え、物理的なインフラを置き換えたように、Dockerは速度と性能を向上させつつ、サーバー負荷のコンソリデーション率をさらに高めることができる。
  • マイクロサービスへの移行:Twitter、Google、Facebookのような企業は、次世代アプリケーションを構築するためにマイクロサービスを採用している。マイクロサービスはスケールするのが簡単で、アップデートしやすく、大掛かりなエンジニアリングチームによって開発される。

ギークが世界を牛耳る時代

このDDI時代が、ベンダー、開発者、IT専門家に暗示しているメッセージは何だろうか? 開発者を理解せず、これを取り込まないソフトウェアベンダーは時代に取り残されてしまうだろう。仮想化、ストレージ、ネットワーク、セキュリティの管理者などIT管理者に販売をしている既存企業は、開発者に販売する方法を理解しなくてはならない。

IT専門家は開発者に制約をかけるのではなく選択してもらえる方法を考える必要がある。最後に、開発者はアプリケーションの定義を拡張すべきだ。コードはただのプログラムでもなければ、スマートフォンのアプリでもない。コードはハードウェアからマネジメント、そして最終画素まで、何にでもなり得るのだ。

【via VentureBeat】 @VentureBeat

【原文】