Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ASP.NET と Docker そしてクラウドの関係
Search
Tatsuro Shibamura
PRO
June 17, 2017
Technology
87
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ASP.NET と Docker そしてクラウドの関係
Tatsuro Shibamura
PRO
June 17, 2017
Transcript
21 slides
ASP.NET と Docker そしてクラウドの関係 @shibayan
はじめに • @shibayan • http://blog.shibayan.jp/ • Microsoft MVP for ASP.NET/IIS
ASP.NET について • 二つの ASP.NET が並行して存在中 • ASP.NET (Web Forms
/ MVC / Web API) • ASP.NET Core (MVC)
Docker で実行したい • ASP.NET の場合 • Windows Server Core ベースのイメージを利用
• mono-xsp なイメージを利用(無保証) • ASP.NET Core の場合 • Nano Server ベースのイメージを利用 • Debian ベースのイメージを利用
メリット・デメリット • 既存の ASP.NET アプリケーションの Dockernize が出来る • Docker のメリットを
Windows ベースでも • IIS や必要なパッケージを含んだイメージをそのまま展開 • 実行環境を非常に選ぶのがデメリット • Windows Containers の環境が必要
ASP.NET の場合
ASP.NET Core の場合
イメージタグの選び方 • ASP.NET の場合 • .NET Framework と Server Core
バージョンの組み合わせ • 例: 4.7-windowsservercore-10.0.14393.1358 • ASP.NET Core の場合 • Nano Server か Debian のどちらかを選ぶ • .NET Core のバージョンを選ぶ • 例: 1.1.2-jessie / 1.0.5-nanoserver
実行環境について
Docker が動けば問題なし • パブリッククラウドには大体サービスが存在している • Azure / AWS/ GCP は問題なし
• オンプレの場合は Swarm / Kubernetes など • ローカル環境では Docker for Windows / Mac など • Windows 10 の場合は Hyper-V Containers が
パブリッククラウドで動かす • Azure の場合 • App Service on Linux /
Azure Container Service を使う • AWS の場合 • Elastic Beanstalk / EC2 Container Service を使う • GCP の場合 • App Engine Flexible Environment / Container Engine を使う 全て Linux ベースの環境
Windows は難易度が高い • Windows に対応したサービスが提供されていない • Azure は Kubernetes の
Windows サポートがプレビュー
Server Core の罠 • Windows コンテナーの要件 • Windows Server コンテナーは、ビルド番号が異なると起動をブロッ
クされます (例: 10.0.14300.1030 (Technical Preview 5) と 10.0.14393 (Windows Server 2016 RTM))。 ビルド番号が一致し、リビジョン番 号が異なる場合は、起動をブロックされません (例: 10.0.14393 (Windows Server 2016 RTM) と 10.0.14393.206 (Windows Server 2016 GA))。 ただし、技術的にはブロックされませんが、これは状況 によっては正しく機能しない可能性がある構成であるため、運用環境 ではサポートできません。
まだまだ発展途上の Windows • サービスが提供されていない Windows のコンテナ • Azure が真っ先にサービスを提供するべき •
バージョン管理が難しいイメージ • サイズが大きすぎる Server Core イメージ • ダウンロードサイズ 6GB / 展開後で 11GB • ちなみに Nano Server は 380MB / 1GB ぐらい
OS の選択について
Windows と Linux の選択 • ASP.NET の場合 • 実質的には Windows
の一択しかない • Mono XSP を使った運用は難しい • ASP.NET Core の場合 • 現実的には Linux の方が運用が楽 • 開発は Windows で、実行は Linux という方法もアリ
将来的には Alpine Linux も • .NET Core での Alpine Linux
サポートが予定 • ポーティング中 : https://github.com/dotnet/coreclr/issues/917 • イメージサイズの削減が見込める • ビルド、デプロイの速度向上
実際に行っている例 • 開発環境 : Windows 10 + Visual Studio 2017
• CI/CD : GitHub + CircleCI • 実行環境 : AWS Elastic Beanstalk (Docker)
Visual Studio のサポート
VS2017 で Docker に全力 • Visual Studio は Windows /
Linux の Docker に対応 • ASP.NET プロジェクトに追加 • Server Core を使う Dockerfile が追加 • ASP.NET Core プロジェクトに追加 • Debian ベースのイメージを使う Dockerfile が追加
余談 : Visual Studio からデプロイ • Azure の場合 • Azure
SDK をインストールすると App Service にデプロイ可能 • AWS の場合 • AWS Toolkit for Visual Studio をインストールする • Elastic Beanstalk の Windows Server にデプロイ(Not Docker) • GCP の場合 • Cloud Tools for Visual Studio をインストールする • App Engine Flexible Environment にデプロイ(Docker)
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
AI Agent を本番環境へ―― Microsoft Foundry × Azure Serverless で作る Enterprise-Ready な基盤
shibayan
PRO
2
1.5k
Azure Cosmos DB パフォーマンス最適化入門 - 設計・開発・運用の実践テクニック
shibayan
PRO
0
620
Azure Serverless のパフォーマンスとコストを 最適化
shibayan
PRO
0
24
Microsoft Azure で実現する最新クラウドアーキテクチャ
shibayan
PRO
0
33
Hack Azure! #5 - Geek of Azure Serverless
shibayan
PRO
0
150
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
PRO
0
10k
Terraform Provider for Azure に貢献してみた話
shibayan
PRO
0
680
Azure Functions と SendGrid の良い関係
shibayan
PRO
0
1.4k
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
PRO
1
3.1k
Other Decks in Technology
See All in Technology
81天的 AI Agent 軟體開發團隊治理實務分享
regionbbs
0
170
2026-11-11 Tamachi.sre#7 PaCにインフラリソースの命を救われました。 / PaC saves the infra resource life
masasuzu
1
180
「AIチャットからもできないの?」と言われたら ~業務アプリをMCP対応するときの認証・認可の勘所
oidfj
0
330
JAWS_FESTA2026_オンプレ-AWS間プロキシサーバの移行_性能_障害対応で得た実践ノウハウ_高島一晃.pdf
tkazuaki0820
1
130
Datadog の権限統制 〜Org 統合に向けて調べた注意点 / JDDUG-Meetup_24
visional_engineering_and_design
1
150
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
140
Frontier Teams — Amazon は AI で「開発のやり方」をどう変えたのか
kmotohas
0
260
Context != Context: One window, many lifecycles (AI Native DevCon, Nov 2026)
birgitta410
0
140
落とし穴にハマってわかった 開発生産性を測るときに気をつけたいこと
munakata
2
220
Kiro CLI 入門 (ターミナルと CI で使う) | 目指せ Kiro マスター 03
inariku
PRO
2
150
Gov-JAWS#9 統合監視機能のマネージドサービス化+AIによる障害時自動調査
fj_yoshimura_kosuke
0
110
MCPでネットワーク障害調査を自動化する前に直すべき3つのこと
yama3133
0
300
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
630
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Embracing the Ebb and Flow
colly
88
5.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.9k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
350
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
680
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3.1k
Mind Mapping
helmedeiros
1
440
Designing for Timeless Needs
cassininazir
1
560
Product Roadmaps are Hard
iamctodd
55
13k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
610
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
560