64
de:code 2019 CD01 Windows Containers Azure による、 既存.NET アプリケーションのモダナイズ 日本マイクロソフト株式会社 パートナー事業本部 パートナー ソリューション プロフェッショナル 福原

CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

de:code 2019 CD01

Windows Containers と Azure による、

既存.NET アプリケーションのモダナイズ日本マイクロソフト株式会社

パートナー事業本部

パートナー ソリューション プロフェッショナル

福原 毅

Page 2: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

• Windows Containers の動向

• WindowsのDocker Engineとイメージの種類

本日の内容

Page 3: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Containersの動向

Page 4: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Containers Platform の進化

Page 5: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Containers Platform の進化

Tigera Calico for Windows の一

般提供開始

Page 6: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

迅速な変革を実現する方法

LONG-TERM SERVICING CHANNEL (LTSC)

Server Core と Nano Server

Page 7: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows のDocker Engineとイメージの種類

Page 8: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Docker コンテナーとは?

ホストOS上に配置されたライトウェートで高速に動作する分離された層

最終的にホストOS上の1プロセスとして実行されているアプリケーション

出典: Docker.inc - https://docs.docker.com/get-started/#images-and-containers

コンテナー化仮想化

Page 9: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows コンテナー イメージの構造

Page 10: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Dockerfiles: コンテナー構築のレシピ

Page 11: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

基本イメージはパブリックなレジストリDocker Hubから入手可能

https://hub.docker.com/

Page 12: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

最適なベース イメージの選択

イメージ容量 100 Mb 1.49 Gb 3.57 Gb

フレームワーク .NET Core .NET Framework Win32 API Set

ユースケース 新しいアプリ旧来のサーバー

ワークロード

DirectX, print server,

新しいアプリ体験

提供開始バージョンWindows Server

2016

Windows Server

2016

Windows Server

2019

Page 13: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

最適なベース イメージの選択

イメージ容量 100 Mb 1.49 Gb 3.57 Gb

フレームワーク .NET Core .NET Framework Win32 API Set

ユースケース 新しいアプリ旧来のサーバー

ワークロード

DirectX, print server,

新しいアプリ体験

提供開始バージョンWindows Server

2016

Windows Server

2016

Windows Server

2019

dotnet/core

microsoft/powershell

dotnet/framework

microsoft/aspnet

microsoft/iis

microsoft/wcf

(open for adoption)

Page 14: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Containersの特徴--isolation=hyperv

Page 15: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Hyper-V分離のLinux コンテナー

Moby の仮想マシンに Linux コンテナー(Docker Desktop for Windowsの場合) HYPER-V 分離 Linux コンテナー

https://docs.microsoft.com/ja-jp/virtualization/windowscontainers/deploy-containers/linux-containers

Page 16: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Hyper-V分離のLinux コンテナー専用カーネルhttps://github.com/linuxkit/lcow

Page 17: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Demo:Linux Containers on Windows

Hyper-V分離とプロセス分離の違いを

Windows Admin Centerのコンテナー拡張機能で確認

Page 18: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

• 第4回 Windows Server コンテナーと Windows Subsystem for Linuxの進化https://info.microsoft.com/JA-AzureINFRA-WBNR-FY19-11Nov-27-

WindowsServer2019FullIntroduction-MCW0009200_02OnDemandRegistration-ForminBody.html

https://azure.microsoft.com/ja-jp/overview/webinars/

200以上のオンデマンド

ウェビナーと、随時ライブ

ウェビナーを、提供中

Page 19: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

プロセス分離コンテナーの特徴

docker run --isolation=process

--device="class/{interface class GUID}“

mcr.microsoft.com/windows/servercore:1809

Device Type Interface Class GUID

GPIO 916EF1CB-8426-468D-A6F7-9AE8076881B3

I2C Bus A11EE3C6-8421-4202-A3E7-B91FF90188E4

COM Port 86E0D1E0-8089-11D0-9CE4-08003E301F73

SPI Bus DCDE6AF9-6610-4285-828F-CAAF78C424CC

DirectX GPU Acceleration 5B45201D-F2F2-4F3B-85BB-30FF1F953599

https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/hardware-devices-in-containers

Page 20: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

プロセス分離コンテナーの特徴

