Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

39
IDK-10B

Transcript of Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

Page 1: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

ID:K-10B

Page 2: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

<本資料の内容が合う方>・サーバーよりアプリに集中したい・小規模の開発チーム・システム運用には人手をかけたくない・できれば無人運用としたい・それでもビジネス成長に応じてサーバー資源の追加は柔軟に行いたい

Microsoft Azure Web & Mobile 開発

Page 3: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

Azure Web サイト

Page 4: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

Web サイトとは何か?

ユーザが集中したいこと• アプリのコード

Web サイト に任せたいこと• インフラ設計や構成変更• システムの拡大/縮小

を柔軟に変更• デプロイ時のインフラ運用• セキュリティ

http://azure.microsoft.com/ja-jp/services/websites/

Page 5: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

コンテンツのイメージは一つだけ

インターネット

ユーザー

Page 6: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

デプロイ(リリース作業)イメージ

本番

ユーザー

検証

開発者

Page 7: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

一通りの Web開発言語が使用可能

• WordPress,Drupal,Joomla,Umbraco,DotNetNuke, etc..

• ASP.NET, Java, PHP, Node.js, Python現時点で Rubyには未対応

MySQL には ClearDBを使用

Page 8: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

アプリケーションの実行環境設定

.NET

Java

PHP

Node.js

Python

IIS

Apache Tomcat

Jetty

Page 9: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

Web サイトギャラリー

Page 10: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

デプロイ管理

チーム開発・継続的インテグレーションツール等への対応• Visual Studio Online• TeamCity• Hudson • Git / GitHub• BitBucket

カジュアルなスタイルにも対応• FTP• Dropbox• WebMatrix

Page 11: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

高可用性のサーバークラスター

• 修正プログラムの自動適用機能• 分散サーバー環境

• 無料の高性能負荷分散装置• 共有環境/お客様専用 VM

• さまざまな性能追加方法• スケールアップ

• サーバーのCore数を増減• スケール アウト

• サーバーの台数を増減• CPU使用率またはスケジュール

に基づいた自動チューニング

Page 12: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

自動/手動バックアップ

Azure Websites では、次の情報をバックアップ サイトの構成 ファイル SQL Server または MySQL

ストレージ アカウントにZip バックアップ

バックアップ操作画面

Page 13: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

自動/手動バックアップ

復元操作リストア用データ

http://azure.microsoft.com/ja-

jp/documentation/articles/web-sites-restore/

Page 14: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

カスタムドメイン名とSSL設定

• SSLは2種類のSSL接続をサポート

• Server Name Indication (SNI)最新のブラウザーで使用できます

• IP Address SSL 接続すべてのブラウザーで使用できます

※カスタム ドメインの Secure Sockets Layer (SSL) の設定には、基本、標準 のいずれかが必要

• Azureはレジストラサービスがない• ドメイン名の予約は外部サービスで

• マップする DNS レコードを作成• Aレコード (要IP固定)• CNAME

※カスタムドメインは、共有、基本、標準 のいずれかが必要

※IP アドレスは、Web サイトを削除または再作成する場合や Web サイトを無料モードに戻すと、変更される可能性がある

Page 15: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~
Page 16: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

データベースの選択肢

• Azureのサービス• SQL データベース(MS SQL)• Azure テーブルストレージ• DocumentDB• Search

• Azure Market 上のサービス• 様々なデータベース

• MySQL、MongoDB、RavenDB 、Redis など

• Azure 仮想マシン上の DB

Page 17: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

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

Page 18: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

MySQL(ClearDB)

Page 19: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

Static Content from Blob Strage

CSS、画像、動画ファイル等

Web サイトの負荷を下げる

一時的に有効なアクセスキーにも対応

http://blogs.msdn.com/b/naokis/archive/2011/03/12/azure-blob-web.aspx

Page 20: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~
Page 21: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

仮想ネットワークに対応

Web サイト

仮想ネットワーク

SQL Server

VPN その他のリソース

オンプレミスAzure

クラウドサービス

仮想マシン

Page 22: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

TCP 接続のハイブリッドを可能に

Web サイト

社内ネットワーク

SQL Server

BizTalk Hybrid Connections

< >

Hybrid Connection Manager

その他のリソース

Page 23: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

Web Sites の制限事項

•リモートデスクトップ接続

•appHost.config の書き換えは一部のみ

•特定アプリケーション以外(Oracleドライバなど)のインストール

•レジストリ、システムファイルの変更

•環境変数など、全体に影響を及ぼす設定は不可

• IP アドレスなどのシステム情報の取得

Page 24: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

モバイルサービス

Page 25: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

モバイルサービスは、マルチデバイス対応の MBaaS

ネイティブアプリのバックエンド処理を簡単に作成

ブロードキャストプッシュソーシャル統合データの同期エンタープライズ対応(シングルサインオン)

Page 26: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

モバイルサービスが提供する機能

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

Page 27: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

(現)ポータルのチュートリアル

Page 28: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

クライアント SDK の機能

• データ操作 スキーマ定義、CRUD、オフラインの同期

• カスタム API の呼び出し 独自 API の呼び出し

• 認証 ログイン・ログアウト

• プッシュ通知 PNS からハンドルの取得と登録

サーバーサイド API へ容易なアクセス

Page 29: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

オフライン処理とデータ同期

• Azure 上で CRUD 操作用のSDKを作成• サーバー常時接続されているかのよう

に機能しますが、実際には操作はローカル ストアに対して実行

• ローカル ストア⇔サーバーの同期処理• MSSyncTable.pullWithQuery• MSClient.syncContext.pushWithCompletion

Page 30: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

エンタープライズ対応

Active Directory と統合

企業内の SAP、Oracle、SQL Server、SharePoint のような既存リソースにも安全に接続

Page 31: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

自動縮小/拡大

自動縮小/拡大機能により、実際の使用量に基づいてリソースを増減

Page 32: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

モバイルアプリで一般的に必要とされる機能

Web API

プッシュ通知

データ操作

認証

多くのモバイル アプリはサーバーサイドと連携

Page 33: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

MBaaS (mobile Backend as a Services) という考え方

サーバーサイドで求められる共通機能をサービスとして提供

Web API

プッシュ通知

データ操作

認証

Page 34: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

MBaaSとしての機能まとめ

• iOS/Androidなどに対してのプッシュ通知

• ソーシャルアカウントの連携

• エンタープライズ対応• AD連携

• データベース• ランキング、アンケート、ゲームスコアなどを保存

• ストレージへのアクセス• ファイル、画像などを保存したり、ユーザー間で共有

Page 35: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

MBaaSとしての非機能まとめ

• サーバーの知識がなくてもサーバーAPIを構築• 豊富なクライアントSDK• JavaScript、.NETを選択

• SQL DBは直接閲覧可能• ロックインがない

• 様々な機能拡張• Microsoft Azure の多様な機能との連携• セキュリティ機能、データ分析、機械学習

• 性能:スケールアウト

Page 36: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

スケールアウトの単位(Unit)

Page 37: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

Game用には、Photon という選択肢

http://doc.exitgames.com/en/onpremise/current/reference

/photon-azure-starter-kit-pask

Page 38: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~

http://notificationkit.github.io/

http://aka.ms/nkit

Page 39: Microsoft Azure ~ Web開発 & モバイル開発者向け情報 ~