【図解】コレ1枚でわかるサーバー・コンピューター利用の歴史的変遷
1950年代、コンピューターがビジネスで使われるようになりましたが、非常に高価で個人が占有して使うことはできませんでした。そこで大型コンピュータ(メインフレーム)を共同利用するために、「バッチ」処理が登場します。バッチは処理ごとの「プログラムとデータのひとまとまり(ジョブ)」を逐次処理するのですが、前の処理が終わるまで次の処理が始められません。
1960年代になり、「タイムシェアリング(時分割)」が考案されました。これはCPU処理時間を細かく分割し短時間でユーザーを切り替えることで、見かけ上、同時に複数ユーザーが使えるようにするものです。1960年代後半、この時分割された処理単位毎にハードウェア機能の割り当てや設定を切り替えることで、1台のハードウェアで複数のハードウェアが同時に動いているように機能させる「仮想化」が登場します。
1980年代に入り、PCやミニコン、オフコンといった安価なコンピューターが登場したことで、使用上の制約も多いメインフレームの仮想化ではなく、個別に購入して使おうという機運が高まります。その結果、企業が抱えるコンピューター台数は増え、バージョンアップやトラブル対応、維持管理に関わる手間やコストが膨れあがっていきます。
2000年代に入り、この事態に対処しようと複数のハードウェアを集約しようと「仮想化」が再び注目されます。この仮想化されたコンピューターやストレージなどのシステム資源を運用管理してインターネット越しに貸し出そうというクラウド・サービス(IaaS)が登場します。
ただ、仮想化されたコンピューターは、それぞれにOSやファイルを持ち、CPUやメモリーなどのシステム資源も本物と同じだけ消費します。そこでOSの中核(カーネル)を共用し、一方で「仮想化」同様にユーザー毎に隔離されたアプリケーション実行環境、すなわちクラッシュの分離、独自のシステム管理とユーザー・グループを持つ仕組みを提供する「コンテナ」が登場します。
コンテナを使えば、同じシステム資源であっても、仮想化に比べて何倍もの数の「隔離されたアプリケーション実行環境」を動かせます。また、自社所有やクラウドなど区別することなく、インフラをまたがる実行環境の移動や規模の拡張・縮小などが容易になり、コンテナを利用するケースが増えています。