docker run --isolation process--device class/5B45201D-F2F2-4F3B-85BB-30FF1F953599<mcr.microsoft.com/windows:1809 以上をベースにしたコンテナー>

https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/gpu-acceleration

Page 21: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Demo:GPUを有効化したコンテナーでの、WinMLのベンチマークDirectX Container Sample:https://github.com/MicrosoftDocs/Virtualization-

Documentation/tree/live/windows-container-samples/directx

Page 22: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Dxdiag.exe で、ドライバー モデルの確認

Page 23: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

docker run --isolation process--device class/5B45201D-F2F2-4F3B-85BB-30FF1F953599winml-runner

Page 24: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Server Coreイメージと、既存 .NET Frameworkアプリケーションのモダナイズ

• Visual Studioでコンテナー化

• Azureへの展開

Page 25: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

アプリケーション最適化モデル既存のアプリケーション

(オンプレミス)

クラウド最適化

PaaS

クラウド ネイティブ

PaaS (マイクロサービス とサーバーレス)

クラウド

インフラストラクチャー対応

VMs

マネージド サービス

オンプレミス

移行 / 再ホスト

クラウド向けに設計された新規のコード

Azure

PaaS ( コンテナ化されたマイクロサービス

+ サーバーレス コンピューティング

+ マネージド サービス )+ コンテナー

IaaS (Infrastructure as a Service)

モダナイゼーション

コードの変更は最小限

クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル

Azure Azure

Page 26: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

.NETアプリのAzureへの移行パターンクラウドインフラ対応 クラウドへ最適化 クラウドへ最適化されたコンテナー

IaaS (Azure Windows Virtual Machine)

PaaS(Azure App Service)

Windows Containers(Service Fabric/mesh, AKS/ACI,

VM with Windows Containers)

✓ 設計変更や、新しいコードは不要

✓ 最小限の工数で迅速に移行

✓ オンプレミスと同様の展開モデル

✓ インフラストラクチャの運用が不要

✓ 高い可用性、スケーリングとセキュリ

ティを提供

✓ 複数バージョンの.NETをサポート

✓ CI/CDによる自動展開可能

✓ 詳細な監視、診断とデバッグ

✓ 再設計(re-architect)は不要で最小

限のコード、もしくは設定の変更のみ

✓ 自己完結のコンテナにより、展開の改

善とDevOpsの俊敏性

✓ CI/CDによる自動展開可能

✓ オーケストレーターにより、高い可用性

とスケーラビリティを提供

✓ Dockerコンテナーにより、アプリケー

ションの可搬性とマルチ クラウド対応

x 更新プログラム適用などは手作業

x スケーリングや可用性の向上も手作業

x 一部サポートされないアプリがある

x リファクタリングが必要な場合がある

x コンテナーに関する学習障壁

適切なAzure ホスティング オプションの選択: https://docs.microsoft.com/ja-jp/dotnet/azure/dotnet-howto-choose-migration

Page 27: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

移行先は、Azure App Serviceを推奨

https://docs.microsoft.com/ja-jp/dotnet/azure/dotnet-howto-choose-migration

Azure App Service

for Containers

(Public Preview)

Windows Containers

on Azure Kubernetes Service

(Public Preview)

Azure Container Instances

Page 28: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

.NETアプリをApp Serviceへ移行可能か?

.NET Web アプリまたはサービスを Azure App Service に移行する際の考慮事項: https://go.microsoft.com/fwlink/?linkid=862532

互換性チェックリスト

80 (Http) もしくは443 (Https)ポートへのバインドの確認

匿名とフォーム認証サポートの有無。AADもしくはADFS + VPNによるWindows認証か

GAC (Global Assembly Cache) を利用していないこと

1サイト当たり、1アプリケーションプールか

IIS7以降のスキーマに準拠しているか

COM/COM+ コンポーネントを利用していないか

物理ディレクトリ参照の有無。ファイルアクセスの代替はBlobストレージを利用

オンプレミスリソースへのアクセスは、移行や変更が必要の可能性あり

SQL Server, Oracle, MySQL データベース

ISAPI Filters DLL(s)は、web.configを使って登録、ローカルへ展開する

Page 29: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

