Slide 1

Slide 1 text

遅延読み込みの歩みから理解するSeekableOCI 2024年11月2日 江口 純矢 JAWS-UG金沢支部×コンテナ支部合同企画 物理コンテナ見ながらコンテナ勉強会!

Slide 2

Slide 2 text

2 経歴 2021年、コドモンにエンジニアとして新卒で入社し請求関連のプロ ダクトを作成するチームに所属。その後、プッシュ通知の基盤を新し く作り直すプロジェクトを経て、SREにジョイン。 最近ハマっていること 早起きしてサウナに行った後、ハッピーアワーで昼飲み。 自己紹介 江口 純矢 えぐち すみや X:@egusumi1219

Slide 3

Slide 3 text

3 Mission

Slide 4

Slide 4 text

4 すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。

Slide 5

Slide 5 text

5 導入施設数推移(ICT) 2021年4月 8,000 2020年4月 5,200 2019年4月 3,000 2018年4月 1,500 2017年4月 500 2016年4月 120 全国導入数 19,000 施設 2022年2月 11,000 17,000 2024年1月 (2024年7月時点) 14,000 2023年4月

Slide 6

Slide 6 text

6 今日話すこと イメージ形式の進化と遅延読み込みの実現 コンテナランタイムにおける遅延読み込み機能の仕組み 従来のOCIイメージのまま遅延読み込みを実現するSOCI 1 2 3

Slide 7

Slide 7 text

7 今日話すこと イメージ形式の進化と遅延読み込みの実現 コンテナランタイムにおける遅延読み込み機能の仕組み 従来のOCIイメージのまま遅延読み込みを実現するSOCI 1 2 3 ※仕組みにフォーカスするので、導入方法や事例については別の記事を参照してください

Slide 8

Slide 8 text

8 1 今日話すこと イメージ形式の進化と遅延読み込みの実現 コンテナランタイムにおける遅延読み込み機能の仕組み 従来のOCIイメージのまま遅延読み込みを実現するSOCI 2 3

Slide 9

Slide 9 text

9 まずは従来のOCIイメージの構造から確認

Slide 10

Slide 10 text

10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 従来のOCIイメージ   1. イメージ形式の進化と遅延読み込みの実現 Manifest ファイル /var /opt … レイヤー1 file1 file2 … レイヤーN Open Containers. “Example Layout.” image-layout.md, GitHub, https://github.com/opencontainers/image-spec/blob/main/image-layout.md

Slide 11

Slide 11 text

11 CONFIDENTIAL - © 2022 CoDMON Inc. 11 従来のOCIイメージ   1. イメージ形式の進化と遅延読み込みの実現 Manifest ファイル /var /opt … レイヤー1 file1 file2 … レイヤーN Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip

Slide 12

Slide 12 text

12 CONFIDENTIAL - © 2022 CoDMON Inc. 12 従来のOCIイメージ   1. イメージ形式の進化と遅延読み込みの実現 Manifest ファイル /var /opt … レイヤー1 file1 file2 … レイヤーN Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip コンテナを起動する際に全てのレイヤーをpull しかし、実際の処理に必要なのは一部

Slide 13

Slide 13 text

13 CONFIDENTIAL - © 2022 CoDMON Inc. 13 従来のOCIイメージ   1. イメージ形式の進化と遅延読み込みの実現 Manifest ファイル /var /opt … レイヤー1 file1 file2 … レイヤーN Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip コンテナを起動する際に全てのレイヤーをpull しかし、実際の処理に必要なのは一部 「必要なものを必要な時に」で生まれたのがStargz

Slide 14

Slide 14 text

14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 従来のOCIイメージ   1. イメージ形式の進化と遅延読み込みの実現 コンテナを起動する際に全てのレイヤーをpull しかし、実際の処理に必要なのは一部 「必要なものを必要な時に」で生まれたのがStargz Seekable tar.gz の略 Manifest ファイル /var /opt … レイヤー1 file1 file2 … レイヤーN Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip

Slide 15

Slide 15 text

15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 遅延読み込みを可能にしたStargzイメージ   1. イメージ形式の進化と遅延読み込みの実現 Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip 従来のOCI形式

Slide 16

Slide 16 text

16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 Gzip 遅延読み込みを可能にしたStargzイメージ   1. イメージ形式の進化と遅延読み込みの実現 Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip Tar(TOC, Tarfooter) Tar(file1) Gzip1 Tar(file2) Gzip2 Tar(file3) Gzip3 従来のOCI形式 Stargz形式 GoogleのCRFS より提案 Google. “Introducing Stargz.”README.md, GitHub, https://github.com/google/crfs?tab=readme-ov-file#introducing-stargz

