ROOM
G
“非”
Azure
MS
活用によるアプリケーション開発
技術でも安心!
日本マイクロソフト株式会社
エバンジェリスト
武田 正樹
.NET 以外 の開発言語を使用した場合の
Microsoft Azure アプリ開発環境構築方法や
Azure SDK の有効性を理解する
仮想マシンではなく、PaaS を活用した
MS 以外の技術によるアプリ開発パターンを理解する
セッションの目的とゴール
おことわり
✕ 仮想マシン上のアプリケーション開発
• Oracle, SAP などを活用したアプリ開発は取り扱いません
✕ モバイル開発・組込開発
• モバイル開発は、Room F にてセッション開催中です
CDP-012 Microsoft Loves Linux :
Azure で Linux をしっかり使うための基礎知識
DEV-020 Microsoft Azure と連携してつくろう!
序章
Microsoft Azure
にまつわる
主なオープンソースへの取り組み
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
IaaS
PaaS
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 が利用可能
序章 まとめ
Microsoft Azure はオープンなパブリック クラウド
PaaS 機能の充実が Microsoft Azure の特長
• オープンソースをサポートしているプラットフォーム
• ほぼすべてのサービスで公開されている API
• 専用線接続でオンプレミスの延長として PaaS が利用可能
• 1 インスタンスでも適用される SLA
第
1
章
Azure SDK
開発言語ごとに提供
Go 言語
クライアント ライブラリ
ツール
Azure PowerShell
Azure Toolkit for Eclipse 等 Microsoft Azure
クロスプラットフォーム コマンドラインツール
Azure エミュレーター
Azure SDK
入手方法
ダウンロードサイトからのイントールに注意!
気を付けよう !
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.6
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
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
SDK SDK 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もサポート
クライアント ライブラリ 入手方法
クライアント ライブラリのソース・ドキュメントは GitHub に集約 .NET Java Python 入手方法 jar ファイルダウンロード npm install azure Composer / PEAR gem install azureMicrosoft 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 に同梱
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
クライアント ライブラリ側で処理
REST API ライブラリ
122 行
26 行
例:
Java
でリージョンの一覧を取得
クライアント ライブラリ サンプル:
.NET Java Node.js PHP Python Ruby Go
SDK
に含まれる クライアント ライブラリ
CoreMicrosoft 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
章
関連セッション
各サービスの詳細は関連セッションにご参加ください
DEV-017 Azure App Service Web Apps による
Web アプリケーションの開発と展開
DEV-015 今さら聞けない!
クラウドを使った Search-as-a-Service の活用
Git
にも対応!
Web Apps
へのデプロイ
Win Server 2012 (32 / 64 bit) IIS 8.0 ランタイム データ アプリケーションWeb Apps
Go 言語
デプロイ Visual Studio Online Git レポジトリ GitHub Bitbucket Dropbox FTP, Web DeployWeb 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
Python2.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.30.10.32
Go 言語もビルドイン
Go 言語のサンプル : https://github.com/takedamasaki555/golangdemo.git
Azure Web Apps に実はビルドイン
<手順>
1. Azure Web Apps のアプリケーション設定で下記を実施
2. Git でデプロイ時、azureapp.exe と Web.Config が生成
利用可能なデータベース
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アプリケーション監視サービスとの連携
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