SlideShare a Scribd company logo
1 of 102
Azure
2019年6月27日
(13:30-15:00)
クラウド ネイティブ時代の.NETアプリケーション
~本格化するクラウド移行とそのアーキテクチャ~
福原 毅
パートナー ソリューション プロフェッショナル
パートナー事業本部
日本マイクロソフト株式会社
.NET アプリケーションの最適化
Hidden Slide
ご注意:
本スライドは、2019年6月27日午後に開催した「クラウドネイティブ時代の.NETアプリケーション ~本格化するクラウド移行とそ
のアーキテクチャ~」の1つ目のセッションのスライドです。スライド(PDF)は、http://aka.ms/dotnet0627pm よりZIPファイルをダ
ウンロードしてください。また、その他のセッション動画は、以下より参照可能です。
• Part 1/3 「.NET アプリケーションの最適化」: 動画(YouTube)
• Part 2/3 「データベースの選択肢 – Azure Data Services - 」 動画(YouTube)
• Part 3/3 「開発生産性を上げる – Azure DevOps -」 動画(YouTube)
また、MPN ( Microsoft Partner Network ) 参加パートナーの皆様向けに実施したAzureセミナーの一部の 再生リスト
(YouTube) を公開しています。適宜、ご活用ください。
なお、本スライドは、作成日時点の情報です。製品リリース予定やサービス仕様等の情報は予告なく変更される場合がありま
す。必要に応じて、 https://docs.microsoft.com/ja-jp/azure/ を参照し、各サービスの詳細、および最新情報をご確認ください。
資料中の参考価格は対象製品・サービスのみの価格例であり、実際の構成により他製品・サービスの費用も別途必要となる
場合があります。実構成にあわせて詳細価格の見積を取得し、ご確認ください。
!
アジェンダ
.NET アプリケーションの最適化モデル
クラウド 最適化 ( Cloud-Optimized )
•既存.NETコードをAzure PaaSへ持ち込む
•既存.NETコードをコンテナー化して持ち込む
クラウド ネイティブ ( Cloud-Native )
Appendix: 学習リソース
Azureとは
Microsoft Azureは、ビジネス上の課題への対応
を支援するために絶えず拡大を続けるクラウド サー
ビスの集合体です。世界規模の巨大なネットワー
クに対し、お気に入りのツールやフレームワークを
使ってアプリケーションを自在に構築、管理、
デプロイすることができます。
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 / Bots
API
Apps
Apprenda、Cloud Foundry
Jelastic、Marathon、OpenShift
インフラ
IaaS / IaaS+
汎用コンピュー
ティング PaaS
用途特化型
コンピューティング
PaaS
クラスター
オーケストレーション
Function
Apps
Containers
他
Azure
コンピューティング
サービスの選択
https://docs.microsoft.com/ja-
jp/azure/architecture/guide/technolo
gy-choices/compute-decision-tree
アプリケーション プラットフォーム の “変革”
最新化には複数の経路がある。どこから始めてもOK
アプローチ
内容
ポイント
再ホスト リアーキテクト リビルドリファクタリング
アプリケーションをそのままクラウド
へ再配置
実質的に変更 / アプリケー
ションをサービスへ分解
クラウド ネイティブなアプ
ローチで新しいコーディング
クラウドのメリットを享受するた
めに最小限の変更
• 平均で、TCOを約 30%
削減
PaaS : 466% ROI, 80% time saved, 5.91 M ROI, 50% faster
deployments
コンテナー : 13X more releases, 10X Cost Reduction, 65% Faster
developer onboarding, 62% better availability
• 設備投資の削減
• データセンタースペースの開放
• クラウドによる投資回収の迅
速化
• ハイパースケール
• アプリの一部を個別に拡
張、展開
• テクノロジー スタックの混合
• 変革の加速
• TCOの削減
• より迅速な開発
• より早く、より短い更新
• コードの可搬性
• 優れたクラウドの効率
(リソース、速度、費用)
理由
• IaaS (VMs) • コンテナー
• PaaS
• マイクロサービス基盤
• PaaS
• サーバーレス
• コンテナー
• PaaS技術
移行 モダナイゼーション と 変革
Statistics based on five-year, risk-adjusted figures for a composite organization constructed from aggregated interviews with eight Microsoft Azure IaaS customers.
Source: “The Total Economic Impact Of Microsoft Azure PaaS,” a commissioned study conducted by Forrester Consulting, June 2016
.NETアプリケーション最適化モデル
既存のアプリケーション
.NET Webアプリ (オンプレミス)
クラウド最適化
PaaS
クラウド ネイティブ
PaaS (マイクロサービス とサーバーレス)
クラウド
インフラストラクチャー対応
Relational
Database
VMs
マネージド サービス
オンプレミス
移行 / 再ホスト
クラウド向けに設計された新規のコード
Azure
PaaS ( コンテナ化されたマイクロサービス
+ サーバーレス コンピューティング
+ マネージド サービス )+ Windows コンテナー
IaaS
(Infrastructure as a Service)
モダナイゼーション
コードの変更は最小限
クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル
Azure Azure
.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
アジェンダ
.NET アプリケーションの最適化モデル
クラウド 最適化 ( Cloud-Optimized )
•既存.NETコードをAzure PaaSへ持ち込む
•既存.NETコードをコンテナー化して持ち込む
クラウド ネイティブ ( Cloud-Native )
既存のアプリケーション
.NET Webアプリ (オンプレミス)
クラウド最適化
PaaS
クラウド ネイティブ
PaaS (マイクロサービス とサーバーレス)
クラウド
インフラストラクチャー対応
Relational
Database
VMs
マネージド サービス
オンプレミス
クラウド向けに設計された新規のコード
Azure
PaaS ( コンテナ化されたマイクロサービス
+ サーバーレス コンピューティング
+ マネージド サービス )+ Windows コンテナー
IaaS
(Infrastructure as a Service)
コードの変更は最小限
クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル
Azure Azure
PaaSを利用した
既存.NETアプリの
クラウド最適化
移行 / 再ホスト モダナイゼーション
.NETアプリケーション最適化モデル
クラウド 最適化 ( Cloud-Optimized )
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 / Bots
API
Apps
Apprenda、Cloud Foundry
Jelastic、Marathon、OpenShift
インフラ
IaaS / IaaS+
汎用コンピュー
ティング PaaS
用途特化型
コンピューティング
PaaS
クラスター
オーケストレーション
Function
Apps
Containers
他
.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
重くのしかかる運用コスト
本当に必要なことに十分な時間がとれていますか?
例えば顧客体験の向上とか
災害対策(DR)、冗長化対策、高負荷対策、
CI/CD、セキュリティ対策
ITトレンドの変化、人材不足
IaaS と PaaSの位置づけ
ストレージ
サーバー
ネットワーク
OS
ミドルウエア
仮想化
データ
アプリケーション
ランタイム
OS
ミドルウエア
データ
アプリケーション
ランタイム
ユ
ー
ザ
ー
管
理
アプリケーション
データ
ベ
ン
ダ
ー
管
理
Microsoft Azure 仮想マシン
Windows Server Hyper-V
Windows Server Microsoft Azure
App Service
Office 365
Dynamics 365
ベ
ン
ダ
ー
管
理
ユ
ー
ザ
ー
管
理
ユ
ー
ザ
ー
管
理
ベ
ン
ダ
ー
管
理
インフラの効率化から、アプリケーションのイノベーションへビジネス価値
時間
効率
イノベーション
PaaS
IaaS
サーバーレス
466% return on investment
$5.91M net present value
80% IT time saved
50% faster service deployment
Statistics based on five-year, risk-adjusted figures for a composite organization constructed from aggregated interviews with eight Microsoft Azure IaaS customers.
Source: “The Total Economic Impact Of Microsoft Azure PaaS,” a commissioned study conducted by Forrester Consulting, June 2016
App Service とは
クラウドアプリを作成/ホストするための PaaS
仮想マシン (IaaS )と比較して…
実行環境が提供されるので開発に集中することができる。
• 環境構築作業の軽減
• インフラ部分の管理が不要
• 仮想マシンよりも安価
Azure App Service
End-to-end のアプリケーション PaaS プラットフォーム
App Service
App Service のメリット
• NET, PHP, Python, Node,
Java, Framework インストラー
• リモートデバッグ
• DevOps
• ステージングデプロイのためのサイ
トスロット
• サイトエクステンションギャラリー
• ブラウザーベースのエディタ
• Kudu
• など
Web Apps API Apps
• スケールアップ、スケールアウト
• オートスケール
• WW のデーターセンター
• OS と Framework
• ロードバランサー
• モニタリング&アラート
• Web ジョブ(WebJobs)
• など
• Enterprise グレードの SLA
• セキュリティとコンプライアンス
• ロールベースアクセスコントロール
• バックアップスケジュール
• カスタムドメイン、SSL証明書
• Azure Active Directory 統合
• オンプレミス統合 VNET統合/ハ
イブリッド接続
• App Service Environment
• など
Logic AppsFunctions Containers
トラフィックなどのワークロードに応じるスケール機能。さらに、自動スケール。
スロット機能を使って、ブルーグリーンデプロイメント。
Azure App Service の PaaS ならではの機能
朝 昼 夜
システム
負荷
OFF OFF
OFFOFF
¥ ¥
起動時間のみ課金
スライダーのような UI でインスタンス数を変更
https://helloappsvc.azurewebsites.net
https://helloappsvc-staging.azurewebsites.net
App ver1
App ver2
App Service Plan
Webアプリケーション: 基本
デプロイメントスロットの推奨事項
App Serviceへの移行: Visual Studioの利用
• 既存のWebアプリを開く
• アプリケーションを実行
• Azure Web appを作成
完了すると、既存のWebアプリを展開したAzure Web
Appと、App Service プランを含むリソース グループ作成
できます。
Azure SQL インスタンスへこのアプリを接続する方法を学
べる選択肢も提示されます。
http://Aka.ms/aspmigrate
https://aka.ms/mspnp
App Service
Webアプリケーションhttps://docs.microsoft.com/ja-jp/azure/architecture/reference-architectures/#web-applications
Webアプリケーション: 基本
App Service上のWebアプリの認証と認可
https://docs.microsoft.com/ja-jp/azure/app-service/overview-authentication-authorization
アプリケーションのコードと同じサンドボックスで実行。 有効な場合、すべての受信 HTTP 要求
は、アプリケーション コードによって処理される前に、認証と認可のモジュールを通過。
Webアプリケーション: スケーラビリティの向上
Webアプリケーション: 複数リージョン
僅か数クリックでASP.NET Webサイトをアセスメント
Azure App Serviceへの移行準備の内容を識別し、以下のIISサーバーの情報をスキャン
• IISサーバー上で実行されているWebサイト
• それぞれのサイトのアプリケーションと
仮想ディレクトリの構成
• サイトが利用しているアプリケーションプールと、
それらの設定内容
• そのサイトが利用している
HTTPとHTTPSのバインド
• web.configのデータベースの定義と、
connectionStringの属性
http://aka.ms/appservicemigration
App Serviceへの移行: App Service Migration Assistance
.NETアプリをApp Serviceへ移行可能か?
互換性チェックリスト
 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を使って登録、ローカルへ展開する