Slide 17

Slide 17 text

17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 Gzip 遅延読み込みを可能にしたStargzイメージ   1. イメージ形式の進化と遅延読み込みの実現 Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip Tar(TOC, Tarfooter) Tar(file1) Gzip1 Tar(file2) Gzip2 Tar(file3) Gzip3 従来のOCI形式 Stargz形式 GoogleのCRFS より提案 それぞれをgzipで細かく分割 Google. “Introducing Stargz.”README.md, GitHub, https://github.com/google/crfs?tab=readme-ov-file#introducing-stargz

Slide 18

Slide 18 text

18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 Gzip 遅延読み込みを可能にしたStargzイメージ   1. イメージ形式の進化と遅延読み込みの実現 Tar(file1) Tar(file2) Tar(file3) TarFooter Gzip Tar(TOC, Tarfooter) Tar(file1) Gzip1 Tar(file2) Gzip2 Tar(file3) Gzip3 従来のOCI形式 Stargz形式 GoogleのCRFS より提案 それぞれをgzipで細かく分割 gzip同士は連結しても構造が保たれるという特性を利用 gzipヘッダーが増えた分イメージサイズは数%大きくなるけど無視できる by Google Google. “Introducing Stargz.”README.md, GitHub, https://github.com/google/crfs?tab=readme-ov-file#introducing-stargz

Slide 19

Slide 19 text

19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 Stargzの構造をもう少し見てみる   1. イメージ形式の進化と遅延読み込みの実現 Gzip3 Tar(TOC, Tarfooter) Tar(file1) Gzip1 Tar(file2) Gzip2 Tar(file3) Gzip3 Stargz形式

Slide 20

Slide 20 text

20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 Stargzの構造をもう少し見てみる   1. イメージ形式の進化と遅延読み込みの実現 Gzip3 Tar(TOC, Tarfooter) Tar(file1) Gzip1 Tar(file2) Gzip2 Tar(file3) Gzip3 Stargz形式 各ファイルへの 位置情報を持つ

Slide 21

Slide 21 text

21 CONFIDENTIAL - © 2022 CoDMON Inc. 21 Stargzの構造をもう少し見てみる   1. イメージ形式の進化と遅延読み込みの実現 Gzip3 Tar(TOC, Tarfooter) Tar(file1) Gzip1 Tar(file2) Gzip2 Tar(file2) Gzip2 Stargz形式 各ファイルへの 位置情報を持つ TOC自体の 位置情報を持つ

Slide 22

Slide 22 text

22 CONFIDENTIAL - © 2022 CoDMON Inc. 22 コンテナ起動時にTarfooter→TOCの順番でダウンロード Stargzの構造をもう少し見てみる   1. イメージ形式の進化と遅延読み込みの実現 Gzip3 Tar(TOC, Tarfooter) Tar(file1) Gzip1 Tar(file2) Gzip2 Tar(file2) Gzip2 Stargz形式 各ファイルへの 位置情報を持つ コンテナ実行中、必要になった時にTOCを元に特定ファイルのみをpull TOC自体の 位置情報を持つ

Slide 23

Slide 23 text

23 CONFIDENTIAL - © 2022 CoDMON Inc. 23 Stargzの課題   1. イメージ形式の進化と遅延読み込みの実現

Slide 24

Slide 24 text

24 CONFIDENTIAL - © 2022 CoDMON Inc. 24 Stargzの課題   1. イメージ形式の進化と遅延読み込みの実現 実行のオーバーヘッド増 containerd. “Stargz Snapshotter.”README.md, GitHub, https://github.com/containerd/stargz-snapshotter

Slide 25

Slide 25 text

25 CONFIDENTIAL - © 2022 CoDMON Inc. 25 Stargzの課題   1. イメージ形式の進化と遅延読み込みの実現 そこで考案されたのがeStargz 実行のオーバーヘッド増 containerd. “Stargz Snapshotter.”README.md, GitHub, https://github.com/containerd/stargz-snapshotter

Slide 26

Slide 26 text

26 CONFIDENTIAL - © 2022 CoDMON Inc. 26 Stargzの課題   1. イメージ形式の進化と遅延読み込みの実現 そこで考案されたのがeStargz 実行のオーバーヘッド増 containerd. “Stargz Snapshotter.”README.md, GitHub, https://github.com/containerd/stargz-snapshotter

Slide 27

Slide 27 text

