『サーバー仮想化の次』というと時代錯誤な印象もありますが、オンプレミス⇒サーバー仮想化⇒クラウド化⇒プライベートクラウドとしてのサーバー仮想化と時代が回ってきています。
クラウド化の後にオンプレ回帰の流れがハイパースケーラーを中心にありました。その回帰した先に何が来るのかというのが今回のテーマです。
クラウド化以前のサーバー仮想化はハードウェアの集約・コスト削減という文脈で導入されていました。
そこからコロナの波が来て世の中がクラウド化に傾きました。クラウド化に傾いた理由はロケーションフリーという文脈です。
そこから更にオンプレミスのサーバー仮想化に戻ってきました。これはやはりコスト削減という文脈です。ここで1回目のサーバー仮想化と技術的に異なる点は仮想化されている範囲が異なるという点です。
1回目のサーバー仮想化では、サーバーハードウェアをスケールアップさせて、仮想化で分割するという手法が多かったように思います。特にストレージの点で、まだまだ巨大なSANストレージを利用していました。
2回目のサーバー仮想化では、サーバーハードウェアをスケールアウトさせていることが多いように思います。巨大なSANストレージを使用せずに、vSANやHCIといった考え方でストレージの仮想化をしています。
なぜこのような流れが起きているのか、インフラエンジニアの目線で考えると、インフラエンジニアの人材不足があると思います。エンジニアを目指す学生あるいは転職組は、エンジニア=プログラマーという感覚が非常に強いように感じます。多くの人がインフラエンジニアを目指さない中で、プログラマーとインフラエンジニアの人口比率は9:1かもっと少ない人数しかいないのではないでしょうか。過去に私が携わったプロジェクトでも、プログラマー200人、インフラエンジニア6人という体制でした。これほどの規模の案件でようやくインフラエンジニアをアサインできる規模という事です。ですので、クラウドなどのインフラエンジニアを必要としないシステムになっていったのは必然という印象です。
さて、vSANやHCIといったサーバー仮想化の次には何が来るでしょうか。
社会の大きな流れとして、分業化・専門化があります。昔は何でも自分でやったものです。ですが、今は分業化・専門化している時代です。先のプログラマーとインフラエンジニアの比率はさらに差が開いていくことになると予測されますので、『プログラマーがプログラミングに専念できる環境』というのが一つのトレンドになるでしょう。そういった流れの中で、コンテナが重要になってきます。Docker、Kubernetes、LXC/LXDといった者たちです。これらはさほど目新しい技術ではなくなり、認知されてきていると思います。開発環境としてはコンテナが市民権を得ていますが、ミッションクリティカルなシステムの基盤としては今一つといった状況です。
コンテナがミッションクリティカル分野で市民権を獲得しない要因はパッケージにあると考えています。
スマホゲームのバックエンド等であればゼロスクラッチで開発するので新技術を導入しやすいでしょう。しかし、巨大企業の社内システムになると、さまざまなソリューションベンダーのパッケージをベースとして開発していることが多いです。そのパッケージがコンテナ化されてこないと導入は進まないでしょう。
ただこれは時間の問題だと思います。ソリューションベンダーとしてもパッケージの適用先の環境を限定すると販売機会の喪失につながるので、コンテナ形式での提供という流れが出てくるものと思われます。
現に海外では新しいオープンソースパッケージはコンテナ形式で提供されるようになってきました。パッケージ形式(rpmなど)での提供はライブラリのバージョンとの依存関係などがあり、要件が複雑になりがちです。
向こう5~10年のトレンドとして、vSANやHCI、あるいはOpenStackなどの仮想化基盤上でコンテナを運用していく形態が一般化していくのではないかと見ています。それに合わせて、AWSなどのパブリッククラウド互換の基盤、例えばS3互換でSwiftやMinIOを用意していくことになるのではないかと考えています。
コメント