room 非 ms 技術でも安心! g...

40
ROOM G MS 技術 でも 安心! Azure 活用 よるアプリケーション 開発 日本マイクロソフト株式会社 エバンジェリスト 武田 正樹

Upload: vuongdiep

Post on 06-Feb-2018

227 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

ROOM

G“非”MS 技術でも安心!Azure 活用によるアプリケーション開発

日本マイクロソフト株式会社

エバンジェリスト

武田正樹

Page 2: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

.NET 以外の開発言語を使用した場合のMicrosoft Azure アプリ開発環境構築方法やAzure SDK の有効性を理解する

仮想マシンではなく、PaaS を活用したMS 以外の技術によるアプリ開発パターンを理解する

セッションの目的とゴール

Page 3: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

おことわり

✕仮想マシン上のアプリケーション開発• Oracle, SAP などを活用したアプリ開発は取り扱いません

✕ モバイル開発・組込開発• モバイル開発は、Room F にてセッション開催中です

CDP-012 Microsoft Loves Linux : Azure で Linux をしっかり使うための基礎知識

DEV-020 Microsoft Azure と連携してつくろう!

クロスプラットフォームモバイルアプリ

Page 4: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

序章Microsoft Azure にまつわる

” 2 つのオープン”

Page 5: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

主なオープンソースへの取り組み

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 ホストサービス

Page 6: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

オープンなプラットフォーム

開発言語・ツールコンテナ

デバイス

データベース

構成管理

3rd party サポートMS 1st party サポート

Web アプリ

OS

Page 7: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

オープンなプラットフォーム

開発言語・ツールコンテナ

デバイス

Web アプリ

データベース

OS

構成管理

3rd party サポートMS 1st party サポート

Page 8: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

仮想マシンだけではない!Web Apps も!

Windows Server

Hyper-V

ゲスト OS

ミドルウェア

ランタイム

データ

アプリケーション

仮想マシン

Win Server 2012

IIS 8.0

ランタイム

データ

アプリケーション

Web Apps

Go 言語

Page 9: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

オープンな API

IaaSPaaS

APIなし

Page 10: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

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

Page 11: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

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 を保証

Page 12: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

序章まとめ

Microsoft Azure はオープンなパブリッククラウド

PaaS 機能の充実が Microsoft Azure の特長

• オープンソースをサポートしているプラットフォーム

• ほぼすべてのサービスで公開されている API

• 専用線接続でオンプレミスの延長として PaaS が利用可能

• 1 インスタンスでも適用される SLA

Page 13: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

第 1 章Azure SDK で開発環境を整える

Page 14: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

Azure SDK

開発言語ごとに提供

Go 言語

クライアントライブラリ ツール

Azure PowerShellAzure Toolkit for Eclipse 等

Microsoft Azure クロスプラットフォームコマンドラインツール

Azure エミュレーターVisual Studio 用ツールなど

Page 15: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

Azure SDK 入手方法

ダウンロードサイトからのイントールに注意!

Azure SDK ダウンロードサイト: http://azure.microsoft.com/ja-jp/downloads/

Page 16: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

気を付けよう ! 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/

Page 17: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

注意!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

Page 18: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

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

Page 19: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

開発環境を構築するにはWindows 環境

実行環境

手動

.NET

Java

Python

その他

IDE・エディター

クライアントライブラリ

コマンドラインツール

Visual Studio + .NET

手動

手動

手動

手動

Eclipse + Azure Toolkit

SDK

SDKSDK Visual Studio

Page 20: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

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 もサポート

Page 21: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

クライアントライブラリ入手方法クライアントライブラリのソース・ドキュメントは 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 を解凍 コマンド実行

Page 22: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

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 の場合の実装内容

Page 23: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

REST API ライブラリ

122 行 26 行

例: Java でリージョンの一覧を取得

クライアントライブラリサンプル:

http://gauravmantri.com/2013/08/25/consuming-windows-azure-service-management-api-in-java/

Page 24: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

.NET

Java

Node.js

PHP

Python

Ruby

Go

SDK に含まれるクライアントライブラリCore

Microsoft Azure GitHub サイト: https://github.com/Azure/

✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

✔ ✔ ✔ ✔ ✔ ✔ ✔

✔ ✔ ✔ ✔ ✔ ✔

サービス管理 API

Page 25: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

まずは、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

Page 26: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

第 1章まとめ

開発環境構築は、基本 DIY で

クライアントライブラリの活用

• Windows 環境の Python は一括インストール可能

• Windows 版には便利なツールも提供

• REST API をラップ

• まずは Blob ストレージの活用から

Page 27: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

第 2 章Azure 上に Web アプリを構築する

Page 28: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

関連セッション

各サービスの詳細は関連セッションにご参加ください

DEV-017 Azure App Service Web Apps によるWeb アプリケーションの開発と展開

DEV-015 今さら聞けない!

クラウドを使った Search-as-a-Service の活用

DBI-006 Azure SQL Database 最新情報とベストプラクティス

Page 29: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

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

Page 30: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

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

Page 31: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

Go 言語もビルドイン

Go 言語のサンプル : https://github.com/takedamasaki555/golangdemo.git

Azure Web Apps に実はビルドイン

<手順>

1. Azure Web Apps のアプリケーション設定で下記を実施

2. Git でデプロイ時、azureapp.exe と Web.Config が生成

3. ブラウザーでアクセス

Page 32: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

利用可能なデータベース

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 用ライブラリが提供

Page 33: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

ストレージ・キャッシュサービスとの連携

Redis Client: http://redis.io/clients

• ジオ冗長で 2 リージョンに保存可能• .NET, Java, Node.js, PHP, Ruby, Python,

Go 言語用ライブラリが提供• アクセスが集中する場合は、Azure CDN

を利用

Blob ストレージ

Redis Cache

• OSS “Redis” 基盤のサービス• 複数台構成時のセッション情報保持など• Redis で利用できる様々な開発言語を

利用可能

Page 34: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

オープンソース利用時に検討を

Apache Hadoop

Apache Solr

MongoDB

Redis

MySQL

Vowpal Wabbit

Redis Cache

DocumentDB MongoLab

HDInsight

Search

Machine Learning

オープンソース Azure サービス Market Place 経由

Page 35: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

アプリケーション監視サービスとの連携

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 用ライブラリが提供

Page 36: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

第 2章まとめ

オープンなプラットフォーム “Web Apps”

マネージドサービスの活用

• Git などと同期できるデプロイ機構

• ビルドインされていないランタイムも Fast CGI で動く

• Azure のデータ & ストレージ、データ分析サービスはオープンソース開発者にも身近な存在に

• アプリケーション監視サービスもマネージドで

Page 37: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

まとめAzure PaaS は全開発者にオープン

Microsoft Azure

デプロイ

クライアント

Azure SDK

開発ツール

Go 言語

アプリケーション API

Page 38: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

アンケートにご協力ください。

●アンケートに上記の Session ID のブレイクアウトセッションに

チェックを入れて下さい。

●アンケートはお帰りの際に、受付でご提出ください。

マイクロソフトスペシャルグッズと引換えさせていただきます。

Page 39: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス

Ask the Speaker のご案内

●本セッションの詳細は、EXPO 会場内

『Ask the Speaker』コーナー

Room G カウンタにてご説明させて

いただきます。是非、お立ち寄りください。

Ask the Speaker

EXPO会場MAP

Page 40: ROOM 非 MS 技術でも安心! G Azuredownload.microsoft.com/download/F/F/F/FFF40A16-BFC2-4814-94DD-7… · Azure でLinux をしっかり使うための 基礎 ... 最新情報とベストプラクティス