.NET Web アプリまたはサービスを Azure App Service に移行する際の考慮事項: https://go.microsoft.com/fwlink/?linkid=862532
互換性チェックに失敗した場合、どうするか?
リファクタリングできますか? いいえ
なぜ? GAC (Global Assembly Cache)やカスタムMSI、より多くの.NET Framework APIが必要です。
推奨事項: Service Fabric上の、Windows コンテナの利用を検討
近い将来: App Service上の、Windowsコンテナ – パブリック プレビュー
なぜ? 高い拡張性や分離性を必要とする、もしくは、多くのメモリーを消費します。
推奨事項: App Service Environments (Premium Service) の利用を検討
要件に合わせたApp Serviceの提供形態
クラウド上へ数秒でAPIアプリ、
Mobileアプリ、もしくはWebアプリを
作成。あなたのアプリケーションのコー
ドを実行するためのインフラを提供
ネットワーク分離、より高いスケール、
およびローカルvNETへのセキュアな接
続を提供する、専用のクラウド環境
クラウドの革新を、オンプレミスのインフ
ラへ拡張。Azure Stack上のApp
Serviceは、Azure Appサービスのパ
ワーを、あなたのデータセンターへ提供
コンプライアンス準拠とネットワーク分離に対応するASE
アプリを利用するユーザーへのアクセスを
ロックダウン
高いアプリケーションセキュリティのための、
Web Application Firewall 仮想デバイス
Traffic Managerが負荷を地理分散
地理分散したILB ASE
Azure Virtual Network
ILB
App Service
Environment
Web apps
WAF
Azure Virtual Network
API apps
App Service
Environment
Web apps
ILB
WAF
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
移行先は、Azure App Serviceを推奨
データベース アクセス
• App Serviceとデータベース サーバーは同じマシン上にはないため、効率の悪いトランザクション(トランザクションごと
に、login処理が行われるなど)の影響が顕著。
• 最小の接続を保持する、クエリーの結果セットの量を抑えるなどの対策を行う。
https://docs.microsoft.com/ja-jp/azure/app-service/troubleshoot-performance-degradation
ソケット リソースの枯渇
• ポートは限りある資源のため、枯渇すると外部との通信ができない。https://docs.microsoft.com/ja-
jp/azure/app-service/app-service-best-practices#socketresources
• Azure Web App sandbox https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox
App Service でよくある課題
Azure PaaSをより活用したい場合
【mstep online】 Microsoft Azure PaaSアプリ開発 (2018 年 6 月)
https://note.microsoft.com/JA-PRM-WBNR-FY18-06JUN-21-msteponlineMicrosoftAzurePaaS20186-MPW0005636_Registration.html
コースの目標
• Microsoft Azure が提供する主要な PaaS
サービスを把握し、システム構築に必要な
サービスを選択できる
• Microsoft Azure App Service を利用したアプリの開発方法を習得する
• Microsoft Azure の様々なデータ サービスにデータを保存する方法を習得する
• Visual Studio Team Service を利用したソースコード管理と、デプロイメント方法を習得する
• Application Insight を利用したアプリケーションの監視方法を習得する
[アジェンダ]
第 1 章 Microsoft Azureサービス概要
第 2 章 データとストレージへのアクセス
第 3 章 Visual Studioを利用したMicrosoft Azureアプリの開発
第 4 章 Microsoft AzureとDevOps
参 考 Microsoft Azure IoT Suite
アジェンダ
.NET アプリケーションの最適化モデル
クラウド 最適化 ( Cloud-Optimized )
•既存.NETコードをAzure PaaSへ持ち込む
•既存.NETコードをコンテナー化して持ち込む
クラウド ネイティブ ( Cloud-Native )
.NETアプリケーション最適化モデル
クラウド 最適化 ( Cloud-Optimized: Windows Containers )
既存のアプリケーション
.NET Webアプリ (オンプレミス)
クラウド最適化
PaaS
クラウド ネイティブ
PaaS (マイクロサービス とサーバーレス)
クラウド
インフラストラクチャー対応
Relational
Database
VMs
マネージド サービス
オンプレミス Azure
PaaS ( コンテナ化されたマイクロサービス
+ サーバーレス コンピューティング
+ マネージド サービス )+ Windows コンテナー
IaaS
(Infrastructure as a Service)
Azure Azure
Windows Container
を利用した既存.NET
アプリのクラウド最適化
クラウド向けに設計された新規のコードコードの変更は最小限
クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル
移行 / 再ホスト モダナイゼーション
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 / Bots
API
Apps
Apprenda、Cloud Foundry
Jelastic、Marathon、OpenShift
インフラ
IaaS / IaaS+
汎用コンピュー
ティング PaaS
用途特化型
コンピューティング
PaaS
クラスター
オーケストレーション
Function
Apps
Containers
他
.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
ホストOS上に配置されたライトウェートで高速に動作する分離された層
最終的にホストOS上の1プロセスとして実行されているアプリケーション
Docker コンテナーとは?
出典: Docker.inc - https://docs.docker.com/get-started/#images-and-containers
コンテナー化仮想化
最適なベース イメージの選択
イメージ容量 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
イメージ容量 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)
最適なベース イメージの選択
Windows Server コンテナー 関連ストリーミング
Microsoft de:code 2019 (2019年5月29日15:10 – 16:00)
「Windows ContainersとAzureによる、既存.NETアプリケーション
のモダナイズ」
https://www.microsoft.com/ja-
jp/events/decode/2019session/detail.aspx?sid=CD01
Azure ウェビナー (2018年11月27日16:30 – 17:30)
「Windows ServerコンテナーとWindows Subsystem for Linuxの
進化」
https://info.microsoft.com/JA-AzureINFRA-WBNR-FY19-
11Nov-27-WindowsServer2019FullIntroduction-
MCW0009200_01Registration-ForminBody.html
※ 視聴、およびスライド(PDF)の入手には、いずれも、ユーザー登録が必要です。
シナリオ1: 既存ASP.NET Webアプリのコンテナ化
ブラウザ上のMVC
アプリ SQL Server
Windows Container
HTTP
Docker ホスト (PC 上の開発環境)
Windows 10 以降
Docker for Windows
Mock
data
(*) SQL Serverのコンテナーは、開発/テスト環境向けです。
本番環境では、Azure SQL Databaseのような高可用性
システムへ移行してください。
eShop
Product
Catalog
database
(*)
Visual Studio (Windows)
Visual Studio for Mac
Visual Studio Code (クロスプラットフォーム)
Support for:
- Docker - Windows コンテナー
- Docker - Linux コンテナー
- docker-compose への展開を統合
- マルチコンテナーのアプリケーション デバッグ
による、
既存アプリのコンテナ化
シナリオ2: Dockerレジストリ経由で、Azure VM ( Windows Server 2019 ) を展開
テスト環境用仮想マシン
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 build
or
docker build (*) SQL Serverのコンテナーは、開発/テスト環境向けです。
本番環境では、Azure SQL Databaseのような高可用性システムへ移行してください。
(*)
Docker-compose up
ローカルの
Docker イメージ
レポジトリー
シナリオ3: Dockerレジストリ経由で、Azure Container Instance (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 build
or
docker build
パブリックIP
と DNS名
エンドポイント
Azure Cloud Shell と
Azure CLI コマンド
もしくは、Azure Portal
(*) SQL Serverのコンテナーは、開発/テスト環境向けです。
本番環境では、Azure SQL Databaseのような高可用性システムへ移行し
てください。
(*)
New! (GA)
Windows Container (and Linux)
Support in ACI
Azure Container Instances の料金
高速起動、秒単位課金の威力
NEW! : 2019.04
実質、35% ~ 50%の値下げ
• 100 instance
• 300 sec = 5 min
• Memory 2 GB
• vCPU x 1
https://azure.microsoft.com/en-us/updates/price-reductions-for-azure-container-instances-are-now-available/
Azure Container Instances の価格
https://azure.microsoft.com/ja-jp/pricing/details/container-instances/
※ 月間稼働率 < 99.9%の場合10%、< 99%の場合25%のサービスクレジットを適用
コンテナー 展開先の選択肢
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はプレビュー)
実運用環境での要件
Azure SQL Database
もしくは、
Azure SQL Database Managed Instance
もしくは
オンプレミスのSQL Server クラスター
✓ 高可用性
✓ PaaS サービス
Windows Server Core Container上の
SQL Server
Windows コンテナーのスケールアウトを簡素化するには?
かつ、IaaS/VM の運用をなくすには?
DataCompute
✓ コンテナー用のコンピュート サービスの管理
✓ スケール アウト
Azure App Service 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 build
or
docker build
(パブリック プレビュー)
Windows Containers
PaaS
スケールアウト コンテナー
Azure SQL Databas
(*) 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/
シナリオ6: Azure App Service for Windows コンテナ (プレビュー) への展開
Azure App Service での Windows コンテナーに対する
Windows Server 2019 のサポート開始
https://azure.microsoft.com/ja-jp/blog/windows-server-2019-support-now-available-for-windows-containers-on-azure-app-service/
お試しの際にはバージョンとリージョンにご注意を!
シナリオ5: Azure Service Fabric Cluster / Mesh への展開
Azure Service Fabric Cluster
( Mesh はPreview )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
Docker Registry
Docker Hub
もしくは
Azure Container Registry
docker-compose build
or
docker build
パブリック IP
パブリック
エンドポイント
(*) SQL Serverのコンテナーは、開発/テスト環境向けです。
本番環境では、Azure SQL Databaseのような高可用性システムへ移行してください。
Network
(Ingress
Reverse
Proxy)
HTTP ポート
その他ポート
スケールアウト コンテナー
https://azure.microsoft.com/en-us/blog/azure-service-fabric-mesh-is-now-in-public-preview/
Windows
Services
IIS Website
WCF Web
Services
レガシー アプリケーション スタック
Data Migration Serviceや
SQL Managed Instanceを使ったデータ移行
Windows
Services
IIS Website
WCF Web
Services
レガシー アプリケーション
のコンテナー
コンテナーを使ったアプリケーションのモダナイズ
Azure Container
Registry
Service Fabric で .NET アプリケーションをモダナイズ
Azure Service Fabricでアプリケーションをモダナイズ
https://docs.microsoft.com/ja-jp/azure/architecture/service-fabric/modernize-app-azure-service-fabric
メリット: DevOpsへの対応、コンピューティング リソースの最適化 (VMよりも有効
活用)、マイクロソフトの一貫したサポート、豊富な事例
Service Fabric のコンテナー サポートへの移行に適したアプリケーション
• データベースに依存しない HTTP/HTTPS Web およびアプリケーション層
(DBや、Windows Server Active Directoryなどは、Service Fabric クラスターの外部に存在することが前提)
• ステートレス Web アプリケーション
• .NET Framework バージョン 3.5 以降でビルド
• ハードウェアに依存するアプリや、デバイス ドライバーにアクセスするアプリは不可
• アプリケーションは、Windows Server 2016 以降のバージョン
• .NET アセンブリ、WCF、COM+ など、ほとんどの依存するコンポーネントをコンテナー化 (MSMQはプレビュー)
• アプリケーションは Visual Studio でコンパイルおよびビルド
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)
構成とオーケストレーション
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/ より抜粋)
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/
※ Windows Server コンテナー サポートを有効にする場合、同時に、複数ノードプール ( 2019/05/06 Preview ) と、VMSSサポート ( プ
レビュー )が有効になります。
Service Fabric を選択する理由
完全に統合され、堅牢で、
サポートされたプラットフォーム
一貫したサポートで、
AzureもService Fabric上で稼働
• Service Fabric は、マイクロソフト
が磨き抜いたWindowsとLinux
で利用可能なオープン ソース プ
ラットフォーム
• ロックインされずに、世界クラスの、
実績があり、サポートされたプラッ
トフォームを求めている企業に最
適
1つのプラットフォームで、
モダナイゼーションのニーズに対応
1つの技術で、CaaS, PaaS
および SaaS のすべてを提供
• 1つの強力なプラットフォームで、コ
ンテナーと実行可能ファイルの両
方を混在させたアプリケーションを、
リファクタリング、リアーキテクト、も
しくはリビルド
• レガシ環境で実行されているアプ
リケーションを容易に最新化する
と同時に、フォールト トレランスと
高可用性を確保
• VM と比較して 80% 以上の使
用率の削減を実現
ビジネスの変革を実現
ミッションクリティカルな
アプリケーションの構築と運用
• ステートレスとステートフルのマイク
ロサービスアーキテクチャを構築す
るために、ゼロから設計
• AI、IoT、ゲーム、取引のアプリ
ケーションに最適なプラットフォーム
• ローカルのトランザクション データを
格納する、高スループットおよび
低遅延のワークロードをサポート
グローバル規模のサービス
を運用するように設計
信頼性のあるアップグレードと、
需要に応じたスケーリング
• CI/CD ツールとヘルスチェックを使
用した詳細で完全に一貫性のあ
るバージョン管理されたアプリケー
ションのアップグレードにより、アッ
プグレード中でも最大の稼働時
間を確保
• さまざまな種類のソフトウェアと
ハードウェアの同時障害に耐え、
可用性ゾーンをサポートし、Azure
インフラストラクチャレベルの変更
イベントと統合
• 需要に基づいて本番ワークロード
を自動スケール
AzureやMicrosoftのサービスで、実証済みのプラットフォーム
Service Fabric
CortanaやSkype、Cosmos DBと
いったグローバル サービス実行の、
Microsoft での実績
Service Fabric は、これらのサービ
スとAzureのコアとなるインフラを支
える基本技術
これらのサービスのうちの一例:
100万のデータベースで、1日600億
イベントを処理
SQL
{ }Power BI
Dynamics
Intune
Cortana Skype
Cosmos DB
IoT Hub
Events Hub
SQL Database
全ての規模のお客様での実績
Service Fabric
Service Fabric は、オープン ソース
Service Fabric
Runtime
完全なランタイムと、Windows
もしくはLinuxへ展開可能なバー
ジョンを作成するためのビルド
ツール
(https://github.com/Micros
oft/service-fabric)
Service Fabric
Explorer Tool
生産性の高いマイクロサービスの
プログラミング モデル
(https://github.com/Micros
oft/service-fabric-services-
and-actors-dotnet)
Reliable Actors and Reliable
Services programming models
クラスター管理ツール
(https://github.com/Micr
osoft/service-fabric-
explorer)
ランタイムのインストールなしに、
Service Fabric クラスターとアプ
リケーションを管理
(https://github.com/Micros
oft/service-fabric-client-
dotnet)
Service Fabric
client library
More Service Fabric repos on github
Service Fabricはオープン ソースとして開発
オンプレミスや他社のクラウド上へも展開可能
https://blogs.msdn.microsoft.com/azurese
rvicefabric/2018/03/14/service-fabric-is-
going-open-source/
https://docs.microsoft.com/ja-
jp/azure/service-fabric/service-fabric-
cluster-creation-for-windows-server
Service Fabric のサポートオプション
https://docs.microsoft.com/ja-jp/azure/service-fabric/service-fabric-cluster-creation-for-windows-server
実運用での問題の報告、もしくはAzure の有料サポートの依頼
Azure にデプロイされた Service Fabric クラスター上の問題を報告する場合は、Azure Portal または Microsoft サポート ポータルでサポートのチ
ケットを開きます。各項目の詳細情報は、以下のURLを参照。
• Azure に関する Microsoft からのサポート
• Microsoft プレミア サポート
実運用での問題の報告、もしくは、スタンドアロン Service Fabric クラスターの有料サポートの依頼
オンプレミスまたは他のクラウドにデプロイされた Service Fabric クラスター上の問題を報告する場合は、Microsoft サポート ポータルでサポートの
チケットを開きます。各項目の詳細情報は、以下のURLを参照。
• オンプレミスに関する Microsoft によるプロフェッショナル サポート
• Microsoft プレミア サポート
実運用以外の問題の報告のための、GitHub のリポジトリ
Azure Service Fabric の問題は、Service-Fabric-issues git リポジトリで報告してください。 このリポジトリは、Azure Service Fabric に関する
問題の報告と追跡、簡単な機能に関する要求を行うためのものです。 稼働中のサイトの問題の報告にはこれを使用しないでください。
Service Fabric: マイクロサービス プラットフォーム
あらゆるクラウド、あらゆる規模で、アプリケーションとマイクロサービスを構築、デプロイ
プログラミング
モデル
DevOps
ツール
オーケスト
レーション
ライフサイクル
管理
正常性
監視
常時稼働
可用性
自動
スケール
Azureオンプレミス インフラあらゆるクラウド開発マシン
実行可能ファイルReliable Services (.NET, Java)
Reliable Actors (.NET, Java)ASP.NET Core
コンテナー
Service Fabric の種類と責任範囲
アプリケーションの展開
お客様
Azure
責
任
範
囲
クラスター容量の計画
ネットワークとストレージ
アプリケーションの展開
ハードウェア
OS更新
ランタイムの更新
課金
クラスター容量の計画
ネットワークとストレージ
アプリケーションの展開
Azure Service Fabric
Mesh ( Preview )
Azure Service Fabric
Cluster
Service Fabric
Standalone
ハードウェア
OS更新
ランタイムの更新
課金
クラスター容量の計画
ネットワークとストレージ
アプリケーションの展開
ハードウェア
OS更新
ランタイムの更新
課金
Service Fabric コンテナー サポートのロードマップ
https://mybuild.techcommunity.microsoft.com/sessions/77069
今後の予定
Service Fabric Mesh プレビュー
Spring 2019 Refresh リリースService Fabric リソース モデル
Applications and Services
Networks
Secrets
Volumes
Gateways / routing rules
Auto-scale rules
https://mybuild.techcommunity.microsoft.com/sessions/77069
Service Fabric Mesh プレビュー – 昨年初旬
Mesh RP /Control Plane
Service Fabric Cluster 1
(5000 Nodes, 80000 Cores)
Service Fabric Clusters Pools
SF resource
Model
https://mybuild.techcommunity.microsoft.com/sessions/77069
Service Fabric Mesh プレビュー – 昨年後半
SF resource
Model
Mesh RP / Control Plane
Service Fabric Cluster 1
(5000 Nodes, 80000 Cores)
Service Fabric Cluster n
(5000 Nodes, 80000 GPU Cores)
Linux Functions
Service
Functions
definition
https://mybuild.techcommunity.microsoft.com/sessions/77069
Service Fabric Mesh プレビュー – 昨年末
Linux Functions
Service
Functions
definition
Mesh RP / Control Plane
Service Fabric Cluster 1
(5000 Nodes, 80000 Cores)
Service Fabric Cluster n
(5000 Nodes, 80000 GPU Cores)
SF resource
Model
container
groups
networks secrets volume auto scale
update
policies
. . . . . .. . . . . .
https://mybuild.techcommunity.microsoft.com/sessions/77069
Service Fabric Mesh プレビューの進化
Linux Functions
Service
Functions
definition
Mesh RP / Control Plane
Service Fabric Cluster 1
(5000 Nodes, 80000 Cores)
Service Fabric Cluster n
(5000 Nodes, 80000 GPU Cores)
container
groups
networks secrets volume auto scale
update
policies
. . . . . .. . . . . .
Evolved app
model Service
OSS friendly App
Package Definition
https://mybuild.techcommunity.microsoft.com/sessions/77069
Service Fabric Mesh プレビューの進化
Linux Functions
Service
Functions
definition
Atlas RP / Control Plane
Service Fabric Cluster 1
(5000 Nodes, 80000 Cores)
Service Fabric Cluster n
(5000 Nodes, 80000 GPU Cores)
container
groups
networks secrets volume auto scale
update
policies
. . . . . .. . . . . .
Evolved app
model Service
OSS friendly App
Package Definition
ACI
Future
Serverless
Multitenant
Services
https://mybuild.techcommunity.microsoft.com/sessions/77069
Visual Studio 2019 の Service Fabric Mesh Extension
モダナイズ – リファクタリング
Windows Server コンテナーによって提供されるそのままで予測可能な環境が大好き
です。Service Fabric は、稼働時間を最大化する安全で一貫性のある展開戦略を
もたらします。Microsoft Azure での 2 つ( Windows Server コンテナーとService
Fabric )の出会いは、私たちに無限の可能性を与えます。
Ralph Feltis, Senior Software Engineer, Alaska Airlines
アラスカ航空 は、パフォーマンスと信頼性向上させた、将来性のあるショッピング カート
サービスを、Azure Service Fabric とカスタムなWindows Server コンテナーで実現
要件: 予約システムを進化させ、最小限のコード変更で4,000万人の顧客をサポート
ソリューション:
アラスカ航空は、ショッピング カート サービス alaskair.com を Windows Server
コンテナーへ移行。これにより、サービスに求められるスケールと利用効率を達成し、
パフォーマンスと信頼性が向上。Azure DevOps を Service Fabric アップグレー
ドと組み合わせて使用することで、安全で一貫性のある展開を実現。
https://customers.microsoft.com/en-us/story/alaska-airlines-travel-transportation-azure
Service Fabric によるデジタル トランスフォーメーション
クラウド-ネイティブ
リファクタリング リアーキテクト リビルド/新規
モダナイゼーション
既存アプリケーションを現状のままクラウドへ移
行。コンテナーを利用し、コスト削減と
DevOpsによる展開を可能にする。
クラウド-ネイティブ
マイクロサービス アーキテクチャを使用
してクラウドを前提に設計および構築
された新しいアプリケーション
モダナイゼーション
再ホスト
移行 SaaS
リプレース
アジェンダ
.NET アプリケーションの最適化モデル
クラウド 最適化 ( Cloud-Optimized )
•既存.NETコードをAzure PaaSへ持ち込む
•既存.NETコードをコンテナー化して持ち込む
クラウド ネイティブ ( Cloud-Native )
.NETアプリケーション最適化モデル
クラウド ネイティブ ( Cloud-Native )
既存のアプリケーション
.NET Webアプリ (オンプレミス)
クラウド最適化
PaaS
クラウド ネイティブ
PaaS (マイクロサービス とサーバーレス)
クラウド
インフラストラクチャー対応
Relational
Database
VMs
マネージド サービス
オンプレミス Azure
PaaS ( コンテナ化されたマイクロサービス
+ サーバーレス コンピューティング
+ マネージド サービス )+ Windows コンテナー
IaaS
(Infrastructure as a Service)
Azure Azure
マイクロサービスと
サーバーレスを活用した
クラウド前提のアプリ
クラウド向けに設計された新規のコードコードの変更は最小限
クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル
移行 / 再ホスト モダナイゼーション
1)レガシーシステム
2)レガシー システムを、クラウドに最適化されたプラットフォームへ移行
3)新しいマイクロサービスやPaaS (サーバーレス) を追加
4)システムをマイクロサービスやPaaS (サーバーレス)へ分割
5)システムがクラウド ネイティブへ移行
クラウド ネイティブ ( マイクロサービスとサーバーレス )への道筋
Service Fabric によるモダナイズとクラウド ネイティブ
新規、もしくはマイクロサービス
アプリケーションへ変更
既存アプリケーションを
部分的にリアーキテクト
既存アプリケーション
+ 新規のマイクロサービス
既存アプリを、コンテナー
として、もしくは実行可
能ファイルとしてホスト
モダナイゼーション クラウド-ネイティブ既存の
アプリケーション
リファクタリング リアーキテクト リビルド / 新規
マイクロサービスとは?
悪い例 - モノリシックからマイクロサービスへ
Serverless
Containers
モノリシック
Web
Business
Data
Microservice
1
Microservice
2
Microservice
3
Microservice
4
Function 1
Function 2
Function 3
Function 4
Function 5
Function 6
Function 7
Function 8
Function 9
Function 10
悪い例 – モノリシックからマイクロサービスへ
ビジネスの要求
悪い例 – 独立してビルド & リリースできない
Release
Dev team A
Dev team B
Dev team C
Dev team D
Dev team E
Production
.
.
.
一般的な依存関係
• データ スキーマ
• メッセージ スキーマ
• API経由で、サービス内部を公開
• フレームワークやライブラリーのバージョン
• コンポーネントの共有
良い例 – ビジネスとサービス間のトレーサビリティ
マイクロサービス – 課題
複雑性
冗長性
データの一貫性
統合とバージョン管理
テスト
トラブル シューティング
ガバナンス
サーバーレス Web アプリケーションの参照アーキテクチャ
https://docs.microsoft.com/ja-jp/azure/architecture/reference-architectures/serverless/web-app
クラウド ネイティブ: エンタープライズ ビジネス API
我々のデジタル統合シナリオをホストする、堅牢でスケーラブルなプラットフォームは、Service
Fabricに依存している。デジタル統合シナリオでは、 Reliable Service内のステートフルとコンテ
ナー内のステートレスを、1つのプラットフォームに共存できる。
Kai Walter, Lead IT Solution Architect ZEISS Group
要件: 光学機械からのテレメトリー データを取得し、使用状況を判断。メンテナンスと他のバッ
クオフィスシステムを統合
ソリューション: 既存のコードと新しいマイクロサービスを一緒に、Windows コンテナーで実行し、API
Management を使用して REST API を使用してビジネス アプリケーションを安全に公
開します。 俊敏性の向上により、開発者は、ステートレス/ステートフルなワークロードに対
するマイクロサービス ベースのプラットフォームを簡単に更新できます。
Azure API Management は、テレメトリを分析するためにバックオフィス システムに統
合するために使用されます。
Carl Zeiss バックエンド システムとフィールド デバイスを接続するすることによるスマート デバイス
https://customers.microsoft.com/ja-jp/story/zeiss-manufacturing-azure
Carl Zeiss 社事例: Digital integration architecture
API management
Transport, transformation and state
(optional) Business process orchestration
CRM B2CCRM B2BERPMail LicensingCompliance
Microsoft Ignite 2018: BRK2200 – Expose APIs with peace of mind when using API Management
https://myignite.techcommunity.microsoft.com/sessions/65903
“Azure アーキテクチャ センター” の勧め
なぜ、マイクロサービス アーキテクチャを採用するのかを理解することが、クラウド ネイティブ化への
近道です。マイクロサービス アーキテクチャを理解するために必要なドキュメントが、”Azure アーキテ
クチャ センター” ( https://aka.ms/mspnp ) に公開されています。マイクロサービス採用検討の
際には、是非、ご一読ください。
https://aka.ms/mspnp
https://docs.microsoft.com/ja-jp/
azure/architecture/patterns/
https://docs.microsoft.com/ja-jp/
azure/architecture/microservices/
.NETアプリケーション最適化モデル
既存のアプリケーション
.NET Webアプリ (オンプレミス)
クラウド最適化
PaaS
クラウド ネイティブ
PaaS (マイクロサービス とサーバーレス)
クラウド
インフラストラクチャー対応
Relational
Database
VMs
マネージド サービス
オンプレミス Azure
PaaS ( コンテナ化されたマイクロサービス
+ サーバーレス コンピューティング
+ マネージド サービス )+ Windows コンテナー
IaaS
(Infrastructure as a Service)
Azure Azure
クラウド向けに設計された新規のコードコードの変更は最小限
クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル
移行 / 再ホスト モダナイゼーション
Azure
コンピューティング
サービスの選択
https://docs.microsoft.com/ja-
jp/azure/architecture/guide/technolo
gy-choices/compute-decision-tree
.NET アプリケーション アーキテクチャ
www.dot.net/architecture
リソース
MSTEP (Microsoft Training and Education for Partners)
• Microsoft Azure PaaS アプリ開発 (2018 年 6 月)
Channel 9:
• Build 2018: Modernizing existing .NET
applications with Windows Containers and
Azure cloud
価格:
• Azure App Serviceの価格
• Azure SQL Databaseの価格
• Azure Database Migration Service の価格
.NET 移行ガイダンス
• https://aka.ms/migratetothecloud
• https://dot.net/architecture
• https://azure.microsoft.com/migration/migrate
Docs:
• .NET WebアプリまたはサービスをAzure App Service
に移行する
• SQL ServerデータベースをAzureに移行する
• DMS を使用して SQL Server を Azure SQL
Database にオフラインで移行する
• DMS を使用して SQL Server を Azure SQL
Database Managed Instance に移行する
リソース
Azure Migrateのドキュメント > ハウツー ガイド > Contoso移行シリーズ
https://docs.microsoft.com/ja-jp/azure/migrate/contoso-migration-overview
7. Azure VMでLinuxアプリをリホストする
8. Azure VMとAzure MySQLでLinuxアプリを
リホストする
9. Azure Web AppsとAzure SQL Database
でアプリをリファクタリングする
10. TFSをVSTSに移行する
11. Azure ContainersとAzure SQL Database
でアプリを再構築する
12. Azureでアプリのリビルド
1. 移行の概要
2. Azure インフラストラクチャーのデプロイ
3. Azureへの移行についてオンプレミスのリソース
を評価する
4. Azure VMとAzure SQL Managed
Instanceでアプリをリホストする
5. Azure VMでアプリをリホストする
6. Azure VMとAzure SQL Server AlwaysOn
可用性グループでアプリをリホストする
無償の eBooks
https://aka.ms/azuredevebook https://aka.ms/modernizeappebook https://aka.ms/microservicesebook
Michael Crump
Barry Luijbregts
Azureへの移行に関する情報
Azure Migration Center
https://azure.microsoft.com/ja-jp/migration/
Microsoft Azure に関するストリーミング
パートナー事業本部 パートナー技術統括本部で実施したセミナー
MPN ( Microsoft Partner Network ) 参加パートナーの皆様向けに実施した、
Azure 関連セミナーの “再生リスト”
https://www.youtube.com/playlist?list=PLBh-4mawktV8Mk-Eo19cnEZIkhiRU1aHG
• 初めてのKubernetes体感ツアー (2019年6月5日開催)
• 開発者のためのKubernetes ~ Azure で学ぶコンセプトと実践 ~ (2019年6月10日開催)
• Azure Update セミナー (2019年6月12日開催)
• IT アーキテクトのためのKubernetes ~ Azure Kubernetes Service 基盤詳細 ~ (2019年6月19日開催)
• これから始める .NET Core セミナー (2019年6月27日午前開催)
• クラウド ネイティブ時代の.NETアプリケーション ~本格化するクラウド移行とそのアーキテクチャ~ (2019年6月27
日午後開催)
© 2019 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.

More Related Content

What's hot

コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望Yoichi Kawasaki
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報Amazon Web Services Japan
 
Azure Log Analytics 概要
Azure Log Analytics 概要Azure Log Analytics 概要
Azure Log Analytics 概要喜智 大井
 
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座Minoru Naito
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
Azure Functions with terraform
Azure Functions with terraformAzure Functions with terraform
Azure Functions with terraformTomokazu Tochi
 
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge StrategyAzure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge StrategyTakeshi Fukuhara
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計ShuheiUda
 
Azure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえりAzure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえりToru Makabe
 
Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Tech Summit 2016
 
今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎Trainocate Japan, Ltd.
 
基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャストNoritaka Sekiyama
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...Amazon Web Services Japan
 
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様Shuji Kikuchi
 
Demystifying Identities for Azure Kubernetes Service
Demystifying Identities for Azure Kubernetes ServiceDemystifying Identities for Azure Kubernetes Service
Demystifying Identities for Azure Kubernetes ServiceToru Makabe
 

What's hot (20)

コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
 
Azure Log Analytics 概要
Azure Log Analytics 概要Azure Log Analytics 概要
Azure Log Analytics 概要
 
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Azure Functions with terraform
Azure Functions with terraformAzure Functions with terraform
Azure Functions with terraform
 
Application Load Balancer
Application Load BalancerApplication Load Balancer
Application Load Balancer
 
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge StrategyAzure Data Box Family Overview and Microsoft Intelligent Edge Strategy
Azure Data Box Family Overview and Microsoft Intelligent Edge Strategy
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
 
M04_失敗しないための Azure Virtual Desktop 設計ガイド
M04_失敗しないための Azure Virtual Desktop 設計ガイドM04_失敗しないための Azure Virtual Desktop 設計ガイド
M04_失敗しないための Azure Virtual Desktop 設計ガイド
 
Azure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえりAzure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえり
 
Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計
 
今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎今こそ知りたい!Microsoft Azureの基礎
今こそ知りたい!Microsoft Azureの基礎
 
基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト
 
AWS IoTアーキテクチャパターン
AWS IoTアーキテクチャパターンAWS IoTアーキテクチャパターン
AWS IoTアーキテクチャパターン
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様
 
Demystifying Identities for Azure Kubernetes Service
Demystifying Identities for Azure Kubernetes ServiceDemystifying Identities for Azure Kubernetes Service
Demystifying Identities for Azure Kubernetes Service
 
Azure DevOps's security
Azure DevOps's securityAzure DevOps's security
Azure DevOps's security
 

Similar to .NETアプリケーションのクラウド最適化

MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みShinichiro Arai
 
MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要
MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要
MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要kumo2010
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS AzureIssei Hiraoka
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)kekekekenta
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデートAkira Inoue
 
20170719 wintechq azure_stack
20170719 wintechq azure_stack20170719 wintechq azure_stack
20170719 wintechq azure_stackOsamu Takazoe
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャAkira Inoue
 
IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会
IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会
IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会IoTビジネス共創ラボ
 
20190705 mas ken_azure_stack
20190705 mas ken_azure_stack20190705 mas ken_azure_stack
20190705 mas ken_azure_stackOsamu Takazoe
 
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.Takeshi Fukuhara
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践de:code 2017
 
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザインオープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した WebシステムデザインDaisuke Masubuchi
 
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...日本マイクロソフト株式会社
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションMasahiko Ebisuda
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Hirano Kazunori
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うTakeshi Fukuhara
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Takamasa Maejima
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewKeiji Kamebuchi
 
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントTrainocate Japan, Ltd.
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像Akira Inoue
 

Similar to .NETアプリケーションのクラウド最適化 (20)

MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 
MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要
MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要
MSC 2010 T5-1 クラウド時代の最新アプリケーション プラットフォーム「Windows Azure」概要
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 
20170719 wintechq azure_stack
20170719 wintechq azure_stack20170719 wintechq azure_stack
20170719 wintechq azure_stack
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
 
IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会
IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会
IoTから関連するサービス群も含めてAzure 最新アップデートのご紹介_IoTビジネス共創ラボ 第9回 勉強会
 
20190705 mas ken_azure_stack
20190705 mas ken_azure_stack20190705 mas ken_azure_stack
20190705 mas ken_azure_stack
 
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
 
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザインオープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
 
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary
 
Visual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使うVisual StudioやAzureからAzure DevOpsを使う
Visual StudioやAzureからAzure DevOpsを使う
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版)
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
 

More from Takeshi Fukuhara

Data & AI Update 情報 - 2020年8月版
Data & AI Update 情報 - 2020年8月版Data & AI Update 情報 - 2020年8月版
Data & AI Update 情報 - 2020年8月版Takeshi Fukuhara
 
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )Takeshi Fukuhara
 
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)Takeshi Fukuhara
 
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)
Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)
Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Data & AI Update 情報 - 2020年6月版
Data & AI Update 情報 - 2020年6月版Data & AI Update 情報 - 2020年6月版
Data & AI Update 情報 - 2020年6月版Takeshi Fukuhara
 
Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Takeshi Fukuhara
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesTakeshi Fukuhara
 
Using Azure Compute with VMSS, Kubernetes, and Service Fabric
Using Azure Compute with VMSS, Kubernetes, and Service FabricUsing Azure Compute with VMSS, Kubernetes, and Service Fabric
Using Azure Compute with VMSS, Kubernetes, and Service FabricTakeshi Fukuhara
 
Azure Kubernetes Service Overview
Azure Kubernetes Service OverviewAzure Kubernetes Service Overview
Azure Kubernetes Service OverviewTakeshi Fukuhara
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesTakeshi Fukuhara
 
Modernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft AzureModernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft AzureTakeshi Fukuhara
 
Azure App Service Overview
Azure App Service OverviewAzure App Service Overview
Azure App Service OverviewTakeshi Fukuhara
 
Windows Server Container and Windows Subsystem for Linux
Windows Server Container and Windows Subsystem for LinuxWindows Server Container and Windows Subsystem for Linux
Windows Server Container and Windows Subsystem for LinuxTakeshi Fukuhara
 
Azure IoT Customer Stories
Azure IoT Customer StoriesAzure IoT Customer Stories
Azure IoT Customer StoriesTakeshi Fukuhara
 

More from Takeshi Fukuhara (20)

Data & AI Update 情報 - 2020年8月版
Data & AI Update 情報 - 2020年8月版Data & AI Update 情報 - 2020年8月版
Data & AI Update 情報 - 2020年8月版
 
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
 
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
 
Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)
 
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)
Part 5: "製品の変革" を支える基盤サービス (製造リファレンス・アーキテクチャ勉強会)
 
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
 
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
 
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
 
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
 
Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)
Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)
Part 0: 製造リファレンス・アーキテクチャとは?(製造リファレンス・アーキテクチャ勉強会)
 
Data & AI Update 情報 - 2020年6月版
Data & AI Update 情報 - 2020年6月版Data & AI Update 情報 - 2020年6月版
Data & AI Update 情報 - 2020年6月版
 
Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
Using Azure Compute with VMSS, Kubernetes, and Service Fabric
Using Azure Compute with VMSS, Kubernetes, and Service FabricUsing Azure Compute with VMSS, Kubernetes, and Service Fabric
Using Azure Compute with VMSS, Kubernetes, and Service Fabric
 
Azure Kubernetes Service Overview
Azure Kubernetes Service OverviewAzure Kubernetes Service Overview
Azure Kubernetes Service Overview
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
Modernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft AzureModernization of IT Infrastructure by Microsoft Azure
Modernization of IT Infrastructure by Microsoft Azure
 
Azure App Service Overview
Azure App Service OverviewAzure App Service Overview
Azure App Service Overview
 
Windows Server Container and Windows Subsystem for Linux
Windows Server Container and Windows Subsystem for LinuxWindows Server Container and Windows Subsystem for Linux
Windows Server Container and Windows Subsystem for Linux
 
Azure IoT Customer Stories
Azure IoT Customer StoriesAzure IoT Customer Stories
Azure IoT Customer Stories
 

