クラウド時代に求められるIT基礎スキル―TechEd 2010印象レポート
タブレットの話を続けようと思ったが、ちょっとしたニュースが入ってきたので、今回はそちらの話をする。
マイクロソフトが提供するクラウドサービス「Microsoft Azure」のユーザーコミュニティを牽引した砂金(いさご)信一郎氏がマイクロソフトを退職されるそうだ(Azureの鼓動 最終話: 宇宙を駆ける -いわゆる退職ブログ)。それほど親しくさせていただいたわけではないが、何度かお話しをする機会があった。
砂金氏の業績はいろいろあるが、多くの人が挙げるのは、2010年8月にクルーズ船を貸し切って行われた「JAZUG (Japan AZure User Group)のキックオフ船上パーティー」である。当時のAzureはPaaSのみが提供され、一般的な仮想マシンは使えなかったが、なんとなく面白そうだったので私も参加した(この時の砂金氏のブログも読んでいただきたい「【ナイショ企画】Azure船上パーティーにこめる想い」)。
今回は、その船上パーティー直後に書いたブログを、若干の加筆・修正を行って掲載する。
■マイクロソフトTechEdに参加した
「マイクロソフトTech Ed」はマイクロソフト最大の技術カンファレンスであり、日本では毎年8月末に開催されていた。東日本大震災を理由に2011年は開催中止、その後正式に廃止された。代替イベントは「de:code」ということになっているが、会場が小さく、TechEdほどのお祭り感はない。
2010年のTechEdは8月25日(水)から27日(金)の日程で、例年通りパシフィコ横浜で行なわれた。つまり最後のTechEdである。
この年、私はMicrosoft Office Communication Server(OCS)の次期バージョンのハンズオンラボ(PCを使った実習)のサポートを行なった。しかし、率直に言ってそれほど高い人気ではなかった。それにしても、予約だけして出席しない人が多かったのは非常に残念である。OCSとExchange Serverの組み合わせは、在籍確認(プレゼンス)、電話、インスタントメッセージ(チャット)、そして電子メールを統合できるため、非常に強力なコミュニケーションツールになるはずだ。
ちなみに、OCSはいくつかの名称変更を経た後「Lync」を経て「Skype for Business」となり、予想通り重要なツールになった。
さて、今回のTechEdで最も注力されたのは「クラウド」である。特に「PaaS(Platform as a Services)」型クラウドである「Windows Azure(現在はMicrosoft Azure)」について多くのセッションが割り当てられた(PaaSについては後述)。ハンズオンラボもWindows Azureアプリケーション開発の人気が高かった。
2日目にはWindows Azureユーザー会発足記念として、横浜港をクルージングする船上で会員制のパーティが開かれた。マイクロソフト主導でユーザー会が発足することはあまりない。クラウドに賭けるマイクロソフトの意気込みが伝わってくる。
船内では、「ライトニングトーク」と呼ばれる5分間のプレゼンテーションが数多く行なわれた。技術的な内容であっても5分あればキーポイントを伝えることができる。多くのコミュニティで行なわれているスタイルである。当日使われたスライドの多くは「SlideShare」と呼ばれるシステム上に公開された。なお、当初はイベント「JAZUG Launch Cruising」と結びつけられていたのだが、現在はなくなっているようだ。
もちろん「パーティ」だから、堅苦しい話ばかりでなかった。たとえば、フレア・バーテンダー富田晶子さんによるパフォーマンスが行なわれた(もちろんWindows Azureとは関係ない)。後に、彼女のファンとお会いすることがあり、ずいぶん羨ましがられた。
ZDnetでおなじみの「Ziddyちゃん」も乗船していた(Ziddyちゃんの「私を社食に連れてって」:Windows Azureコミュニティ発足会でナイトクルージング編)
■新しいおもちゃ「クラウド」
クラウドの盛り上がりは初期のミニコン、PC、インターネットの普及期の状況に似ている。
PDP-8やPDP-11と呼ばれる「ミニコン(ミニ・コンピュータ)」が登場したときは「おもちゃ」と言われ、IBMを始めとする大手コンピュータベンダーからは無視された。しかし、専任の管理者が不要なミニコンは研究者を中心に人気を博し、(全社予算ではなく)部門予算で数多く購入された。PDPシリーズを送り出し、ミニコン市場を作ったDEC(ディジタルイクイップメント)は、PDP-11の後継機種であるVAXで大成功し、一時期はIBMに次ぐ規模の会社になった。もっとも、その後ミニコンはメインフレーム化の道を歩み、ミニコンというジャンルは消滅し、「個人や部門で自由にできるコンピュータ」という精神はPCに受け継がれた。
PCが登場したときも「おもちゃ」と言われた。しかし、IT管理者に無断でオフィスに持ち込まれたPCはビジネスの効率を上げ、後にネットワーク化されて全社システムに組み込まれた。これに伴いPCの自由度は幾分下がったが「自分のコンピュータ」という基本思想は残っている。
インターネットは、TCP/IPとともに信頼性が疑問視された。「TCP/IPは信頼性を保証しないプロトコルなのでビジネスには不向きである」という大手通信キャリア系企業の発言を私ははっきりと覚えている。実際に、エンジニアの中でもTCP/IPをベースに構築されたインターネットもビジネスには向かないと考えていた人は多かった。そのため、TCP/IPとインターネットは「社外向けのWebサイト専用」として導入された。「イントラネット」と名付けられたTCP/IPネットワークが全社システムとして構築されるのはかなり後である。たとえばWindows NTでTCP/IPがネイティブ実装されたのはWindows NT 3.5(1994年)からである。
IT業界のパラダイム(考え方)を大きく変えた技術が、どれも「おもちゃ」として登場し、現場から導入され、最後に全社システムに組み込まれたことは興味深い。また「おもちゃ」として登場しなかった技術も「おもちゃ」になってから真価を発揮している。「個人用コンピュータ」の原動力(の一部)は「ゲームがしたい」という欲求だし、軍事目的だったGPSはゲームのインフラになった。
そして、今「クラウド」という名前の新しい「おもちゃ」が登場している。
2010年時点で、私予測はこうだった。
従来のおもちゃと違って、最初からIT部門が注目しているが、全社導入はまだ先になるだろう。
特定の部門が、既存の業務との連係が緩い分野で勝手に利用を始めると予想する。
「クラウド」と呼ばれる技術は大きく3つに分類される。OSそのものを提供するIaaS(Infrastructure as a Service)、アプリケーション実行環境を提供するPaaS(Platform as a Services)、そしてアプリケーションそのものを提供するSaaS(Software as a Services)である。
IaaSはサーバーOS管理のスキルが必要なため、部門単位での導入には適していない。SaaSは要するにネットワーク経由のアプリケーション利用だが、提供されているサービスは電子メールやグループウェアなどが多く、部門単位で導入しても利点が少ない。その点、PaaSは新しいアプリケーションを比較的簡単に構築できるため部門導入の利点が大きい。
マイクロソフトのPaaSであるWindows Azure Platformを利用するには.NETベースのプログラミング技術が必要だが、新たに発表されたアプリケーション構築ツールLightSwitchを使うことで、専門家でなくても簡単にクラウド対応アプリケーションを開発できるという。おそらく他のPaaSも同様のツールが登場するだろう(あるいはもう存在するかも知れない)。もっともLightSwitchはそれほど普及しなかったようであるが。
一部には「アマチュアが作った品質の低いアプリケーションが、業務を混乱させるのではないか」という意見もあるが、これはミニコンやPC、インターネットが登場したときと同じ反応である。もっと以前は「軽オフセット印刷が印刷品質を下げる」と言われたし、グーテンベルグの時代は「(手書きではない)活版印刷がほんの質を下げる」と言われたらしい。つまり、きっと新しい潮流となる。
ただし、ここで大事なことがある。「専門家でなくてもプログラムを作成できる」とは言え、実用に耐えるアプリケーションを作るには、基本的なデータ概念やアルゴリズムの考え方は知っている必要があるだろう。
簡単なものでいいから、プログラムを作った経験は必要になるはずだ。今までプログラムを作っていない方は、ぜひ早い段階で基本的な知識を身につけて欲しい。きっと役に立つ。
もう一度筆者の予想をまとめておく。
- クラウド時代は部門から始まる。
- 本命はPaaSである。
- 非プログラマがアプリケーションを作成することになる。
- ただし、完全な素人が作るのは難しい。
その後、マイクロソフトはIaaS分野を大幅に強化したが、これは既存システムとの親和性を考慮した結果であって、新規システムはPaaSが中心になるに違いない。クラウドのリーダーAWS(Amazon Web Services)も近年はPaaSの方に力を入れている。
クラウド時代に必要な技術は、プログラミングの基礎能力となるに違いない。ITユーザーの方も、システム管理者の方も(あるいはシステム管理者の人こそ)、ぜひ基本的なプログラミング知識を身につけて欲しい。きっと役に立つ。