SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Kohei Tokunaga, NTT Corporation
Startup Containers in Lightning Speed
with Lazy Image Distribution
l Pull is one of the time-consuming steps in container lifecycle
l Stargz Snapshotter, non-core subproject of containerd, is trying to solve it by lazy-pulling
images leveraging stargz image by Google
• Further runtime optimization is also held with an extended version of stargz (eStargz)
l There are also other OCI-alternative image distribution strategies in container ecosystem
Summary
Host: EC2 Oregon (m5.2xlarge, Ubuntu 20.04)
Registry: Docker Hub (docker.io)
Commit b53e8fe
(See detailed info in the later slides)
[sec]
0 5 10 15 20 25
estargz
stargz
legacy
python:3.7 (print “hello”)
pull create run
Pull is time-consuming
pulling packages accounts for 76% of container start time,
but only 6.4% of that data is read [Harter et al. 2016]
[Harter et al. 2016] Tyler Harter, Brandon Salmon, Rose Liu, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau. "Slacker: Fast Distribution with Lazy Docker
Containers". 14th USENIX Conference on File and Storage Technologies (FAST ’16). February 22–25, 2016, Santa Clara, CA, USA
Caching images
Minimizing image size
Cold start is still slow
Not all images are minimizable
Language runtimes, frameworks, etc.
Workarounds are known but not enough
NodeRegistry
Image Container
pull run
OCI/Docker Specs for image distribution
A container is a set of layers
Distribution Spec
l Defines HTTP API of registry
l Layer can be fetched as a “blob” named
with a content-addressable digest
l Optional support for HTTP Range Request
Registry
sha256:deadbeaf…
sha256:1a3b5c…
sha256:ffe63c…
sha256:6ccde1…
GET /v2/<image-name>/blobs/
layers
(blobs)
rootfs
Extract
&
Mergemani
fest
Image Spec
l Defines layers and metadata (image
manifest, etc.)
l Layer is defined as tar (+compression)
l Rootfs can be composed by merging layers
layers
Image
Problems on the OCI/Docker Specs
sha256:deadbeaf…
sha256:1a3b5c…
sha256:ffe63c…
sha256:6ccde1…
GET /v2/<image-name>/blobs/
bin/bash
bin/ls
etc/passwd
etc/group
usr/bin/apt
layer =
tarball (+compression)
A container is a set of tarball layers
A container can’t be started until the all layers become locally available
even if the most of the contents won’t be used on container startup
l Need to scan the entire blob even for
extracting single file entry
• If the blob is gzip-compressed,
it’s non-seekable anymore
l No parallel extraction
• Need to scan the blob from the
top, sequentially
Lazypull with containerd Stargz Snapshotter
Stargz
Snapshotter
kubelet, etc
OCI
runtimes
Container Registry
lazypullstargz
images
l Non-core subproject of containerd
l Works as a plugin of containerd
l Standard-compliant lazy pull leveraging stargz image by Google
Stargz Snapshotter
doesn’t download the entire image on pull operation
but fetches necessary chunks of contents on-demand
https://github.com/containerd/stargz-snapshotter
Standard-compliant lazypull
l Leverages OCI/Docker compatibility of stargz:
• can be lazily pulled from standard registries
• can also be run by legacy runtimes (but not lazily pulled)
l Mounts rootfs snapshots as FUSE and downloads accessed file contents on-demand
Proc
Stargz
Snapshotter
stargz
images
containerKubelet, etc.
Standard Registries
(e.g. Docker Hub)
Node
Lazy
pull
Mount rootfs as FUSE
pulling file contents on demand
still pullable/runnable
by legacy runtimes
implemented as a
remote snapshotter plugin
Stargz archive format
l Proposed by Google CRFS project: https://github.com/google/crfs
l Stands for Seekable targz so it’s seekable but still valid targz = usable as a valid OCI/Docker image layer
l Entries can be extracted separately
• Can be fetched separately from registries using HTTP Range Request
tar.gz layer stargz layer
bin/bash
bin/ls
etc/passwd
etc/group
usr/bin/apt
TOCEntries:
index and files metadata
needs to scan the
entire blob even for
getting single entry
can be extracted per-file
with HTTP Range Request
bin/bash
bin/ls
etc/passwd
etc/group
usr/bin/apt
non-seekable seekable
gzip member
per regular file
eStargz archive for prefetch
l NW-related overheads can’t be ignored for on-demand fetching with stargz
l eStargz enables to prefetch files that are llikey accessed during runtime (= prioritized files)
l Filesystem prefetches and pre-caches these files with a single HTTP Range Request on mount
landmark file
Files prefetched
by a single HTTP Range Requestbin/ls
usr/bin/apt
entrypoint.sh
sort
stargz layer eStargz layer
likely accessed
during runtime too
Prioritized files
bin/bash
bin/ls
usr/bin/apt
entrypoint.sh
bin/bash
Files fetched on demand
but aggressively download
in background
TOCEntriesTOCEntries
Workload-based runtime optimization with eStargz
l Leveraging eStargz, CLI converter command provides workload-based optimization
l Generally, containers are built with purpose
• Workloads are defined in the Dockerfile, etc. (entrypoint, user, envvar, etc…) and stored in the image
l CLI converter runs provided image in a sandbox and profiles all file accesses
• Regards accessed files are also likely accessed during runtime (= prioritized files in eStargz)
• Stargz Snapshotter will prefetch and pre-caches these files when mounts this eStargz image
eStargz
imageMeta
data
Original Image
Optimized image
for the workload
Contains workload
information
Specified by Dockerfile, etc.
(entrypoint, user, envvar)
Custom workloads can be
specified throught CLI options
Profile file accesses
in a sandbox
proc
sandbox
Benchmarking results
l Measures the container startup time which includes:
• Pulling an image from Docker Hub
• For language containers, running “print hello world” program in the container
• For server containers, waiting for the readiness (until “up and running” message is printed)
Ø This method is based on Hello Bench [Harter, et al. 2016]
l Takes 95 percentile of 100 operations
l Host: EC2 Oregon (m5.2xlarge, Ubuntu 20.04)
l Registry: Docker Hub (docker.io)
l Target commit: b53e8fe8d37751753bc623b037729b6a6d9c1122
[Harter et al. 2016] Tyler Harter, Brandon Salmon, Rose Liu, Andrea C. Arpaci-
Dusseau, Remzi H. Arpaci-Dusseau. "Slacker: Fast Distribution with Lazy
Docker Containers". 14th USENIX Conference on File and Storage
Technologies (FAST ’16). February 22–25, 2016, Santa Clara, CA, USA Credit to Akihiro Suda (NTT) for discussion and experiment environment
Time to take for container startup
0 5 10 15 20 25
estargz
stargz
legacy
python:3.7 (print “hello”)
pull create run [sec]
Waits for prefetch completion
Credit to Akihiro Suda (NTT) for discussion and experiment environment
Time to take for container startup
0 5 10 15 20 25 30
estargz
stargz
legacy
gcc:9.2.0 (compiles and runs printf(“hello”);)
pull create run [sec]
Credit to Akihiro Suda (NTT) for discussion and experiment environment
Time to take for container startup
0 5 10 15 20 25
estargz
stargz
legacy
glassfish:4.1-jdk8 (runs until “Running GlassFish” is printed)
pull create run [sec]
Credit to Akihiro Suda (NTT) for discussion and experiment environment
Expected use-cases
Speeding up base image distribution on image build
l Especially for temporary base images of “dev” stages in multi-stage build
• won’t be included in the result image
• https://github.com/moby/buildkit/pull/1402
Speeding up dev pipeline (or building/testing environment)
l The initial motivation in Go community to invent stargz was to speed up
the builder image distribution in their build system
• https://github.com/golang/go/issues/30829
Sharing large scientific software stack (e.g. ML frameworks)
l For example, ML frameworks tend to be large (> 1GB)
Improving cold start performance (e.g. Serverless)
l But needs more investigation
• https://github.com/knative/serving/issues/5913
Stargz Snapshotter is still in early stage
Ø Needs more performance improvements for
the filesystem
Ø Lazy pull performance seems to be affected
by the internet condition (e.g. CDN), etc.
Ø Be careful for the fault tolerance until the
layer contents are fully cached
Ø …
Feedbacks/comments are always welcome!
Other OCI-alternative lazy image distribution
Slacker: https://www.usenix.org/conference/fast16/technical-sessions/presentation/harter
l Uses NFS infra for the distribution of rootfs snapshots of containers
l Registries are used for sharing snapshot IDs among hosts
CernVM-FS: https://cvmfs.readthedocs.io/en/stable/
l FUSE Filesystem by CERN for sharing High Energy Physics (HEP) software on worldwide infrastructure
l Software stack can be mounted and lazily downloaded from CernVM-FS “repository” via HTTP
l Remote Snapshotter implementation for containerd
• https://github.com/cvmfs/containerd-remote-snapshotter
l On-going discussion towards integration with Podman
• https://github.com/containers/storage/issues/383
Other OCI-alternative lazy image distribution
Filegrain: https://github.com/akihirosuda/filegrain
l Proposed by Akihiro Suda (NTT)
l OCI compliant image format but uses continuity manifests as layers
l An image can be mounted and files are pulled lazily
l Each file is treated as a content-addressable blob => de-duplication in file granuality
On-going discussion towards “OCIv2”: https://hackmd.io/@cyphar/ociv2-brainstorm
l Proposed by Aleksa Sarai (SUSE)
l Brainstorm is in progress (2020/07)
l Lazy fetch support, mountable filesystem are also in the scope
crfs-plugin for fuse-overlayfs: https://github.com/giuseppe/crfs-plugin
l Proposed by Giuseppe Scrivano (Red Hat)
l Plugin of fuse-overlayfs for mounting stargz layer
Recap
l Pull is one of the time-consuming steps in the container lifecycle.
l Stargz Snapshotter, non-core subproject in containerd, is trying to solve it by lazy-pulling
images leveraging stargz image by Google.
• Standard compliant so can be pushed to and lazily pulled from standard registries
• Workload-based runtime optimization is also held with eStargz
l There are also other OCI-alternative image distribution strategies in container ecosystem
Feedbacks and suggestions are always welcome!
https://github.com/containerd/stargz-snapshotter
Startup Containers in Lightning Speed with Lazy Image Distribution

