放蕩息子

おもにBeer。Love Beer.
仕事でたまにAzure,Silverlight。

AppHarborを使ってみて Windows Azureとの比較。

2011-05-10 22:48:42 | 日記
最近技術系で感動することが多いので、Blogを書いてみることに。(Blogほぼ初心者w)

AppHarborについて書いてみます。
AppHarborは.NETアプリケーションのPaaSとしてローンチしています。
使ってみた記事については、こちら。

.NETのPaaSというと先行してMicrosoftのWindows Azureがいるのになぜ?という所もあり
このAppHarborとWindows Azureとの比較を書いてみたいと思います。

先に、.NETアプリケーションのPaaSといえば、Windows Azureです。
自分たちでもいくつか大規模アプリケーションや業務アプリをリリースしていて、
その良さはわかっています。
MSN産経フォト


ペットサーチ 


勘定系業務システム


他にもいくつかありますが出せないものもあって割愛。


Windows Azureの用途を考えると、エンタープライズからEコマースまで幅広く、
かつオンプレミスとの連携まで、と 風呂敷の大きいところがすごくいいです。

稼働したアプリケーションは全世界からアクセスがありますが、
非常に満足できるレベルで安定していて、大規模障害も起きていません。
深夜にサービスが停まって呼び出し!というのにも、正式稼働から1年強立ちましたが出会ってません。

Azureの凄いところは、この全体像の大きさ、世界規模の安定したサービス提供だと思います。
★Azureの全体像 2011/4時点★

PaaSの恩恵、Azureのインスタンス管理の中核をなすファブリックコントローラーは素晴らしいです。
お陰さまで我々のような小さい会社でも一人が複数のサービスを運用して行けます。


一方でWindows Azureを新規に始めたり、移行する場合には障壁もあります。
・VisualStudioでAzure用のプロジェクトを追加する(つまり、多少なりとも既存コードは変更する必要がある、Azureの作法を学ぶ必要がある)
・また、スケールアウトが求められるクラウド上では、永続化ストレージ領域の扱いが、
 オンプレミスとは違うコーディングが必要になるケースが多い。トリッキーなコードも必要な時がある。
・Azure上に構築されたその他新規サービス(CDN,AppFabric,Reporting,DataSync)については、新規に学習が必要。
 かつ、まだ早期段階なのでハマりどころが多い。これは皆で開拓中♪という感じです。
・アプリケーションのデプロイに時間がかかる。(新規20分前後、更新15分前後)
が、この辺の取り掛かりにくさが、Azureの課題としては残されている気がします。

勿論Microsoftでもこういった課題は、技術者の意見を参考にしてくれていて
例えば、WebDeployという新規デプロイ機能を用意して、ファイルかつ単一インスタンスの更新であれば、数秒でのデプロイを可能にする等改善を行っています。

また、開発者支援には非常に抜かりがないので、
新規学習用のドキュメントやコンテンツは非常に整備されてきています。
ノウハウもたまってきており学習障壁ついては、解決されていくことでしょう。


こういう状況でAppHarborにどのような意味があるのか?本題に入ります。

AppHarborは、一言で言うとHeroku for .NETです。
Herokuってなんなの?と思う方もいると思いますが、Ruby On Rails用のPaasがHerokuになります。
Heroku、うちでも、この辺 http://www.minawari.jp/ で使っています。
EC系のモジュールがRailsに充実している事から、うちではBtoCなEC系で使うケースが多いです。
また、アプリケーションで必要なメール(SendGrid)、ストレージ(S3)、KVS(AmazonRDS)、エラーハンドリング、パフォーマンスモニタ等のモジュールは買いたして追加できます。
↓のようなUIを見るとわかりやすいかと。



AppHarborはこのHerokuに影響を受け目指している.NETアプリケーションのPaaSになります。
コンセプトはHerokuと同じく、GitにPushして簡易にデプロイしたいという所から始まっているようです。


デプロイが違うだけで、Azureと同じ?と思う方も多いと思いますが、他の違いについて書きます。
◇Good
・Azureとは違いクラウド用のプロジェクトを追加しない=既存アプリのソースはそのまま。
・ソース管理にGitHubを使い、GitHubからPushすることによってアプリケーションをリリースできる。
・インスタンスの起動が早く、15秒で稼働するインスタンス。
・データベースはSQLServer(バージョンが良く分かっていない)とMYSQLを選ぶことが出来る。
 インスタンスについては、専有型と共有型を選ぶことが出来る。
・ビルドして、テスト用のプロジェクトをちゃんと読みこんだうえでデプロイする。失敗するとデプロイされない。


◇まだ評価できない部分=もしくは課題
・ストレージ系やVPN系やオンプレミスとの連携やメールのサービスはまだない。
 Herokuのように色々なモジュールが追加で出てくる可能性が高い。(KeyValueStore?メール(SendGrid)?)
・VMRoleがない。よってミドルウェアは入れられないはず。=この時点で、Heroku同様Webサービスのスタートアップ向きな感じ。業務システム要素減る。
・永続化ストレージ領域の扱いがまだ不明瞭。S3と連携することになるのか。
・ログについて、まだ良く分かっていない。(調査不足かも、すいません。)
・.NET界隈では、Gitの扱いに慣れていない人が多い=Gitの習熟が必要
 ※Mercurialもサポートするそうだが、.NETerの皆さん使ってる?。
・こちらもEC2上で動いているとのことなので、EC2の影響を各種受ける。
・AzureにあってAppHarborにない機能が多い=先述したとおり、用途を特化して使う事になりそう。

というところで、まだこれから明らかになることがありそうです。


ビジネススキームはTechCrunchの記事を見ると
・出資しているのが Y Combinator 
>YCは2005年の創業以来、これまでに250以上のスタートアップに投資し、Dropbox、Reddit、Scribd、ZumoDrive、
>Heroku、Disqus、Bump、CloudKick、AirBnBなど多くのWebスタートアップを世に送り出してきた。
なぜY Combinatorだけ特別? Dropbox創業者に聞いた
という所に特徴があり、DropBoxやHerokuなどの成功を見ると、
必要なものだけコンパクトに作るスタンスと感じます。
こちらもAmazonAWSのように既存ビジネスの縛りなしで、
必要なものだけを作って行くのであればHerokuのような存在になれるかもしれません。


まとめると用途については、
Herokuという事であればすぐにパッとはじめたいBtoC系のサービスなんかでは良さそう。
オンプレミスで動く業務アプリの移行は余り向いていないかも。
という事で、スタートアップや新規サービスの方注目という感じでしょうか。

Heroku上にサービスを構築した企業で、成功後Herokuをやめて自社インフラに行くケースが少なくないと聞いたのですが、AppHarborについても、うまくスタートアップ出来たらサヨナラで良いのかもしれないと思いました。この辺はクラウドは使い方次第。


個人的な思いを言うと
.NETで最新のWEBサービスがじゃんじゃん作れるんだぜ!
という立ち位置になって欲しいので、
AzureもAppHarborも切磋琢磨していってほしい感じです。
※AWSとAzureの関係もそうだけど、競合がいるって利用者側にとっては素敵な事だと思います。


使ってみた記事については、こちら。


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。