ASP.NET Core 2.0
×
App Service on Linux
Tatsuro Shibamura (@shibayan)
Microsoft MVP / Freelance
Slide 2
Slide 2 text
今日話す内容
• 最近 ASP.NET Core 2.0 で真面目にアプリを書いている話
• MVC 5 と同じ感覚で書いて致命傷で済んだ、とか
• 主に苦労話かも
• App Service on Linux で動かそうと思っている話
• Windows 版だとデプロイが不安定な場合がある
• Docker でカッコいい感じにしたい(
Slide 3
Slide 3 text
懺悔
• 最近、やっと真面目に ASP.NET Core 2.0 を触り始めました
• 1.1 の時は 1 つ API 作ったぐらいにしか仕事で使ってない
• 仕事では大体 ASP.NET MVC 5 で書いていた
• やっぱ使い慣れてて楽だった…
Slide 4
Slide 4 text
仕事で 2.0 を使うことに
• お客さん「好きな技術を選んでいいよ」
• 俺「あ、じゃあ ASP.NET Core で」
• お客さん「おk。でも 2.0 出たしアップデートしよう」
• 俺「(そういえば ASP.NET Core しっかり触ってない…)」
ASP.NET Core がサポートする環境
• Windows (IIS / WebListener)
• 例えば App Service
• Linux (Apache / nginx)
• アプリケーションをサービスとして動かす
• Docker (Windows / Linux)
• アプリイメージを作れば動く
Slide 26
Slide 26 text
おすすめは Docker
• Windows では
• 正式に対応した環境は App Service ぐらい
• Linux では
• デプロイ周りの仕組みから作る必要がある
• サービスとして起動する設定も
• Docker では
• 既存の Docker 向け環境、デプロイの仕組みをそのまま使える!
Slide 27
Slide 27 text
コンテナに対する MS の本気度
• Visual Studio 2017
• Docker サポートが超強化、ビルドからデバッグ、デプロイまで
• App Service on Linux
• Web アプリケーションの実行向け
• Azure Container Instances
• Linux のコンテナなら秒速で起動する!
• Windows のコンテナにも一応対応
おまけ : 間違いやすい Docker Image
• microsoft/dotnet-framework
• 実質 Windows Server Core イメージの別名
• microsoft/aspnet
• Windows Server Core に IIS と ASP.NET をインストールしたもの
• 現時点では、ほぼ使い道がない(忘れてても良い)
Slide 31
Slide 31 text
アプリケーションのデプロイ
• Visual Studio から直接 App Service へ
• Azure Container Registry が必要
• Visual Studio Team Services でビルドして App Service へ
• ACR が必要
• CI SaaS でビルドして App Service へ
• ACR 無くても頑張れる
Slide 32
Slide 32 text
Visual Studio から App Service
Slide 33
Slide 33 text
CI SaaS を使ってビルド、デプロイ
• Docker が使えるサービスの場合
• microsoft/aspnetcore-build イメージをベースに
• NuGet パッケージが予めキャッシュされてるので高速
• Visual Studio Team Services なら標準対応
• .NET Core が既にビルドワーカーにインストール済み
• Docker も標準で使える
Slide 34
Slide 34 text
App Service on Linux の利点
• 自動的なフェールオーバー
• コンテナ入れ替えでのダウンタイム無し
• デプロイの仕組みが組み込まれている
• ホストのメンテナンス不要