27 CONFIDENTIAL - © 2022 CoDMON Inc. 27 Stargzをより強化したeStargz   1. イメージ形式の進化と遅延読み込みの実現 アクセス頻度の高いファイルをコンテナ起動時にprefetch チャンクレベルの検証 主要な進化は以下二つ containerd. “overview.”estargz.md, GitHub, https://github.com/containerd/stargz-snapshotter/blob/main/docs/estargz.md#overview

Slide 28

Slide 28 text

28 CONFIDENTIAL - © 2022 CoDMON Inc. 28 Stargzをより強化したeStargz   1. イメージ形式の進化と遅延読み込みの実現 アクセス頻度の高いファイルをコンテナ起動時にprefetch チャンクレベルの検証 主要な進化は以下二つ containerd. “overview.”estargz.md, GitHub, https://github.com/containerd/stargz-snapshotter/blob/main/docs/estargz.md#overview

Slide 29

Slide 29 text

29 CONFIDENTIAL - © 2022 CoDMON Inc. 29 Stargzをより強化したeStargz   1. イメージ形式の進化と遅延読み込みの実現 アクセス頻度の高いファイルをコンテナ起動時にprefetch landmark fileによって prefetchする/しない の領域を区切る Kohei Tokunaga “Startup containers in lightning speed with lazy image distribution on containerd” https://medium.com/nttlabs/startup-containers-in-lightning-speed-with-lazy-image-distribution-on-containerd-243d94522361

Slide 30

Slide 30 text

30 CONFIDENTIAL - © 2022 CoDMON Inc. 30 eStargzはどうやってprefetchするファイルを決めている?   1. イメージ形式の進化と遅延読み込みの実現 legacy image eStargz image イメージをeStargzに変換 containerd. “Prioritized Files and Landmark Files.”estargz.md, GitHub, https://github.com/containerd/stargz-snapshotter/blob/main/docs/estargz.md#prioritized-files-and-landmark-files

Slide 31

Slide 31 text

31 CONFIDENTIAL - © 2022 CoDMON Inc. 31 eStargzはどうやってprefetchするファイルを決めている?   1. イメージ形式の進化と遅延読み込みの実現 legacy image eStargz image イメージをeStargzに変換 sandbox環境でコンテナを起動 file1:accessed file2 file3:accessed 起動時のファイルアクセスを解析 起動時アクセスされたファイルを prefetch対象に containerd. “Prioritized Files and Landmark Files.”estargz.md, GitHub, https://github.com/containerd/stargz-snapshotter/blob/main/docs/estargz.md#prioritized-files-and-landmark-files

Slide 32

Slide 32 text

32 CONFIDENTIAL - © 2022 CoDMON Inc. 32 コンテナランタイム側の対応   1. イメージ形式の進化と遅延読み込みの実現 コンテナランタイムもeStargzの構造に対応する仕組みが必要 ・TOCやlandmarkを解釈する仕組み ・欲しい部分だけをレジストリから取得する仕組み Kohei Tokunaga “Startup containers in lightning speed with lazy image distribution on containerd” https://medium.com/nttlabs/startup-containers-in-lightning-speed-with-lazy-image-distribution-on-containerd-243d94522361

Slide 33

Slide 33 text

33 2 今日話すこと イメージ形式の進化と遅延読み込みの実現 コンテナランタイムにおける遅延読み込み機能の仕組み 従来のOCIイメージのまま遅延読み込みを実現するSOCI 1 3

Slide 34

Slide 34 text

34 CONFIDENTIAL - © 2022 CoDMON Inc. 34 contaierd上でコンテナのファイルシステムを管理する「snapshotter」 2. コンテナランタイムにおける遅延読み込み機能の仕組み snapshotter plugin overlayfs legacy image default Nicola Apicella “What is a containerd snapshotter?” https://dev.to/napicella/what-is-a-containerd-snapshotters-3eo2#whats-a-snapshotter

Slide 35

Slide 35 text

35 CONFIDENTIAL - © 2022 CoDMON Inc. 35 eStargz image contaierd上でコンテナのファイルシステムを管理する「snapshotter」 2. コンテナランタイムにおける遅延読み込み機能の仕組み snapshotter plugin overlayfs legacy image overlayfsはeStargz形式に非対応だが eStargzがOCI互換なので利用可能 ※遅延読み込みはできない default

Slide 36

Slide 36 text

36 CONFIDENTIAL - © 2022 CoDMON Inc. 36 legacy image eStargz image eStargzに対応した「stargz snapshotter」 2. コンテナランタイムにおける遅延読み込み機能の仕組み snapshotter plugin stargz snapshotter plugged in

Slide 37

Slide 37 text

