ROOM 非 MS 技術でも安心! G...
Transcript of ROOM 非 MS 技術でも安心! G...
ROOM
G“非”MS 技術でも安心!Azure 活用によるアプリケーション開発
日本マイクロソフト株式会社
エバンジェリスト
武田正樹
.NET 以外の開発言語を使用した場合のMicrosoft Azure アプリ開発環境構築方法やAzure SDK の有効性を理解する
仮想マシンではなく、PaaS を活用したMS 以外の技術によるアプリ開発パターンを理解する
セッションの目的とゴール
おことわり
✕仮想マシン上のアプリケーション開発• Oracle, SAP などを活用したアプリ開発は取り扱いません
✕ モバイル開発・組込開発• モバイル開発は、Room F にてセッション開催中です
CDP-012 Microsoft Loves Linux : Azure で Linux をしっかり使うための基礎知識
DEV-020 Microsoft Azure と連携してつくろう!
クロスプラットフォームモバイルアプリ
序章Microsoft Azure にまつわる
” 2 つのオープン”
主なオープンソースへの取り組み
2004 2005 2006 2009 2010 2011 2012 2014 2015
Windows Server 上の PHP サポート
CodePlex
Hadoop への貢献
SorceForge でWiX 提供
Linux カーネルへの貢献
.NET Foundation
.NET Core オープンソースOpenJDK への貢献
F#1.0
Windows 版提供
ASP.NET オープンソース
HDInsight: Azure 初のLinux ホストサービス
オープンなプラットフォーム
開発言語・ツールコンテナ
デバイス
データベース
構成管理
3rd party サポートMS 1st party サポート
Web アプリ
OS
オープンなプラットフォーム
開発言語・ツールコンテナ
デバイス
Web アプリ
データベース
OS
構成管理
3rd party サポートMS 1st party サポート
仮想マシンだけではない!Web Apps も!
Windows Server
Hyper-V
ゲスト OS
ミドルウェア
ランタイム
データ
アプリケーション
仮想マシン
Win Server 2012
IIS 8.0
ランタイム
データ
アプリケーション
Web Apps
Go 言語
オープンな API
IaaSPaaS
APIなし
2つの管理 API
リソース管理 API
新しい管理ポータルでは、新しい管理 API が利用されている
サービス管理 API
Service Management API (英語) : https://msdn.microsoft.com/en-us/library/azure/ee460799.aspx
Resource Management API (英語): https://msdn.microsoft.com/en-us/library/azure/dn948464.aspx
PaaS活用で開発業務に集中
下記の構築・運用作業からの解放• システム設計・開発、インスタンス配置、ミドルウェアのインストール&設定、
ネットワーク設定、冗長構成の設計、構築、申請 & 発注作業、• サポート切れ対策、資産管理、システム監視、セキュリティ管理、
リリース管理、障害・回復管理、性能・稼働・変更・構成・配布管理
ExpressRoute(英語): http://azure.microsoft.com/ja-jp/documentation/articles/expressroute-locations/
Azure SLA サイト : http://azure.microsoft.com/ja-jp/support/legal/sla/
・専用線接続でオンプレミスの延長として PaaS が利用可能・Web Apps は 1 インスタンスで 99.95%以上のSLA を保証
序章まとめ
Microsoft Azure はオープンなパブリッククラウド
PaaS 機能の充実が Microsoft Azure の特長
• オープンソースをサポートしているプラットフォーム
• ほぼすべてのサービスで公開されている API
• 専用線接続でオンプレミスの延長として PaaS が利用可能
• 1 インスタンスでも適用される SLA
第 1 章Azure SDK で開発環境を整える
Azure SDK
開発言語ごとに提供
Go 言語
クライアントライブラリ ツール
Azure PowerShellAzure Toolkit for Eclipse 等
Microsoft Azure クロスプラットフォームコマンドラインツール
Azure エミュレーターVisual Studio 用ツールなど
Azure SDK 入手方法
ダウンロードサイトからのイントールに注意!
Azure SDK ダウンロードサイト: http://azure.microsoft.com/ja-jp/downloads/
気を付けよう ! Azure SDK 入手方法ダウンロードサイトでは、インストールの粒度が異なる
Azure SDK for .NET
Azure SDK for Java
Azure SDK for Node.js
Azure SDK for PHP
Azure SDK for Python
Azure SDK for Ruby
Windows Mac Linux
インストールガイドの Web サイト
実行環境
実行環境
実行環境
実行環境
Microsoft Azure クロスプラットフォームコマンドラインツール
SDK
Azure SDK ダウンロードサイト: http://azure.microsoft.com/ja-jp/downloads/
注意!Windows 上で構築される実行環境Web Platform Installer 5.0 経由でインストール
ツール
Ruby はインストール失敗しますので、 http://rubyinstaller.org よりダウンロードください。Web Platform Installer 5.0 カタログ: http://www.microsoft.com/web/webpi/5.0/webproductlist.xml
ランタイムバージョン
Node.js 0.6.20
PHP 5.3.19
Python 2.7.9 / 3.4.2
Ruby 2.0.0-p353
Azure PowerShell
Azure PowerShell
Azure PowerShell
Azure SDK for .NET 2.6
≧ .NET Framework 4.5 Azure SDK for .NET 2.6Azure SDK for .NET
Azure SDK for Java
Azure SDK for Node.js
Azure SDK for PHP
Azure SDK for Python
Azure SDK for Ruby
(手動) Azure Toolkit for Eclipse
Azure Toolkit for Eclipse
ドキュメント: https://msdn.microsoft.com/library/azure/hh694271.aspx
Windows 環境の Eclipse for Java EE Developers 用プラグイン
Mac / Linux 環境の Eclipse でもプレビュー版として利用可能
Azure SDK for .NET が必要 (エミュレーターとの連携機能のため)
Java, JMS 用クライアントライブラリも同時インストール
インストールされるプラグイン
- Application Insights Plugin for Java
- Azure Access Control Services Filter
- Azure Common Plugin
- Azure Plugin for Eclipse with Java
- Eclipse IDE for Java EE Developers
- MS JDBC Driver 4.0 for SQL Server
開発環境を構築するにはWindows 環境
実行環境
手動
.NET
Java
Python
その他
IDE・エディター
クライアントライブラリ
コマンドラインツール
Visual Studio + .NET
手動
手動
手動
手動
Eclipse + Azure Toolkit
SDK
SDKSDK Visual Studio
Python Tools for Visual Studio
ドキュメント: https://www.visualstudio.com/ja-jp/python-vs.aspx
Visual Studio 上で Python アプリのビルド、デバッグ、プロファイル、テスト、デプロイが可能に
CPython / IronPython をサポート
Visual Studio 2010 / 2012 / 2013 用
2.2 RC では 2015もサポート
IntelliSense もサポート
クライアントライブラリ入手方法クライアントライブラリのソース・ドキュメントは GitHub に集約
.NET
Java
Python
入手方法
jar ファイルダウンロード
npm install azure
Composer / PEAR
gem install azure
Microsoft Azure GitHub サイト: https://github.com/Azure/
Azure Libraries for Java: http://dl.msopentech.com/lib/PackageForWindowsAzureLibrariesForJava.html
SDK に同梱 / nuget Node.js
PHP
Ruby
Go go get -d <URL>
Azure Toolkit に同梱
入手方法
pip install azure
SDK に同梱
Windows 環境 Zip を解凍 コマンド実行
REST API をラップ
x-ms-version(英語): https://msdn.microsoft.com/en-us/library/azure/gg592580.aspx
X.509 v3 証明書の用意
• Azure 側 cer 形式の証明書を管理ポータルにアップロード
• クライアント側 pfx(.NET) / jks (Java) / pem 形式の証明書
リクエストに追加
• メソッド GET / PUT / POST / DELETE
• ヘッダー Content-Type, x-ms-version, Authorization
クライアント ライブラリ側で処理
サービス管理 API の場合の実装内容
REST API ライブラリ
122 行 26 行
例: Java でリージョンの一覧を取得
クライアントライブラリサンプル:
http://gauravmantri.com/2013/08/25/consuming-windows-azure-service-management-api-in-java/
.NET
Java
Node.js
PHP
Python
Ruby
Go
SDK に含まれるクライアントライブラリCore
Microsoft Azure GitHub サイト: https://github.com/Azure/
✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
✔ ✔ ✔ ✔ ✔ ✔ ✔
✔ ✔ ✔ ✔ ✔ ✔
サービス管理 API
まずは、Blobストレージとの連携を
デスクトップアプリケーションでも利用可能
データの保存先として活用
ジオ冗長で東日本と西日本リージョンの2拠点に保存
セキュリティーも万全
共有アクセス署名 (SAS) によるアクセス制御が可能
<ライブラリ>
.NET, Java, Node.js, PHP, Python, Ruby, Go 言語, C++, Android
Azure Storage SDK の一覧: https://github.com/Azure/?utf8=%E2%9C%93&query=storage
第 1章まとめ
開発環境構築は、基本 DIY で
クライアントライブラリの活用
• Windows 環境の Python は一括インストール可能
• Windows 版には便利なツールも提供
• REST API をラップ
• まずは Blob ストレージの活用から
第 2 章Azure 上に Web アプリを構築する
関連セッション
各サービスの詳細は関連セッションにご参加ください
DEV-017 Azure App Service Web Apps によるWeb アプリケーションの開発と展開
DEV-015 今さら聞けない!
クラウドを使った Search-as-a-Service の活用
DBI-006 Azure SQL Database 最新情報とベストプラクティス
Git にも対応! Web Apps へのデプロイ
Win Server 2012
(32 / 64 bit)
IIS 8.0
ランタイム
データ
アプリケーション
Web Apps
Go 言語
デプロイ
Visual Studio
Online
Git レポジトリ
GitHub
Bitbucket
Dropbox
FTP, Web Deploy
Web Apps ビルドインランタイム
管理ポータルより選択
node.js はアプリケーション設定の値を変更
(4.5 / 3.5 を選択可能)
(Tomcat 7 / Jetty 9 を選択可能)
5.4 5.5 5.6
.NET Framework 4.5
1.7.0_51
.NET
Java
PHP
Python 2.7 3.4
0.6.17 0.6.20 0.8.2 0.8.19 0.8.26 0.8.27
0.8.28 0.10.18 0.10.21 0.10.24 0.10.26 0.10.28
0.10.29 0.10.31 0.10.5 0.12.0 0.12.2 0.12.3
0.10.32
Go 言語もビルドイン
Go 言語のサンプル : https://github.com/takedamasaki555/golangdemo.git
Azure Web Apps に実はビルドイン
<手順>
1. Azure Web Apps のアプリケーション設定で下記を実施
2. Git でデプロイ時、azureapp.exe と Web.Config が生成
3. ブラウザーでアクセス
利用可能なデータベース
Microsoft Driver for Node.js for SQL Server: https://github.com/Azure/node-sqlserver
A pure Go MSSQL driver for Go's database/sql package: https://github.com/denisenkom/go-mssqldb
• SuccessBricks 社運営の MySQL サービス• AUTO_INCREMENT_INCREMENT=10 に注意!
SQL Database• .NET, Java, Node.js, PHP 5.4-5.6, Python 2.7,
Go 言語用ドライバーが提供
DocumentDB• ドキュメント指向データベースサービス
• .NET, Java, Node.js, Python, JavaScript, Hadoop 用ライブラリが提供
ストレージ・キャッシュサービスとの連携
Redis Client: http://redis.io/clients
• ジオ冗長で 2 リージョンに保存可能• .NET, Java, Node.js, PHP, Ruby, Python,
Go 言語用ライブラリが提供• アクセスが集中する場合は、Azure CDN
を利用
Blob ストレージ
Redis Cache
• OSS “Redis” 基盤のサービス• 複数台構成時のセッション情報保持など• Redis で利用できる様々な開発言語を
利用可能
オープンソース利用時に検討を
Apache Hadoop
Apache Solr
MongoDB
Redis
MySQL
Vowpal Wabbit
Redis Cache
DocumentDB MongoLab
HDInsight
Search
Machine Learning
オープンソース Azure サービス Market Place 経由
アプリケーション監視サービスとの連携
Application Insights: http://azure.microsoft.com/ja-jp/documentation/articles/app-insights-get-started/
Application Insights GitHub: https://github.com/Microsoft/?utf8=%E2%9C%93&query=application
New Relic• New Relic 社運営の監視サービス• Market Place 経由で有効化
Application Insights
• 利用状況分析: ページビュー、再訪ユーザー、セッション数• ログデータの検索、フィルター• Web アプリケーションの可用性と応答性を監視
• .NET, Java, Node.js, PHP, Python, Ruby, JavaScript, iOS, Android, OSX, WordPress 用ライブラリが提供
第 2章まとめ
オープンなプラットフォーム “Web Apps”
マネージドサービスの活用
• Git などと同期できるデプロイ機構
• ビルドインされていないランタイムも Fast CGI で動く
• Azure のデータ & ストレージ、データ分析サービスはオープンソース開発者にも身近な存在に
• アプリケーション監視サービスもマネージドで
まとめAzure PaaS は全開発者にオープン
Microsoft Azure
デプロイ
クライアント
Azure SDK
開発ツール
Go 言語
アプリケーション API
…
アンケートにご協力ください。
●アンケートに上記の Session ID のブレイクアウトセッションに
チェックを入れて下さい。
●アンケートはお帰りの際に、受付でご提出ください。
マイクロソフトスペシャルグッズと引換えさせていただきます。
Ask the Speaker のご案内
●本セッションの詳細は、EXPO 会場内
『Ask the Speaker』コーナー
Room G カウンタにてご説明させて
いただきます。是非、お立ち寄りください。
Ask the Speaker
EXPO会場MAP