• 2020年5月14日木曜日
アリスト戦記
アリスト戦記 https://blog.aristo-solutions.net/2020/05/docker.html

Dockerで便利そうなことまとめ

一昨日くらいから現場でDockerを使い始めたんだけど、便利だね。(*´ω`*)
気付いたことをまとめておこう。

徒然とDockerで便利そうなこと

1.好きに作ったり消したり

Dockerのカラクリは通常の仮想マシンとは違う。正確にはコンテナと言って、仮想マシンとは別物なのだが、細かいことはさておきとして。
利用者からすると、そこにサーバが一個あるのと同じだろう。

では、その使い勝手として、Dockerは普通の仮想マシンとどう違うのか。
それは手軽さだね。

だって、仮想マシンと言ったって、好き放題にポンポコ作ることは大抵できなくて、AWS EC2 で仮想マシンを増やしたら予算を圧迫してしまうし、VM Wareとかで仮想マシンを増やしてもリソースを食ってしまう。

その点、Dockerは軽量だから増やしてもリソース圧迫は少な目だし、何と言ってもサーバの中のコマンドでサーバを増やせる。

仮想マシンの場合はサーバの外で仮想マシン担当者に増やして貰う必要があるが、Dockerは内々で作ったり消したり出来るわけよ。

だから作業者の好きなように作ったり消したり出来るのが良い。

以下、全部その延長線上の話だが、実例として。

2.サーバを分けられる

貧乏なプロジェクトだとサーバを1台しか調達できないから、「Webサーバ、APサーバ、DBサーバが全部同じサーバ」ってことになりがちなんだけど、Dockerを入れれば、物理的には1台だけど、論理的にはサーバを好きなだけ分けられるでしょ?

正論のサーバ構成が出来るのよ。

3.テスト用

開発過程だと色々な都合で様々なバージョンのモジュールを展開したいとかあるよね。

  • 本番環境と同じモジュール
  • 本番と限りなく近いステージング環境
  • 最新の開発モジュールを展開した正規の結合環境
  • お客様にちょっとチェックして貰う為の仮のスペース
  • 何かちょっと動きがおかしいからプログラマーの実験用に

とかなんとか、何かの都合で別のAPサーバが必要になることが稀によくある。
今までは職人芸と人間コミュニケーションで凌いでいたけど、Dockerがあれば、ちゃんとサーバを増やすという正論のやり方が出来る。。

4.1人1サーバ可能

実装って、普通はローカルパソコンでやってると思うんだけど、Dockerがあれば1人1サーバを割り当てることも容易だよね。

ローカルパソコン内にDockerを立てることも出来るが、共通サーバの中にDockerを立てて1人1サーバを割り当てることも出来る。

こうすると、他人のプログラムを見たり、レビューが出来るわけよ。

( ゚Д゚)「何か動かないんですけど?」
(´・ω・`)「ちょっと見せてみぃや?」

としたいときでも、リモートワークしてたら動かない部分のソースを何とかして送って貰わなきゃいけないでしょ?

共通サーバDocker構成なら、相手のサーバにログインして自分の目で見れば良いから、リモートワークが捗る。

5.ローカル環境を綺麗に

僕はまだそんなにスクランブルな開発はしてないけど、色々な開発をしている人の場合、

  • このプロジェクトはこのMySQL
  • このプロジェクトはこのPostgres
  • こっちのプロジェクトは昔のPostgres
  • これからのプロジェクトは最近のMySQL

みたいな感じで、ミドルウェアのバージョン違いまでローカルで直対応してたらゴチャゴチャになっちまうでな。

ローカルパソコンにDockerを入れて、その中にミドルウェアを入れれば、単体環境を汚さずに行けるってことだよね。

6.コンパイル環境をDockerへ

何か最近、現場で、違う人がコンパイルしたら実行環境の違いから変な差分が、みたいなことがあって。(;´^ω^`)

Dockerでコンパイル環境を構築して、それを配っておけばそんなことは起きない。

7.イメージ丸コピで構築

Dockerはイメージデータで、サーバを丸コピできるそうだ。
だから、

  • ステージング環境を丸コピして本番環境に適応してリリース

とか出来るはず。
これなら本番環境で構築手順間違えちゃった、みたいなことは無い。

また、何だかんだで「ステージング環境と本番環境はちょっと違いがある」みたいなことになりがちだけど。(;´^ω^`)

上述のとおり、Dockerは気軽にサーバを増やせるから、

  • 厳密に本番環境と同じステージング環境はこれ
  • 何かの事情でちょっと変えたい時は別途こっち

が出来るはずだよね。

まあ、イメージを丸コピしたらデータまで潰れた、みたいなことにならんよう、データ領域は別サーバにするなど、構成を工夫する必要はあるけどね。

終わりに

とまあ、こんな感じに、Dockerを器用に使えば、作業効率も品質もグ~ンと上げていけるのではないだろうか。

中々良い物だ。ちゃんと勉強して使いこなせるようになりたい。(´^ω^`)

0 件のコメント:

コメントを投稿