37 CONFIDENTIAL - © 2022 CoDMON Inc. 37 ・TOCファイル ・prefetch対象ファイル をダウンロード legacy image eStargz image eStargzに対応した「stargz snapshotter」 2. コンテナランタイムにおける遅延読み込み機能の仕組み snapshotter plugin stargz snapshotter plugged in コンテナ起動時

Slide 38

Slide 38 text

38 CONFIDENTIAL - © 2022 CoDMON Inc. 38 ・TOCファイル ・prefetch対象ファイル をダウンロード legacy image eStargz image eStargzに対応した「stargz snapshotter」 2. コンテナランタイムにおける遅延読み込み機能の仕組み snapshotter plugin stargz snapshotter plugged in コンテナ起動時 コンテナ実行中 必要なファイルは都度TOCを参照してpull

Slide 39

Slide 39 text

39 CONFIDENTIAL - © 2022 CoDMON Inc. 39 eStargz形式の課題   2. コンテナランタイムにおける遅延読み込み機能の仕組み 既存のOCIイメージをeStargz形式に変換する必要がある これを解決するのが、Stargz Snapshotterからフォークされた SOCI Snapshotter

Slide 40

Slide 40 text

40 3 今日話すこと イメージ形式の進化と遅延読み込みの実現 コンテナランタイムにおける遅延読み込み機能の仕組み 従来のOCIイメージのまま遅延読み込みを実現するSOCI 1 2

Slide 41

Slide 41 text

41 CONFIDENTIAL - © 2022 CoDMON Inc. 41 「stargz snapshotter」からフォークされた「soci snapshotter」   3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI Seekable OCIの略 従来のOCIイメージの形式を変更することなく、遅延読み込みを実現する 簡単に言えば「TOCをイメージの外に保存する」アプローチ

Slide 42

Slide 42 text

42 CONFIDENTIAL - © 2022 CoDMON Inc. 42 SOCIを実現するSOCI Index   3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI Toshiki Watanabe “詳解 : Seekable OCI を使用した AWS Fargate におけるコンテナイメージの遅延読み込み” https://aws.amazon.com/jp/blogs/news/under-the-hood-lazy-loading-container-images-with-seekable-oci-and-aws-fargate/

Slide 43

Slide 43 text

43 CONFIDENTIAL - © 2022 CoDMON Inc. 43 SOCIを実現するSOCI Index   3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI OCIイメージの横に、SOCI Indexというファイルを保存する だけで実現可能 Toshiki Watanabe “詳解 : Seekable OCI を使用した AWS Fargate におけるコンテナイメージの遅延読み込み” https://aws.amazon.com/jp/blogs/news/under-the-hood-lazy-loading-container-images-with-seekable-oci-and-aws-fargate/

Slide 44

Slide 44 text

44 SOCI Indexの構造を見てみる

Slide 45

Slide 45 text

45 CONFIDENTIAL - © 2022 CoDMON Inc. 45 SOCIを実現するSOCI Index   3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI Toshiki Watanabe “詳解 : Seekable OCI を使用した AWS Fargate におけるコンテナイメージの遅延読み込み” https://aws.amazon.com/jp/blogs/news/under-the-hood-lazy-loading-container-images-with-seekable-oci-and-aws-fargate/

Slide 46

Slide 46 text

46 CONFIDENTIAL - © 2022 CoDMON Inc. 46 SOCI Indexの構成要素   3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI レイヤーごとに、zTOCというメタデータを持つ Toshiki Watanabe “詳解 : Seekable OCI を使用した AWS Fargate におけるコンテナイメージの遅延読み込み” https://aws.amazon.com/jp/blogs/news/under-the-hood-lazy-loading-container-images-with-seekable-oci-and-aws-fargate/

Slide 47

Slide 47 text

47 CONFIDENTIAL - © 2022 CoDMON Inc. 47 zTOCの構成要素 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI zTOCはTOC, zinfoの二つの要素から構成される。 レイヤーごとに、zTOCというメタデータを持つ Toshiki Watanabe “詳解 : Seekable OCI を使用した AWS Fargate におけるコンテナイメージの遅延読み込み” https://aws.amazon.com/jp/blogs/news/under-the-hood-lazy-loading-container-images-with-seekable-oci-and-aws-fargate/

Slide 48

Slide 48 text

48 CONFIDENTIAL - © 2022 CoDMON Inc. 48 zTOCの使い方を見てみる 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC Amazon Web Services - Labs. “Conceptual Data Model.”index.md, GitHub, https://github.com/awslabs/soci-snapshotter/blob/main/docs/index.md#conceptual-data-model

Slide 49

Slide 49 text

