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
85
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ASP.NET と Docker そしてクラウドの関係
Tatsuro Shibamura
PRO
June 17, 2017
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
AI Agent を本番環境へ―― Microsoft Foundry × Azure Serverless で作る Enterprise-Ready な基盤
shibayan
PRO
2
1.4k
Azure Cosmos DB パフォーマンス最適化入門 - 設計・開発・運用の実践テクニック
shibayan
PRO
0
600
Azure Serverless のパフォーマンスとコストを 最適化
shibayan
PRO
0
20
Microsoft Azure で実現する最新クラウドアーキテクチャ
shibayan
PRO
0
27
Hack Azure! #5 - Geek of Azure Serverless
shibayan
PRO
0
140
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
PRO
0
10k
Terraform Provider for Azure に貢献してみた話
shibayan
PRO
0
670
Azure Functions と SendGrid の良い関係
shibayan
PRO
0
1.4k
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
PRO
1
3.1k
Other Decks in Technology
See All in Technology
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
5
1.8k
Minecraft JavaのMODをSwiftで作る
1mash0
0
190
SREは、MCPとAutopilotをこう使え!
kazumax55
3
910
Claude Code本って、 読む必要あるの?
oikon48
2
490
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
220
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
150
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
5
480
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
220
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
1k
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
CLIライブラリ開発を支える技術
htnabe
0
140
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
New Earth Scene 8
popppiees
4
2.6k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Paper Plane
katiecoart
PRO
4
53k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Design in an AI World
tapps
1
320
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
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)