移行シナリオ: 既存ASP.NET Webアプリのコンテナ化ブラウザ上のMVC

アプリ

SQL Server

Windows Container

A. HTTP

Docker ホスト (PC 上の開発環境) Windows 10 以降

Docker Desktop for Windows

Mock data

(*) SQL Serverのコンテナーは、開発/テスト

環境向けです。

本番環境では、Azure SQL Databaseのよ

うな高可用性システムへ移行してください。

eShopProductCatalog database

ブラウザ上のWeb

フォームアプリ

B. HTTP

Mock

data

ASP.NET (.NET Framework)

Windows Server Core Containers

(*)

https://github.com/dotnet-architecture/eShopModernizing

Page 30: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Demo:Visual Studio 2019による.NETアプリのコンテナー化

Page 31: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Visual Studio (Windows)

Visual Studio for Mac

Visual Studio Code (クロスプラットフォーム)

Support for:

- Docker - Windows コンテナー

- Docker - Linux コンテナー

- マルチコンテナーのアプリケーション デバッグ

による、

既存アプリのコンテナ化

Page 32: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード
Page 33: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード
Page 34: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Server Coreイメージと、既存 .NET Frameworkアプリケーションのモダナイズ

• Visual Studioでコンテナー化

• Azureへの展開

Page 35: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

移行シナリオ: レジストリ経由でAzure VMへ展開

テスト環境用仮想マシンWindows Server 2016 以降の Docker Engine

Docker engine と

Docker CLI

docker pull

PC 上の開発環境Windows 10 以降のDocker for Windows

Windows Server Core Container上の

ASP.NET (.NET Framework)

Windows Server Core Container上の

SQL Server

Docker engine と

Docker CLI

ローカルの

Docker イメージ

レポジトリー

docker push

Container Registry

Docker Hub

もしくは

Azure Container Registry

docker-compose buildor

docker build (*) SQL Serverのコンテナーは、開発/テスト環境向けです。

本番環境では、Azure SQL Databaseのような高可用性システムへ移行してください。

(*)

Docker-compose up

ローカルの

Docker イメージ

レポジトリー

Page 36: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Demo:Visual Studio 2019から、Azure Container Registryへの発行

Page 37: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Containers の展開先

Azure Container Instances (ACI)

Azure Virtual Machine ( Windows Server 2016/2019 )

Docker Engine

Azure App Service(Windows Containers対応はプレビュー)

Azure Kubernetes Service(Windows Containers対応はプレビュー)

Service Fabric (Mesh or cluster)(Service Fabric meshはプレビュー)

Page 38: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

移行シナリオ: レジストリ経由でACIへ展開

Azure Container Instances

(ACI)

PC 上の開発環境Windows 10 以降のDocker for Windows

Windows Server Core Container上の

ASP.NET (.NET Framework)

Windows Server Core Container上の

SQL Server

Docker engine and

Docker CLI

ローカルの

Docker イメージ

レポジトリー

docker push

Docker Registry

Docker Hub

もしくは

Azure Container Registry

docker-compose buildor

docker build

パブリックIP

と DNS名

エンドポイント

Azure Cloud Shell と

Azure CLI コマンド

もしくは、Azure Portal

(*) SQL Serverのコンテナーは、開発/テスト環境向けです。

本番環境では、Azure SQL Databaseのような高可用性システムへ移行し

てください。

(*)

Page 39: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Azure Container Registry ( ACR )

使い慣れた、オープンソースの

Docker CLIツール

Azure Container Registryの

geoレプリケーション

すべてのタイプの

コンテナー イメージを管理

Page 40: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Demo:Azure Container Registryから、Azure Container Instancesへの発行

Page 41: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

実運用環境での要件

Azure SQL Database

もしくは、

Azure SQL Database Managed Instance

もしくは

オンプレミスのSQL Server クラスター

✓高可用性

✓PaaS サービス

Windows Server Core Container上の

SQL Server

Windows コンテナーのスケールアウトを簡素化するには?かつ、IaaS/VM の運用をなくすには?

DataCompute

✓コンテナー用の

コンピュート サービスの管理

✓スケール アウト

Page 42: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Containers の展開先

Azure Container Instances (ACI)

Azure Virtual Machine ( Windows Server 2016/2019 )