49 CONFIDENTIAL - © 2022 CoDMON Inc. 49 zTOCをもう少し詳しく見てみる 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC Amazon Web Services - Labs. “Conceptual Data Model.”index.md, GitHub, https://github.com/awslabs/soci-snapshotter/blob/main/docs/index.md#conceptual-data-model

Slide 50

Slide 50 text

50 CONFIDENTIAL - © 2022 CoDMON Inc. 50 zTOCをもう少し詳しく見てみる 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) span TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC Amazon Web Services - Labs. “Conceptual Data Model.”index.md, GitHub, https://github.com/awslabs/soci-snapshotter/blob/main/docs/index.md#conceptual-data-model

Slide 51

Slide 51 text

51 CONFIDENTIAL - © 2022 CoDMON Inc. 51 zTOCをもう少し詳しく見てみる 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) span 解凍可能な 論理的な単位 TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC Amazon Web Services - Labs. “Conceptual Data Model.”index.md, GitHub, https://github.com/awslabs/soci-snapshotter/blob/main/docs/index.md#conceptual-data-model

Slide 52

Slide 52 text

52 CONFIDENTIAL - © 2022 CoDMON Inc. 52 zTOCをもう少し詳しく見てみる 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) span 解凍可能な 論理的な単位 TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC zInfoは解凍前OCI内の spanの情報 Amazon Web Services - Labs. “Conceptual Data Model.”index.md, GitHub, https://github.com/awslabs/soci-snapshotter/blob/main/docs/index.md#conceptual-data-model

Slide 53

Slide 53 text

53 bin/bashが必要になった想定で処理順で見る まとめ用スライド1

Slide 54

Slide 54 text

54 CONFIDENTIAL - © 2022 CoDMON Inc. 54 どのような順序で遅延読み込みができるか? 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) span TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC plugged in soci snapshotter

Slide 55

Slide 55 text

55 CONFIDENTIAL - © 2022 CoDMON Inc. 55 コンテナ起動前に事前準備 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC span plugged in soci snapshotter ① コンテナ起動前に zTOCを全てダウンロード

Slide 56

Slide 56 text

56 CONFIDENTIAL - © 2022 CoDMON Inc. 56 起動後、bin/bashが必要になった場合 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC span plugged in soci snapshotter ① ② ② bin/bash TOCを元に、tarアーカイブ内の該 当ファイルの位置を取得

Slide 57

Slide 57 text

57 CONFIDENTIAL - © 2022 CoDMON Inc. 57 起動後、bin/bashが必要になった場合 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC span plugged in soci snapshotter ① ② ② bin/bash bin/bash zinfoを元にtar.gz内で 該当ファイルと一致する spanを特定し解凍 ③

Slide 58

Slide 58 text

58 CONFIDENTIAL - © 2022 CoDMON Inc. 58 起動後、bin/bashが必要になった場合 3. 従来のOCIイメージのまま遅延読み込みを実現するSOCI 解凍前OCI Layer(tar.gz) 解凍後OCI Layer(tar) TOC zInfo ファイル名 解凍後OCI中のoffset 開始span 終了span bin/bash 1325576 0 0 bin/ls 12353 0 1 zTOC span plugged in soci snapshotter ① ② ② bin/bash bin/bash zinfoを元にtar.gz内で 該当ファイルと一致する spanを特定し解凍 ③

Slide 59

Slide 59 text

59 とはいえ、まだSOCIにもまだ改善の余地がある

Slide 60

Slide 60 text

60 一律「10MBより小さいレイヤー」 を対象にprefetch

Slide 61

Slide 61 text

61 一律「10MBより小さいレイヤー」 を対象にprefetch prefetch対象がアクセス頻度にかかわらず そのレイヤーのサイズの大小で決まってしまう

Slide 62

Slide 62 text

62 prefetch対象の柔軟性を高める Load Order Document という機能の導入が検討されてます Amazon Web Services - Labs. “Workload-specific load order optimization.”design-docs/Readme.md , GitHub, https://github.com/awslabs/soci-snapshotter/blob/97feaeabdeb3318279bfe2a707ea81f837a6b83e/docs/design-docs/README.md#design-docs

Slide 63

Slide 63 text

63 皆さんもこれを機に遅延読み込みについて 調べてみてはいかがでしょうか?

Slide 64

Slide 64 text

64 コドモン採用ページ 開発ブログ コドモンでは一緒に働きたい仲間を募集しています!

Slide 65

Slide 65 text

65 ご清聴ありがとうございました!

Slide 66

Slide 66 text

66 最後に

Slide 67

Slide 67 text

67 X:@egusumi1219

Slide 68

Slide 68 text

No content