Dev Study
← 研修トップ

仮想化とクラウドの土台

借りた機械の正体。1台の機械をなぜ分けるのか、ハイパーバイザは何を捕まえるのか、コンテナはなぜVMではないのか、リージョンとAZの物理はどこにあり、責任の線はどこに引かれるのか。アプリとDBの下に横たわる層を、OSとハードウェアの側から積み上げます。

  1. 1
    なぜ1台の機械を分けるのか — 利用率と隔離
    1つの処理は機械を使い切れません。待ちが大半なので、余った能力を他へ回したくなります。分け方は2つ、時間で分けるか空間で分けるかです。
    約 9 分
  2. 2
    ハイパーバイザ — 特権命令をどう捕まえるか
    VMの中のOSは、自分が機械の最上位だと思って特権命令を出します。その命令は素通りせず、ハードウェアが捕まえてハイパーバイザに制御を渡します。
    約 9 分
  3. 3
    VMのメモリ — 二重のアドレス変換
    ゲストOSが「物理アドレス」と思って使う番号は、ホストから見ればまだ仮想アドレスです。表引きが2段重ねになり、両方の表を辿ってはじめて実物の番地に着きます。
    約 9 分
  4. 4
    コンテナはVMではない — namespace で「見える世界」を分ける
    コンテナの中で動くのは、ホストのカーネルをそのまま使う普通のプロセスです。ゲストOSは無く、CPUの特権命令も1つも捕まえていません。
    約 9 分
  5. 5
    cgroup で資源を配る — 絞られるものと殺されるもの
    namespace が「何が見えるか」を分けるのに対し、cgroup は「どれだけ使えるか」を配ります。担当する機構が別です。
    約 9 分
  6. 6
    イメージはレイヤ — copy-on-write と内容アドレス
    イメージは1枚の塊ではなく、**読み取り専用の差分(レイヤ)の積み重ね**です。OCI image-spec はレイヤを「変更集合」と定義し、各レイヤを**中身のハッシュ(digest)で名指し**します。
    約 9 分
  7. 7
    クラウドは他人のコンピュータ — リージョンとAZの物理
    クラウドで借りた計算資源は、どこかの建物にある実物の機械です。リージョンは地理上の場所、AZ(アベイラビリティーゾーン)は電源・冷却・網が独立した1つ以上のデータセンターで、可用性の約束はこの物理的な分離から来ています。
    約 9 分
  8. 8
    どこまでが自分の責任か — 線は契約で決まり技術で消えない
    借りる層が上がるほど、線の下(物理・ハイパーバイザ・OS)は提供者に移ります。しかし線の上——データ、設定、暗号化を有効にするか、誰に何を許すか——は、どこまで上がっても自分に残ります。
    約 9 分
  9. 9
    オートスケールは何を見て増やすか — 測定・判断・起動の遅れ
    「自動で増える」は1つの動作ではなく、測定 → 判断 → 起動の3段です。どの段にも遅れがあり、効くのは3つの和だけ後です。
    約 9 分
  10. 10
    サーバレスとmicroVM — コンテナとVMの合流点
    他人のコードを同じカーネルの上で動かすと、見える範囲と使える量は絞れますが、カーネル自身の穴は共有したままです。
    約 9 分