Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Microsoft Azureで実装する
Web Service on Docker
JAZUG熊本(くまあず)平⽇夜の勉強会#2
2017/08/29
加藤 司
• 北海道出⾝
• クラウドコンサルタント/インテグレータ
• Microsoft MVP for Microsoft Azure
• コミュニティ活動
• JAZUG熊本⽀部(くまあず)
• 熊本クラウド語ろう会(熊クラ会)
⾃⼰紹介
はじめに
本セッションは8⽉29⽇時点の情報になります。
アップデートにより仕様が変わる可能性がありますので
ご注意ください。
Copyright©	2015,	JAZUG	All	Rights	Reserved. 4
Docker
• 「Docker」(ドッカー)は、Docker社(旧dotCloud)が
開発するオープンソースのコンテナ管理ソフトウェア。
• 開発者が簡単にアプリケーションを動かす環境を作るとい
う思想のもとに作られている。
Dockerを使うメリット
• サーバー仮想化と違い、コンテナを利⽤するためオー
バーヘッドが少なく動作が軽い。
• 各コンテナは様々なディストリビューションやバー
ジョンを構成できる。
• インフラ環境をコード化することが容易(Dockerf...
Copyright©	2015,	JAZUG	All	Rights	Reserved. 7
Container
コンテナを使う理由
開発環境と本番環境との差異をなくす
起動時間の短縮
リソース利⽤の効率化
App Service on Linux
App Service on Linux
• 現在提供されているApp ServiceのLinux版
• Linux上でのWebアプリのネイティブな実⾏のサポート
• 専⽤App Serivceプランで動作
• Dockerのサポート
Prev...
アプリ実⾏⽅法
ランタイムスタックの選択
Windows版のWeb Appと同様に使⽤するランタイムを
選択してデプロイが可能
Docker イメージの実⾏
Azure Container Registry,Docker Hub,プライベート ...
ランタイムスタック
必要な設定がされたDocker Image
App Serviceのドキュメントルートをコンテナから参照
独⾃のランタイムスタックの作成も可能
https://github.com/Azure-App-Service
公開さ...
ランタイムスタック
以下の⾔語イメージが提供されている
Node.js ( 4.4 , 4.5 , 6.2 , 6.6 , 6.9 , 6.10, 6.11, 8.0, 8.1 )
PHP ( 5.6 , 7.0 )
.Net Core ( 1...
利⽤できるリージョン
現状提供されているのは以下のリージョン
South Central US, West US, East US, East US 2,
North Central US, Central US, Canada Central...
価格
Windows版とは異なりStandard と Basicのみ
プレビューのため現状は50%割引
Web App on Linux
16
Web	App	on	Linux	
+	
Azure	Database	for	MySQL
Web	App	on	Linux	
+	
Azure	Database	for	PostgreSQL
Web App on Linux
17
デプロイ⽅法
Local Gitへプッシュ
GitHub / Bitbucket と連携
Docker Imageをビルドして差し替える
CIサービスとの連携
Docker Hub
Azure Container Registry
Visual Studio Team Services
Dockerをサポートしている CI SaaS
App Service on Linux
DEMO
現在未対応の機能
認証/承認
VNET統合/ハイブリッド接続
Webジョブ
App Service on Linux注意点
Docker Compose未サポート
独⾃のオーケストレーターを採⽤しているため、
Docker Composeは未サポート
Data Volumeの追加ができない
現状はボリューム追加未対応
Azure Container Registry
Azure Container Registry
• Docker プライベートレジストリ
• WindowsとLinuxのコンテナーイメージを単⼀のレジ
ストリで管理できる
• Azure Active Direcotryによるアクセス管理が...
Azure Container Instances
Azure Container Instances
• 仮想マシン不要のコンテナサービス
• 即時起動でき、課⾦は秒単位
• Docker HubやAzure Container Registryからコ
ンテナイメージをプルできる
コマンド (Azure CLI 2.0 )
>	az group	create	--name	RGName --location	eastus
>	az container	create	--name	ContainerName --image...
ポータル
ポータル
ポータル
Azure Container Service
Azure Container Service
• テンプレートを使⽤したDockerクラスターの構成を展開す
るサービス ※マネージドサービスではありません
• 選べるオーケストレーターはDocker Swarm、DC/OS、
Kuberne...
Kubernetes
Kubernetes コンポーネント
コンポーネント 役割
apiserver kubernetesを操作するAPIの提供
controller-manager コンテナの状態・ノード管理など
etcd 設定情報の共有とサービス検出を⾏うKVS...
ACS上でKubernetes を使うには
#	Azure	CLI	2.0	接続
#	az login
###	Kubernetes	コマンドラインクライアントのインストール
#	az acs kubernetes install-cli
##...
Kubernetes ui
#	Kubernetes	ui 起動
#	kubectl proxy
Starting	to	serve	on	127.0.0.1:8001
起動してブラウザで
http://localhost:8001
に接続する
DC/OS
DC/OS	UI
Copyright©	2015,	JAZUG	All	Rights	Reserved. 38
Marathon	UI
Copyright©	2015,	JAZUG	All	Rights	Reserved. 39
Docker Swarm
Copyright©	2015,	JAZUG	All	Rights	Reserved. 41
Windows Server Container
Windows Server コンテナー
• Windows Server コンテナー
• プロセスと名前空間の分離テクノロジを使⽤してア
プリケーションの分離。
ホスト+ホスト上で実⾏されているすべてのコンテ
ナーとカーネルを共有。
• Hy...
Windows Server Containerの種類
43
項⽬ Windows Serverコンテナ Hyper-Vコンテナ
特徴 軽量・⾼速 ⾼い隔離性
コンテナ
起動:速い
実⾏:ホスト上のプロセス
起動:遅い
実⾏:Hyper-Vゲス...
Windows Server Container
44
ハイパーバイザー(Hyper-V)
Windows カーネル
Windows Server
コンテナ
システム
プロセス
アプリ
プロセス
Windows Server
コンテナ
システム...
Hyper-V Container
45
ハイパーバイザー(Hyper-V)
Hyper-V
Isolation
Hyper-V
Isolation
Windows カーネル Linux カーネル
Windows Server Linux
シス...
Windows Subsystem for Linux (WSL)
46
ハイパーバイザー(Hyper-V)
Hyper-V コンテナ Hyper-V コンテナ
WSL
Windows カーネル
WSL
Windows カーネル
Windows...
Nano Server
Nano Server
軽量なWindows OS
Full
Server	Core
Nano	Server
Nano Server
起動時間の圧倒的な速さ
Windows Server コンテナでの起動時間 1秒未満
Hyper-V コンテナでの起動時間 2秒未満
仮想マシンとしての起動時間 3秒未満
Nano Server
Docker HUBでも公開されています
Nano Server
• Insider Previewでサイズ削減版が公開され始め
ています。
• OSイメージだけで350MBと軽量となっているた
め、今後コンテナでの利⽤が期待できそうです。
まとめ
•複雑な構成でなければAzure Container Instanceや
App Service on LinuxはDocker⽤途には最適
• 管理はAzureに、スケーリングはお⼿軽に
• 普段使いのツールやサービスと連携できる
まとめ
• Web App on Linuxも簡単にコンテナを展開できるサー
ビスですが、Azure Container Instancesはさらに簡略
化されたコンテナ展開サービスです。
• コマンド1つで展開・削除ができるので是⾮お試しくだ...
ご静聴ありがとうございました!
Microsoft azureで実装するwebserviceondocker
Upcoming SlideShare
Loading in …5
×

Microsoft azureで実装するwebserviceondocker

461 views

Published on

2017/08/29

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Microsoft azureで実装するwebserviceondocker

  1. 1. Microsoft Azureで実装する Web Service on Docker JAZUG熊本(くまあず)平⽇夜の勉強会#2 2017/08/29
  2. 2. 加藤 司 • 北海道出⾝ • クラウドコンサルタント/インテグレータ • Microsoft MVP for Microsoft Azure • コミュニティ活動 • JAZUG熊本⽀部(くまあず) • 熊本クラウド語ろう会(熊クラ会) ⾃⼰紹介
  3. 3. はじめに 本セッションは8⽉29⽇時点の情報になります。 アップデートにより仕様が変わる可能性がありますので ご注意ください。
  4. 4. Copyright© 2015, JAZUG All Rights Reserved. 4
  5. 5. Docker • 「Docker」(ドッカー)は、Docker社(旧dotCloud)が 開発するオープンソースのコンテナ管理ソフトウェア。 • 開発者が簡単にアプリケーションを動かす環境を作るとい う思想のもとに作られている。
  6. 6. Dockerを使うメリット • サーバー仮想化と違い、コンテナを利⽤するためオー バーヘッドが少なく動作が軽い。 • 各コンテナは様々なディストリビューションやバー ジョンを構成できる。 • インフラ環境をコード化することが容易(Dockerfile)
  7. 7. Copyright© 2015, JAZUG All Rights Reserved. 7 Container
  8. 8. コンテナを使う理由 開発環境と本番環境との差異をなくす 起動時間の短縮 リソース利⽤の効率化
  9. 9. App Service on Linux
  10. 10. App Service on Linux • 現在提供されているApp ServiceのLinux版 • Linux上でのWebアプリのネイティブな実⾏のサポート • 専⽤App Serivceプランで動作 • Dockerのサポート Preview
  11. 11. アプリ実⾏⽅法 ランタイムスタックの選択 Windows版のWeb Appと同様に使⽤するランタイムを 選択してデプロイが可能 Docker イメージの実⾏ Azure Container Registry,Docker Hub,プライベート コンテナー レジストリからカスタム コンテナーを使⽤可能
  12. 12. ランタイムスタック 必要な設定がされたDocker Image App Serviceのドキュメントルートをコンテナから参照 独⾃のランタイムスタックの作成も可能 https://github.com/Azure-App-Service 公開されているDockerfileをカスタマイズ
  13. 13. ランタイムスタック 以下の⾔語イメージが提供されている Node.js ( 4.4 , 4.5 , 6.2 , 6.6 , 6.9 , 6.10, 6.11, 8.0, 8.1 ) PHP ( 5.6 , 7.0 ) .Net Core ( 1.0 , 1.1 ) Ruby ( 2.3 )
  14. 14. 利⽤できるリージョン 現状提供されているのは以下のリージョン South Central US, West US, East US, East US 2, North Central US, Central US, Canada Central, Canada East, Brazil South, North Europe, West Europe, Southeast Asia, East Asia, Japan West, Japan East, Australia East, Central India, West India, South India
  15. 15. 価格 Windows版とは異なりStandard と Basicのみ プレビューのため現状は50%割引
  16. 16. Web App on Linux 16 Web App on Linux + Azure Database for MySQL Web App on Linux + Azure Database for PostgreSQL
  17. 17. Web App on Linux 17
  18. 18. デプロイ⽅法 Local Gitへプッシュ GitHub / Bitbucket と連携 Docker Imageをビルドして差し替える
  19. 19. CIサービスとの連携 Docker Hub Azure Container Registry Visual Studio Team Services Dockerをサポートしている CI SaaS
  20. 20. App Service on Linux DEMO
  21. 21. 現在未対応の機能 認証/承認 VNET統合/ハイブリッド接続 Webジョブ
  22. 22. App Service on Linux注意点 Docker Compose未サポート 独⾃のオーケストレーターを採⽤しているため、 Docker Composeは未サポート Data Volumeの追加ができない 現状はボリューム追加未対応
  23. 23. Azure Container Registry
  24. 24. Azure Container Registry • Docker プライベートレジストリ • WindowsとLinuxのコンテナーイメージを単⼀のレジ ストリで管理できる • Azure Active Direcotryによるアクセス管理が可能
  25. 25. Azure Container Instances
  26. 26. Azure Container Instances • 仮想マシン不要のコンテナサービス • 即時起動でき、課⾦は秒単位 • Docker HubやAzure Container Registryからコ ンテナイメージをプルできる
  27. 27. コマンド (Azure CLI 2.0 ) > az group create --name RGName --location eastus > az container create --name ContainerName --image microsoft/helloworld --resource-group RGName --ip-address public
  28. 28. ポータル
  29. 29. ポータル
  30. 30. ポータル
  31. 31. Azure Container Service
  32. 32. Azure Container Service • テンプレートを使⽤したDockerクラスターの構成を展開す るサービス ※マネージドサービスではありません • 選べるオーケストレーターはDocker Swarm、DC/OS、 Kubernetesで、Marathon,Chronosなどの各種ツール・ APIをサポート
  33. 33. Kubernetes
  34. 34. Kubernetes コンポーネント コンポーネント 役割 apiserver kubernetesを操作するAPIの提供 controller-manager コンテナの状態・ノード管理など etcd 設定情報の共有とサービス検出を⾏うKVS kubelet 各ノード上のコンテナ作成/削除、ボリューム割り当 てなど kubectl API経由でkubernetesを操作するクライアントツー ル proxy コンテナのネットワークルーティング・負荷分散 scheduler 各ノードにコンテナの割り当てなどを⾏う
  35. 35. ACS上でKubernetes を使うには # Azure CLI 2.0 接続 # az login ### Kubernetes コマンドラインクライアントのインストール # az acs kubernetes install-cli ### Kubernetes クラスター構成ファイルをダウンロード # az acs kubernetes get-credentials --resource-group=$RESOURCE_GROUP --name=$CLUSTER_NAME ### クラスターノードの確認 # kubectl get nodes ### コンテナーの実⾏ # kubectl run nginx –image nginx ### サービスの公開 # kubectl expose deployments nginx --port=80 --type=LoadBalancer Azure CLI 2.0の場合
  36. 36. Kubernetes ui # Kubernetes ui 起動 # kubectl proxy Starting to serve on 127.0.0.1:8001 起動してブラウザで http://localhost:8001 に接続する
  37. 37. DC/OS
  38. 38. DC/OS UI Copyright© 2015, JAZUG All Rights Reserved. 38
  39. 39. Marathon UI Copyright© 2015, JAZUG All Rights Reserved. 39
  40. 40. Docker Swarm
  41. 41. Copyright© 2015, JAZUG All Rights Reserved. 41 Windows Server Container
  42. 42. Windows Server コンテナー • Windows Server コンテナー • プロセスと名前空間の分離テクノロジを使⽤してア プリケーションの分離。 ホスト+ホスト上で実⾏されているすべてのコンテ ナーとカーネルを共有。 • Hyper-V コンテナー • 各コンテナーを最適化された仮想マシンで実⾏する。 Windows Serverコンテナーと⽐較して分離性が向 上。
  43. 43. Windows Server Containerの種類 43 項⽬ Windows Serverコンテナ Hyper-Vコンテナ 特徴 軽量・⾼速 ⾼い隔離性 コンテナ 起動:速い 実⾏:ホスト上のプロセス 起動:遅い 実⾏:Hyper-Vゲスト上のプ ロセス 隔離性 • コンテナは同じホスト OS上で実⾏される • 他のコンテナの影響を受 ける可能性がある • コンテナ単位で隔離される ので独⽴性が⾼い • 他のコンテナの影響をほぼ 受けない
  44. 44. Windows Server Container 44 ハイパーバイザー(Hyper-V) Windows カーネル Windows Server コンテナ システム プロセス アプリ プロセス Windows Server コンテナ システム プロセス アプリ プロセス
  45. 45. Hyper-V Container 45 ハイパーバイザー(Hyper-V) Hyper-V Isolation Hyper-V Isolation Windows カーネル Linux カーネル Windows Server Linux システム プロセス アプリ プロセス システム プロセス アプリ プロセス
  46. 46. Windows Subsystem for Linux (WSL) 46 ハイパーバイザー(Hyper-V) Hyper-V コンテナ Hyper-V コンテナ WSL Windows カーネル WSL Windows カーネル Windows Server Linux システム プロセス アプリ プロセス システム プロセス アプリ プロセス Windows Subsystem for Linux Windows カーネル Windows Server コンテナ システム プロセス アプリ プロセス Linux コンテナ システム プロセス アプリ プロセス
  47. 47. Nano Server
  48. 48. Nano Server 軽量なWindows OS Full Server Core Nano Server
  49. 49. Nano Server 起動時間の圧倒的な速さ Windows Server コンテナでの起動時間 1秒未満 Hyper-V コンテナでの起動時間 2秒未満 仮想マシンとしての起動時間 3秒未満
  50. 50. Nano Server Docker HUBでも公開されています
  51. 51. Nano Server • Insider Previewでサイズ削減版が公開され始め ています。 • OSイメージだけで350MBと軽量となっているた め、今後コンテナでの利⽤が期待できそうです。
  52. 52. まとめ •複雑な構成でなければAzure Container Instanceや App Service on LinuxはDocker⽤途には最適 • 管理はAzureに、スケーリングはお⼿軽に • 普段使いのツールやサービスと連携できる
  53. 53. まとめ • Web App on Linuxも簡単にコンテナを展開できるサー ビスですが、Azure Container Instancesはさらに簡略 化されたコンテナ展開サービスです。 • コマンド1つで展開・削除ができるので是⾮お試しくだ さい!
  54. 54. ご静聴ありがとうございました!

×