連載:.NET中心会議議事録

第2回 現場開発者視点で答える「Windows Azure業務アプリ開発の実際」

デジタルアドバンテージ 一色 政彦
2010/03/26

 2010年3月6日(土曜日)、@IT/.NET開発者中心コーナー主催(グレープシティ協賛)の第2回.NET中心会議が開催された。今回のテーマは、多くの開発者が関心を寄せ始めている「クラウドとWindows Azure」。雨の降る悪天候にもかかわらず、「クラウドの現状と今後を知ろう」と多くの開発者が来場し、基調講演やパネル・ディスカッションに熱心に耳を傾けた。

 そんな熱気あふれる雰囲気の中、ギターを弾くとその音がPC上の文字コードに変換されて文字入力できるという、あえて生産性の低い文字入力手法を実現した「おばかアプリ」による自己紹介で会場の笑いを取りながら基調講演を開始したのが、「エンジニア視点で比較する“雲”の違い」や「業務システムでWindows Azureを使うための42の覚え書き」を執筆しているシグマコンサルティングの橋本圭一氏だ。

 基調講演は、実際のWindows Azure業務アプリ開発経験に基づく示唆に富む内容であった。せっかくなので、そのプレゼンテーション資料を本稿でダウンロードできるようにした。

基調講演の風景

 40分間の基調講演の後、その内容を深く掘り下げるべくパネル・ディスカッションが行われた。「現場開発者視点で答える『Windows Azure業務アプリ開発の実際』」と題されたそのパネル・ディスカッションでは、Publickeyというブログ形式の人気メディアを運営している新野淳一氏の仕切りにより、実際の開発経験者ならではの興味深い意見が多数引き出された。パネリストとしては、基調講演の橋本氏に加え、マイクロソフト社員でありながら、ITmediaオルタナティブ・ブログで人気を集める砂金信一郎氏、Windows Azure Communityを主催し、「Windows Azureのローンチに向けて知っておくべき4つのこと」などを執筆、加えてマイクロソフト技術系会社として有名なアバナードの社員でもある市川龍太氏、そしてせんえつながらWindows Azureの登場前からクラウド技術の登場に注目し、ずっと接してきた筆者(一色)が参加した(以下、敬称略)。

パネリスト:

シグマコンサルティング 橋本 圭一
マイクロソフト 砂金 信一郎
Windows Azure Community 市川 龍太
デジタルアドバンテージ 一色 政彦

モデレータ:

Publickey 新野 淳一

パネル・ディスカッションの風景

 本稿では、このパネル・ディスカッションのほぼ全内容をお伝えする。

なぜWindows Azureを使うのか?

各社のクラウド・プラットフォームの比較

新野 最初に、「既存のオンプレミス環境での業務アプリ開発でも大きな問題は出ていないのに、なぜクラウドを使うのか?」「数あるクラウド・プラットフォームの中で、なぜWindows Azureを使うのか?」について議論したいと思います。橋本さん、まずは基調講演のプレゼンテーション資料にあった各社のクラウド・プラットフォームの比較表を簡単に説明してもらえますか。

事業者 Amazon Google Microsoft Salesforce.com
サービス名 EC2 App Engine Windows Azure Force.com
開発ツール 開発技術や開発言語によって異なる テキスト・エディタ
Eclipse
Visual Studio 2008/2010 ブラウザ
Eclipse
開発言語 利用するOSによって異なる Python、Java .NET言語、PHP、Java、Ruby Apex
データベース SimpleDB
MySQL、Oracle、
SQL Server 2005
BigTable SQL Azure
ストレージ・サービス
Force.com Database
開発容易性 A B B C
既存資産活用 A C A C
運用の手間 C A A A
オンプレミス連携 B C B+ B
導入容易性 A C B A
事例 A B C A
適した用途 ゲームアプリや業務アプリなど何でも Google Appsと連携するグループウェア、
スケールアウトが必要な簡易Webサービス
主にエンタープライズ アプリ 汎用的な業務アプリ
代表的なプレーヤーを独断で比較(橋本氏の基調講演資料から抜粋)

