川俣晶のWindows Azureレボリューション 第3回 Azureとパラダイムシフト 2011/06/02 |
よくある錯誤の問題 |
よくある錯誤の話から始めよう。
筆者はいまの時代のITなるものに対して、けっこう怒っている。おそらく多くの人はこう理解してしまうだろう。
- 21世紀の新しい価値観を理解できずに、古い常識にみんなが従わないので怒っている
しかし、実際は正反対なのである。
- 古くさい話を蒸し返して「新しい」と称して古い価値観にしがみつき、いつまでも新しい世界に行こうとしないことに怒っている
古い常識にみんなが従わないとは、勘違いも大きい。こちらが怒っている理由は、古い常識にみんなが従い過ぎることである。
しかし、なぜそうなるのだろうか?
答えは簡単である。
知らない過去はなかったことにできるからである。例えば、1980年代の人工知能ブームというものがあるが、そのときには生まれていなかった若者も珍しくはない。彼らに、1980年代によくあったアイデアを「新しい」と称して提案することも難しくない。そして、彼らは若く多数派であるため、容易にネットの世論を形成してカビの生えたアイデアを21世紀の最新アイデアとたたえることができてしまうのである。
この当時のアイデアで、当時は無理であったが現在は実現しているものも多い。技術の進歩や計算能力のアップなどが理由だ。例えば、指紋認証は1980年代にはまだ夢想に近かった。実際にビジネスとして構想し、いろいろなプログラマーに話を持ちかけた人がいて、筆者も持ちかけられたがみな逃げた。それだけ、まだハードルが高かったのである。しかし、現在は普通に使われている認証手段でしかない。標準で指紋センサー搭載のノートPCを使っていたこともあるぐらいだ。
しかし、それはうまくいった例であり、いまだに実現していないものも多い。なぜなら、計算時間が爆発的に増えるケースは、CPUが10倍、100倍程度に速くなっても焼け石に水で、本質的な解決にならないからだ。また、そもそも解が一意に決まらなかったり、解がなかったりというケースもある。そういうアイデアは、技術の進歩に関係なく実際には不可能であることが分かっているので、いまさら蒸し返してもあまり意味がない。「技術が進歩したのだからいまなら実現できるかもしれない」という人は多いが、「解なし」はアルゴリズムの問題であり、技術の進歩で解決できる問題ではない。だから、そういう意見へのアドバイスは「実際にやってみればいいと思うよ」である。実際に取り組めばそれが不可能であることが本人にも分かるし、万一、迂回(うかい)路を発見できて実現できれば、大成果である。100%の失敗は予言しない。可能性は常にゼロではないからだ。そういう意味では大胆な挑戦にはかなり好意的な方だと思う。
しかし、現在まで継承されていない多くのアイデアは何らかの理由でうまくいかなかったものばかりである。そのようなアイデアは継承されていないが故に知らない人が多く、提案しやすい。しかし、たいていはうまくいかない。過去にうまくいかなかった実績があるからだ。
Azureは新しいか古いか |
問題は、そのように考えたとき、「Azureは新しいか古いか」である。例えば、Linuxは技術的には古典的なUNIXの蒸し返しにすぎない。名前が違うし、大多数のユーザーはUNIXではなくWindowsを使ってきたので新しいと思わせやすいが、実際はかなり発想が古い。ではAzureはどうなのだろうか。
この問題は非常に悩ましい。なぜなら、単にOSを比較するだけでは何も新しさが出てこないからだ。その理由は簡単で、OSの比較方法そのものが無力化されるほど、Azureは新しいからだ。
旧世代のOSのアーキテクチャは、1台のハードウェアがあり、それを充足するために存在する。これが1つのシステムである。システムは通信機能を備え、ほかのマシンと協調して動作するかもしれないが、OSの仕事は通信可能にするところまでである。具体的にほかのマシンとどのように作業を分担し、何をどのマシンに割り当てるかは利用者が考える問題である。
ところが、Azureのアーキテクチャはそれとはまったく異なっている。複数のロールが一体となって、1つの作業を行う構造になっている。ロールは1つの仮想マシンに相当する。もちろん、ロール1つでもプログラムは動作するのだが、推奨された使い方ではない。推奨される最小構成はロール2つである。つまり、通信機能はOSが外部との通信に使うものではなく、OSのアーキテクチャ内部を支える仕掛けの1つにまで入り込んでいるわけである。
ここで発想を切り替えられるかがポイントとして求められる。
もし、旧世代の発想のままAzureを見て、「よし分かった」といってしまうと、なぜAzureなのかという理由がまったく分からないまま終わる。自社で運用する仮想Windowsサーバとの技術的な違いが見えてこないからである。単に「マイクロソフトのサーバを利用する」という違いしか分からない。
しかし、実際はもう同じルールで世の中は動いていないわけである。
そのような違うルールを充足するためにAzureは作られている以上、古いルールの理解ではAzureの理解には到達し得ない。
RDB(SQLデータベース)の寿命が尽きる日 |
前回も触れたが、世の中のルールは変わった。RDB(SQLデータベース)は欠陥の多い、良くないDB(データベース)であるという主張は筆者自身、以前から何度かしているのだが、欠陥は多くともデファクト・スタンダードではあった。実際に利用されるケースは多く、ほとんど選択の自由を与えられないまま使われる例も多かった。Visual StudioではデフォルトでそのままSQL Serverがいっしょにインストールされるケースがあるし、いわゆるOSS(オープンソース・ソフトウェア)のLAMPの「M」はMySQLであり、OSSでも暗黙の前提としてRDB(SQLデータベース)が想定されている。どちらもRDB以外の選択肢を最初から考えていない古い発想である。かといって、ファイル・システムをそのまま使うのも低水準すぎてイマイチしっくり来ない。
なぜAzureを使っているのかといえば、RDBともファイル・システムとも違う、第3のストレージを提供する新世代ソフトウェア技術群の1つであるからだ。つまり、RDBでは問題が多いが、かといってほかの方法も(機能的に)物足りないという気分を満たしてくれたのだ。このメリットは大きい(もちろん、Azureのストレージだけがストレージに対する満足感を満たしてくれる、というわけではないが)。
現実には、この新しい世代のストレージを使いこなすのは簡単ではない。筆者の経験ではSQLデータベース開発の100倍ぐらい手間が掛かった。慣れれば手間を短縮できると思うが、恐らくそれでも10倍ぐらいの手間が掛かりそうである。しかし、それだけの手間を掛ける価値がある。あるべき場所にピタリとあるべきものが収まるからである。
ちなみに、ストレージとは最も重要な要素である。なぜなら、データがなければPCは何もできないことが多いからだ。例えば、いくらプリンタがあっても、文書ファイル抜きでは何も打ち出せない。しかしプリンタがなくとも文書ファイルがあればそれをPDFファイルに変換するなどの方法で利用できる可能性がある。
そのように考えると、ストレージの問題こそはまず第1に解決されるべきものであり、それを実現してくれる新世代のソフトウェア技術群を基準に、次の時代に自分が使うOSを選ぶしかない。自分はそこから、いくつかの理由によりAzureを選んだということである。選択理由はいくつもあるが、それをくどくど述べることは無駄であろう。すでに当時とは状況がかなり変化している。基準も条件も変化した。しかし、Azureに両足を突っ込んでしまった筆者は、いまのところAzure以外に乗り換える予定を持っていない。
Azure情報の日米格差の問題 |
Azureに取り組んでハッピーになったのかといえば、必ずしもそうではない。新しく経験することばかりで、1つ1つの作業が挑戦の連続であった。まさに先に進めず頓挫するのではないか、と思ったことすら何回もある。
しかし、奇妙に原点回帰しているものもある。それが日米格差の問題である。いまでこそ日本語の情報も徐々に増えてきたが、Azureに取り組み始めたころ、Azure関連の情報を検索しても「Azureは商売になるか」というビジネスの話ばかり見つかり、日本語の技術情報はほとんど皆無に等しかった。結局、英語の情報を探りながらの開発となった。しかし、これは昔にもあった状況であり、原点回帰でしかない。
なぜ原点回帰してしまうのだろうか。
やはり超えられない日米格差がそこに存在するからだろうと思う。なぜ格差が存在するのだろうか。恐らく、日本人がなまけているからだろう。意外にも、日本は世界一であると信じて疑わない人が多いのだ。しかし、努力もせずに世界一になれないし、世界一も維持できない。世界の最先端と争って負けないだけの勉強を、果たしてどれだけの人がしているのだろうか。もちろん、勉強とは知らないことを知るために行うのであり、すでに知っていることを深めても、それだけではさほどの意味はない。どれほどの革新も革命には勝てないのである。
そういう意味で、日本のIT(情報技術)はまだまだ「僕は賢い」と思い込んだ子どもたちに支えられた子供文化であろう。立派な肩書きを持った立派な服装の大人が、口を開くと子供みたいな甘えたことを言い出したケースも実際に何回となく見ている。それ故に、海外から大きな勢力が訪れれば一発でそれに染まってしまいかねない脆弱(ぜいじゃく)な世界だと思うべきだろう。いや、実際にすでに染まりつつあるのかもしれない。実際に、1990年代からすでに染まりつつあると見てもよいだろう。
しかし、前途ある若者はこの状況を恐れる必要はない。なぜなら、日本のITではなく、世界のITにコミットしていけば、世界の水準にキャッチアップできるからだ。そのためのハードルはそれほど高くはない。要するに英語を読めばよいのである。ネットがあれば、アメリカ合衆国所在のサーバにある英語情報にもすぐアクセスできる。ここで求められているのは、優秀な日本人ではなく、日本という枠にとらわれない地球人であろう。地球人になるとき、出身地がどこであるかは問われない。英語が好きか嫌いかは問題ではない。それが標準として使われている以上、読むしかないのである。
というわけで、筆者は今日もAzure関連のドキュメントを英語で(読めないところは飛ばしながら)読むわけである。
昨日と同じ明日は来ない |
今日という日は昨日の延長で乗り切るしかない。しかし、明日という日はそれでは乗り切れないかもしれない。明日は常に未知だからだ。昨日と同じ明日は来ないかもしれない。
この状況に対応するためには、ソフトウェアは変化し続けていくしかない。つまり、一度完成したら未来永劫(えいごう)そのまま使えるソフトウェアなどは夢想の産物ということである。たとえ作っても、徐々に時代の要請と乖離(かいり)していき、最終的にはゴミ箱行きである。
もし、それでもソフトウェアにしがみついていれば、しがみついている者ごとゴミ箱行きである。実際にゴミ箱の亡者となった、あまりにも時代錯誤な者たちはネットを少し検索するだけでいくらでも出てくる。
では、どうすればよいのか。
常にコードを書けばよいのである。コードはコレクションするものではない。書くものである。利用者の要望を満たすためにコードを書き続ければ、ソフトウェアはゴミ箱行きから救われる。
しかし、単にコードを書くだけでは対応しきれない大きな溝に遭遇する場合もある。
この溝を渡る手段の1つがAzureであろう。
もちろん、渡るか渡らないかは個人の判断次第であり、渡った先に何が待っているのかも保証できない。しかし、1つだけ間違いのないことがある。渡らなければゴミ箱行きが間近に迫るのである。
おかしな話だが、筆者は周囲を見ないで必死にAzureに食らいつこうとした。ゴミ箱には行きたくなかったからである。しかし、はたとある日、周囲を見回すと周囲のほとんど人は溝を渡ろうとすらしていなかった。みな、過剰に自信を持ちすぎなのだろう。しかし、それは虚構の自信である。新世代の技術を使いこなせば、時代遅れのLinux上に時代遅れのRDBで構築したシステムなど、一瞬で吹き飛ばすようなアプリケーションが書けるだろう。そんなバカなと思っただろうか? 確かにまだ誰も新世代のアプリケーションをあまり書いていないから実感として分からないだろう。しかし、多くの者たちが本格的に書き始めたら明暗がはっきり付くだろう。それがいつかは分からないが、それほど遠い未来の話ではあるまい、と思う。
まとめ |
- パラダイムを変えないと技術革命は理解できない
- RDB(SQLデータベース)の寿命が尽きるかもしれない
- Azure情報の日米格差がある
- 英語の好き嫌いは問題にならない。英語を読むことから始める
- 昨日と同じ明日は来ない。問題は明日を何で乗り切るか
提供:日本マイクロソフト株式会社
企画:アイティメディア営業企画/
制作:デジタル・アドバンテージ
掲載内容有効期限:2011年7月15日
|
マイクロソフトによるWindows Azure 情報
|
|||||||||||
|
@IT内のWindows Azure 関連情報
|
|||||||||||
|
外部サイトのWindows Azure 関連情報
|
|||
|