Mais conteúdo relacionado

Mais procurados

BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話Kohei Tokunaga
 
P2P Container Image Distribution on IPFS With containerd and nerdctl
P2P Container Image Distribution on IPFS With containerd and nerdctlP2P Container Image Distribution on IPFS With containerd and nerdctl
P2P Container Image Distribution on IPFS With containerd and nerdctlKohei Tokunaga
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdKohei Tokunaga
 
Java applications containerized and deployed
Java applications containerized and deployedJava applications containerized and deployed
Java applications containerized and deployedAnthony Dahanne
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefMatt Ray
 
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver Meetup
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver MeetupDaneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver Meetup
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver MeetupShannon McFarland
 
[FOSDEM 2020] Lazy distribution of container images
[FOSDEM 2020] Lazy distribution of container images[FOSDEM 2020] Lazy distribution of container images
[FOSDEM 2020] Lazy distribution of container imagesAkihiro Suda
 
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKitAkihiro Suda
 
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話katsuya kawabe
 
Usernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root userUsernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root userAkihiro Suda
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...Akihiro Suda
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into ContainerdAkihiro Suda
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020Akihiro Suda
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep DiveAkihiro Suda
 
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless ModeAkihiro Suda
 
Docker on ARM Raspberry Pi
Docker on ARM Raspberry PiDocker on ARM Raspberry Pi
Docker on ARM Raspberry PiEueung Mulyana
 

