Post on 15-Jul-2015
ID:K-10B
<本資料の内容が合う方>・サーバーよりアプリに集中したい・小規模の開発チーム・システム運用には人手をかけたくない・できれば無人運用としたい・それでもビジネス成長に応じてサーバー資源の追加は柔軟に行いたい
Microsoft Azure Web & Mobile 開発
Azure Web サイト
Web サイトとは何か?
ユーザが集中したいこと• アプリのコード
Web サイト に任せたいこと• インフラ設計や構成変更• システムの拡大/縮小
を柔軟に変更• デプロイ時のインフラ運用• セキュリティ
http://azure.microsoft.com/ja-jp/services/websites/
コンテンツのイメージは一つだけ
インターネット
ユーザー
デプロイ(リリース作業)イメージ
本番
ユーザー
検証
開発者
一通りの Web開発言語が使用可能
• WordPress,Drupal,Joomla,Umbraco,DotNetNuke, etc..
• ASP.NET, Java, PHP, Node.js, Python現時点で Rubyには未対応
MySQL には ClearDBを使用
アプリケーションの実行環境設定
.NET
Java
PHP
Node.js
Python
IIS
Apache Tomcat
Jetty
Web サイトギャラリー
デプロイ管理
チーム開発・継続的インテグレーションツール等への対応• Visual Studio Online• TeamCity• Hudson • Git / GitHub• BitBucket
カジュアルなスタイルにも対応• FTP• Dropbox• WebMatrix
高可用性のサーバークラスター
• 修正プログラムの自動適用機能• 分散サーバー環境
• 無料の高性能負荷分散装置• 共有環境/お客様専用 VM
• さまざまな性能追加方法• スケールアップ
• サーバーのCore数を増減• スケール アウト
• サーバーの台数を増減• CPU使用率またはスケジュール
に基づいた自動チューニング
自動/手動バックアップ
Azure Websites では、次の情報をバックアップ サイトの構成 ファイル SQL Server または MySQL
ストレージ アカウントにZip バックアップ
バックアップ操作画面
自動/手動バックアップ
復元操作リストア用データ
http://azure.microsoft.com/ja-
jp/documentation/articles/web-sites-restore/
カスタムドメイン名とSSL設定
• SSLは2種類のSSL接続をサポート
• Server Name Indication (SNI)最新のブラウザーで使用できます
• IP Address SSL 接続すべてのブラウザーで使用できます
※カスタム ドメインの Secure Sockets Layer (SSL) の設定には、基本、標準 のいずれかが必要
• Azureはレジストラサービスがない• ドメイン名の予約は外部サービスで
• マップする DNS レコードを作成• Aレコード (要IP固定)• CNAME
※カスタムドメインは、共有、基本、標準 のいずれかが必要
※IP アドレスは、Web サイトを削除または再作成する場合や Web サイトを無料モードに戻すと、変更される可能性がある
データベースの選択肢
• Azureのサービス• SQL データベース(MS SQL)• Azure テーブルストレージ• DocumentDB• Search
• Azure Market 上のサービス• 様々なデータベース
• MySQL、MongoDB、RavenDB 、Redis など
• Azure 仮想マシン上の DB
SQL データベース
エディション パフォーマンスレベル ワーカースレッド セッション トランザクション DTU
Basic Basic 20 300 16,600 / 時間 5
Standard
S0 60 600 521 / 分 10
S1 90 900 934 / 分 20
S2 120 1,200 2,570 / 分 50
Premium
P1 200 2,400 105 / 秒 100
P2 400 4,800 228 / 秒 200
P3 1,600 19,200 735 / 秒 800
MySQL(ClearDB)
Static Content from Blob Strage
CSS、画像、動画ファイル等
Web サイトの負荷を下げる
一時的に有効なアクセスキーにも対応
http://blogs.msdn.com/b/naokis/archive/2011/03/12/azure-blob-web.aspx
仮想ネットワークに対応
Web サイト
仮想ネットワーク
SQL Server
VPN その他のリソース
オンプレミスAzure
クラウドサービス
仮想マシン
TCP 接続のハイブリッドを可能に
Web サイト
社内ネットワーク
SQL Server
BizTalk Hybrid Connections
< >
Hybrid Connection Manager
その他のリソース
Web Sites の制限事項
•リモートデスクトップ接続
•appHost.config の書き換えは一部のみ
•特定アプリケーション以外(Oracleドライバなど)のインストール
•レジストリ、システムファイルの変更
•環境変数など、全体に影響を及ぼす設定は不可
• IP アドレスなどのシステム情報の取得
モバイルサービス
モバイルサービスは、マルチデバイス対応の MBaaS
ネイティブアプリのバックエンド処理を簡単に作成
ブロードキャストプッシュソーシャル統合データの同期エンタープライズ対応(シングルサインオン)
モバイルサービスが提供する機能
SQL Table Storage
Blob Storage
WNS &
MPNS
APNS GCM
Mongo DB
Notification Hubs
ソース管理
Facebook Twitter Microsoft GoogleAzure Active
Directory
Windows ストア
iOS(5.0 以降)
Android (2.2以降)
Xamarin
PhoneGap(3.2以降)
Sencha
WindowsPhone
HTML 5/JS
機能をアプリに組み込むためのクライアント SDK
Hybrid Connections
REST A
PI
(現)ポータルのチュートリアル
クライアント SDK の機能
• データ操作 スキーマ定義、CRUD、オフラインの同期
• カスタム API の呼び出し 独自 API の呼び出し
• 認証 ログイン・ログアウト
• プッシュ通知 PNS からハンドルの取得と登録
サーバーサイド API へ容易なアクセス
オフライン処理とデータ同期
• Azure 上で CRUD 操作用のSDKを作成• サーバー常時接続されているかのよう
に機能しますが、実際には操作はローカル ストアに対して実行
• ローカル ストア⇔サーバーの同期処理• MSSyncTable.pullWithQuery• MSClient.syncContext.pushWithCompletion
エンタープライズ対応
Active Directory と統合
企業内の SAP、Oracle、SQL Server、SharePoint のような既存リソースにも安全に接続
自動縮小/拡大
自動縮小/拡大機能により、実際の使用量に基づいてリソースを増減
モバイルアプリで一般的に必要とされる機能
Web API
プッシュ通知
データ操作
認証
多くのモバイル アプリはサーバーサイドと連携
MBaaS (mobile Backend as a Services) という考え方
サーバーサイドで求められる共通機能をサービスとして提供
Web API
プッシュ通知
データ操作
認証
MBaaSとしての機能まとめ
• iOS/Androidなどに対してのプッシュ通知
• ソーシャルアカウントの連携
• エンタープライズ対応• AD連携
• データベース• ランキング、アンケート、ゲームスコアなどを保存
• ストレージへのアクセス• ファイル、画像などを保存したり、ユーザー間で共有
MBaaSとしての非機能まとめ
• サーバーの知識がなくてもサーバーAPIを構築• 豊富なクライアントSDK• JavaScript、.NETを選択
• SQL DBは直接閲覧可能• ロックインがない
• 様々な機能拡張• Microsoft Azure の多様な機能との連携• セキュリティ機能、データ分析、機械学習
• 性能:スケールアウト
スケールアウトの単位(Unit)
Game用には、Photon という選択肢
http://doc.exitgames.com/en/onpremise/current/reference
/photon-azure-starter-kit-pask
http://notificationkit.github.io/
http://aka.ms/nkit