Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
現場開発者視点で答える
  Windows Azure
 業務アプリ開発の実際
シグマコンサルティング株式会社
     橋本 圭一
はじめに
■本資料の注意
・クラウドコンピューティングのとらえ方、その比較、
 評価は、非常にプレゼンターの主観に基づきます。

・Azureの説明の中には、未リリースの製品が含まれて
  います。よって現時点の情報でしかない点も含まれて
  いることをご容赦ください。

・一部、Microsoft社の資料を転記しておりますので、
 その点ご了承ください。(各資料に転記と記載)
はじめまして
■経歴
・外国語学部(ロシア語・国際政治) ⇒ SIer
・SIerで5年間、製薬業や食品業のお客様のSIを担当
・2006年に起業、現在5期目
・中小のお客様向けにCIO+システム部門のアウトソース
・AzureとSilverlightを楽しむ
・おばかアプリに夢中
■信条:楽しく、人に喜ばれる

■リタイア後の野望:自分のビールブランドを持つ。
クラウドコンピューティングとは?
         Service       Service

               Cloud



• インターネット経由でコンピューターリソースを利用
• 利用した分だけ課金される
• 大規模データセンター(仮想化されたサーバー)
⇒ITの所有から利用へ コスト削減・期間短縮
クラウドコンピューティングのレイヤー

レイヤー   説明                            例

       インターネット経由でソフトウエアをサービスとし GoogleApps
SaaS   て提供。(ユーザーは、ハードウェアを持たず、  Microsoft Online
       利用課金)古くはASPと呼ばれる。       Services
                               Salesforce CRM
       開発プラットフォーム自体をサービスとして提供。 Force.com
PaaS   開発者は、プラットフォーム上で構築したサービ Google App Engine
       スを自分の顧客に提供することができる。     Windows Azure
                               Heroku

       インターネット経由でインフラ(仮想サーバー、        AmazonEC2 / S3
IaaS   ディスク)をサービスとして提供。開発者は、OS
       の選択から構築可能。
なんでクラウドをやるの?
■業界動向
• SI縮小=作るから利用するへのシフト
• インターネット以降の投資がひと段落
  (WEB化ひと段落)では次は?
• OSの進化は停滞気味
• リアルタイムWEBの台頭(Twitter,4sq)
• よりスピーディな開発が求められている
■稼ぎ方が今後変わる
• 保守が重要性を占める=クラウドで預かれる
• 顧客との共生へ(ひがやすおさんも言っている)
クラウドで何をしよう?
■何をしよう?
• 人が欲しがるものを作りなさい(VC格言)
■キーポイント
• モバイルデバイス対応がカギ(携帯端末がインター
  ネットトラフィックを増大させている)
→業務システムもマルチデバイス対応が増える見込み
• 新規事業向き(失敗即撤退)
  やはりベンチャー向き
クラウドの皮肉
■色々と出る問題
• 結局すべてはクラウドに乗らない。
• 法律等の問題で社外に出せないデータも多い
• 仮想化=クラウド? バズワードの迷走
• 環境を与えてもらっても稼ぎ方がわからない
• お隣が騒がしいと、迷惑を受ける(NW遅延)
• 明日も同じレスポンスとは限らない
• 質が高いとは言えないSLA
• 即儲からず、投資から。規模の戦いが必要。
クラウドのメリットについておさらい
           • ハードウェアやOSの購買、インフラ構築費用が不要
  初期投資
           • 費用として支払うため、資産計上しなくて済む


           • すぐにアプリの開発、利用が可能になる
  スピード
           • 新規事業などの変化の早いニーズに対応


           • システム管理業務をアウトソース、パッチ適用も自動化
   運用
           • 遠隔地での冗長化で事業継続性を確保


           • 従量制課金であるため、不要時に即    停止可能
  短期利用
           • 需要が測りきれない新サービスに有効


           • サーバーを後で増強できる。
スケーラビリティ
           • 需要に応じて、リソースを増減できる。
クラウドのデメリットについておさらい
           • 99.95%   というところが多い。=年間4時間STOP

サービス保証     • 基幹業務では、不安を残す。

           • (が、業種による。例:9-19   が業務時間など)

           • サーバーが距離的に遠いと、速度が遅くなる
 速度の問題
           • ※USにある場合などは、もっさりした表示速度になる。

           • 高める方法はあるが、重要データ漏えいのリスクはある。
セキュリティ
           • 法律で国外に置けないデータもある。


インフラの自由度   • OS自体の管理権限がないため、できないこともある。


           • サービス提供側としても顧客としても事例が不足
 経験値不足
           • 導入は急いでいなければ後からでも