Mais procurados (20)

BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話
 
P2P Container Image Distribution on IPFS With containerd and nerdctl
P2P Container Image Distribution on IPFS With containerd and nerdctlP2P Container Image Distribution on IPFS With containerd and nerdctl
P2P Container Image Distribution on IPFS With containerd and nerdctl
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
 
Java applications containerized and deployed
Java applications containerized and deployedJava applications containerized and deployed
Java applications containerized and deployed
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with Chef
 
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver Meetup
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver MeetupDaneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver Meetup
Daneyon Hansen - Intro to OpenStack - Feb13 OpenStack Denver Meetup
 
App container rkt
App container rktApp container rkt
App container rkt
 
[FOSDEM 2020] Lazy distribution of container images
[FOSDEM 2020] Lazy distribution of container images[FOSDEM 2020] Lazy distribution of container images
[FOSDEM 2020] Lazy distribution of container images
 
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
 
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話
【CNDO2021】Calicoのデプロイをミスって本番クラスタを壊しそうになった話
 
Usernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root userUsernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root user
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive
 
Learning kubernetes
Learning kubernetesLearning kubernetes
Learning kubernetes
 
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
 
ISC HPCW talks
ISC HPCW talksISC HPCW talks
ISC HPCW talks
 
Docker on ARM Raspberry Pi
Docker on ARM Raspberry PiDocker on ARM Raspberry Pi
Docker on ARM Raspberry Pi
 

