クラウド OS、Azure

そもそもクラウドって言葉、どう捉えればいいんだろう。なんとなく思ってることを言葉にしてみるけど、これでいいのかどうか。

クラウドという言葉の意味

まず、クラウドってのは、概念図上でインターネットのことを雲の図で表すことが多いから、転じてインターネットのことを指すようになった言葉。

で、クラウドコンピューティングというのはその「雲」の「向こう側」でいろいろと処理しちゃうこと。要するに、これまでなら自前サーバーとかクライアント PC 上で処理していたようなことを、全部インターネット側で処理したいということ。特に、データを自前サーバー上に置いておきたくない → データセンター上のリソースを借りた処理をすること。

ただし、単に処理を向こう側に移すというだけでなくて、

  • 処理してるのがどこか・データの所在がどこかってのをユーザーに意識させない
  • 分散・並列型の巨大ネットワークを一体化・抽象化して1つのサービスに見えるようにする

という辺りを指してクラウドということが多いらしい。

向こう側の使い方

向こう側の計算資源の使い方としては、

  1. 出来合いのサービスをウェブ経由で使う
  2. 自前で作ったプログラムを向こう側で動かしてもらう

の2つ。

1つ目は、いわゆる SOA、サービス指向アーキテクチャーに基づいてるサービスを使わせてもらうもの。特に、「データを向こう側に置く」というクラウド的特徴の強いサービスとして、

  • 認証サービスや個人データの記録サービス
  • リレーショナルデータベースサービス

とかがある。

2つ目は、レンタルサーバーの延長戦上にあるもので、計算資源の間貸し。クラウドという言葉に期待されているのは、

  • 物理的にサーバーを持たないというだけじゃなく、設定等の管理手間も極力掛けたくない
  • 「向こう側」では並列クラスタになっているけど、利用側からは並列性を意識したくない
  • 「何台いくら」じゃなくて、使った計算量や通信量に応じた課金

というようなところ。

Azure Services Platform

このあたりを踏まえたうえで Azure というのが何なのか。

売りは、

  • 「出来合いのサービス」も「計算資源の間貸し」も両方提供するよ
  • 既存の開発手法そのままでクラウドを使えるよ
  • Windows Live の会員取り込めを狙えるよ

という感じ。

提供される「出来合いのサービス」には、

  • .NET Services: WCF、WF サービスをアップロードして実行させれる
  • SQL Services: データベース使わせてもらう
  • Live Services: 認証、コンタクト等

がある。

一方の「計算資源の間貸し」の方が Windows Azure で、

  • データセンター上の並列クラスタだけど、利用側からは1台に見えるクラウド OS
  • .NET アプリを実行できる
    • 将来的にはネイティブコードの実行も考えてる
  • 操作が簡単な管理コンソールを提供

というもの。

で、両方を合わせて Azure Services Platform というのかな。