DockerとVirtualBoxの違い
DockerとVirtualBoxの違いをメモ。
インフラ初心者の自分のためのメモ。
【参考】
Dockerとは何か?初心者にもわかりやすく仕組みやメリットを解説
「Docker」を全く知らない人のために「Docker」の魅力を伝えるための「Docker」入門 - Qiita
VirtualBox - DockerとVirtualBoxの違いについて|teratail
「Vagrant」と「Virtual Box」の違い - Qiita
初心者のための Vagrant, Chef, VirtualBox の関係 - Qiita
サーバー仮想化には、ハイパーバイザー型とコンテナ型がある。
ハイパーバイザー型はVirtualbox。
アプリケーションを実行するためにはまずゲストOSを起動する。
CPUやメモリ、ディスクなどのリソースも多く消費する。
コンテナ型はDocker。
コンテナはホストOSから見ると単一のプロセスとして扱われる。
カーネル部分をホストOSと共有するため、リソース使用量が非常に少ない。
以前どこかのZoomで、サーバ仮想化の技術がどんどん進化しているけど、コンテナ型のDockerは結局、Unixのプロセスと同じだよね、という発言を聞いた時があった。
その時は、そんなものかと特に感動しなかったが、ようやくその意味に気づいた。
コンテナが流行るのは、Infrastructure as codeの流れからして、開発環境やサーバー環境の構築を全てテキストで管理できること。
WindowsでもMacでもAWSでもどこでも同じテキストで構築できる。
そうすれば、作った環境を使い捨てしながらどんどん開発できる。
クラウド時代になって、オンプレミスで物理的なハードディスク装置の冗長化構成などを考える必要がなくなった。
それは単に、物理環境から仮想化環境に変わったことを意味しているわけではない。
一度作った環境は使い捨てにできる。
いつでも同じ環境を復元できるから。
すると、冗長化構成した時も、複数のノードを管理するアプリが重要であって、管理される側のノードはどんどん使い捨てていいというネットワーク設計にすればよい。
かつては、メモリやハードディスク、サーバーは貴重なリソースとして扱う必要があった為に、大切に扱うような設計手法ばかりだったが、今は使い捨てを前提とした設計手法に変わった、ということだろう。
そんな事を考えながら、改めて「ネットワークの根本問題は何だろうか?」を考えている。
ネットワークのQCDをバランス良く実現するためには、現状の技術の制約ではどんな課題があって、どんな設計手法が必要になるのか?
現代のように次から次へと新しい技術が生まれたとしても、その背景にある根本的な問題は変わらないのではないか?と推測している。
たとえば、ネットワークスペシャリスト試験の難易度|ネットワークスペシャリスト.comにこんな一節があった。
(引用開始)
なぜ難易度が高いのか?
これは「午後問題が難しい」ことに尽きます。
また出題範囲が広く、何がどういった形で出題されるかが読めないため対策が立てにくいことも合格を難しくしている要因の1つです。午前試験に関しては過去問の流用が多いので過去問の反復練習で容易に突破できますが、午後問題についてはそうはいきません。
午後試験をいい表した言葉の中で私が印象に残っているのは、「午後試験は、受験者のうち10%未満しか経験したことのない技術についての説明を読み、基礎知識を応用して解く試験である」というものです。
実際に近年だけを見ても、VPFやSDN、VoIP、IPv6、VXLAN、WAN高速化装置、UDP/QUIC、IPsecの詳細など新技術の出題を挙げればきりがありません。
このような問題に対処するためには確かな知識・技能に加え、その応用力が求められます。
(引用終了)
つまり、新しい技術が生まれたとしても、基本的な技術であるOSI7層モデル、ルーティング、スイッチング、TCP、信頼性・効率性・セキュリティなどを理解していれば、問題の本質を見抜けるはずだ。
たとえば、最近のニュースでは、楽天モバイルの普及に苦労している記事を見かける時があるが、基地局まで仮想化してしまおうとする楽天の仮想化技術にはとても興味はある。
楽天が通信網の「完全仮想化」技術をドイツに輸出、目指すはAWSで稼ぐアマゾン | 日経クロステック(xTECH)
楽天モバイルの「世界初、完全仮想化」ネットワーク、分かりやすく説明するとどうなる?:OpenStack Daysでカーン氏が解説 - @IT
ネットワークの根本問題は何か~昨今のIT技術と時代の変化についての考察: プログラマの思索
Dockerは仮想スイッチと仮想イメージの両方を持つ: プログラマの思索
SDNアーキテクチャの本質は巨大な仮想L3スイッチを実現したことではないか: プログラマの思索
他にも色々考えていく。
| 固定リンク
「ネットワーク・クラウド」カテゴリの記事
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- Go言語でできることは何なのか(2022.11.06)
コメント