Dockerって話題ですよね。
でも、何に使って良いのやら、クラウドと何が違うのやら、分かりにくいので
我流で調べてみました。
Dockerは仮想サーバではない
ここらへんがよく分からない箇所。
クラウドで良くある、仮想サーバ(KVMやVMwareなど)ではなく、
Dockerは、PaaS的なサービス用途毎のサービス提供の一種。
まあ、もっと端的に言うと、ApacheなどのWebサーバが使えるコンテナという単位で
細かくサーバをシェアするサービス。
大元の母艦は実サーバで、その上に仮想サーバを立てて、
Linuxなどの仮想サーバの根底部分は共通で使うので、各コンテナからカスタマイズするのではなく、
コンテナを用途ごとに細かく分けて、コンテナにアプリケーションをデプロイする。
従って、仮想サーバの大元(CoreOSとか呼ばれているやつ)は、Linuxのコアしか動いておらず、
その上に乗っけるコンテナ部分でサーバアプリケーションを動作させる。
サーバ丸ごと1台をコンテナが使うのではなく、コンテナを複数台共有してサーバを1台動かす。
みたいな感じ。
素朴な疑問
・スケールするとき大丈夫?
・メモリやCPUのリソースは足りる?
・ストレージは足りるの?
・DBみたいなリソース食いのサーバアプリは動くの?
・1台のコンテナにLAMPは構築できる?
のがすごい素朴な疑問。
機会があれば、後日Qiitaで実験結果のレポ乗せます。
結論
・開発用途向け?
・本番用途に耐えられる?
そんな疑問点が残りましたとさ。
Windows AzureのWeb Paasサービスもこんな感じだった。
サーバマシン1台ではなくて、必要な環境を利用する感じ。
新しい技術、確かに開発用途で複数台のサーバは要らないけど、他人と共有して干渉されるのは
いやなので、別々の環境として欲しいときには役立つかも。