380 likes | 550 Views
現場開発者視点で答える Windows Azure 業務アプリ開発の実際. シグマコンサルティング株式会社 橋本 圭一. はじめに. ■本資料の注意 ・クラウドコンピューティングのとらえ方、その比較、 評価は、 非常に プレゼンターの主観に基づきます。 ・ Azure の説明の中には、未リリースの製品が含まれています。よって現時点の情報でしかない点も含まれていることをご容赦ください。 ・一部、 Microsoft 社の資料を転記しておりますので、その点ご了承ください。 ( 各資料に転記と記載 ). はじめまして. ■経歴
E N D
現場開発者視点で答えるWindows Azure業務アプリ開発の実際 シグマコンサルティング株式会社 橋本 圭一
はじめに ■本資料の注意 ・クラウドコンピューティングのとらえ方、その比較、 評価は、非常にプレゼンターの主観に基づきます。 ・Azureの説明の中には、未リリースの製品が含まれています。よって現時点の情報でしかない点も含まれていることをご容赦ください。 ・一部、Microsoft社の資料を転記しておりますので、その点ご了承ください。(各資料に転記と記載)
はじめまして ■経歴 ・外国語学部(ロシア語・国際政治) ⇒ SIer ・SIerで5年間、製薬業や食品業のお客様のSIを担当 ・2006年に起業、現在5期目 ・中小のお客様向けにCIO+システム部門のアウトソース ・AzureとSilverlightを楽しむ ・おばかアプリに夢中 ■信条:楽しく、人に喜ばれる ■リタイア後の野望:自分のビールブランドを持つ。
クラウドコンピューティングとは? Cloud • インターネット経由でコンピューターリソースを利用 • 利用した分だけ課金される • 大規模データセンター(仮想化されたサーバー) ⇒ITの所有から利用へ コスト削減・期間短縮 Service Service
なんでクラウドをやるの? ■業界動向 • SI縮小=作るから利用するへのシフト • インターネット以降の投資がひと段落 (WEB化ひと段落)では次は? • OSの進化は停滞気味 • リアルタイムWEBの台頭(Twitter,4sq) • よりスピーディな開発が求められている ■稼ぎ方が今後変わる • 保守が重要性を占める=クラウドで預かれる • 顧客との共生へ(ひがやすおさんも言っている)
クラウドで何をしよう? ■何をしよう? • 人が欲しがるものを作りなさい(VC格言) ■キーポイント • モバイルデバイス対応がカギ(携帯端末がインターネットトラフィックを増大させている) →業務システムもマルチデバイス対応が増える見込み • 新規事業向き(失敗即撤退) やはりベンチャー向き
クラウドの皮肉 ■色々と出る問題 • 結局すべてはクラウドに乗らない。 • 法律等の問題で社外に出せないデータも多い • 仮想化=クラウド? バズワードの迷走 • 環境を与えてもらっても稼ぎ方がわからない • お隣が騒がしいと、迷惑を受ける(NW遅延) • 明日も同じレスポンスとは限らない • 質が高いとは言えないSLA • 即儲からず、投資から。規模の戦いが必要。
クラウド化の検討ポイント例 コア業務 ※他社との差別化ができる収益の基 非コア業務 ミッション クリティカル ※停止不可 非ミッション クリティカル ※停止可能 2009年度において代表的なクラウドのプレーヤーと製品を分類しています。 ポジショニングについては、業務システムという軸で見ているのと、プレゼンターの主観によります。
Windows Azureって何? ■プレゼンターの結論から申し上げると • エンタープライズ用途実現に非常に適したPaaS • エンタープライズ向けSaaSにも適している • 最も機能拡張が見込まれるPaaS • 仕様を見ていると後発の強みあり • これまでで、最も簡単に売れないWindows
Windows Azure全体像 オンプレミス Web ロール Worker ロール コンピューティング ストレージ Drive VM ロール Service Bus Access Control ファブリックコントローラーによる 仮想化・自動化 Reporting BI Data Sync BLOB SQL Server キュー … テーブル LB 一部Microsoft社の資料抜粋
Hosted Service のポイント Inter net Webロール Workerロール LB ・WebRole = WEBアプリ IIS7(ASP.NET, FastCGI) ・WorkerRole = 非同期処理(QUEUE経由) バッチ,その他何でも用途 JAVA-Tomcatも動作 ・VMロール=AmazonのAMIのようにOSを自分で自由に変更できる(提供予定) VM ロール(予定)
使ってみよう。簡易なWEBサービスを移行。 • Windows Azure上にWEBアプリを移行。 • WEBサービスを利用したアプリ(EDI) • 手順は3つ。 • ①CloudServiceプロジェクトの追加 • ②既存WEBアプリに参照設定の追加 • ③パッケージを作成。
待っている間に開発ポータルツアー • シンプルなインターフェースで使いやすい。
Storage Service Drive • テーブル =Key-Value型のデータストア(実データ) • BLOB =バイナリ格納、ファイルストレージ(CDN対応) • キュー =メッセージ通信 • ドライブ =ファイルI/Oでアクセス可能なNTFSフォルダ ストレージ BLOB キュー テーブル 画像=Microsoft社の資料抜粋
テーブル詳細 Microsoft社の資料抜粋 アカウント テーブル エンティティ Email =… Name = … users Genre =… Title = … Email =… Name = … mysns movies http://<アカウント>.table.core.windows.net/<テーブル名>
使ってみよう。StorageServiceに接続。 ■使ってみよう ・選択した画像データのURLをTableに格納する。 ・その内容をTweetする。 ・選択肢にはおまけあり。
SQL Azure • SQLServer2008とほぼ 同等。 • 制約条件(容量1G,10G、管理機能使えない、 CLR、ユーザー定義型不可) • DBのみの利用も可能。 • 今後リリースされる機能に期待大(Report,BI,Sync) 画像=Microsoft社の資料抜粋
SQL Azureのアーキテクチャ ゲートウェイ マスターDB 課金・認証 フロントノード群 サーバーをまたがったレプリケーションDBを作成して同期 サーバー1 サーバー2 サーバー3 SQL Serverインスタンス サーバーをまたがったレプリケーションDBを作成して同期 クラウドデータセンター内ファブリック … 数百台のサーバーでファブリックを構成 Microsoft社の資料抜粋
使ってみよう。SQLAzureに接続。 ■使ってみよう ・SQL AzureにSSMS2008 R2から接続。 ・SQL Azureに接続して、ストアドをバッチ実行。 ・SQL Azureへのデータ移行イメージ ■ただし ・この移行スクリプトとイニシャルデータの作成、テストは結構地道な作業になる。(自動生成は可能)
手早く、賢い使い方1 • SQL Azureのみ利用。クライアントアプリから接続。(SQL Serverライセンス費用の超削減) • Code Far型 ユーザー WindowsForm, WPFからアクセス
手早く、賢い使い方2 • 特別なミドルウェアを必要としない WEBアプリとSQL Azure • 同じデータセンターならSQL Azure転送量無料 • Code Near型 ユーザー WEBブラウザ からアクセス
運用管理 ■運用管理について • 開発ポータルで行う作業は、ほぼ全てバッチから可能(管理用APIをたたくツールあり) • SQL Azureへのバッチ実行 ■管理用API利用ツール • Cmdlet • Windows Azure Service Management API Tool
管理用APIを叩いてみよう • Cmdlet からサービスの停止、起動してみます
ログはどうなっているの? ■大事なこと ・Azure上ではログの管理方法が異なる。書き込めない。(補足:Driveを試していない) ・診断ログのAPIがあって下記の情報を閲覧できる。 ◇テーブルに格納可能なログ a)Windows Azureトレース・ログ(出力レベルや内容は独自に記述) b)Windows診断インフラストラクチャ・ログ c)Windowsイベント・ログ d)パフォーマンス・カウンタ ◇ブロブに格納可能なログ e)IIS 7.0ログ f)IIS 7.0失敗した要求のトレース・ログ g)Windows Azureクラッシュ・ダンプ
なんで私はAzureなのか? • ソースやデータの社内既存資産を活用したい。 • 運用は任せたい。パッチ当てなぞ、したくない。 • SaaSを作りたい。適したプラットフォームを選びたい。 • オンプレミスを考えた時に、最も連携がよさげ。
料金例 • WEBロール1個 =\8,000 • ストレージ10G =\147 • ストレージトランザクション10万回 = \98 • SQL Azure(WebEdition) = \980 • データ転送量50G(Asia) = \3,500 ざっと\13,000円くらい?
どこで買えるの? • Microsoft Online Services でポチっとな。 ※基本カード払い、一定額を超える=請求書
障害発生時の問い合わせ • DashBoardでステータスを確認 • サポートオンラインから問い合わせ(8h以内に?)
Azure 今後のお楽しみ機能 • AppFabric2010.4 • Windows Identity Foundation =ハイブリッド化を推進、AD連携 • VMロール = 何でもできるように? • SQLAzureのバックアップ機能=安心
一般利用されるまでの道のり • 事例が300に達する ※事例を模倣しない限り、爆発的には増えない ⇒一部の英雄的なアーキテクトしか触れないようだと当然、事例は増えない。 • SQLAzureの容量解放、バックアップ機能 • 認証をオンプレミス環境と統一 • 日本にデータセンター=これで法的制約減る • Key-Value型の成功事例が多数生まれる
余談 開発者に求められる素養 • プログラミングだけではダメ。 • デプロイの知識は必須。(意外とデプロイ作業をやったことがない人もいるが・・・) • 運用を意識した設計も超重要(環境は思い通りにならない、知りたいことが知りたいときに知れるように環境を熟知すべし) • つまり、総合力が必要。全部やってみよう。 • 大きすぎる範囲ではない。きっとできる。
おまけ ■クラウド開発におさえておくべき用語(一部)
参考URL ■Azure関連情報 Techdays2010のセッション資料 http://www.microsoft.com/japan/events/techdays/2010/session/download.aspx 開発ポータル お使いになる前に http://www.microsoft.com/japan/windowsazure/getstarted/ 著者事例「業務システムでWindows Azureを使うための42の覚え書き」 http://www.atmarkit.co.jp/fdotnet/chushin/azurecasestudy_01/azurecasestudy_01_01.html Windows Azure Service Management CmdLets http://code.msdn.microsoft.com/azurecmdlets Windows Azure Service Management API Tool http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=windowsazuresamples&ReleaseId=3233 ■その他 ひがやすを「SIerは顧客の良きパートナーとなれ」 http://jibun.atmarkit.co.jp/ljibun01/cs/200912/05/01.html 丸山先生の資料(Baseトランザクション) http://qcontokyo.com/tokyo-2009/pdf/GeneralSession-Day2-Maruyama.pdf