Docker Engine

Azure App Service(Windows Containers対応はプレビュー)

Azure Kubernetes Service(Windows Containers対応はプレビュー)

Service Fabric (Mesh or cluster)(Service Fabric meshはプレビュー)

Page 43: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

移行シナリオ: Web App for Containersへの展開

Web App for Containers(Windows Containersサポート)

PC上の開発環境Windows 10

Docker for Windows

Windows Server Core Container上の

ASP.NET (.NET Framework)

Windows Server Core Container上の

SQL Server

Docker engine and

Docker CLI

ローカルの

Docker イメージ

レポジトリー

docker push

Docker Registry

Docker Hub

もしくは

Azure Container Registry

docker-compose buildor

docker build

スケールアウト コンテナーAzure SQL Database

(*) Visual Studio Tooling coming soon for App Service and Windows Containers

https://azure.microsoft.com/en-us/blog/announcing-the-public-preview-of-windows-container-support-in-azure-app-service/

Page 44: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Demo:Azure Container Registryから、Web App for Containerへの発行

Page 45: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Azure App Service でのWindows コンテナーに対するWindows Server 2019 のサポート開始 (2019年4月3日)

https://azure.microsoft.com/ja-jp/blog/windows-server-2019-support-now-available-for-windows-containers-on-azure-app-service/

お試しの際には、バージョンとリージョンにご注意を!

Page 46: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Windows Containers の展開先

Azure Container Instances (ACI)

Azure Virtual Machine ( Windows Server 2016/2019 )

Docker Engine

Azure App Service(Windows Containers対応はプレビュー)

Azure Kubernetes Service(Windows Containers対応はプレビュー)

Service Fabric (Mesh or cluster)(Service Fabric meshはプレビュー)

Page 47: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Azureでのオーケストレーターの選択肢オーケスト

レーター内容 適用領域

一般的な

ワークロード

Service Fabric

Azure Service Fabric は、スケーラブルで、信頼性のあるマイクロサービスのパッケージン

グ、展開、運用を簡素化するための、分散

システム プラットフォームです。

Mesh: PaaS/サーバーレス プラットフォーム

Microsoftの

エコシステムとOSS

高い成熟度:

低い成熟度:

a) コンテナー ベース

のマイクロサービス

b) プレーンなプロセ

スをベースにした

マイクロサービス

c) ステートフルなサー

ビス

Kubernetes

Cluster: クラスターを構成するVMに課金

Kubernetes は、複数ホストのクラスター上

のアプリケーション コンテナーの、自動展開、

自動スケーリング、運用のためのオープン

ソース プラットフォームです。

AKS: クラスターを構成するVMに課金

(AKS Engine: IaaS によるコンテナー イン

フラストラクチャー)

OSS エコシステム

高い成熟度:

低い成熟度:

コンテナー ベースの

マイクロサービス

Azureサービス

Azure

Service Fabric

(Mesh と cluster)

Azure

Kubernetes

Service

(AKS)

Page 48: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード
Page 49: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード
Page 50: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

シナリオ: Azure Service Fabric Meshへの展開

Azure Service Fabric meshPC上の開発環境

Windows 10

Docker for Windows

Windows Server Core Container上の

ASP.NET (.NET Framework)

Windows Server Core Container上の

SQL Server

Docker engine と

Docker CLI

ローカルの

Docker イメージ

レポジトリー

docker push

Docker Registry

Docker Hub

もしくは

Azure Container Registry

docker-compose buildor

docker build

• Azure CLI in PowerShell or CMD

• Azure Cloud Shell

パブリック IP

パブリック

エンドポイント

(*) SQL Serverのコンテナーは、開発/テスト環境向けです。

本番環境では、Azure SQL Databaseのような高可用性システムへ移行してください。

(*)

Network(Ingress

Reverse

Proxy)

HTTP ポート

その他ポート

スケールアウト コンテナー

> az sbz deployment create

https://azure.microsoft.com/en-us/blog/azure-service-fabric-mesh-is-now-in-public-preview/

Page 51: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Service Fabric コンテナー サポートのロードマップ

Page 52: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Service Fabric Mesh プレビュー

Service Fabric リソース モデル Spring 2019 Refresh リリース