クラウド化の検討ポイント例
         コア業務
         ※他社との差別化が           非コア業務
         できる収益の基
ミッション
クリティカル        自社開発             SaaS
※停止不可
               すべき           利用可能



非ミッション        PaaSを
クリティカル                         SaaS
※停止可能         活用した
              自社開発           利用可能

    2009年度において代表的なクラウドのプレーヤーと製品を分類しています。
    ポジショニングについては、業務システムという軸で見ているのと、プレゼンターの主観によります。
代表的なプレーヤーを独断で比較
事業者        Amazon            Google         Microsoft         Salesforce
サービス名       EC2               App Engine     Windows Azure     Force.com

開発ツール      開発技術              テキスト・エディタ      VS2008            ブラウザ
           開発言語に依存           Eclipse        VS2010            Eclipse
開発言語       利用するOSに依存         Python、JAVA    .NET利用可言語         Apex
                                            PHP、JAVA、Ruby
データベース     SimpleDB          BigTable       SQL Azure         Force.com
           MySQL、Oracle、                    Storage Service   Database
           SQL Server 2005
開発容易性               A                   B             B                 C
既存資産活用              A                   C             A                 C
運用の手間               C                   A             A                 A
オンプレミス連携            B                   C            B+                 B
導入容易性               A                   C             B                 A
事例                  A                   B             C                 A

適した用途      ゲームアプリ            Appsと連携するような エンタープライズ            汎用的な業務アプリ
           業務アプリ             グループウェア?     アプリケーション向き?
           など何でも             スケールアウトが必要な
                             簡易WEBサービス
Windows Azureって何?


■プレゼンターの結論から申し上げると
• エンタープライズ用途実現に非常に適したPaaS
• エンタープライズ向けSaaSにも適している
• 最も機能拡張が見込まれるPaaS
• 仕様を見ていると後発の強みあり

• これまでで、最も簡単に売れないWindows
Windows Azure全体像
                                           オンプレミス

コンピューティング   ストレージ




                             Service      Access
                               Bus        Control




               …            Reporti
                              ng
                                           BI
                                                    Data
                                                    Sync
                                       SQL Server


       LB           一部Microsoft社の資料抜粋
Hosted Service のポイント
Inter      LB               Worker
                  Webロール
 net                         ロール

                             VM
                           ロール(予定)
・WebRole = WEBアプリ
IIS7(ASP.NET, FastCGI)

・WorkerRole = 非同期処理(QUEUE経由)
バッチ,その他何でも用途 JAVA-Tomcatも動作

・VMロール=AmazonのAMIのようにOSを自分で自由に
  変更できる(提供予定)
使ってみよう。簡易なWEBサービスを移行。

•   Windows Azure上にWEBアプリを移行。
•   WEBサービスを利用したアプリ(EDI)
•   手順は3つ。
•   ①CloudServiceプロジェクトの追加
•   ②既存WEBアプリに参照設定の追加
•   ③パッケージを作成。
待っている間に開発ポータルツアー




• シンプルなインターフェースで使いやすい。
Storage Service
                    ストレージ




•   テーブル =Key-Value型のデータストア(実データ)
•   BLOB =バイナリ格納、ファイルストレージ(CDN対応)
•   キュー =メッセージ通信
•   ドライブ =ファイルI/Oでアクセス可能なNTFSフォルダ
                     画像=Microsoft社の資料抜粋
テーブル詳細
                   Microsoft社の資料抜粋




アカウント     テーブル         エンティティ




          users




          movies
使ってみよう。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社の資料抜粋
使ってみよう。SQL Azureに接続。

■使ってみよう
・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を作りたい。適したプラットフォームを選びた
  い。
• オンプレミスを考えた時に、最も連携がよさげ。
おいくら?(Techdays 2010資料抜粋)
                                                     日本円         一月換算
                                            S        ¥11.76      ¥8,640
                                            M        ¥23.52      ¥17,280
            コンピューティング時間 (hour)
                                            L        ¥47.04      ¥33,840
Windows
 Azure                                      XL       ¥94.08      ¥67,680
            ストレージ (GB/month)                         ¥14.70      ¥147
                                                     ¥0.98
            ストレージ トランザクション (回数)                                  ¥98
                                                     /10,000
                                                     ¥195.02
            アクセス コントロール (transaction)                            ?
  Azure                                              /100,000
