Slide 1

Slide 1 text

Firecrackerの紹介 ~クラウドの裏側~ HiCoder: kaito_tateyama

Slide 2

Slide 2 text

Firecrackerを知って2日目なのでそんなに深い話はできません><

Slide 3

Slide 3 text

目次 1.クラウドってどんな仕組み? 2.Firecrackerの紹介 なぜFirecrackerが必要なのか 目標は どの程度目標を達成したのか

Slide 4

Slide 4 text

1.クラウドってどんな仕組み? Firecracker: サーバレスなサービス(Fargate, Lambda)向けに作ら れた仮想化技術 →そもそもクラウドの仕組みって...というところから説明

Slide 5

Slide 5 text

1.クラウドってどんな仕組み? クラウドを使おう! →サーバを借りるとき、裏ではどう なっているのか? →サーバ1台につきOS1個??

Slide 6

Slide 6 text

1.クラウドってどんな仕組み? ハードウェア1個に対し複数のOS →OSを管理するもの(Hypervisor)

Slide 7

Slide 7 text

1.クラウドってどんな仕組み? ホストハイパー バイザ ネイティブハイ パーバイザ(ベア メタルハイパー バイザ) 今日はこっちの話

Slide 8

Slide 8 text

1.クラウドってどんな仕組み? サーバレス →サーバの設定、管理がいらない! (AWS: Fargate, Lambda)

Slide 9

Slide 9 text

1.クラウドってどんな仕組み? Firecracker FargateやLambdaで使われている Hypervisor (正確にはVMM)

Slide 10

Slide 10 text

2.Firecrackerの紹介 usenix: nsdi’20 Firecracker: Lightweight Virtualization for Serverless Applications

Slide 11

Slide 11 text

なぜFirecrackerが必要なのか セキュリティと起動速度(オーバーヘッド)のトレードオフ →いいとこどりをしたい! サーバレス向けなので機能は小さくてよい コード量も小さく

Slide 12

Slide 12 text

なぜFirecrackerが必要なのか Firecrackerができないこと Kubernetes並みの高度なオーケストレーション device(USB)やBIOS、CPU Instructionのサポート Firecrackerのコード量 7万LOCくらい(2020/8/23: https://github.com/firecracker-microvm/firecracker) (参考: QEMU v4.2は140万LOC over)

Slide 13

Slide 13 text

目標は? Isolation: privilege escalationを防ぎたい Overhead and Density: 起動速度を高速に、かつ大量に動かしたい Performance: nativeと同じ性能を出したい Compatibility: Lambdaはすでに稼働していたので、互換性は大事 Fast Switching: Lambdaの起動と消去を高速にしたい Soft Allocation: 必要な分だけのリソース確保(CPU、メモリなど)

Slide 14

Slide 14 text

目標はどの程度達成したのか? Isolation: Rust使っているしTestもしているので自信あり Overhead and Density: ひとつのハードウェアで数千のmicroVM Performance: Block IOとNetworkに改善の余地あり Compatibility: Linux Kernelとuserlandをそのまま使っているのでOK Fast Switching: 150msで、かつ複数起動できる Soft Allocation: OK

Slide 15

Slide 15 text

まとめ ● サーバを借りて使ったり、AWS LambdaやFargateを使う裏側で は、Hypervisorが頑張っている ● Firecrackerはサーバレス向けに機能を制限し、セキュリティとオー バーヘッドのトレードオフを乗り越えていいとこどりを実現した ● 結局その両取りができた理由が詳しく分からなかったので、もう ちょっと詳しく読まないと...

Slide 16

Slide 16 text

使用したイラスト いらすとや(9点使用) Linux Tux https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Tux.svg AWS Simple Icon https://aws.amazon.com/jp/architecture/icons/ Docker Moby Logo https://www.docker.com/company/newsroom/media-resources