2016年10月13日木曜日

Dockerの未来


Dockerの次の進化は階層化だ、といったら怒られるだろうか。

OSのコアを共有にすることで仮想マシンのフットプリントを軽くするのが最初の主旨だったはずだが、その後そのコアを極限まで小さくするCoreOSが出てきた。すると、個々のコンテナには多くのミドルを載せなければならず、フットプリントが小さくならないという本末転倒が起きる。

もう一つの問題は、ミドルは一つではないということだ。あるミドルの前提ミドルにもバージョン違いがあるなど、ミドルの組み合わせは網羅すると爆発する。このため、それ毎に独立したメモリ空間が必要となり、もうDockerの意味は何なのだろう、となってしまう。

OS、ミドル各々にバージョン毎のサポート期限があり、その数が多ければその度に確認やバージョンアップ、そして動作確認が必要。最上位のアプリは溜まったものではない。

提案するのは、Dockerのような共通コアを持つ仮想マシン上に特定のミドルウェアを搭載したものを、改めて共通コアとみなすものだ。スナップショットにも似ているが、ストレージの差分ではなく動いている実体としての差分である点が異なる。ミドルのインストール順やバージョン、組み合わせによってそれは枝葉のように分かれ、その上にアプリケーションが乗る。

ミドルのバージョンアップがあったときは、オリジナルを書き換えるのではなく、新しい枝葉を作ってアプリを移植し、動作確認する。これで不具合があれば何時でも元に戻せる。根元の方でバージョンアップがあると枝葉の作りが大変だから、その辺の管理ツールもあることが望ましい。

但し、これは望ましい未来とは言えない。ではどうすべきかと言えば、ミドルの機能は単体のマシン(オブジェクト、ノード、何でも良いが、ソフトから見て計算機として独立した存在)にすることだ。こうすれば通信先を切り替えるだけでバージョンアップが可能になる。

もちろん今まで出来て来なかったことだから、簡単ではないことは理解している。ただ近い将来、このような構築方法が新たに出てきて、いわゆる「イノベーションのジレンマ」が発生する可能性については指摘しておきたい。

0 件のコメント:

コメントを投稿

注目の投稿:

超・貧乏人向け非常食

以前紹介した  貧乏人向け非常食 を更に改良し、一食当たり100円を切る超低価格非常食を開発したのでここに披露する。 前回の非常食で最もかさばり金額も高かったのは春雨だった。これは主に糖質(炭水化物)を担当するのだが、これをもっと安価にできないかと色々調べてみた。金額だけ見るとパ...

人気の投稿: