dockerを用いてシステム設計する際に注意すべきことがある。1バーチャルマシン(つまりサーバ1台)として捉えるとうまく設計できない。
dockerを用いる場合、「再現性」、「構築フロー」、「デベロッパーがサーバ管理できる」といったメリットがある。
しかし、コンテナやホストマシンの管理、docker自体の頻繁なアップデートによる学習コストなどがデメリットである。
システム設計で大切なこと
dockerコンテナの運用方法自体が簡潔になる方向を模索する。
1コンテナは1デーモンと考える
コンテナはサーバ上で起動する1デーモンと考えること。
コンテナに永続化するデータが存在しないこと
ログを含む永続化対象のデータはすべて、コンテナ外へ保存すること。
設定はすべてアプリケーションコード外で管理すること
設定がアプリケーションコードに依存していると、アプリケーションの変更によって接続先が変わってします可能性があるため。
ホストマシンには出来る限り直接パッケージをインストールしないこと
ミドルウェアを含めた環境全体をコンテナとして動かすこと。
ホストマシンの管理を不要にし、可能な限りコンテナのアップデートコストのみにする。
buildには基本Dockerfileを使用すること
シンプルで簡単だからである。
0 件のコメント:
コメントを投稿