Azure上のMySQLのホスティングサービスである ClearDB を利用された事のある方、は多いと思います。
ここでは、そのビジネス上のフレームワークとなっている Azure MarketPlaceを取り上げます。まずは「事始め」からです。
エンジニアの皆さんがクラウドに慣れてきて、次に考えるのはクラウド上でビジネスを考えているユーザーさんと、スモールスタートを成功できたとします。その先で、ビジネスがうまく回るようでしたら、その拡大を考えると思います。その際にどう対応するか、というお話です。
サービスモデル
ここで取り上げたいのはスピードです。
クラウドの良さの一つにビジネスの早さに、アプリケーションが対応できる速さを「サービスモデル」として取り入れられる、という事があります。全てのサイクルを早くする必要はありません。従来通りの対応の他に、クラウドのスピード感がある、という事だと思います。
サービスモデルについては、de:code 2015のスペシャルセッションが参考になります。
https://channel9.msdn.com/Events/de-code/decode-2015/SPL-001
アプリケーションの内部構造を再考
多くの場合、アプリケーションの全てを自分たちで開発する事はないと思います。ASP.NET MVCや、struts、Ruby on Rails、Cake PHPなどといった、アプリケーション開発のフレームワークを利用する。通知などのミドルウェアを利用する。といった事をしていると思います。
これまで通り、アプリケーションの中で、例えばメール送信のライブラリをdllなどの形で内部に取り入れ、パッケージ化して、デプロイする。これもやり方です。
ここでは、IaaSなどのモデルを参考に、アプリケーションの中を掘り下げてみましょう。
この図の中では個別サービス、機能、モジュールを「xxx Svc 」と箱 (ブロック)にしています。それらをどう実装するか、という場合にAzure MarletPlaceは「選択肢」を与えてくれます。
通知を考えてみましょう。モバイルアプリケーションですと、iPhoneなどがネイティブサポートしているPush通知の仕組みを呼び出すと思います。Twitter投稿や、メール送信もあるでしょう。
例えばメール送信だけでも、.NET Frameworkなどのメール送信APIで事足ります。SMTP Serverは別途必要ですね。この場合、その部分は皆さんの責任で管理する事になります。また、メールについては、そもそもの稼働状況だけでなく、正しく届いたのか、届いた後開封されたのか、など、メールそのものの専門的な機能・レポートも必要になるかもしれません。メールサーバーという事自身、実は大きなトピックですよね。Exchange serverの多機能を見れば一目瞭然です。
例で考える。 SendGrid
SendGridが、Azure MarketPlace経由で、メール送信のサービスを提供されています。
このメール送信部分だけは、SendGridを使うようにすると、その部分は「パートナー管理」に変わります。皆さんはSMTP Serverと立てることも、同時対象メールが、スパム扱いされないようにすることも出来ます。同時に、多くの専門的な機能が使えるようになります。
- APIによるオートメーション
- インフラとコストの伸縮性
- アナリティックス。リアルタイムも
同等のものを実装しようとすれば、大きなサブシステムになりますよね。
SendGridは日本でも、構造計画研究所さんが、サポートをしています。
https://sendgrid.kke.co.jp/blog/?cat=12
SendGrid利用方法:
以下2名のエバンジェリストのblog Postを。他にも見つかると思います。Bingで検索してくださいwww
佐藤さんのblog:
https://satonaoki.wordpress.com/2013/12/12/azure-sendgrid/
鈴木さんのblog:
http://blogs.msdn.com/b/shosuz/archive/2013/01/03/sendgrid-windows-azure-mobile-services.aspx
Azure Markeplaceでのサービス提供種類
今後変わるかもしれませんが、幾つかの提供形態があります。
- 仮想マシン
OSSのものも、商用製品もあります。OracleさんのDBなどがこれに該当します。ライセンスとサポートの契約も含まれます。多くの場合、仮想マシン自身の運用管理は、エンジニアの皆さんの責務となると思います。時間課金になりますね。
- アプリケーションサービス
SendGridのサービスは、エンジニアの皆さんがAPIコールをする事を前提としています。ClearDBもこの範疇です。利用料、という発想ですので、サービスの運用管理は、サービス提供者側になります。こちらは月額課金となります。
- データサービス
Bing Translatorの様にパラメータを投入すると、データが返ってくるものです。こちらはトランザクション回数、データ量などで課金がされ、サービスの運用管理は、サービス提供者側になります。こちらも月額課金となります。
ご参考:
Azure Marketplace を発表:
http://blogs.msdn.com/b/windowsazurej/archive/2014/11/12/blog-announcing-the-azure-marketplace.aspx
Azure MarketPlaceの今後
現在、日本のエンジニアの皆さんも、是非皆さんの利用シナリオにあったサービスを探してみてください。
そして、無ければ皆さんのサービスをここに提供する準備を是非。詳細は今後明らかになります。
https://azure.microsoft.com/ja-jp/marketplace/
フィードバックは、勿論こちら!