orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

コンテナの時代が来るどころか素通りしそうな勢い

f:id:orangeitems:20200118000228j:plain

 

 

コンテナが来ない

去年から虎視眈々とコンテナの時代に備えて爪を研いでいたのですが、どうにも違和感を感じています。やっぱり人々はVMが好きだ。OSがあってミドルウェアがあって、アプリケーションのあるモノリシックな構造が大好きだ。

まだこの世の中にはコンテナネイティブな人は少なくて、パソコンにOSが入っていてそこでアプリケーションを動かすことを肌感覚でおぼえている。この仕組みが仮想化され、どの物理マシンでも動くという事実はとても心地いいのです。

OSとアプリケーションの処理単位が一致するので絵が描きやすい。マイクロサービスの世界だと処理単位がつぶつぶになって、感覚がつかみにくいのです。

ただ時代の流れには逆らえないと思ってコンテナに取り組むも、どうもVMをクラウドで動かしたいというニーズは衰えないどころか加速しているように思います。少なくとも周りを見渡すと。

先日AWSが、EC2の仮想マシンそのもののイメージバックアップをサポートしました。

 

www.itmedia.co.jp

Amazon Web Services(AWS)はこのほど、バックアップの運用を一元化し、集中管理できるマネージドサービス「AWS Backup」の新機能を発表しました。

 新機能の1つ目は、EC2インスタンスそのものを丸ごとバックアップ/リストア機能。2つ目はバックアップした内容を別のリージョンへコピーする機能。3つ目はAmazon EFS(Elastic File System)のバックアップファイルの中から、任意の1ファイルを取り出してリストアする機能です。

 

コンテナはコンテナで進化する一方で、モノリシックな世界も地道にアップデートを重ねています。モノリシックでありながらも進化している。短所を補おうとしている。

そして人々は熱狂的にはコンテナは望まず、モノリシックなVMの世界に引き続きとどまろうとしているように私には見えます。

 

 

問題はストレージと通信回線にあり

OSのストレージ領域はLinuxであれば数GB、Windowsであれば30GBほどあります。この上にミドルウェアやアプリケーション、データが配置されますが、これはコンテナの世界も同様です。データは別出しにされるし、ミドルウェアやアプリケーションはコンテナの中にパッケージングされています。

ここで、発想を逆転して、コンテナにしろVMにしろストレージに永続データが含まれています。ストレージの性能が低いので、コンテナが現在好まれようとしています。数十GBのかたまりを、他の物理サーバーやデータセンターに動かすのは大変です。例えば2TBのハードディスクなんてもう数千円で手に入りますが、2TBを別のサーバーにコピーしようとしたらどれぐらいで完了するか。100Mbpsの通信回線を経由すると、どれぐらいかかるか。

2,048,000 MB / (100Mbps / 8) = 163,840秒 = 45時間 = 約2日

データがどんどん肥大化している現状において、たかだか2TBなのですが、バックアップや複製のためにコピーしようとすると本当に大変です。

ディスクに保管して物理的に移動する、なんてことも今でもやっています。

また通信回線が例え10Gbpsなどサポートしていていも、今度はストレージ自身のスピードが出ません。

通信もストレージも同時に技術革新が起こらないとこの状況は変わらなさそうです。

 

一方で、もし通信回線やストレージに超技術革新が起こったら。

今までの1万倍で転送するのがより簡単になったら。

もしかしたらコンテナを使うより、VMをコピーした方が早いという逆転現象が起きるのかもしれません。

そうすると、例えOSの領域が無駄だとしても、超高速ストレージでVMを使った方が便利ということが起きるのかもしれない。

これだけ世間がVM好きなので、コンテナが普及するよりストレージの方が先に性能がアップし数TBのコピーが一瞬で終わるのなら、大逆転でコンテナが捨てられる可能性だってあるかもしれないなと勝手に予想しています。

 

 

ハードウェアの力技がソフトウェアの世界を変えるパターン

大昔ですがMS-DOSというOSがあって、メモリーが今より全然小さかったので拡張メモリーみたいな考え方を用意して、どんどん複雑化していった時代がありました。

 

www.glamenv-septzen.net

DOS時代、およびWindows3.x, 9x時代くらいまでのメモリ管理技術、特にEMSとXMS周辺のまとめメモです。

 

これだけで本が出るぐらい複雑で専門的な話だったんですが、メモリー容量がガッツリ増えた上にOSが32bit/64bit化したことで、さっぱりメモリー管理の概念は無くなってしまいました。

なんとなく、理解が難しい技術って、ハードウェアが格段に進歩することによってバッサリ無くなる歴史が過去に何度もあるんですよね。

 

昨今のデータの大容量化、かつデータが経済でいよいよ重要視されるようになってきたこともあり、データを保管するストレージの世界も技術革新待ったなしの雰囲気です。コンテナもどこかで人が理解しやすい形でブレイクスルーしないと、ストレージの方が先に進化して、こんならVMでいいじゃん、となってしまう気がしてきましたので記事にしておきました。