1. データの移行について • SQL Azure Database • Windows Azure Storage 2. アプリケーションの移行について • Windows Azure Hosted Service • Windows Azure Platform AppFabric 3. アプリケーションの SaaS 化について • マルチテナント • ID 管理 4. まとめ 日本円 \11.76 \23.52 \47.04 \94.08 \14.70 USD $0.12 $0.24 $0.48 $0.96 $0.15 ストレージ トランザクション (回数) \0.98 /10,000 $0.01 /10,000 アクセス コントロール (transaction) \195.02 /100,000 $1.99 /100,000 従量課金モデル (1 connection) \391.02 $3.99 パックモデル (5 connection) \975.1 $9.95 Web Edition (1GB) \979.02 $9.99 Business Edition (10GB) \9,799.02 $99.99 \9.80 \14.70 \29.40 \44.10 $0.10 $0.15 $0.30 $0.45 S Windows Azure, SQL Azure, Windows Azure M コンピューティング時間 (hour) Storage などの準備が出来ている前提 L Windows XL 開発環境の準備 Azure ストレージ (GB/month) Azure AppFabric サービス バス SQL Azure Data Transfers 北米およびヨーロッパ アジア太平洋 受信 (GB) 送信 (GB) 受信 (GB) 送信 (GB) パブリッククラウドに持ち出せないもの 法律上の制限 秘匿性が高いデータ、個人情報データ、会計データ 監査を必要とするシステム トランザクションの整合性を厳密に保証するシステム パフォーマンス(リアルタイム処理)にシビアなシステム オンプレミスとクラウドのハイブリッド シームレスに連携するシステムを構築 データの結合や整合性はアプリで考慮 PUBLIC CLOUD クラウド上のリレーショナルデータベース SQL Server 2008 ベース SQL Azure Database を提供中 今後提供が予定されているもの Reporting Services, Analysis Services, Data Sync Reporting Business Analytics Data Sync データベース master データベース + ユーザーデータベース スナップショット分離 ON 復旧モデル = FULL Web Edition の 1GB と Business Edition の 10GB 接続 TCP 1433 を利用した接続 SQL Server 認証 5分で切断 アイドル、長時間クエリー、長時間トランザクション サービス品質(SLA) 99.9%(月単位の稼働率) 停止許容時間 = 1ヵ月 43 分以内 現バージョンでサポートされていない機能 分散トランザクション / 分散クエリー Common Language Runtime (SQLCLR) hierarchyid, geography, geometry データ型 バックアップ、リストア、アタッチ データベース ミラーリング サービスブローカー、フルテキスト検索、透過的暗号化、圧縮 USE ステートメント SQL Server 構成オプション(sp_configure など) 事前によく確認 Transact-SQL の サポート状況 http://msdn.microsoft.com/en-us/library/ee336250.aspx http://msdn.microsoft.com/en-us/library/ee336270.aspx SQL Azure Guidelines and Limitations http://msdn.microsoft.com/en-us/library/ee336245.aspx 日付時刻データの取り扱い すべて UTC(協定世界時) サーバー上での SYSDATETIME(), GETDATE() UTC は日本より9時間遅れ DATEADD(hour, 9, SYSDATETIME()) で対応 データを日本時間で保存するか UTC で保存するか? 既存データは日本時間で保存している場合が多い 日本語の取り扱い 明示的に Japanease_CI_AS など日本語の 指定が必要 ソートなどに影響 SQL 文での日本語記述にも "N" プレフィックスが必要 INSERT INTO employees VALUES (1, N'ジニアス') ファイアウォールの設定(TPC 1433) オンプレミス側と SQL Azure 側 Hosted Service と同じデータセンターに配置 センター内での通信は無料 VS のデータソースウィンドウ/デザイナ オンプレミス SQL Server で作成しておき、最後に接続 文字列だけを変更すれば OK SQL Server 2008 の Management Studio ローカルのデータベースに接続した後、新しいクエリー で SQL Azure へログイン 既存データベースを別環境にコピー 開発用の SQL Server 2008 R2 へアタッチ 大改修 クラスタ化インデックスの付与 日付を取得している部分を修正 Windows 認証から SQL Server 認証への変更 ストアドプロシージャの精査と改修 未サポートの機能の切り離し、または代替策の検討 スキーマを SQL Azure へエクスポート データはまだ入れない 実データを SQL Azure へエクスポート BCP, SQL Server Integration Services, T-SQL スクリプト, 自前のエクスポートツールなど VS2008 VS2010 Beta2 VS2010 RTM SQL Server プロジェクト No No Data-tier Application プロジェクト No Investigating データソース ウィンドウ DataSet, EDM, LinqToSQL, データバインディングツール No Yes サーバー エクスプローラー(表示) No Yes サーバー エクスプローラー(デザイン) No No SQL Server デバッグ No No Web Deploy No Investigating 手動で作成可能 手動で作成可能 aspnet_regsql.exe (ASP.NET Providers) BLOB(ブロブ) 画像、テキスト、ドキュメントなどのバイナリデータ image, text, varchar(max), varbinary(max) Content Delivery Network(CDN)に対応 TABLE(テーブル) レコード数が膨大になるデータ ログや公開できる商品マスターなど QUEUE(キュー) システムとのやり取りに使うデータ 制御用に利用する作業用テーブルなど Drive(ドライブ) マウントされた NTFS のドライブ(VHD) Page BLOB で転送、NTFS API でのアクセスが可能 構造 コンテナ ブロブ ブロック :フォルダ(1階層のみ) :ファイル(1ブロブ ≦ 50GB) :分割したデータ(1ブロック ≦ 4MB) ポイント 非構造型データを格納 サイズが 1MB を超えるデータ 構造 テーブル :テーブル エンティティ :レコード(1 レコード ≦ 1MB) プロパティ :フィールド(最大 255 個) ポイント PartitionKey はスケーリングの分割単位 固定スキーマでなくても OK PartitionKey string RowKey string Property1 string …… MSKK masath 平井昌人 MSKK genius ジニアス 天才系 MSKK shisago 砂金信一郎 イメケン系 PropN int 1 2 キュー メッセージ :メッセージを格納 :キューに格納する情報(上限 8KB) メッセージの有効期限は上限 7日間 メッセージを読み取ると一時非表示(最大2時間) アプリが正常に処理できた場合にアプリはキューから削除 アプリに障害あるとメッセージは復活する FIFO(ファーストイン/フォーストアウト)は保証していない SQL Azure と Azure Storage のハイブリッド リレーショナルデータをすべてを Azure Storage に するのは非現実的! 基本はスケールアウトの必要性が高いものから ログや公開可能なマスターなどを TABLE へ ストレージ(データベース)設計の見直し リレーショナル から Key Value ストアへ T-SQL / ADO.NET の放棄と REST プログラミング体得 データアクセスの大改造 プログラムを書き直し(ADO.NET → REST) JOIN どうする リレーションが不要になるよう再設計 LINQ を使ってメモリ内で JOIN アプリケーションの実行環境(ホスティング) Hyper-V の仮想マシン(VM) Windows Server 2008 + IIS 7 + ASP.NET + .NET Fx 3.5 2つの役割 Web ロール Worker ロール = Web サイト = バックグランドサービス VM n 個 ロード バランサー Web Role Web Role IIS VM n 個 Worker Role Worker Role Web ロールに実装すべきもの Web サイト(HTML などの静的コンテンツ) Web アプリケーション(ASP.NET) WCF Web サービス Worker ロールへ実装すべきもの 非同期にしたい処理 書き込み集中の緩和、複雑な演算処理 他の Web サービスなどと連携する処理 バッチ処理・定期タスク・ポーリング マネージドコードでの実装 Web ロールと Worker ロールの連携 QUEUE ストレージを利用して制御 収まらないデータは 他のストレージを介す サービス バス オンプレミスとクラウドのサービスを連携させる基盤 オンプレミスの物理的なエンドポイントを隠ぺい ルーティングやメッセージ中継を担う アクセス コントロール サービス クラウド上での ID 認証サービス クレームベースのセキュリティトークンサービス(STS) Workflow Service Code Far 型(Client/Cloud) データをクラウドに配置 オンプレミスのクライアントから SQL Azure や Azure Storage へ直接アクセス Windows Form や WPF など操作性のよいクライアント オンプレミスのデータとの連携が容易 遅延を配慮したインターフェイス データのプリフェッチやキャッシュする仕組みの実装 Code Near 型 データとアプリをクラウドに配置 Web アプリケーション アプリはデータが配置されているのと同じネットワーク 内で動作(SQL Azure への転送量が無料) クラウドの波は不可避 ビジネスモデルや収益モデルが大きく変化 パッケージ販売と SaaS アプリケーションの両立 マルチテナント アーキテクチャーへの取り組み 柔軟な SaaS アプリケーションの基盤 サービスインまでのスピーディな対応 カスタマイズの容易性 オンプレミスとクラウドの連携 オンプレミスとクラウドのハイブリッド パッケージと SaaS のハイブリッド オンプレミス ⇔ クラウド パッケージ ⇔ SaaS
© Copyright 2024 ExpyDoc