Semelhante a Startup Containers in Lightning Speed with Lazy Image Distribution

Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetesKrishna-Kumar
 
FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...
FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...
FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...Akihiro Suda
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introductionkanedafromparis
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"IT Event
 
Docker introduction for Carbon IT
Docker introduction for Carbon ITDocker introduction for Carbon IT
Docker introduction for Carbon ITyannick grenzinger
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...Gaetano Giunta
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Walid Shaari
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesJérôme Petazzoni
 
LXC Containers and AUFs
LXC Containers and AUFsLXC Containers and AUFs
LXC Containers and AUFsDocker, Inc.
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and SecurityMichael Irwin
 
aws 2023 nov docker.pptx
aws 2023 nov docker.pptxaws 2023 nov docker.pptx
aws 2023 nov docker.pptxmalikawannasi
 

Semelhante a Startup Containers in Lightning Speed with Lazy Image Distribution (20)

presentation on Docker
presentation on Dockerpresentation on Docker
presentation on Docker
 
Docker_AGH_v0.1.3
Docker_AGH_v0.1.3Docker_AGH_v0.1.3
Docker_AGH_v0.1.3
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Docker.ppt
Docker.pptDocker.ppt
Docker.ppt
 
FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...
FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...
FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker introduction for Carbon IT
Docker introduction for Carbon ITDocker introduction for Carbon IT
Docker introduction for Carbon IT
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Docker 2014
Docker 2014Docker 2014
Docker 2014
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
LXC Containers and AUFs
LXC Containers and AUFsLXC Containers and AUFs
LXC Containers and AUFs
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
 
aws 2023 nov docker.pptx
aws 2023 nov docker.pptxaws 2023 nov docker.pptx
aws 2023 nov docker.pptx
 

Mais de Kohei Tokunaga

BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動するKohei Tokunaga
 
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するOCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するKohei Tokunaga
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!Kohei Tokunaga
 
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェストKohei Tokunaga
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみたKohei Tokunaga
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 

Mais de Kohei Tokunaga (8)

BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
 
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するOCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
 
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
OCIv2?!軽量高速なイケてる次世代イメージ仕様の最新動向を抑えよう!
 
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 