橋本 ここでは主なクラウド・プラットフォームの事業者を4つ取り上げました。それぞれの違いを説明します。

 Amazon EC2では、WindowsやLinuxなどのOSや、.NETやJavaなどの開発言語を自由に選択・インストールして利用でき、またSimpleDBというKey-Value型のデータベース(以降、DB)に加え、SQL ServerやOracleといったRDB(=リレーショナルDB)も利用できるので、開発時の選択肢が非常に豊富です。実際のサーバ環境をそのままクラウドに置けるというイメージに近いので、サーバ環境で培った開発スキルをそのまま生かせます。利用イメージとしては、特にコンシューマ系のWeb 2.0アプリの分野で活用されることが多いと思います。

 Google App Engineでは、現時点では開発言語としてPythonかJavaを選択でき、またBigTableという非常に開発の容易なKey-Value型DBを利用できます。特徴的なのは、OSの選択や稼働させるインスタンス数の設定を指定できない点です。スケーラビリティは、グーグル内部の冗長化の仕組みによって自動的に実現されます。利用イメージとしては、Google Appsという強力なオフィス・アプリと連携するようなグループウェアを開発する際には威力を発揮すると思います。また、検索エンジンのような膨大な情報の取り扱いや、高いスケールアウト性が必要なアプリに適していると思います。

 Windows Azureでは、C#やVisual Basicといった.NET言語だけでなく、PHP、Java、Ruby on Railsといった言語もサポートされています。データベース環境は、SQL AzureというRDB、Windows Azureストレージ・サービス(Key-Value型DB/キュー/ブロブ)が利用できます。利用イメージとしては、やはりエンタープライズ向けのアプリに(各社と比較しても)最も向いていると思います。特にオンプレミスとの連携を考えると、業務アプリに一番活用できそうだという印象を持っています。

 Force.comでは、ApexというJavaに似た開発言語を用いて、ブラウザやEclipseで開発を行います。データベースは、独自のForce.com Databaseです。複雑な業務ロジックを必要とするアプリを作るのは難しいのではないかという印象を持っていますが、どこの会社にもあるような汎用的なアプリ、例えば会議室の予約アプリなどで活用できると考えています。

市川 わたしもクラウドの比較は、仕事として行いました。この表におおむね賛成です。しかし、Force.comの評価には別の意見もあります。というのも、新しいビジネスの立ち上げであろうが、何であろうが、新規でアプリを構築する場合においては、Force.comの開発生産性はとても高いという印象を持っています。これは、既存資産の流用にメリットがあるWindows Azureとは大きく異なる特徴です。

 実際、Windows Azureを提案しようとする案件の競合相手がForce.comであるケースは多く、さらにそのようなケースでは新規開発の案件である場合が非常に多いのです。顧客がどちらかを選択する際に、Force.comの開発デモを見せられた後に、Windows Azureを売り込むのは難しいと感じることがあります。

一色 この表を見ると、分かりやすくするためにシンプルに1行で「A」「B」「C」と評価されているのですが、現実にはこんなに単純に、どれがどの面で優れているのかを断言できないと思います。例えばForce.comは、業務アプリに特化したクラウド・プラットフォームなので、特定の業務分野でシステムを構築するなら圧倒的に有利になったりします。つまり、開発案件によって「A」「B」「C」という評価は変わってくるのではないかと思います。従って、この表をうのみにするのではなく、開発案件ごと、その場面、場面において、「この場合はどうなのか?」というのを考えていく必要があるのではないでしょうか。

砂金 マイクロソフトはクラウドでは後発です。先日、スティーブ・バルマーがクラウドに関する講演(英語)を行ったばかりで、これからクラウドはますます発展していきます。現時点で、各社のクラウドの違いを、わたしは次のように見ています。

 アマゾンは開発者から見ると、箱貸ししてくれるITベンダのように見えますが、現実には小売りの本屋さんです。つまり、ハードウェアやネットワークなどのリソースが商材として売れるのであれば、小売りベンダとして「売れるものは売っていこう」というスタンスです。

 グーグルも開発者から見ると、ITベンダのように見えますが、収益構造からいうと広告代理店さんです。広告代理店として行っているもろもろのサービスの中で、余っているリソースや派生して出てきた技術が世の中の役に立つのであれば、「皆さん、どうぞ使ってください」というスタンスです。

 ではマイクロソフトはどうかというと、ソフトウェア屋です。従って、Windows Azureを語るうえでも、「ソフトウェア的に見て、Windows Azureのこのアーキテクチャが優れているから、クラウドを推進する」というスタンスです。

 SIから聞いた話では、アマゾンやグーグルをバックグラウンドで使おうとすると、「アマゾンやグーグルを使って大丈夫なのか」という点について、まずはきちんと顧客に説明して納得してもらう必要が出てくるそうです。しかしWindows Azureであれば、「マイクロソフトなので安心できる」という評価をしてもらえるそうです。

 わたしが考えるのは、技術だけでなく、ビジネス面での安心感も重要であるということです。そういった面も含め、皆さんも視野を広げて各社のクラウド・プラットフォームを比較してみてください。


 INDEX
  [連載] .NET中心会議議事録
  第2回 現場開発者視点で答える「Windows Azure業務アプリ開発の実際」
  1.各社のクラウド・プラットフォームの比較
    2.なぜWindows Azureを使うのか?
    3.Windows Azureのセキュリティ・障害補償とサポート
    4.ライセンス形態や課金
    5.Windows Azureに関する性能

インデックス・ページヘ  「.NET中心会議議事録」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH