5. Azureでは、100以上のサービスを提供中
Microsoft Azure のすべてのサービス 一覧 = https://azure.microsoft.com/ja-jp/services/
Azure Datacenter Infrastructure
Azure
Backup
Site
Recovery
Azure
Monitor
Azure
Policy
Azure
Bluepirnts
Log
Analytics
Azure
Migrate
Databox
Family
Compute Storage Networking
Linux
Virtual
Machine
Compute / Containers Web / Mobile DevOps / Developer
Container
Instance
Functions
Service Fabric
Integration IoT Data Services
Service Bus Event Grid
Logic Apps
API
Management
Management Platform as a Services ( PaaS ) Security
Infrastructure as a Services ( IaaS )
Disk
Storage
Managed
Disks
Windows
Virtual
Machines
Express
Route
Load
Balancer
Azure
Firewall
Virtual
WAN
Network
Watcher
Virtual
Network
VPN
Gateway
Media Services
Content Delivery
Network
Media / CDN
Cognitive
Services
IoT Hub
Stream
Analytics
Role- based
access control
Azure
Digital Twins
Time Series
Insights
IoT Central
IoT Edge
Bot
Services
SQL Data
Warehouse
Azure
Databricks
HDInsight
AI
Machine
Learning Studio
Machine
Learning Service
Azure
Search
Analytics
Data Lake
Storage Gen2
Mobile Apps
Web Apps Logic Apps API Apps
Notification
Hubs
SignalR
Service
Application
Insights
Lab
Services
Azure DevOps
SDK
SQL
Database
Data Factory
Database for
MySQL Cosmos DB
Database for
PostgreSQL
Database for
MariaDB
Database
Migration Service
Azure Cache
for Redis
Azure AD
Key Vault
Security
Center
DDoS
Protection
Multi-Factor
Authentication
Azure ATP
Azure AD for
Domain Services
Azure AD
B2C
Cost
Management
Video Indexer
Content
Protection
Kubernetes
Service
SQL Data
Warehouse
Table
Storage
6.
7. Azure コンピューティング サービス の選択肢
Virtual Machine / Virtual Machine Scale Sets (VMSS)
Azure (Public Cloud)
Azure Stack
(Private Cloud)
Virtual Machine Extensions
Kubernetes、SCALR、RightScale,
Mesos、Swarm
Service Fabric (Mesh)
App Service
Web
Apps
Mobile
Apps
Apprenda、Cloud Foundry
Jelastic、Marathon、OpenShift
インフラ
IaaS / IaaS+
汎用コンピュー
ティング PaaS
用途特化型
コンピューティング
PaaS
クラスター オーケ
ストレーション
API
Apps
Function
Apps
8. データセンターの “変革”
ハイブリッド クラウドの戦略
物理サーバー
と仮想マシン
クラウドでは
ないオンプレ
ミス
レガシー IT 現行のIT
ハイブリッド
再ホスト
リタイア/塩漬
俊
敏
性
実装の選択肢
パブリック クラウド /
Azure Stackによる
プライベートクラウド
大規模な仮想化
によるプライベート
クラウド Windows Server 2016 / 2019 Hyper-V
System Center 2016 / 2019
SQL Server 2017
SaaS: Microsoft
Dynamics 365, Office 365
PaaS: Microsoft Azure /
Azure Stack
IaaS: Microsoft Azure /
Azure Stack
対象となるクラウド基盤
モダナイゼーション
置き換え
8
13. PaaS (Platform as a Service) の考え方
アプリケーション
データ
実行環境
ミドルウェア
OS
仮想化
サーバー
ストレージ
ネットワーク
責任範囲 On
Prem
IaaS PaaS Saa
S
顧客 Microsoft
ビジネス価値
時間
PaaS
Iaa
S
75~80%
IT 時間コストの削減
50%
迅速なサービスデリバリ
68. App ServiceのプライベートIPサポート (2019年に提供予定)
2018年9月のMicrosoft Igniteでの発表: ASEでなくても、Internet接
続を遮断。
App Service
Internet
Azure Virtual Network
Your app is only accessible from a private address in a
selected Azure Virtual Network. It is not in public DNS
nor is accessible directly from the internet.
ExpressRoute
On Premises
69. App Service: IP 制限
アプリへのアクセスを許可されている IP アドレスの許可/拒否リストを定義
• Linux / Container 含む、
全てのApp Service プランで利用可能
• さらに、Application Gateway で
経路を限定することが可能
(Link:docs)
94. Web App on Linux
Azure App Service 概要 – コードをAzureに持ち込む
Web Apps on Linux
Web App for Containers
Web App Bot ( Bot Service )
Functions / Logic Apps
95. 2012/06 Azure Websites, first preview version
2013/06 Azure Websites, GA
2015/03 App Service にサービス統合&名称変更
Azure Websites は、Azure Web Apps へ
Mobile Apps, API Apps, Logic Apps は public preview
2016/10 App Service on Linux, first preview version
Node.js, PHP support からスタート
2017/09 App Service on Linux, GA
App Service の歴史
96. 98
2013 年 Web App (Windows ベース環境) が GA
Linux ベースの環境は、2017 年 App Service on Linux が
GA
サポートされている言語 : Node.js、PHP、.NET Core、Ruby (バージョンに制限がある)
アプリケーションに必要なランタイムが組み込みイメージでサポー
トされていない場合は、独自の Docker イメージを作成して
Web App for Containers にデプロイする方法があります。
Web App on Linux
104. 106
Web App on Linux の制限事項
Windows と Linux の混在
同一リージョン、同一リソースグループ内に、
Windows と Linux の App Service Plan が混在できない
NG
• 01-rg - App Service Plan Windows - Japan East
• 01-rg - App Service Plan Linux - Japan East
OK
• 01-rg - App Service Plan Windows - Japan East
• 01-rg - App Service Plan Linux - Japan West
OK
• 01-rg - App Service Plan Windows - Japan East
• 02-rg - App Service Plan Linux - Japan East
105. Diagnose and solve problems – 問題の診断と解決
Web App for Containers では、
いまのところ以下の3つに対応
• Web App Down
• Web App Slow
• Container Initialization
https://github.com/Azure/Azure-WebApps-Support-Center
https://qiita.com/superriver/items/b2a1e1403ba9b163d648
106. Web App for Containers
Azure App Service 概要 – コンテナーをAzureに持ち込む
Web Apps on Linux
Web App for Containers
Web App Bot ( Bot Service )
Functions / Logic Apps
107. 110
Web App for Containers
コードを Azure に持込み コンテナーを Azure に持込み
+
Web App for ContainersWeb App
108. Why Containers ? – Write-once, Run-anywhere
‘Write-once, Run-anywhere’
マイクロサービス アーキテクチャ対応
Dev/Test の効率化
確実な Production 環境の配置
Developer Community の成長
アプリケーションのポータビリティ
開発, QA, 運用環境の標準化
OS やインフラ環境の抽象化
リソース配分の最適化
高速起動、スケーラビリティの確保
DevOps
Developers
Operations
116. アプリをDockerコンテナ化してフルマネージドサービス(Web App for Containers / Azure DB for MySQL)へ移行
Container
Web App for Containers
VM
PHP App + Apache2
VM
PHP App + Apache2
Container
PHP App + Apache2
VM VM
①
②
③
アプリのDockerコンテナ化
Azure PaaSでフルマネージド化
117. Azure PaaSでフルマネージド化した構成例
Docker Container
Web App for Containers
アプリ + Web/Appサーバ
• 必要なものは全てコンテナイメージ化されたコンテナ
インスタンスをWeb Appで走らせる
• Web Appの特徴
• フルマネージド
• 高速なプロビジョニング
• オートスケール
• 豊富な運用管理+DevOps機能
• 既存のドライバ、ライブラリと完全互換でそれまで同様
の使い方が可能
• Azure DB for MySQLの特徴
• フルマネージドデータベース
• 標準冗長化+自動フェイルオーバー
• ダウンタイム無し scale up/down可
• 自動バックアップ/Point in time recovery可能
118. アプリをコンテナ化し、Web App for Containerへ移行する流れ
ローカル PC Container Registry
• 開発、ビルド、テスト
• コンテナイメージ作成
コンテナイメージを
Registryにプッシュ
Web Appが
コンテナイメーを
Registryからプル
https://hub.docker.com/
展開スロット
• 開発
• ステージング
• 本番
123. Azure Database Migration Service
サポートされる移行シナリオ
https://docs.microsoft.com/ja-jp/azure/dms/resource-scenario-status より抜粋
124. Azure App Service の Windows コンテナ サポート
パブリック プレビュー中
Windows Server Core ベースのイメージ
で、コンテナ化された.NETアプリをホスト
Nano サーバーベースのイメージで、コンテ
ナ化された.NET Coreアプリをホスト
Windows コンテナーへのアプリの展開に
ついて、高い生産性を提供
コンテナーがサンドボックスとなり、カスタム
コールのインストールが可能となり、コンテナー
を使っていないときにはAPIコールをブロック
Announcing the public preview of Windows Container Support in Azure App Service
https://azure.microsoft.com/en-us/blog/announcing-the-public-preview-of-windows-container-support-in-azure-app-service/
125. Visual Studio (Windows)
Visual Studio for Mac
Visual Studio Code (クロスプラットフォーム)
Support for:
- Docker - Windows コンテナー
- Docker - Linux コンテナー
- マルチコンテナーのアプリケーション デバッグ
による、
既存アプリのコンテナ化
126.
127.
128.
129.
130.
131. Dockerレジストリ経由で、Azureのコンテナーへ展開例
docker pull
PC 上の開発環境
Windows 10 以降のDocker for Windows
コンテナー上の アプリケーション
コンテナー上の
Database
Docker engine と
Docker CLI
ローカルの
Docker イメージ
レポジトリー
docker push
Container Registry
Docker Hub
もしくは
Azure Container Registry
docker-compose build
or
docker build
展開先の選択肢
Azure Container
Instances (ACI)
Azure VM
Windows Server 2016/2019
Docker Engine
Azure App Service
(Windows Containers対応はプレビュー)
Azure Kubernetes Service
(Windows Containers対応はプレビュー)
Service Fabric
(Mesh or cluster)
(Service Fabric meshはプレビュー)
132.
133. 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
New! (パブリック プレビュー)
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/
Azure App Service for Windows コンテナ (プレビュー) への展開
134. クラウドへの移行パターン
既存のASP.NET Webアプリ、APIやWCFサービスをAzureでホストする
クラウドインフラ対応 クラウドへ最適化 クラウドへ最適化されたコンテナー
IaaS
(Azure Windows Virtual Machine)
PaaS
(Azure App Service)
Windows Containers
(Service Fabric/mesh, AKS/ACI, VM with Windows
Containers, Web App for 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
135. Web App for Containers で “できない” こと
必読! Things You Should Know: Web Apps and Linux
• VM のようにコンテナへ直接、docker exec -it (ImageName) /bin/bash できない
=> コンテナで SSH プロセスを実行することでポータルから SSH 可能
• ファイル永続化する場合は、/home 配下へ。それ以外は再起動で無くなってしまう。
=> 拡張機能などは、すべて Dockerfile でインストールし、コンテナ内へ。
• 複数のポートを公開することができない。外部公開ポートは1つだけ。
• 複数コンテナ(docker-compose)に対応していない。
=> Public Preview で、docker-compose と kubernetes に対応。
=> 使い分けとして、オーケストレーションが必要な場合は、Azure Container Service (AKS) を
検討する。
144. Web App Bot ( Bot Service )
Azure App Service 概要 – ボット
Web Apps on Linux
Web App for Containers
Web App Bot ( Bot Service )
Functions / Logic Apps
169. インフラの効率化から、アプリケーションのイノベーションへビジネス価値
時間
効率
イノベーション
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
174. Functions
のトリガーとバインド
型 トリガー 入力 出力
Blob Storage x x x
Cosmos DB x x x
Event Hubs x x x
外部ファイル x x
外部テーブル x x
HTTP x x
Microsoft Graph Excel テーブル x x
Microsoft Graph OneDrive ファイル x x
Microsoft Graph Outlook メール x
Microsoft Graph Events x x x
Microsoft Graph Auth トークン x
Mobile Apps x
Notification Hubs x
Queue Storage x x
SendGrid x
Service Bus x x
Table Storage x x
Timer x
Twillio x
Webhook x x
Azure Functions でトリガーとバインドの概念
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-triggers-bindings
206. iOS/Android アプリ開発の必須機能をご紹介! Visual Studio
App Center で始めるモバイルアプリ高速開発の基礎と実践
ついに上陸!PaaS の最新兵器、ご紹介 (App Service on Linux
& Azure Database for PostgreSQL/MySQL)
Web App for Containers 概要と実戦投入への準備
(2018/2/8版)
Web App for Containers 概要と実戦投入への準備 -実践編-
(2018/3/27版)
Web App for Containers + Cosmos DBで コンテナ対応した
MEANアプリを作ろう!
オンデマンド ウェビナー: App Service
App ServiceApp Service
第1回 Azure App Service での .NET Core および SQL
Database の Web アプリの作成
第 2 回 Azure App Service での .NET および SQL Database の
Web アプリの作成
進化する Web ~ Progressive Web Apps の実装と応用~
Web サーバー管理者のための Azure App Service 再入門
Azure PaaS を活用したモダン E コマースソリューションの構築方法
- App Service から Azure Search まで PaaS 機能をご紹介 -
Xamarin と Cognitive Services、そして Visual Studio App
Center が実現する Intelligent Mobile App
207. オンデマンド ウェビナー: Azure Data Services
Azure Data Services (Cosmos DB / SQL DB)
実録! Cosmos DB でのチャットサービス稼働
~MongoDB API 編~
クラウドネイティブなアプリケーションを実現する「Azure
Cosmos DB」のキホンと使いドコロ
SQL Server 2008 EOS 直前 ! まだ間に合う SQL
Server 移行 (クラウド編)
Managed Instance 徹底攻略
Azure Database for MySQL / PostgreSQLを使っ
てアプリケーション開発に注力しませんか?
Azure Database for
MySQL/MariaDB/PostgreSQL 入門
何が違う?Azure SQL Database for
MySQL/PostgreSQL/MariaDB
ついに上陸!PaaS の最新兵器、ご紹介 (App
Service on Linux & Azure Database for
PostgreSQL/MySQL)
Azure Data Services (OSS)
208. Azure上でのコンテナ利用パターン紹介
Microsoft Azureで動くコンテナ技術の紹介と活用
方法 ~Azure WebApp/Azure Container
Service(K8S)/Container Registry/RedHat
OpenShift/Pivotal Cloud Foundry~
きっちり“コンテナ”を理解しよう
一挙紹介! Kubernetes on Azureで実現する快
適なマイクロサービス環境 ~ Microsoft Build 2018
での発表内容をお届け~
オンデマンド ウェビナー: コンテナ
ContainerContainer
Connect(); 徹底解説シリーズ!~ Kubernetes 編
~ コンテナ・オーケストレーションの世界にもサーバレス
がやってくる
Web App for Containers 概要と実戦投入への準
備(2018/2/8版)
Web App for Containers 概要と実戦投入への準
備 -実践編-(2018/3/27版)
Web App for Containers + Cosmos DBで コンテ
ナ対応したMEANアプリを作ろう!
短期モバイルアプリ開発に不可欠な ”コンテナ活用”
最新事例と始め方