DockerでのASP.NET Core MVCアプリの作成を始めた

 VisualStudioでのアプリ作成にも、数バージョン前からDockerサポートがオプションで付けられるようになった。もうDockerはただの流行りではないことは明白だ。

 あるところのWebアプリはVPS環境下で運用されており、デプロイはFTP接続で行われている。アプリが動く環境は改修の度に必要になったライブラリや設定の継ぎ足しで、秘伝のタレ化している。
 ある改修で環境を用意しなおしたら、いくらかの機能が動かなくなった。これが秘伝のタレ化の代表的な弊害だろう。この秘伝のタレ化を避ける一つの手段が、Dockerを使って、デプロイと廃棄のサイクルを回していくことだ。Dockerならば、環境構築はDockerfileという設定ファイルに書いて、それでアプリをデプロイしていくのが標準的な運用になる。アプリのバージョン管理さえしていれば、環境構成もバージョン管理されていくことになる。タレの作り方は公知となる。

 アプリをバージョン管理するとなれば、アプリの構成の仕方はちと意識しないといけないことが出てくる。いわゆる「ステートレスにしろ」ということだ。
 ディレクトリ構成をそのままパスにしているようなアプリで、たとえばユーザのアップロードしたファイルがプロジェクトのディレクトリに含まれてしまうとバージョン管理が厄介になってくる。そこはAWSのS3とかAzureのファイルストレージを使うとかでコードと運用で出てくる産物を切り離す。そういうノウハウがまとまっているのが"12 factor app"
The Twelve-Factor App

 そういうわけで、環境構築やデプロイというところでは手作業職人の道ではなく、自動化ができるエンジニアの道をDockerを使ってたどっていくことにする。
comment: 0