AppFabric
                            従量課金モデル (1 connection)   ¥391.02     ?
            サービス バス
                            パックモデル (5 connection)    ¥975.1      ?
  SQL       Web Edition (1GB)                        ¥979.02
 Azure      Business Edition (10GB)                  ¥9,799.02
                                      受信 (GB)        ¥9.80       ¥980
            北米およびヨーロッパ
  Data                                送信 (GB)        ¥14.70      ¥1,470
Transfers                             受信 (GB)        ¥29.40      ¥2,940
            アジア太平洋
                                      送信 (GB)        ¥44.10      ¥4,410
料金例
•   WEBロール1個 =¥8,000
•   ストレージ10G     =¥147
•   ストレージトランザクション10万回 = ¥98
•   SQL Azure(WebEdition) = ¥980
•   データ転送量50G(Asia) = ¥3,500

ざっと¥13,000円くらい?
どこで買えるの?
• Microsoft Online Services でポチっとな。
※基本カード払い、一定額を超える=請求書
障害発生時の問い合わせ
• DashBoardでステータスを確認
• サポートオンラインから問い合わせ(8h以内に?)
Azure 今後のお楽しみ機能
• AppFabric 2010.4
• Windows Identity Foundation
  =ハイブリッド化を推進、AD連携

• VMロール = 何でもできるように?
• SQL Azureのバックアップ機能=安心
一般利用されるまでの道のり
• 事例が300に達する
※事例を模倣しない限り、爆発的には増えない
⇒一部の英雄的なアーキテクトしか触れないようだ
  と当然、事例は増えない。
• SQLAzureの容量解放、バックアップ機能
• 認証をオンプレミス環境と統一
• 日本にデータセンター=これで法的制約減る
• Key-Value型の成功事例が多数生まれる
余談 開発者に求められる素養
• プログラミングだけではダメ。
• デプロイの知識は必須。(意外とデプロイ作業をやっ
  たことがない人もいるが・・・)
• 運用を意識した設計も超重要(環境は思い通りに
  ならない、知りたいことが知りたいときに知れるように
  環境を熟知すべし)

• つまり、総合力が必要。全部やってみよう。
• 大きすぎる範囲ではない。きっとできる。
おまけ
■クラウド開発におさえておくべき用語(一部)
ジャンル    用語             説明


データ     Key-Value型     RDBとは違い、Key-Valueのみ保持するデータストア。負荷分散や可用性に優れている。ACID徳性確保は
                       苦手。
クラウド    パブリッククラウドとプ    パブリッククラウド=インターネット経由で提供されるクラウド、プライベートクラウド=企業のイントラや特
        ライベートクラウド      定のネットワークに閉じたクラウド
トランザク   CAP定理          分散システムにおいて、データのConsistency(整合性)・可用性(Availability)・分散化(Partition)の3つを同
ション                    時に満たすことはできない。クラウドでは、可用性と分散化が必須。

トランザク   BASEトランザクション   クラウドではACIDなトランザクションは実現しにくい。よってACIDに代わるBASEトランザクションという考え
ション                    方がある。Basically Available=高可用性。楽観ロックやキューによって実現可能。Soft-State=あるノード
                       の状態が失われても、定期的に状態情報を取得すれば状態は復元される。EventuallyConsistent=↓

トランザク   イベンチュアル・コンジ    システム内に、一時的に一貫性が損なわれる状態が生まれても、ある期間の後には、一貫性のある状態
ション     ステンシー          になるような性質を、イベンチュアル・コンジステンシーという。(丸山先生の資料より) 例としてDNS。
                       ※ScalableでAvailableで、かつ、EventuallyConsistentなシステムは可能である。(丸山先生の資料より)
                       楽観的ロック(データにバージョンを持たせて、違えば更新できないでOKではないか。)

セキュリ    クレームベース認証      アイデンティティ管理に利用する認証形態。ポイントは、システム内に認証機能を作りこまず、外部からの
ティ                     トークンによって実現することで、クラウドとオンプレミスの双方で、同じ認証形態が可能というメリットがあ
                       る。(説明足りずですみません・・・。)
通信      CDN            コンテンツデリバリネットワーク(Contents Delivery Network, CDN)とは、 Webコンテンツをインターネット経
                       由で配信するために最適化されたネットワークのことである。コンテンツ配信網とも。(wikipedia)
参考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=323
     3
■その他
ひがやすを「SIerは顧客の良きパートナーとなれ」
http://jibun.atmarkit.co.jp/ljibun01/cs/200912/05/01.html

丸山先生の資料(Baseトランザクション)
http://qcontokyo.com/tokyo-2009/pdf/GeneralSession-Day2-Maruyama.pdf

More Related Content

現場開発者視点で答えるWindows Azure