Más contenido relacionado La actualidad más candente (20) Similar a Using Azure Compute with VMSS, Kubernetes, and Service Fabric (20) Más de Takeshi Fukuhara (20) Using Azure Compute with VMSS, Kubernetes, and Service Fabric2. 2
一歩先行く Azure Computing シリーズ(全3回)
第1回 SLA を軸にした Azure 高可用性設計とは
https://info.microsoft.com/JA-AzureINFRA-WBNR-FY19-11Nov-08-AzureComputing-
MCW0009127_01Registration-ForminBody.html
第2回 Azure VM どれを選ぶの?
https://info.microsoft.com/JA-AzureINFRA-WBNR-FY19-11Nov-20-AzureVMIntensiveCourse-
MCW0009132_01Registration-ForminBody.html
第3回 VMSSやコンテナー オーケストレーターで、クラウドのコンピューティング リソー
スを使いこなす
https://info.microsoft.com/JA-AzureINFRA-WBNR-FY19-12Dec-04-AzureComputing-
MCW0009199_01Registration-ForminBody.html
5. Azure コンピューティング サービス の選択肢
Virtual Machine / Virtual Machine Scale Sets (VMSS)
Azure (Public Cloud)
Azure Stack
(Private Cloud)
Virtual Machine Extensions
Kubernetes、SCALR、
RightScale, Mesos、Swarm
Service Fabric (Mesh)
App Service
Web
Apps
Mobile
Apps
Apprenda、Cloud Foundry
Jelastic、Marathon、OpenShift
インフラ
IaaS / IaaS+
汎用コンピュー
ティング PaaS
用途特化型
コンピューティング
PaaS
クラスター オーケ
ストレーション
API
Apps
Function
Apps
7. a
Virtual Machine Scale Setsとは
Resource Group
Subnet
Scalable Storage
V
M
VNET
Scalable NIC
…
V
M
V
M
V
M
VM Scale Set
9. Virtual Machine Scale Sets の用途
ウェブサーバー
スケールアウト・イン HPCクラスター
https://azure.microsoft.com/ja-jp/solutions/architecture/hpc-cluster/ より抜粋
20. 20
Availability Zones ( AZ )
データセンターレベルの障害の保護
• AZは一つ以上の物理データセンターで
構成
• 各AZで独立した電源系統、ネットワー
ク、冷却設備
• AZはリージョンに3つ以上
• 低遅延: AZ間のレイテンシー <2ms.
• 対象リージョン
• Central US
• West US 2
• West Europe
• North Europe
Region
Zone 2 Zone 3
Zone 1
• France Central
• East US 2
• Southeast Asia
24. • 最大 80% ディスカウント
• 固定料金
• 入札不要
コスト
• SLAなし – 容量の保証なし
• 1 障害ドメイン
• サービス ヒーリング なし
SLA
• バッチプロセス
• コンテナー ベース
• 開発 / テスト
想定
ワークロード
割り込み
80%引き
25. az vmss create ¥
--resource-group myResourceGroup ¥
--name myScaleSet ¥
--image UbuntuLTS ¥
--upgrade-policy-mode automatic ¥
--admin-username azureuser ¥
--generate-ssh-keys ¥
--priority Low
--evictionPolicy delete
VMSSでの低優先度VMへの展開: 削除ポリシー
29. "metricTrigger": {
"metricName": "Percentage CPU",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT5M",
"timeAggregation": "Average",
"operator": "GreaterThan",
"threshold": 60
}
低優先度VMの活用例: ハイブリッド スケール セット
ロード バランサー
(Standard SKU)
通常のスケール セット 低優先 スケール セット
"metricTrigger": {
"metricName": "Percentage CPU",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT5M",
"timeAggregation": "Average",
"operator": "GreaterThan",
"threshold": 30
}
31. Azure DevOps の概要 Postedon September 10, 2018
https://azure.microsoft.com/ja-jp/blog/introducing-azure-devops/
Visual Studio Team Services (VSTS) の進化
Azure DevOps は、Visual Studio Team Services
(VSTS) の進化版と言えます。VSTS ユーザーは Azure
DevOps プロジェクトに自動的にアップグレードされます。
既存のユーザーにとっては、機能が減ることはなく、単に選
択肢とコントロールが増えるだけです。VSTS の特長であっ
たエンドツーエンドの追跡可能性と統合もすべてそのまま
です。Azure DevOps サービスは組み合わせてうまく機
能します。今日から変革が始まり、これから数か月にわ
たって既存のユーザーは変化を目の当たりにします。これ
はどういう意味でしょうか。
Azure Pipelines
あらゆる言語、プラットフォーム、クラウドで機能する CI/CD。GitHub や任意
の Git リポジトリに接続し、継続的にデプロイすることができます。詳細情報 >
Azure Boards
かんばんボード、バックログ、チームのダッシュボード、カスタム レポートを使用した
強力な作業追跡。詳細情報 >
Azure Artifacts
パブリックおよびプライベートのソースからの、Maven、npm、NuGet パッケージ
のフィード。詳細情報 >
Azure Repos
クラウドでホストされたプライベート Git リポジトリを無制限にプロジェクトで使用
。共同のプル要求、高度なファイル管理、その他。詳細情報 >
Azure Test Plans
オールインワンの計画された探索的テスト ソリューション。詳細情報 >
36. • 一般提供中
• Opt-in モデル
• すべてのリージョンで利用可能
• ゲストOSイメージを、順次更新
• Scales Setを20% ずつ更新
• アプリケーション正常性プローブと統合
• イメージ更新後、VM 拡張機能を実行
• 永続データディスクを保持
VMSS の自動 OSイメージ更新
…
Auto OS
Upgrader
Get latest
platform image
for given SKU Check OS
upgrade{
"properties": {
"upgradePolicy": {
"automaticOSUpgradePolicy": {
"enableAutomaticOSUpgrade": true
}
}
}
}
Ubuntu: 18.04 LTS /
16.04 LTS
CentOS 7.5
CoreOS Stable
Windows: 2012R2 /
2016 / 2016 small-disk
/ 2016 containers
• 対応OSイメージ
39. Why Containers ? – Write-once, Run-anywhere
‘Write-once, Run-anywhere’
マイクロサービス アーキテクチャ対応
Dev/Test の効率化
確実な Production 環境の配置
Developer Community の成長
アプリケーションのポータビリティ
開発, QA, 運用環境の標準化
OS やインフラ環境の抽象化
リソース配分の最適化
高速起動、スケーラビリティの確保
DevOps
Developers
Operations
40. Docker コンテナーとは?
From Docker.inc : https://docs.docker.com/get-started/#images-and-containers
ホストOS上に配置されたライトウェートで高速に動作する分離された層
最終的にホストOS上の1プロセスとして実行されているアプリケーション
コンテナー化仮想化
Docker Engine
44. Visual Studio (Windows)
Visual Studio for Mac
Visual Studio Code (クロスプラットフォーム)
Support for:
- Docker - Windows コンテナー
- Docker - Linux コンテナー
- マルチコンテナーのアプリケーション デバッグ
による、
既存アプリのコンテナ化
50. Dockerレジストリ経由で、Azureのコンテナーへ展開例
docker pull
PC 上の開発環境
Windows 10 以降のDocker for Windows
コンテナー上の アプリケーション
コンテナー上の
Database
Docker engine と
Docker CLI
ローカルの
Docker イメージ
レポジトリー
docker push
Container Registry
Docker Hub
もしくは
Azure Container Registry
docker-compose build
or
docker build
展開先の選択肢
Azure Container
Instances (ACI)
Azure VM
Windows Server 2016/2019
Docker Engine
Azure App Service
(Windows Containers対応はプレビュー)
Azure Kubernetes Service
(Windows Containers対応はプレビュー)
Service Fabric
(Mesh or cluster)
(Service Fabric meshはプレビュー)
52. 実運用環境での要件
✓ 高可用性
✓ PaaS サービス
Container上の
Database ( SQL Server, MySQL, PostgreSQLなど )
コンテナーのスケールアウトを簡素化するには?
かつ、IaaS/VM の運用をなくすには?
データコンピューティング
✓ コンテナー用のコンピューティング サービスの管理
✓ スケール アウト
53. 実運用環境での要件をオーケストレーターで解決
Azure Data Services
( Azure SQL DB,
Azure DB for MySQL/PostgreSQL/MariaDB,
Cosmos DB など )
もしくは、
IaaS上のDatabase クラスター サービス
✓ 高可用性
✓ PaaS サービス
コンテナーのスケールアウトを簡素化するには?
かつ、IaaS/VM の運用をなくすには?
✓ コンテナー用のコンピューティング サービスの管理
✓ スケール アウト
データコンピューティング
55. AzureのKubernetes関連サービス
Azure Kubernetes Service (AKS)
acs-engine
• OSS (MITライセンス) コンテナサービスエンジン
• ARMテンプレートを使ってK8sクラスタ構築・管理機能を提供
• 新規k8s機能が早い段階で利用可能で、 acs-engineで安定が確認された機能はAKSに順次導入されることが多い)
Kubernetes core concepts for AKS
https://docs.microsoft.com/azure/aks/concepts-clusters-workloads
56. 56
AKS GAリリース - 2018年6月14日(日本時間)
豊富な機能群
• Azureポータル、Azure CLIコマンド、ARMテンプレートに加えてTerraformを利用したクラスタ
構築も可能
• デフォルトでK8sのRole-based Access Control (RBAC) 設定可能
• Azure ADベースのアクセス制御も可能 (Preview)
• クラスタのスケーリング、アップグレード
• HTTPアプリケーションルーティング (外向けDNS名とIngressControllerが自動設定)
• GPU VMノード利用可能
• VNET連携 - Advanced Networking設定 (CNI Plugin利用) により新規VNET、または既
存のVNETへのクラスタのデプロイが可能。Podが他のピアリング接続されたVNETと接続可能。
またExpressRouteやVPN接続を通じてオンプレのサービスと接続可能
https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes
57. Kubernetesについて
Googleが始めた、オープン ソース プロジェクト
2015年6月21日、Joe Bedaと、 Brendan Burns、Craig
McLuckie によって、 Kubernetes v1.0 がリリース
2016年7月12日、Brendan BurnsがMicrosoftでAzure上の
開発に参画
2018年8月29日、Googleは、Cloud Native Computing
Foundation® (CNCF®)へKubernetesプロジェクトのオーナーシッ
プと管理の移管を開始
Apprenda が主導するコミュニティで、Windowsサポートを追加
VANCOUVER, Canada – August 29, 2018 – Open Source Summit North America – The Cloud
Native Computing Foundation® (CNCF®), which sustains and integrates open source
technologies like Kubernetes® and Prometheus™, today announced that Google Cloud has
begun transferring ownership and management of the Kubernetes project’s cloud
resources to CNCF community contributors.
(https://www.cncf.io/announcement/2018/08/29/cncf-receives-9-million-cloud-credit-grant-
from-google/ より抜粋)
58. 58
KubernetesのVMSS対応
Kubernetes 1.12: Support for Azure Virtual Machine Scale Sets (VMSS) and Cluster-Autoscaler is Now Stable
https://kubernetes.io/blog/2018/09/27/kubernetes-1.12-kubelet-tls-bootstrap-and-azure-virtual-machine-scale-sets-vmss-move-to-general-availability/
Azure Virtual Machine Scale Sets (VMSS) allow you to create and manage a
homogenous VM pool that can automatically increase or decrease based on
demand or a set schedule. This enables you to easily manage, scale, and load
balance multiple VMs to provide high availability and application resiliency, ideal
for large-scale applications that can run as Kubernetes workloads.
With this new stable feature, Kubernetes supports the scaling of containerized
applications with Azure VMSS, including the ability to integrate it with cluster-
autoscaler to automatically adjust the size of the Kubernetes clusters based on
the same conditions.
66. Helm - Package Manager
Helmとは?
• Kubernetesアプリのパッケージ管理とデプロイメントを行うツール
• Linuxにおけるapt-getやyum、Mac OSにおけるHomebrewのような位置付け
• LinuxにおけるDepsやRPM にあたるHelmパッケージのことをChartsと呼ぶ
https://helm.sh/
Helmの構成要素
• クライアント ( Helm ): 利用者のローカルマシンやCI/CDパイプラインにて利用
• サーバ ( tiller ): Kubernetesクラスタにて実際のデプロイメントを行う
Chartsレポジトリ
https://github.com/kubernetes/charts
69. Azure Dev Spaces での .NET Core と Visual Studio の使用
https://docs.microsoft.com/ja-jp/azure/dev-spaces/get-started-netcore-visualstudio
72. Azureのコンテナエコシステム
IaaSPaaS
Azure services
SQL
Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker
Enterprise
Edition
Mesosphere
DC/OS
Azure
Azure
Container
Registry
(ACR)
OSBA
Azure Kubernetes
Service (AKS)
ACS
Engine
Batch
Azure Container
Instances
(ACI)
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Mesh Cluster
Virtual kubelet
Web Apps for
Container ( App
Service )
Azure Virtual
Machine
73. 73
イベント: 「Container X mas Party」 @ MS品川本社 (12/18)
詳細及び、申込サイト
https://flexy.connpass.com/event/110839/
イベント概要:
Kubernetesは、コンテナをプロダクション環境で運用するためにさまざまな機能を備えています。
洗練されたアーキテクチャ設計で、中小規模システムだけでなくトラフィックの多い大規模分散システムでも少人数で
運用するための工夫がなされています。
しかしながら、Kubernetesは独特のコンセプトをもち、必ずしも初学者にとって敷居の低いものではありません。
さらにアプリケーション開発の知識だけでなくインフラの知識も必要になります。また、開発スピードも速く、エコ
システムも含めて動向を追うのは、さまざまな荒波を乗り越える必要もあります。
そこで、「Container X mas Party」では、まさに今、現場でコンテナ技術を活用するエンジニアの皆様からのリアルな
声をあつめ、情報交換を行い、楽しみながらウェーブを乗りこなすためのパーティを行います。 Kubernetesの導入を検
討している方、すでにKubernetesを導入して疲れている方、とにかくコンテナ技術が好きな人、などみなさんでハッ
ピーな時間を過ごしましょう!(もちろん途中参加も可能です!)
76. Azureのコンテナエコシステム
IaaSPaaS
Azure services
SQL
Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker
Enterprise
Edition
Mesosphere
DC/OS
Azure
Azure
Container
Registry
(ACR)
OSBA
Azure Kubernetes
Service (AKS)
ACS
Engine
Batch
Azure Container
Instances
(ACI)
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Mesh Cluster
Virtual kubelet
Web Apps for
Container ( App
Service )
Azure Virtual
Machine
80. ACI Connector for Kubernetesを使うことで、Kubernetesクラスタがコンテナを
ACIに直接展開できるようになる。開発者は必要に応じてVMとACIを混在させる
ことができるようになる
Kubernetesからの利用も可能
Kubernetes
control pane
Application
architect
Infrastructure
architect
Azure Container Instances (ACI)
ACI
Connector
Pod
Pod Pod
Pod
Pod Pod
Pod
Pod Pod
Pod
Pod Pod
VM VM
VM VM
Deployment/
tasks
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
Pod Pod Pod Pod Pod
WasteWaste
WasteWaste PodPod
PodPod
82. 82
Azure Container Instances の VNET 統合
ACIをAzure仮想ネットワークにデプロイする
https://docs.microsoft.com/ja-jp/azure/container-instances/container-instances-vnet
86. Azureのコンテナエコシステム
IaaSPaaS
Azure services
SQL
Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker
Enterprise
Edition
Mesosphere
DC/OS
Azure
Azure
Container
Registry
(ACR)
OSBA
Azure Kubernetes
Service (AKS)
ACS
Engine
Batch
Azure Container
Instances
(ACI)
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Mesh Cluster
Virtual kubelet
Web Apps for
Container ( App
Service )
Azure Virtual
Machine
87. Azure Container Registry を使用してコンテナー
イメージをビルドして保存する
Azure Container Instances で Docker コンテナー
を実行する
https://docs.microsoft.com/ja-jp/learn/paths/administer-containers-in-azure/
Azure Container Instances は、Azure
でコンテナーを実行する方法として最も簡
単で迅速な方法です。 このラーニング パス
では、コンテナーを作成して管理する方法、
ACI を利用して Kubernetes に柔軟なス
ケールを与える方法を紹介します。
89. Azureのコンテナエコシステム
IaaSPaaS
Azure services
SQL
Database
Redis Cache
CosmosDB
And more!
Partner services
OpenShift
Pivotal Cloud
Foundry
Docker
Enterprise
Edition
Mesosphere
DC/OS
Azure
Azure
Container
Registry
(ACR)
OSBA
Azure Kubernetes
Service (AKS)
ACS
Engine
Batch
Azure Container
Instances
(ACI)
Virtual Machine
Scale Sets
(VMSS)
Service Fabric
Mesh Cluster
Virtual kubelet
Web Apps for
Container ( App
Service )
Azure Virtual
Machine
90. Azureでのオーケストレーターの選択
オーケストレーター 内容 適用領域 一般的なワークロード
Kubernetes は、複数ホストのクラスター上
のアプリケーション コンテナーの、自動展開、
自動スケーリング、運用のためのオープン ソー
ス プラットフォームです。
AKS: クラスターを構成するVMに課金
ACS Engine: IaaS によるコンテナー インフ
ラストラクチャー
コンテナー ベースの
マイクロサービス
Azure Service Fabric は、スケーラブルで、
信頼性のあるマイクロサービスのパッケージン
グ、展開、運用を簡素化するための、分散
システム プラットフォームです。
Mesh: PaaS/サーバーレス プラットフォーム
Cluster: クラスターを構成するVMに課金
a) コンテナー ベースの
マイクロサービス
b) プレーンなプロセスを
ベースにしたマイクロ
サービス
c) ステートフルなサービス
高い成熟度:
低い成熟度:
高い成熟度:
低い成熟度:
Azureサービス
Azure Service Fabric
(Mesh と cluster)
Service Fabric
OSS エコシステム
Microsoftのエコシステム
とOSS
Azure Kubernetes Service
(AKS)
Kubernetes
92. Power BI
Dynamics
Intune
Cortana Skype
Cosmos DB
IoT Hub
Event Hub
SQL Database
Azure
Monitor
Core Azure
Services
Archive
Storage
Visual Studio
Team Services
Stream Analytics
Azure Database
for PostgreSQL
Azure Database
for MySQL
Azure
Container
Registry
Event Grid
Azure、Microsoft サービスの基盤
Service Fabric は、ミッション クリティカルなサービス向けに設計
102. クイック スタート: Azure Portalで仮想マシン スケール セットを作成する
https://docs.microsoft.com/ja-jp/azure/virtual-machine-scale-sets/quick-create-portal
クイック スタート: Azure Kubernetes Service (AKS) クラスターのデプロイ
https://docs.microsoft.com/ja-jp/azure/aks/kubernetes-walkthrough-portal
クイック スタート: Azure Container Instances でアプリケーションを実行する
https://docs.microsoft.com/ja-jp/azure/container-instances/container-instances-quickstart-portal
クイック スタート: Service Fabric に Windows コンテナーをデプロイする
https://docs.microsoft.com/ja-jp/azure/service-fabric/service-fabric-quickstart-containers
Docsのクイック スタートで、サービスを体験!
103. © Copyright Microsoft Corporation. All rights reserved.
© 2018 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and
other product names are or may be registered trademarks and/or trademarks in the U.S.
and/or other countries.
The information herein is for informational purposes only and represents the current view
of Microsoft Corporation as of the date of this presentation. Because Microsoft must
respond to changing market conditions, it should not be interpreted to be a commitment on
the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information
provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE
INFORMATION IN THIS PRESENTATION.