グーグルはリレーショナルデータベースをクラウドに乗せるか
グーグルという会社は、例えばマイクロソフトやオラクルやアップルと比べると「戦略」といったものを積極的にはアピールしない会社です。
マイクロソフトやオラクルやアップルのような企業は、年に何度か大規模なイベントを開催し、現在の戦略や今後のロードマップを示します。しかしグーグルはそういった方法で将来像やスケジュールを明らかにすることはあまりなく、社内でこっそりと開発を続けて、ある日突然「こんなものができました」と発表する方を好むようです。
かつてGMailが登場したときも、そして先日Google App Engine for Javaが登場したときもそうでした。
そのためグーグルのクラウド戦略はどの方向に向かっているのか? ターゲットとするデベロッパー層や、想定しているアプリケーションの姿といったものがどういったものなのか、次にどんな施策を打ってくるのか、といったことは想像するしかありません。
グーグルはいま同社のクラウド戦略をどう考えているのでしょうか。いくつかの手がかりを基に考えてみましょう。
Javaはビジネスアプリケーション対応の第一歩
Google App Engineが昨年登場したとき、サポートした言語はPythonのみでした。しかしPythonはPerlやPHPやRubyやJavaやBasicやCといった言語と比べて、明らかにマイナーな言語だったため、必然的に「Google App Engineで次にサポートする言語は何か?」に注目が集まりました。
そして、グーグルは途中でその答えを一切明らかにすることなく、「Java」という回答をある日突然に示しました。
なぜJavaだったのでしょうか。Google App EngineでJavaをサポートすると発表したブログ「Google App Engine Blog: Seriously this time, the new language on App Engine:Java™」では、その理由をこう書いています。
Java language support was both the first and the most popular request filed in the Issue Tracker.
Java対応は最も多く寄せられたリクエストだったため、ということです。また、技術的に考えても、PerlやPHPを移植するよりもJava、つまりJavaVMを移植する方が、JRubyやGroovyなどJavaVM上で稼働する言語にも対応できるため一石二鳥だったことも挙げられるでしょう。
しかしJavaの用途の大半はビジネスアプリケーションを構築するために使われているという点も見逃せません。Google App EngineがJavaをサポートしたことで、グーグルは少しずつGoogle App Engineをビジネスアプリケーションのプラットフォームとして使えるように進化させているようにみえます。
そして新たな企業向けツールも
グーグルはGoogle App EngineのJava対応を発表したときに、実はさりげなく企業向けツールの発表も行っています。それは、セキュアデータコネクター、データアップローダ、そしてクーロン(cron)対応です。
セキュアデータコネクター(Secure Data Connector)は、Google App Engineから企業内にあるサーバルームのサーバへ暗号化通信を提供するツールです。企業内でセキュアデータコネクターを稼働させると、グーグルのクラウド内で稼働しているトンネルサーバと暗号化通信が行えます。これにより、Google App Engine上のアプリケーションが企業内にあるサーバに認証を要求してシングルサインオンを実現したり、データ連係をすることができるようになります。
また、セキュアデータコネクターの機能はGoogle App Engineだけでなく、Google Appsのスプレッドシートなどからも利用できます(Premier EditionとEducation Editionのみ)。
データアップローダは、大量のデータをGoogle App Engineへと流し込むためのツール。Pythonで書かれたアプリケーションで、企業内のCSVデータをバッチでGoogle App Engineへとロードします。
cron対応はその名の通り、Google App Engine上のアプリケーションを、外部からの命令なしにいつも決まった時間に、あるいは定期的に実行する機能です。
最後のピースはリレーショナルデータベース
3つの機能の中で最も重要なのは最初のセキュアデータコネクターでしょう。これでオンプレミスのアプリケーションとGoogle App Engine上のアプリケーションが連携できるようになるからです。
Java対応とセキュアデータコネクターで、Googleのクラウドは企業内で稼働しているビジネスアプリケーションとの連携、クラウドへの移行への環境を着々と整えつつあるようにみえます。しかしビジネスアプリケーションにとっては、重要な最後のピースが足りません。
その最後のピースがリレーショナルデータベースであることは明らかです。果たしてグーグルはビジネスアプリケーションを本気でクラウドに乗せようとしているのか? ならばリレーショナルデータベースが必要です。それとも、強引に現在のキーバリュー型のデータベースのままで押し通すのでしょうか?
グーグルの戦略がまったく聞こえてこない以上、推測するしかありませんが、僕はグーグルがクラウド対応のリレーショナルベースを内部で開発していると考えています。クラウドは規模のビジネスである以上、より多くのアプリケーションを動かして規模を拡大する方が有利です。
アプリケーションのボリュームゾーンがビジネスアプリケーションである以上、ここを取りに行かない戦略はありえません。そしてリレーショナルデータベースがなければそこを攻略できないのであれば、やるしかないわけです。
マイクロソフトはすでに、Windows Azureでリレーショナルデータベース対応を明言し、実際に動き始めています。グーグルはどうするのか、正面から対抗するのか、それともなにかアクロバティックなことを考えているのか、みなさんはどう思われるでしょうか。