.NETアプリケーションのクラウド最適化

  • 1. Azure 2019年6月27日 (13:30-15:00) クラウド ネイティブ時代の.NETアプリケーション ~本格化するクラウド移行とそのアーキテクチャ~ 福原 毅 パートナー ソリューション プロフェッショナル パートナー事業本部 日本マイクロソフト株式会社 .NET アプリケーションの最適化
  • 2. Hidden Slide ご注意: 本スライドは、2019年6月27日午後に開催した「クラウドネイティブ時代の.NETアプリケーション ~本格化するクラウド移行とそ のアーキテクチャ~」の1つ目のセッションのスライドです。スライド(PDF)は、http://aka.ms/dotnet0627pm よりZIPファイルをダ ウンロードしてください。また、その他のセッション動画は、以下より参照可能です。 • Part 1/3 「.NET アプリケーションの最適化」: 動画(YouTube) • Part 2/3 「データベースの選択肢 – Azure Data Services - 」 動画(YouTube) • Part 3/3 「開発生産性を上げる – Azure DevOps -」 動画(YouTube) また、MPN ( Microsoft Partner Network ) 参加パートナーの皆様向けに実施したAzureセミナーの一部の 再生リスト (YouTube) を公開しています。適宜、ご活用ください。 なお、本スライドは、作成日時点の情報です。製品リリース予定やサービス仕様等の情報は予告なく変更される場合がありま す。必要に応じて、 https://docs.microsoft.com/ja-jp/azure/ を参照し、各サービスの詳細、および最新情報をご確認ください。 資料中の参考価格は対象製品・サービスのみの価格例であり、実際の構成により他製品・サービスの費用も別途必要となる 場合があります。実構成にあわせて詳細価格の見積を取得し、ご確認ください。 !
  • 3. アジェンダ .NET アプリケーションの最適化モデル クラウド 最適化 ( Cloud-Optimized ) •既存.NETコードをAzure PaaSへ持ち込む •既存.NETコードをコンテナー化して持ち込む クラウド ネイティブ ( Cloud-Native ) Appendix: 学習リソース
  • 5.
  • 6. 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 / Bots API Apps Apprenda、Cloud Foundry Jelastic、Marathon、OpenShift インフラ IaaS / IaaS+ 汎用コンピュー ティング PaaS 用途特化型 コンピューティング PaaS クラスター オーケストレーション Function Apps Containers 他
  • 8. アプリケーション プラットフォーム の “変革” 最新化には複数の経路がある。どこから始めてもOK アプローチ 内容 ポイント 再ホスト リアーキテクト リビルドリファクタリング アプリケーションをそのままクラウド へ再配置 実質的に変更 / アプリケー ションをサービスへ分解 クラウド ネイティブなアプ ローチで新しいコーディング クラウドのメリットを享受するた めに最小限の変更 • 平均で、TCOを約 30% 削減 PaaS : 466% ROI, 80% time saved, 5.91 M ROI, 50% faster deployments コンテナー : 13X more releases, 10X Cost Reduction, 65% Faster developer onboarding, 62% better availability • 設備投資の削減 • データセンタースペースの開放 • クラウドによる投資回収の迅 速化 • ハイパースケール • アプリの一部を個別に拡 張、展開 • テクノロジー スタックの混合 • 変革の加速 • TCOの削減 • より迅速な開発 • より早く、より短い更新 • コードの可搬性 • 優れたクラウドの効率 (リソース、速度、費用) 理由 • IaaS (VMs) • コンテナー • PaaS • マイクロサービス基盤 • PaaS • サーバーレス • コンテナー • PaaS技術 移行 モダナイゼーション と 変革 Statistics based on five-year, risk-adjusted figures for a composite organization constructed from aggregated interviews with eight Microsoft Azure IaaS customers. Source: “The Total Economic Impact Of Microsoft Azure PaaS,” a commissioned study conducted by Forrester Consulting, June 2016
  • 9. .NETアプリケーション最適化モデル 既存のアプリケーション .NET Webアプリ (オンプレミス) クラウド最適化 PaaS クラウド ネイティブ PaaS (マイクロサービス とサーバーレス) クラウド インフラストラクチャー対応 Relational Database VMs マネージド サービス オンプレミス 移行 / 再ホスト クラウド向けに設計された新規のコード Azure PaaS ( コンテナ化されたマイクロサービス + サーバーレス コンピューティング + マネージド サービス )+ Windows コンテナー IaaS (Infrastructure as a Service) モダナイゼーション コードの変更は最小限 クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル Azure Azure
  • 10. .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
  • 11. アジェンダ .NET アプリケーションの最適化モデル クラウド 最適化 ( Cloud-Optimized ) •既存.NETコードをAzure PaaSへ持ち込む •既存.NETコードをコンテナー化して持ち込む クラウド ネイティブ ( Cloud-Native )
  • 12. 既存のアプリケーション .NET Webアプリ (オンプレミス) クラウド最適化 PaaS クラウド ネイティブ PaaS (マイクロサービス とサーバーレス) クラウド インフラストラクチャー対応 Relational Database VMs マネージド サービス オンプレミス クラウド向けに設計された新規のコード Azure PaaS ( コンテナ化されたマイクロサービス + サーバーレス コンピューティング + マネージド サービス )+ Windows コンテナー IaaS (Infrastructure as a Service) コードの変更は最小限 クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル Azure Azure PaaSを利用した 既存.NETアプリの クラウド最適化 移行 / 再ホスト モダナイゼーション .NETアプリケーション最適化モデル クラウド 最適化 ( Cloud-Optimized )
  • 13. 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 / Bots API Apps Apprenda、Cloud Foundry Jelastic、Marathon、OpenShift インフラ IaaS / IaaS+ 汎用コンピュー ティング PaaS 用途特化型 コンピューティング PaaS クラスター オーケストレーション Function Apps Containers 他
  • 14. .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
  • 17. インフラの効率化から、アプリケーションのイノベーションへビジネス価値 時間 効率 イノベーション PaaS IaaS サーバーレス 466% return on investment $5.91M net present value 80% IT time saved 50% faster service deployment Statistics based on five-year, risk-adjusted figures for a composite organization constructed from aggregated interviews with eight Microsoft Azure IaaS customers. Source: “The Total Economic Impact Of Microsoft Azure PaaS,” a commissioned study conducted by Forrester Consulting, June 2016
  • 18. App Service とは クラウドアプリを作成/ホストするための PaaS 仮想マシン (IaaS )と比較して… 実行環境が提供されるので開発に集中することができる。 • 環境構築作業の軽減 • インフラ部分の管理が不要 • 仮想マシンよりも安価
  • 19. Azure App Service End-to-end のアプリケーション PaaS プラットフォーム App Service
  • 20. App Service のメリット • NET, PHP, Python, Node, Java, Framework インストラー • リモートデバッグ • DevOps • ステージングデプロイのためのサイ トスロット • サイトエクステンションギャラリー • ブラウザーベースのエディタ • Kudu • など Web Apps API Apps • スケールアップ、スケールアウト • オートスケール • WW のデーターセンター • OS と Framework • ロードバランサー • モニタリング&アラート • Web ジョブ(WebJobs) • など • Enterprise グレードの SLA • セキュリティとコンプライアンス • ロールベースアクセスコントロール • バックアップスケジュール • カスタムドメイン、SSL証明書 • Azure Active Directory 統合 • オンプレミス統合 VNET統合/ハ イブリッド接続 • App Service Environment • など Logic AppsFunctions Containers
  • 21. トラフィックなどのワークロードに応じるスケール機能。さらに、自動スケール。 スロット機能を使って、ブルーグリーンデプロイメント。 Azure App Service の PaaS ならではの機能 朝 昼 夜 システム 負荷 OFF OFF OFFOFF ¥ ¥ 起動時間のみ課金 スライダーのような UI でインスタンス数を変更 https://helloappsvc.azurewebsites.net https://helloappsvc-staging.azurewebsites.net App ver1 App ver2 App Service Plan
  • 23. App Serviceへの移行: Visual Studioの利用 • 既存のWebアプリを開く • アプリケーションを実行 • Azure Web appを作成 完了すると、既存のWebアプリを展開したAzure Web Appと、App Service プランを含むリソース グループ作成 できます。 Azure SQL インスタンスへこのアプリを接続する方法を学 べる選択肢も提示されます。 http://Aka.ms/aspmigrate
  • 30. 僅か数クリックでASP.NET Webサイトをアセスメント Azure App Serviceへの移行準備の内容を識別し、以下のIISサーバーの情報をスキャン • IISサーバー上で実行されているWebサイト • それぞれのサイトのアプリケーションと 仮想ディレクトリの構成 • サイトが利用しているアプリケーションプールと、 それらの設定内容 • そのサイトが利用している HTTPとHTTPSのバインド • web.configのデータベースの定義と、 connectionStringの属性 http://aka.ms/appservicemigration App Serviceへの移行: App Service Migration Assistance
  • 31. .NETアプリをApp Serviceへ移行可能か? 互換性チェックリスト  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を使って登録、ローカルへ展開する .NET Web アプリまたはサービスを Azure App Service に移行する際の考慮事項: https://go.microsoft.com/fwlink/?linkid=862532
  • 32. 互換性チェックに失敗した場合、どうするか? リファクタリングできますか? いいえ なぜ? GAC (Global Assembly Cache)やカスタムMSI、より多くの.NET Framework APIが必要です。 推奨事項: Service Fabric上の、Windows コンテナの利用を検討 近い将来: App Service上の、Windowsコンテナ – パブリック プレビュー なぜ? 高い拡張性や分離性を必要とする、もしくは、多くのメモリーを消費します。 推奨事項: App Service Environments (Premium Service) の利用を検討
  • 34. コンプライアンス準拠とネットワーク分離に対応するASE アプリを利用するユーザーへのアクセスを ロックダウン 高いアプリケーションセキュリティのための、 Web Application Firewall 仮想デバイス Traffic Managerが負荷を地理分散 地理分散したILB ASE Azure Virtual Network ILB App Service Environment Web apps WAF Azure Virtual Network API apps App Service Environment Web apps ILB WAF
  • 35. 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 移行先は、Azure App Serviceを推奨
  • 36. データベース アクセス • App Serviceとデータベース サーバーは同じマシン上にはないため、効率の悪いトランザクション(トランザクションごと に、login処理が行われるなど)の影響が顕著。 • 最小の接続を保持する、クエリーの結果セットの量を抑えるなどの対策を行う。 https://docs.microsoft.com/ja-jp/azure/app-service/troubleshoot-performance-degradation ソケット リソースの枯渇 • ポートは限りある資源のため、枯渇すると外部との通信ができない。https://docs.microsoft.com/ja- jp/azure/app-service/app-service-best-practices#socketresources • Azure Web App sandbox https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox App Service でよくある課題
  • 37. Azure PaaSをより活用したい場合 【mstep online】 Microsoft Azure PaaSアプリ開発 (2018 年 6 月) https://note.microsoft.com/JA-PRM-WBNR-FY18-06JUN-21-msteponlineMicrosoftAzurePaaS20186-MPW0005636_Registration.html コースの目標 • Microsoft Azure が提供する主要な PaaS サービスを把握し、システム構築に必要な サービスを選択できる • Microsoft Azure App Service を利用したアプリの開発方法を習得する • Microsoft Azure の様々なデータ サービスにデータを保存する方法を習得する • Visual Studio Team Service を利用したソースコード管理と、デプロイメント方法を習得する • Application Insight を利用したアプリケーションの監視方法を習得する [アジェンダ] 第 1 章 Microsoft Azureサービス概要 第 2 章 データとストレージへのアクセス 第 3 章 Visual Studioを利用したMicrosoft Azureアプリの開発 第 4 章 Microsoft AzureとDevOps 参 考 Microsoft Azure IoT Suite
  • 38. アジェンダ .NET アプリケーションの最適化モデル クラウド 最適化 ( Cloud-Optimized ) •既存.NETコードをAzure PaaSへ持ち込む •既存.NETコードをコンテナー化して持ち込む クラウド ネイティブ ( Cloud-Native )
  • 39. .NETアプリケーション最適化モデル クラウド 最適化 ( Cloud-Optimized: Windows Containers ) 既存のアプリケーション .NET Webアプリ (オンプレミス) クラウド最適化 PaaS クラウド ネイティブ PaaS (マイクロサービス とサーバーレス) クラウド インフラストラクチャー対応 Relational Database VMs マネージド サービス オンプレミス Azure PaaS ( コンテナ化されたマイクロサービス + サーバーレス コンピューティング + マネージド サービス )+ Windows コンテナー IaaS (Infrastructure as a Service) Azure Azure Windows Container を利用した既存.NET アプリのクラウド最適化 クラウド向けに設計された新規のコードコードの変更は最小限 クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル 移行 / 再ホスト モダナイゼーション
  • 40. 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 / Bots API Apps Apprenda、Cloud Foundry Jelastic、Marathon、OpenShift インフラ IaaS / IaaS+ 汎用コンピュー ティング PaaS 用途特化型 コンピューティング PaaS クラスター オーケストレーション Function Apps Containers 他
  • 41. .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
  • 43. 最適なベース イメージの選択 イメージ容量 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
  • 44. イメージ容量 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) 最適なベース イメージの選択
  • 45. Windows Server コンテナー 関連ストリーミング Microsoft de:code 2019 (2019年5月29日15:10 – 16:00) 「Windows ContainersとAzureによる、既存.NETアプリケーション のモダナイズ」 https://www.microsoft.com/ja- jp/events/decode/2019session/detail.aspx?sid=CD01 Azure ウェビナー (2018年11月27日16:30 – 17:30) 「Windows ServerコンテナーとWindows Subsystem for Linuxの 進化」 https://info.microsoft.com/JA-AzureINFRA-WBNR-FY19- 11Nov-27-WindowsServer2019FullIntroduction- MCW0009200_01Registration-ForminBody.html ※ 視聴、およびスライド(PDF)の入手には、いずれも、ユーザー登録が必要です。
  • 46. シナリオ1: 既存ASP.NET Webアプリのコンテナ化 ブラウザ上のMVC アプリ SQL Server Windows Container HTTP Docker ホスト (PC 上の開発環境) Windows 10 以降 Docker for Windows Mock data (*) SQL Serverのコンテナーは、開発/テスト環境向けです。 本番環境では、Azure SQL Databaseのような高可用性 システムへ移行してください。 eShop Product Catalog database (*)
  • 47. Visual Studio (Windows) Visual Studio for Mac Visual Studio Code (クロスプラットフォーム) Support for: - Docker - Windows コンテナー - Docker - Linux コンテナー - docker-compose への展開を統合 - マルチコンテナーのアプリケーション デバッグ による、 既存アプリのコンテナ化
  • 48. シナリオ2: Dockerレジストリ経由で、Azure VM ( Windows Server 2019 ) を展開 テスト環境用仮想マシン 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 build or docker build (*) SQL Serverのコンテナーは、開発/テスト環境向けです。 本番環境では、Azure SQL Databaseのような高可用性システムへ移行してください。 (*) Docker-compose up ローカルの Docker イメージ レポジトリー
  • 49. シナリオ3: Dockerレジストリ経由で、Azure Container Instance (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 build or docker build パブリックIP と DNS名 エンドポイント Azure Cloud Shell と Azure CLI コマンド もしくは、Azure Portal (*) SQL Serverのコンテナーは、開発/テスト環境向けです。 本番環境では、Azure SQL Databaseのような高可用性システムへ移行し てください。 (*) New! (GA) Windows Container (and Linux) Support in ACI
  • 50. Azure Container Instances の料金 高速起動、秒単位課金の威力 NEW! : 2019.04 実質、35% ~ 50%の値下げ • 100 instance • 300 sec = 5 min • Memory 2 GB • vCPU x 1 https://azure.microsoft.com/en-us/updates/price-reductions-for-azure-container-instances-are-now-available/
  • 51. Azure Container Instances の価格 https://azure.microsoft.com/ja-jp/pricing/details/container-instances/ ※ 月間稼働率 < 99.9%の場合10%、< 99%の場合25%のサービスクレジットを適用
  • 52. コンテナー 展開先の選択肢 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はプレビュー)
  • 53. 実運用環境での要件 Azure SQL Database もしくは、 Azure SQL Database Managed Instance もしくは オンプレミスのSQL Server クラスター ✓ 高可用性 ✓ PaaS サービス Windows Server Core Container上の SQL Server Windows コンテナーのスケールアウトを簡素化するには? かつ、IaaS/VM の運用をなくすには? DataCompute ✓ コンテナー用のコンピュート サービスの管理 ✓ スケール アウト
  • 54. Azure App Service 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 build or docker build (パブリック プレビュー) Windows Containers PaaS スケールアウト コンテナー Azure SQL Databas (*) 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/ シナリオ6: Azure App Service for Windows コンテナ (プレビュー) への展開
  • 55. Azure App Service での Windows コンテナーに対する Windows Server 2019 のサポート開始 https://azure.microsoft.com/ja-jp/blog/windows-server-2019-support-now-available-for-windows-containers-on-azure-app-service/ お試しの際にはバージョンとリージョンにご注意を!
  • 56. シナリオ5: Azure Service Fabric Cluster / Mesh への展開 Azure Service Fabric Cluster ( Mesh はPreview )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 Docker Registry Docker Hub もしくは Azure Container Registry docker-compose build or docker build パブリック IP パブリック エンドポイント (*) SQL Serverのコンテナーは、開発/テスト環境向けです。 本番環境では、Azure SQL Databaseのような高可用性システムへ移行してください。 Network (Ingress Reverse Proxy) HTTP ポート その他ポート スケールアウト コンテナー https://azure.microsoft.com/en-us/blog/azure-service-fabric-mesh-is-now-in-public-preview/
  • 57. Windows Services IIS Website WCF Web Services レガシー アプリケーション スタック Data Migration Serviceや SQL Managed Instanceを使ったデータ移行 Windows Services IIS Website WCF Web Services レガシー アプリケーション のコンテナー コンテナーを使ったアプリケーションのモダナイズ Azure Container Registry Service Fabric で .NET アプリケーションをモダナイズ
  • 58. Azure Service Fabricでアプリケーションをモダナイズ https://docs.microsoft.com/ja-jp/azure/architecture/service-fabric/modernize-app-azure-service-fabric メリット: DevOpsへの対応、コンピューティング リソースの最適化 (VMよりも有効 活用)、マイクロソフトの一貫したサポート、豊富な事例 Service Fabric のコンテナー サポートへの移行に適したアプリケーション • データベースに依存しない HTTP/HTTPS Web およびアプリケーション層 (DBや、Windows Server Active Directoryなどは、Service Fabric クラスターの外部に存在することが前提) • ステートレス Web アプリケーション • .NET Framework バージョン 3.5 以降でビルド • ハードウェアに依存するアプリや、デバイス ドライバーにアクセスするアプリは不可 • アプリケーションは、Windows Server 2016 以降のバージョン • .NET アセンブリ、WCF、COM+ など、ほとんどの依存するコンポーネントをコンテナー化 (MSMQはプレビュー) • アプリケーションは Visual Studio でコンパイルおよびビルド
  • 59. 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)
  • 60. 構成とオーケストレーション 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/ より抜粋)
  • 61. 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/ ※ Windows Server コンテナー サポートを有効にする場合、同時に、複数ノードプール ( 2019/05/06 Preview ) と、VMSSサポート ( プ レビュー )が有効になります。
  • 62. Service Fabric を選択する理由 完全に統合され、堅牢で、 サポートされたプラットフォーム 一貫したサポートで、 AzureもService Fabric上で稼働 • Service Fabric は、マイクロソフト が磨き抜いたWindowsとLinux で利用可能なオープン ソース プ ラットフォーム • ロックインされずに、世界クラスの、 実績があり、サポートされたプラッ トフォームを求めている企業に最 適 1つのプラットフォームで、 モダナイゼーションのニーズに対応 1つの技術で、CaaS, PaaS および SaaS のすべてを提供 • 1つの強力なプラットフォームで、コ ンテナーと実行可能ファイルの両 方を混在させたアプリケーションを、 リファクタリング、リアーキテクト、も しくはリビルド • レガシ環境で実行されているアプ リケーションを容易に最新化する と同時に、フォールト トレランスと 高可用性を確保 • VM と比較して 80% 以上の使 用率の削減を実現 ビジネスの変革を実現 ミッションクリティカルな アプリケーションの構築と運用 • ステートレスとステートフルのマイク ロサービスアーキテクチャを構築す るために、ゼロから設計 • AI、IoT、ゲーム、取引のアプリ ケーションに最適なプラットフォーム • ローカルのトランザクション データを 格納する、高スループットおよび 低遅延のワークロードをサポート グローバル規模のサービス を運用するように設計 信頼性のあるアップグレードと、 需要に応じたスケーリング • CI/CD ツールとヘルスチェックを使 用した詳細で完全に一貫性のあ るバージョン管理されたアプリケー ションのアップグレードにより、アッ プグレード中でも最大の稼働時 間を確保 • さまざまな種類のソフトウェアと ハードウェアの同時障害に耐え、 可用性ゾーンをサポートし、Azure インフラストラクチャレベルの変更 イベントと統合 • 需要に基づいて本番ワークロード を自動スケール
  • 63. AzureやMicrosoftのサービスで、実証済みのプラットフォーム Service Fabric CortanaやSkype、Cosmos DBと いったグローバル サービス実行の、 Microsoft での実績 Service Fabric は、これらのサービ スとAzureのコアとなるインフラを支 える基本技術 これらのサービスのうちの一例: 100万のデータベースで、1日600億 イベントを処理 SQL { }Power BI Dynamics Intune Cortana Skype Cosmos DB IoT Hub Events Hub SQL Database
  • 65. Service Fabric は、オープン ソース Service Fabric Runtime 完全なランタイムと、Windows もしくはLinuxへ展開可能なバー ジョンを作成するためのビルド ツール (https://github.com/Micros oft/service-fabric) Service Fabric Explorer Tool 生産性の高いマイクロサービスの プログラミング モデル (https://github.com/Micros oft/service-fabric-services- and-actors-dotnet) Reliable Actors and Reliable Services programming models クラスター管理ツール (https://github.com/Micr osoft/service-fabric- explorer) ランタイムのインストールなしに、 Service Fabric クラスターとアプ リケーションを管理 (https://github.com/Micros oft/service-fabric-client- dotnet) Service Fabric client library More Service Fabric repos on github
  • 67. Service Fabric のサポートオプション https://docs.microsoft.com/ja-jp/azure/service-fabric/service-fabric-cluster-creation-for-windows-server 実運用での問題の報告、もしくはAzure の有料サポートの依頼 Azure にデプロイされた Service Fabric クラスター上の問題を報告する場合は、Azure Portal または Microsoft サポート ポータルでサポートのチ ケットを開きます。各項目の詳細情報は、以下のURLを参照。 • Azure に関する Microsoft からのサポート • Microsoft プレミア サポート 実運用での問題の報告、もしくは、スタンドアロン Service Fabric クラスターの有料サポートの依頼 オンプレミスまたは他のクラウドにデプロイされた Service Fabric クラスター上の問題を報告する場合は、Microsoft サポート ポータルでサポートの チケットを開きます。各項目の詳細情報は、以下のURLを参照。 • オンプレミスに関する Microsoft によるプロフェッショナル サポート • Microsoft プレミア サポート 実運用以外の問題の報告のための、GitHub のリポジトリ Azure Service Fabric の問題は、Service-Fabric-issues git リポジトリで報告してください。 このリポジトリは、Azure Service Fabric に関する 問題の報告と追跡、簡単な機能に関する要求を行うためのものです。 稼働中のサイトの問題の報告にはこれを使用しないでください。
  • 68. Service Fabric: マイクロサービス プラットフォーム あらゆるクラウド、あらゆる規模で、アプリケーションとマイクロサービスを構築、デプロイ プログラミング モデル DevOps ツール オーケスト レーション ライフサイクル 管理 正常性 監視 常時稼働 可用性 自動 スケール Azureオンプレミス インフラあらゆるクラウド開発マシン 実行可能ファイルReliable Services (.NET, Java) Reliable Actors (.NET, Java)ASP.NET Core コンテナー
  • 69. Service Fabric の種類と責任範囲 アプリケーションの展開 お客様 Azure 責 任 範 囲 クラスター容量の計画 ネットワークとストレージ アプリケーションの展開 ハードウェア OS更新 ランタイムの更新 課金 クラスター容量の計画 ネットワークとストレージ アプリケーションの展開 Azure Service Fabric Mesh ( Preview ) Azure Service Fabric Cluster Service Fabric Standalone ハードウェア OS更新 ランタイムの更新 課金 クラスター容量の計画 ネットワークとストレージ アプリケーションの展開 ハードウェア OS更新 ランタイムの更新 課金
  • 70. Service Fabric コンテナー サポートのロードマップ https://mybuild.techcommunity.microsoft.com/sessions/77069
  • 71. 今後の予定 Service Fabric Mesh プレビュー Spring 2019 Refresh リリースService Fabric リソース モデル Applications and Services Networks Secrets Volumes Gateways / routing rules Auto-scale rules https://mybuild.techcommunity.microsoft.com/sessions/77069
  • 72. Service Fabric Mesh プレビュー – 昨年初旬 Mesh RP /Control Plane Service Fabric Cluster 1 (5000 Nodes, 80000 Cores) Service Fabric Clusters Pools SF resource Model https://mybuild.techcommunity.microsoft.com/sessions/77069
  • 73. Service Fabric Mesh プレビュー – 昨年後半 SF resource Model Mesh RP / Control Plane Service Fabric Cluster 1 (5000 Nodes, 80000 Cores) Service Fabric Cluster n (5000 Nodes, 80000 GPU Cores) Linux Functions Service Functions definition https://mybuild.techcommunity.microsoft.com/sessions/77069
  • 74. Service Fabric Mesh プレビュー – 昨年末 Linux Functions Service Functions definition Mesh RP / Control Plane Service Fabric Cluster 1 (5000 Nodes, 80000 Cores) Service Fabric Cluster n (5000 Nodes, 80000 GPU Cores) SF resource Model container groups networks secrets volume auto scale update policies . . . . . .. . . . . . https://mybuild.techcommunity.microsoft.com/sessions/77069
  • 75. Service Fabric Mesh プレビューの進化 Linux Functions Service Functions definition Mesh RP / Control Plane Service Fabric Cluster 1 (5000 Nodes, 80000 Cores) Service Fabric Cluster n (5000 Nodes, 80000 GPU Cores) container groups networks secrets volume auto scale update policies . . . . . .. . . . . . Evolved app model Service OSS friendly App Package Definition https://mybuild.techcommunity.microsoft.com/sessions/77069
  • 76. Service Fabric Mesh プレビューの進化 Linux Functions Service Functions definition Atlas RP / Control Plane Service Fabric Cluster 1 (5000 Nodes, 80000 Cores) Service Fabric Cluster n (5000 Nodes, 80000 GPU Cores) container groups networks secrets volume auto scale update policies . . . . . .. . . . . . Evolved app model Service OSS friendly App Package Definition ACI Future Serverless Multitenant Services https://mybuild.techcommunity.microsoft.com/sessions/77069
  • 77. Visual Studio 2019 の Service Fabric Mesh Extension
  • 78. モダナイズ – リファクタリング Windows Server コンテナーによって提供されるそのままで予測可能な環境が大好き です。Service Fabric は、稼働時間を最大化する安全で一貫性のある展開戦略を もたらします。Microsoft Azure での 2 つ( Windows Server コンテナーとService Fabric )の出会いは、私たちに無限の可能性を与えます。 Ralph Feltis, Senior Software Engineer, Alaska Airlines アラスカ航空 は、パフォーマンスと信頼性向上させた、将来性のあるショッピング カート サービスを、Azure Service Fabric とカスタムなWindows Server コンテナーで実現 要件: 予約システムを進化させ、最小限のコード変更で4,000万人の顧客をサポート ソリューション: アラスカ航空は、ショッピング カート サービス alaskair.com を Windows Server コンテナーへ移行。これにより、サービスに求められるスケールと利用効率を達成し、 パフォーマンスと信頼性が向上。Azure DevOps を Service Fabric アップグレー ドと組み合わせて使用することで、安全で一貫性のある展開を実現。 https://customers.microsoft.com/en-us/story/alaska-airlines-travel-transportation-azure
  • 79. Service Fabric によるデジタル トランスフォーメーション クラウド-ネイティブ リファクタリング リアーキテクト リビルド/新規 モダナイゼーション 既存アプリケーションを現状のままクラウドへ移 行。コンテナーを利用し、コスト削減と DevOpsによる展開を可能にする。 クラウド-ネイティブ マイクロサービス アーキテクチャを使用 してクラウドを前提に設計および構築 された新しいアプリケーション モダナイゼーション 再ホスト 移行 SaaS リプレース
  • 80. アジェンダ .NET アプリケーションの最適化モデル クラウド 最適化 ( Cloud-Optimized ) •既存.NETコードをAzure PaaSへ持ち込む •既存.NETコードをコンテナー化して持ち込む クラウド ネイティブ ( Cloud-Native )
  • 81. .NETアプリケーション最適化モデル クラウド ネイティブ ( Cloud-Native ) 既存のアプリケーション .NET Webアプリ (オンプレミス) クラウド最適化 PaaS クラウド ネイティブ PaaS (マイクロサービス とサーバーレス) クラウド インフラストラクチャー対応 Relational Database VMs マネージド サービス オンプレミス Azure PaaS ( コンテナ化されたマイクロサービス + サーバーレス コンピューティング + マネージド サービス )+ Windows コンテナー IaaS (Infrastructure as a Service) Azure Azure マイクロサービスと サーバーレスを活用した クラウド前提のアプリ クラウド向けに設計された新規のコードコードの変更は最小限 クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル 移行 / 再ホスト モダナイゼーション
  • 82. 1)レガシーシステム 2)レガシー システムを、クラウドに最適化されたプラットフォームへ移行 3)新しいマイクロサービスやPaaS (サーバーレス) を追加 4)システムをマイクロサービスやPaaS (サーバーレス)へ分割 5)システムがクラウド ネイティブへ移行 クラウド ネイティブ ( マイクロサービスとサーバーレス )への道筋
  • 83. Service Fabric によるモダナイズとクラウド ネイティブ 新規、もしくはマイクロサービス アプリケーションへ変更 既存アプリケーションを 部分的にリアーキテクト 既存アプリケーション + 新規のマイクロサービス 既存アプリを、コンテナー として、もしくは実行可 能ファイルとしてホスト モダナイゼーション クラウド-ネイティブ既存の アプリケーション リファクタリング リアーキテクト リビルド / 新規
  • 87. 悪い例 – 独立してビルド & リリースできない Release Dev team A Dev team B Dev team C Dev team D Dev team E Production . . . 一般的な依存関係 • データ スキーマ • メッセージ スキーマ • API経由で、サービス内部を公開 • フレームワークやライブラリーのバージョン • コンポーネントの共有
  • 91. クラウド ネイティブ: エンタープライズ ビジネス API 我々のデジタル統合シナリオをホストする、堅牢でスケーラブルなプラットフォームは、Service Fabricに依存している。デジタル統合シナリオでは、 Reliable Service内のステートフルとコンテ ナー内のステートレスを、1つのプラットフォームに共存できる。 Kai Walter, Lead IT Solution Architect ZEISS Group 要件: 光学機械からのテレメトリー データを取得し、使用状況を判断。メンテナンスと他のバッ クオフィスシステムを統合 ソリューション: 既存のコードと新しいマイクロサービスを一緒に、Windows コンテナーで実行し、API Management を使用して REST API を使用してビジネス アプリケーションを安全に公 開します。 俊敏性の向上により、開発者は、ステートレス/ステートフルなワークロードに対 するマイクロサービス ベースのプラットフォームを簡単に更新できます。 Azure API Management は、テレメトリを分析するためにバックオフィス システムに統 合するために使用されます。 Carl Zeiss バックエンド システムとフィールド デバイスを接続するすることによるスマート デバイス https://customers.microsoft.com/ja-jp/story/zeiss-manufacturing-azure
  • 92. Carl Zeiss 社事例: Digital integration architecture API management Transport, transformation and state (optional) Business process orchestration CRM B2CCRM B2BERPMail LicensingCompliance Microsoft Ignite 2018: BRK2200 – Expose APIs with peace of mind when using API Management https://myignite.techcommunity.microsoft.com/sessions/65903
  • 93. “Azure アーキテクチャ センター” の勧め なぜ、マイクロサービス アーキテクチャを採用するのかを理解することが、クラウド ネイティブ化への 近道です。マイクロサービス アーキテクチャを理解するために必要なドキュメントが、”Azure アーキテ クチャ センター” ( https://aka.ms/mspnp ) に公開されています。マイクロサービス採用検討の 際には、是非、ご一読ください。 https://aka.ms/mspnp https://docs.microsoft.com/ja-jp/ azure/architecture/patterns/ https://docs.microsoft.com/ja-jp/ azure/architecture/microservices/
  • 94. .NETアプリケーション最適化モデル 既存のアプリケーション .NET Webアプリ (オンプレミス) クラウド最適化 PaaS クラウド ネイティブ PaaS (マイクロサービス とサーバーレス) クラウド インフラストラクチャー対応 Relational Database VMs マネージド サービス オンプレミス Azure PaaS ( コンテナ化されたマイクロサービス + サーバーレス コンピューティング + マネージド サービス )+ Windows コンテナー IaaS (Infrastructure as a Service) Azure Azure クラウド向けに設計された新規のコードコードの変更は最小限 クラウド環境が基本。検討事項: ネットワーク、ハイブリッド クラウド、IDと認証、コスト コントロールと運用モデル 移行 / 再ホスト モダナイゼーション
  • 97. リソース MSTEP (Microsoft Training and Education for Partners) • Microsoft Azure PaaS アプリ開発 (2018 年 6 月) Channel 9: • Build 2018: Modernizing existing .NET applications with Windows Containers and Azure cloud 価格: • Azure App Serviceの価格 • Azure SQL Databaseの価格 • Azure Database Migration Service の価格 .NET 移行ガイダンス • https://aka.ms/migratetothecloud • https://dot.net/architecture • https://azure.microsoft.com/migration/migrate Docs: • .NET WebアプリまたはサービスをAzure App Service に移行する • SQL ServerデータベースをAzureに移行する • DMS を使用して SQL Server を Azure SQL Database にオフラインで移行する • DMS を使用して SQL Server を Azure SQL Database Managed Instance に移行する
  • 98. リソース Azure Migrateのドキュメント > ハウツー ガイド > Contoso移行シリーズ https://docs.microsoft.com/ja-jp/azure/migrate/contoso-migration-overview 7. Azure VMでLinuxアプリをリホストする 8. Azure VMとAzure MySQLでLinuxアプリを リホストする 9. Azure Web AppsとAzure SQL Database でアプリをリファクタリングする 10. TFSをVSTSに移行する 11. Azure ContainersとAzure SQL Database でアプリを再構築する 12. Azureでアプリのリビルド 1. 移行の概要 2. Azure インフラストラクチャーのデプロイ 3. Azureへの移行についてオンプレミスのリソース を評価する 4. Azure VMとAzure SQL Managed Instanceでアプリをリホストする 5. Azure VMでアプリをリホストする 6. Azure VMとAzure SQL Server AlwaysOn 可用性グループでアプリをリホストする
  • 99. 無償の eBooks https://aka.ms/azuredevebook https://aka.ms/modernizeappebook https://aka.ms/microservicesebook Michael Crump Barry Luijbregts
  • 101. Microsoft Azure に関するストリーミング パートナー事業本部 パートナー技術統括本部で実施したセミナー MPN ( Microsoft Partner Network ) 参加パートナーの皆様向けに実施した、 Azure 関連セミナーの “再生リスト” https://www.youtube.com/playlist?list=PLBh-4mawktV8Mk-Eo19cnEZIkhiRU1aHG • 初めてのKubernetes体感ツアー (2019年6月5日開催) • 開発者のためのKubernetes ~ Azure で学ぶコンセプトと実践 ~ (2019年6月10日開催) • Azure Update セミナー (2019年6月12日開催) • IT アーキテクトのためのKubernetes ~ Azure Kubernetes Service 基盤詳細 ~ (2019年6月19日開催) • これから始める .NET Core セミナー (2019年6月27日午前開催) • クラウド ネイティブ時代の.NETアプリケーション ~本格化するクラウド移行とそのアーキテクチャ~ (2019年6月27 日午後開催)
  • 102. © 2019 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.