Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ASP.NET と Docker そしてクラウドの関係
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tatsuro Shibamura
June 17, 2017
Technology
74
0
Share
ASP.NET と Docker そしてクラウドの関係
Tatsuro Shibamura
June 17, 2017
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
# Azure Cosmos DB パフォーマンス最適化入門 - 設計・開発・運用の実践テクニック
shibayan
0
510
Hack Azure! #5 - Geek of Azure Serverless
shibayan
0
120
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
0
9.7k
Terraform Provider for Azure に貢献してみた話
shibayan
0
640
Azure Functions と SendGrid の良い関係
shibayan
0
1.3k
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
1
3k
祝 東日本リージョン一般提供! Azure Application Insights 基礎と実践
shibayan
1
42k
なかなか楽にならないSSL/TLS証明書の話
shibayan
2
1.9k
.NET Conf 2018 Tokyo
shibayan
1
4.1k
Other Decks in Technology
See All in Technology
DIPS2.0データに基づく森林管理における無人航空機の利用状況
naokimuroki
0
180
Data Enabling Team立ち上げました
sansantech
PRO
0
300
解剖"React Native"
hacusk
0
120
「決め方」の渡し方 / How to hand over the "decision-making process"
pauli
8
1.3k
ストライクウィッチーズ2期6話のエイラの行動が許せないのでPjMの観点から何をすべきだったのかを考える
ichimichi
1
320
今年60歳のおっさんCBになる
kentapapa
1
360
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
570
試されDATA SAPPORO [LT]Claude Codeで「ゆっくりデータ分析」
ishikawa_satoru
0
340
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.3k
スクラムを支える内部品質の話
iij_pr
0
350
新規サービス開発におけるReact Nativeのリアル〜技術選定の裏側と実践的OSS活用〜
grandbig
2
180
終盤で崩壊させないAI駆動開発
j5ik2o
0
410
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
sira's awesome portfolio website redesign presentation
elsirapls
0
210
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Test your architecture with Archunit
thirion
1
2.2k
Agile that works and the tools we love
rasmusluckow
331
21k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
680
Tell your own story through comics
letsgokoyo
1
890
Evolving SEO for Evolving Search Engines
ryanjones
0
170
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
430
The browser strikes back
jonoalderson
0
900
Transcript
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)