Page 53: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Azure Kubernetes Service でのWindows Serverコンテナー サポートのプレビューのお知らせ (2019年5月17日)

https://azure.microsoft.com/ja-jp/blog/announcing-the-preview-of-windows-server-containers-support-in-azure-kubernetes-service/

Page 54: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

AKSのWindowsコンテナー サポート:パブリック プレビュー中

kubectl apply -f sample.yaml

Page 55: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

Demo:Azure Kubernetes ServiceでのWindows Server Containers

Page 56: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

シナリオ: CI/CDパイプラインで、ビルドと展開を自動化

開発環境

繰り返し

1.

Build, CI

3.

Azure Pipeline

コーディング、

実行、

デバッグ

Application

code repo

(SCC)

Code

Push

2.

git push

Docker Hub もしくはAzure Container RegistryDocker

registry

docker push

Custom

Image

5. 展開先の選択肢

Azure Container

Instances (ACI)

Azure VMWindows Server 2016/2019

Docker Engine

Azure App Service(Windows Containers対応はプレビュー)

Azure Kubernetes

Service(Windows Containers対応はプレビュー)

Azure Service Fabric

(Mesh or cluster)(Service Fabric meshはプレビュー)

CD, deploy

4.

Azure Pipeline

(*) SQL Serverのコンテナーは、開発/テスト環境向けです。

本番環境では、Azure SQL Databaseのような高可用性システムへ移行してください。

(*)

(*)

Page 57: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

コンテナー利用時のAzure サービスの選択Azure

Virtual

Machines

Azure

Container

Instances

Azure App

Service for

Container

Azure

Kubernetes

Service

Azure

Service

Fabric

(Mesh)

Azure

Functions

Azure Batch

Webアプリ

(モノリシック

アーキテクチャ)

N階層アプリ

(疎結合な

サービス)

クラウド ネイティブ

(マイクロサービス

アーキテクチャ)

バッチ / ジョブ

(バックグラウンド

タスク)

推奨 可能

アプリケーション

アーキテクチャ

(*) Dev/Test/QAやVirtual Kubeletのような

製品のインフラなど、特定のシナリオのみ

(*)

(*)

(*)

既存.NETアプリをモダナイズする場合のAzureサービス

推奨

Azure

イベントドリブン

を推奨

アプリケーションの

バックグラウンド

タスクで推奨

大規模 バッチで

推奨

推奨

推奨

推奨

Page 58: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

コンテナー利用時のAzure サービスの選択

(*)

(*)

(*)

Page 59: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

1)レガシーシステム

2)レガシー システムを、クラウドに最適化されたプラットフォームへ移行

3)新しいマイクロサービスやPaaS (サーバーレス) を追加

4)システムをマイクロサービスやPaaS (サーバーレス)へ分割

5)システムがクラウド ネイティブへ移行

クラウドネイティブ ( マイクロサービスとサーバーレス )への道筋

Page 60: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

まとめ

Azureは、従来型の.NET Framework アプリケーションを

モダナイズするベストなWindows Containers Platformを提供

適切なWindows Containers ベース イメージとツールを選択し、

小さく始めて、継続的にモダナイズを進める

スケーラビリティと回復性を備えた実行環境を選択可能

Page 61: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

明日(5月30日)の関連セッション

5月30日 9:30 – 10:20 / 10:50 – 11:40 @ Room A

DT07 .NETとクラウド ネイティブ

~ 本格化するクラウド移行とそのアーキテクチャ (前編/後編)

5月30日 13:30 – 14:20 @ Room J

DT52 ベテラン技術者に聞く、

「その.NETアプリ、クラウドでどうモダナイズするの!?」

Page 62: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

.NET アプリケーション アーキテクチャwww.dot.net/architecture

Page 63: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

無償のeBooks

https://aka.ms/azuredevebook https://aka.ms/modernizeappebook https://aka.ms/microservicesebook

Michael Crump

Barry Luijbregts

Page 64: CD01 Windows Containers とAzure による、 · フレームワーク .NET Core .NET Framework Win32 API Set ユースケース 新しいアプリ 旧来のサーバー ワークロード

© 2018 Microsoft Corporation. All rights reserved.

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

© 2019 Microsoft Corporation. All rights reserved.

本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。

本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。