Último

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durbanmasabamasaba
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Último (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

Startup Containers in Lightning Speed with Lazy Image Distribution

  • 1. Kohei Tokunaga, NTT Corporation Startup Containers in Lightning Speed with Lazy Image Distribution
  • 2. l Pull is one of the time-consuming steps in container lifecycle l Stargz Snapshotter, non-core subproject of containerd, is trying to solve it by lazy-pulling images leveraging stargz image by Google • Further runtime optimization is also held with an extended version of stargz (eStargz) l There are also other OCI-alternative image distribution strategies in container ecosystem Summary Host: EC2 Oregon (m5.2xlarge, Ubuntu 20.04) Registry: Docker Hub (docker.io) Commit b53e8fe (See detailed info in the later slides) [sec] 0 5 10 15 20 25 estargz stargz legacy python:3.7 (print “hello”) pull create run
  • 3. Pull is time-consuming pulling packages accounts for 76% of container start time, but only 6.4% of that data is read [Harter et al. 2016] [Harter et al. 2016] Tyler Harter, Brandon Salmon, Rose Liu, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau. "Slacker: Fast Distribution with Lazy Docker Containers". 14th USENIX Conference on File and Storage Technologies (FAST ’16). February 22–25, 2016, Santa Clara, CA, USA Caching images Minimizing image size Cold start is still slow Not all images are minimizable Language runtimes, frameworks, etc. Workarounds are known but not enough NodeRegistry Image Container pull run
  • 4. OCI/Docker Specs for image distribution A container is a set of layers Distribution Spec l Defines HTTP API of registry l Layer can be fetched as a “blob” named with a content-addressable digest l Optional support for HTTP Range Request Registry sha256:deadbeaf… sha256:1a3b5c… sha256:ffe63c… sha256:6ccde1… GET /v2/<image-name>/blobs/ layers (blobs) rootfs Extract & Mergemani fest Image Spec l Defines layers and metadata (image manifest, etc.) l Layer is defined as tar (+compression) l Rootfs can be composed by merging layers layers Image
  • 5. Problems on the OCI/Docker Specs sha256:deadbeaf… sha256:1a3b5c… sha256:ffe63c… sha256:6ccde1… GET /v2/<image-name>/blobs/ bin/bash bin/ls etc/passwd etc/group usr/bin/apt layer = tarball (+compression) A container is a set of tarball layers A container can’t be started until the all layers become locally available even if the most of the contents won’t be used on container startup l Need to scan the entire blob even for extracting single file entry • If the blob is gzip-compressed, it’s non-seekable anymore l No parallel extraction • Need to scan the blob from the top, sequentially
  • 6. Lazypull with containerd Stargz Snapshotter Stargz Snapshotter kubelet, etc OCI runtimes Container Registry lazypullstargz images l Non-core subproject of containerd l Works as a plugin of containerd l Standard-compliant lazy pull leveraging stargz image by Google Stargz Snapshotter doesn’t download the entire image on pull operation but fetches necessary chunks of contents on-demand https://github.com/containerd/stargz-snapshotter
  • 7. Standard-compliant lazypull l Leverages OCI/Docker compatibility of stargz: • can be lazily pulled from standard registries • can also be run by legacy runtimes (but not lazily pulled) l Mounts rootfs snapshots as FUSE and downloads accessed file contents on-demand Proc Stargz Snapshotter stargz images containerKubelet, etc. Standard Registries (e.g. Docker Hub) Node Lazy pull Mount rootfs as FUSE pulling file contents on demand still pullable/runnable by legacy runtimes implemented as a remote snapshotter plugin
  • 8. Stargz archive format l Proposed by Google CRFS project: https://github.com/google/crfs l Stands for Seekable targz so it’s seekable but still valid targz = usable as a valid OCI/Docker image layer l Entries can be extracted separately • Can be fetched separately from registries using HTTP Range Request tar.gz layer stargz layer bin/bash bin/ls etc/passwd etc/group usr/bin/apt TOCEntries: index and files metadata needs to scan the entire blob even for getting single entry can be extracted per-file with HTTP Range Request bin/bash bin/ls etc/passwd etc/group usr/bin/apt non-seekable seekable gzip member per regular file
  • 9. eStargz archive for prefetch l NW-related overheads can’t be ignored for on-demand fetching with stargz l eStargz enables to prefetch files that are llikey accessed during runtime (= prioritized files) l Filesystem prefetches and pre-caches these files with a single HTTP Range Request on mount landmark file Files prefetched by a single HTTP Range Requestbin/ls usr/bin/apt entrypoint.sh sort stargz layer eStargz layer likely accessed during runtime too Prioritized files bin/bash bin/ls usr/bin/apt entrypoint.sh bin/bash Files fetched on demand but aggressively download in background TOCEntriesTOCEntries
  • 10. Workload-based runtime optimization with eStargz l Leveraging eStargz, CLI converter command provides workload-based optimization l Generally, containers are built with purpose • Workloads are defined in the Dockerfile, etc. (entrypoint, user, envvar, etc…) and stored in the image l CLI converter runs provided image in a sandbox and profiles all file accesses • Regards accessed files are also likely accessed during runtime (= prioritized files in eStargz) • Stargz Snapshotter will prefetch and pre-caches these files when mounts this eStargz image eStargz imageMeta data Original Image Optimized image for the workload Contains workload information Specified by Dockerfile, etc. (entrypoint, user, envvar) Custom workloads can be specified throught CLI options Profile file accesses in a sandbox proc sandbox
  • 11. Benchmarking results l Measures the container startup time which includes: • Pulling an image from Docker Hub • For language containers, running “print hello world” program in the container • For server containers, waiting for the readiness (until “up and running” message is printed) Ø This method is based on Hello Bench [Harter, et al. 2016] l Takes 95 percentile of 100 operations l Host: EC2 Oregon (m5.2xlarge, Ubuntu 20.04) l Registry: Docker Hub (docker.io) l Target commit: b53e8fe8d37751753bc623b037729b6a6d9c1122 [Harter et al. 2016] Tyler Harter, Brandon Salmon, Rose Liu, Andrea C. Arpaci- Dusseau, Remzi H. Arpaci-Dusseau. "Slacker: Fast Distribution with Lazy Docker Containers". 14th USENIX Conference on File and Storage Technologies (FAST ’16). February 22–25, 2016, Santa Clara, CA, USA Credit to Akihiro Suda (NTT) for discussion and experiment environment
  • 12. Time to take for container startup 0 5 10 15 20 25 estargz stargz legacy python:3.7 (print “hello”) pull create run [sec] Waits for prefetch completion Credit to Akihiro Suda (NTT) for discussion and experiment environment
  • 13. Time to take for container startup 0 5 10 15 20 25 30 estargz stargz legacy gcc:9.2.0 (compiles and runs printf(“hello”);) pull create run [sec] Credit to Akihiro Suda (NTT) for discussion and experiment environment
  • 14. Time to take for container startup 0 5 10 15 20 25 estargz stargz legacy glassfish:4.1-jdk8 (runs until “Running GlassFish” is printed) pull create run [sec] Credit to Akihiro Suda (NTT) for discussion and experiment environment
  • 15. Expected use-cases Speeding up base image distribution on image build l Especially for temporary base images of “dev” stages in multi-stage build • won’t be included in the result image • https://github.com/moby/buildkit/pull/1402 Speeding up dev pipeline (or building/testing environment) l The initial motivation in Go community to invent stargz was to speed up the builder image distribution in their build system • https://github.com/golang/go/issues/30829 Sharing large scientific software stack (e.g. ML frameworks) l For example, ML frameworks tend to be large (> 1GB) Improving cold start performance (e.g. Serverless) l But needs more investigation • https://github.com/knative/serving/issues/5913 Stargz Snapshotter is still in early stage Ø Needs more performance improvements for the filesystem Ø Lazy pull performance seems to be affected by the internet condition (e.g. CDN), etc. Ø Be careful for the fault tolerance until the layer contents are fully cached Ø … Feedbacks/comments are always welcome!
  • 16. Other OCI-alternative lazy image distribution Slacker: https://www.usenix.org/conference/fast16/technical-sessions/presentation/harter l Uses NFS infra for the distribution of rootfs snapshots of containers l Registries are used for sharing snapshot IDs among hosts CernVM-FS: https://cvmfs.readthedocs.io/en/stable/ l FUSE Filesystem by CERN for sharing High Energy Physics (HEP) software on worldwide infrastructure l Software stack can be mounted and lazily downloaded from CernVM-FS “repository” via HTTP l Remote Snapshotter implementation for containerd • https://github.com/cvmfs/containerd-remote-snapshotter l On-going discussion towards integration with Podman • https://github.com/containers/storage/issues/383
  • 17. Other OCI-alternative lazy image distribution Filegrain: https://github.com/akihirosuda/filegrain l Proposed by Akihiro Suda (NTT) l OCI compliant image format but uses continuity manifests as layers l An image can be mounted and files are pulled lazily l Each file is treated as a content-addressable blob => de-duplication in file granuality On-going discussion towards “OCIv2”: https://hackmd.io/@cyphar/ociv2-brainstorm l Proposed by Aleksa Sarai (SUSE) l Brainstorm is in progress (2020/07) l Lazy fetch support, mountable filesystem are also in the scope crfs-plugin for fuse-overlayfs: https://github.com/giuseppe/crfs-plugin l Proposed by Giuseppe Scrivano (Red Hat) l Plugin of fuse-overlayfs for mounting stargz layer
  • 18. Recap l Pull is one of the time-consuming steps in the container lifecycle. l Stargz Snapshotter, non-core subproject in containerd, is trying to solve it by lazy-pulling images leveraging stargz image by Google. • Standard compliant so can be pushed to and lazily pulled from standard registries • Workload-based runtime optimization is also held with eStargz l There are also other OCI-alternative image distribution strategies in container ecosystem Feedbacks and suggestions are always welcome! https://github.com/containerd/stargz-snapshotter