edward oakes sock: rapid task provisioning andrea c ... · sock: rapid task provisioning with...

108
SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler Harter*, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau * Microsoft Gray Systems Lab

Upload: others

Post on 24-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

SOCK: Rapid Task Provisioningwith Serverless-Optimized Containers

Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler Harter*,Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau

* Microsoft Gray Systems Lab

Page 2: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Increasing Developer Velocity

Page 3: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Trend 1: Rise of High-Level Languages

https://stackoverflow.blog/2017/09/06/incredible-growth-python/

Page 4: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Trend 2: Greater Reliance on Packages

https://www.modulecounts.com

Mod

ule

Cou

nt

Page 5: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Trend 3: Microservice Decomposition● Applications are decoupled into modular “services”● Each service is lightweight, deployed independently

Page 6: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Serverless Computing● “Functions as a Service”● Pay-as-you-go, fine-grained billing

Page 7: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Serverless ComputingBenefits:● True auto scaling● Massive parallelism● Cost savings

Page 8: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Serverless ComputingBenefits:● True auto scaling● Massive parallelism● Cost savings

Challenge:● Deploy, isolate, and start in milliseconds

Page 9: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Hardware

Operating System

Server

A1

deployment bundles...A

2A

N

Serverless Runtime

Page 10: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Hardware

Operating System

Server

A1

deployment bundles...A

2A

NPython interpreter:● 30ms

Docker container:● 400ms

Serverless Runtime

Page 11: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Hardware

Operating System

Server

A1

scip

yn

um

py

...A2

req

ues

ts

AN

scip

y

Serverless Runtime

deployment bundles

Python interpreter:● 30ms

Docker container:● 400ms

Page 12: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Hardware

Operating System

Server

A1

scip

yn

um

py

...A2

req

ues

ts

AN

scip

y

Serverless Runtime

deployment bundles

Python interpreter:● 30ms

scipy:● 2700ms download● 8200ms install● 88ms import

Docker container:● 400ms

Page 13: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Lean serverless-optimized containers (SOCK)● Precise usage of Linux isolation mechanisms● 18x faster container lifecycle over Docker

SOCK

Page 14: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Lean serverless-optimized containers (SOCK)● Precise usage of Linux isolation mechanisms● 18x faster container lifecycle over Docker

Provision from secure Zygote processes● Fork from initialized runtime to prevent cold start● 3x faster provisioning than SOCK alone

SOCK

Page 15: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Lean serverless-optimized containers (SOCK)● Precise usage of Linux isolation mechanisms● 18x faster container lifecycle over Docker

Provision from secure Zygote processes● Fork from initialized runtime to prevent cold start● 3x faster provisioning than SOCK alone

Execution caching across 3 tiers● Securely reuse initialization work across customers● 3-16x lower platform cost in image-processing case study

SOCK

Page 16: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

https://github.com/open-lambda

OpenLambda

Page 17: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

OutlineMotivationServerless-optimized Containers● Design● Evaluation

Generalized Zygotes● Design● Evaluation

Serverless Caching● Design● Evaluation

Conclusion

Page 18: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Linux Containers

Page 19: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Linux Containers...they’re just cheaper VMs, right?

Page 20: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Linux Containers...they’re just cheaper VMs, right?

Not virtualizing hardware, but access

● File system● Namespaces● Cgroups

Page 21: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Linux Containers...they’re just cheaper VMs, right?

Not virtualizing hardware, but access

● File system● Namespaces● Cgroups

Page 22: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Container File System

FROM ubuntu:16

= read/write

= read only

Page 23: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Container File System

FROM ubuntu:16

sudo apt-get install

= read/write

= read only

Page 24: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Container File System

FROM ubuntu:16

sudo apt-get install

make install

= read/write

= read only

Page 25: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Container File System

FROM ubuntu:16

sudo apt-get install

make install

= read/write

= read only

my-image

Page 26: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Container File System= read/write

= read only

my-image

C1 “/” C2 “/” C3 “/”

Page 27: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Linux Containers...they’re just cheaper VMs, right?

Not virtualizing hardware, but access

● File system● Namespaces● Cgroups

Page 28: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Namespaces● Partition resource access in the kernel● 7 individual namespaces

○ Mount○ Network○ User○ UTS○ IPC○ PID○ Cgroup

Page 29: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1

Page 30: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2fork()

Page 31: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2

Page 32: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2

unshare()

Page 33: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2

unshare()/ /var /tmp /my-image /my-var /my-tmp

Page 34: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2

/ /var /tmp /my-image /my-var /my-tmp

Page 35: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2

/ /var /tmp /my-image /my-var /my-tmp

switch root● unmount()● mount()● pivot_root()

Page 36: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2

/ /my-var /my-tmp

switch root● unmount()● mount()● pivot_root()

Page 37: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Namespace

/ /var /tmp /my-image /my-var /my-tmp

P1 P2

/ /my-var /my-tmp

Container

Page 38: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Linux Containers...they’re just cheaper VMs, right?

Not virtualizing hardware, but access

● File system● Namespaces● Cgroups

Page 39: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Cgroups● Control resource usage● Limiting, prioritization, accounting, control

○ oom-killer for a container

Page 40: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

● Fork init, unshare() into new namespaces● Create cgroups● Relocate init into cgroups● Stitch together root file system● switch_root() to container root● Create veth● Connect veth to virtual bridge

At runtime:

Page 41: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

● Fork init, unshare() into new namespaces● Create cgroups● Relocate init into cgroups● Stitch together root file system● switch_root() to container root● Create veth● Connect veth to virtual bridge

...all before running any user code

At runtime:

Page 42: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

SOCK: Serverless-optimized Containers● Containers aren’t a single cohesive abstraction

Page 43: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

● Containers aren’t a single cohesive abstraction

What are the performance costsof container components?

SOCK: Serverless-optimized Containers

Page 44: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

● Containers aren’t a single cohesive abstraction

What are the performance costsof container components?

What are the isolation requirementsof serverless workloads?

SOCK: Serverless-optimized Containers

Page 45: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

SOCK: Serverless-optimized Containers● Containers aren’t a single cohesive abstraction

What are the performance costsof container components?

What are the isolation requirementsof serverless workloads?

Page 46: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Performance

Mount and unmount as quickly as possible● Varying levels of parallelism● Single AUFS layer vs. bind mount

Page 47: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Performance

Page 48: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Mount Performance

Bind mounts are 3x faster than AUFS

Page 49: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

SOCK: Serverless-optimized Containers● Containers aren’t a single cohesive abstraction

What are the performance costsof container components?

What are the isolation requirementsof serverless workloads?

Page 50: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

File System RequirementsServerless application containers:

● Don’t need a fully writable OS view● Do need scratch space and access to libraries

Page 51: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

File System RequirementsServerless application containers:

● Don’t need a fully writable OS view● Do need scratch space and access to libraries

Flexible, expensive AUFS + mount namespace

Simple, cheap bind mounts + chroot

Page 52: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Serverless-optimized ContainersReplace flexible, costly mechanisms with simple, cheap alternatives● Leverage constraints of the serverless runtime

Page 53: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Serverless-optimized ContainersReplace flexible, costly mechanisms with simple, cheap alternatives● Leverage constraints of the serverless runtime

AUFS + mount NS -> bind mounts + chroot

network NS -> domain socket + outbound access

user NS -> unprivileged execution

Page 54: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

OutlineMotivationServerless-optimized Containers● Design● Evaluation

Generalized Zygotes● Design● Evaluation

Serverless Caching● Design● Evaluation

Conclusion

Page 55: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

ExperimentRequests to “no-op” handlers as quickly as possible● Varying numbers of requesting threads● Docker vs. SOCK

Page 56: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

SOCK Container Performance

Page 57: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

SOCK Container Performance

18x faster container lifecycle with SOCK

Page 58: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

OutlineMotivationServerless-optimized Containers● Design● Evaluation

Generalized Zygotes● Design● Evaluation

Serverless Caching● Design● Evaluation

Conclusion

Page 59: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Zygotes● Used in Android OS

○ Many apps depend on common system libraries

● Start a Zygote at init, importing libraries○ New processes fork from the Zygote

Page 60: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Generalized ZygotesBenefits:

● Eliminate interpreter & package initialization cost● Pack more handlers into memory

Page 61: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Generalized ZygotesBenefits:

● Eliminate interpreter & package initialization cost● Pack more handlers into memory

Challenges:

● Cannot trust the libraries we import● Want to create new Zygotes on the fly

Page 62: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

More details in the paper...

Page 63: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

OutlineMotivationServerless-optimized Containers● Design● Evaluation

Generalized Zygotes● Design● Evaluation

Serverless Caching● Design● Evaluation

Conclusion

Page 64: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

ExperimentCreate and destroy handler runtimes as quickly as possible● New container & interpreter● Varying levels of parallelism

Page 65: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Zygote Provisioning Performance

Page 66: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Zygote Provisioning Performance

3x faster provisioning using general Zygotes

Page 67: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

OutlineMotivationServerless-optimized Containers● Design● Evaluation

Generalized Zygotes● Design● Evaluation

Serverless Caching● Design● Evaluation

Conclusion

Page 68: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

SOCK Caching

Page 69: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Handler Cache● Reuse initialized runtimes within a lambda

SOCK Caching

Page 70: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Import Cache● Reuse initialized Zygotes between lambdas

Handler Cache● Reuse initialized runtimes within a lambda

SOCK Caching

Page 71: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Import Cache● Reuse initialized Zygotes between lambdas

Handler Cache● Reuse initialized runtimes within a lambda

Install Cache● Reuse installed packages between lambdas

SOCK Caching

Page 72: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Import Cache● Reuse initialized Zygotes between lambdas

Handler Cache● Reuse initialized runtimes within a lambda

Install Cache● Reuse installed packages between lambdas

SOCK Caching

Page 73: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }

Import Cache Handler Cache

Page 74: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }

Import Cache Handler CacheH1(A)

Page 75: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }

Import Cache Handler Cache

{A}

H1(A)

Page 76: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H1(A)

Import Cache Handler Cache

{A}

H1(A)

Page 77: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H1(A)

Import Cache Handler Cache

{A}

Page 78: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H1(A)

Import Cache Handler Cache

{A}

H1(A)

Page 79: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H1(A)

Import Cache Handler Cache

{A}

Page 80: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H2(A,B)

H1(A)

Import Cache Handler Cache

{A}

Page 81: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H2(A,B)

H1(A)

Import Cache Handler Cache

{A}

{A,B}

Page 82: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H2(A,B)

H1(A) H2(A,B)

Import Cache Handler Cache

{A}

{A,B}

Page 83: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H1(A) H2(A,B)

Import Cache Handler Cache

{A}

{A,B}

Page 84: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H3(B)

H1(A) H2(A,B)

Import Cache Handler Cache

{A}

{A,B}

Page 85: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H3(B)

H1(A) H2(A,B)

Import Cache Handler Cache

{A}

{A,B}

Page 86: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H3(B)

H1(A) H2(A,B)

What if package ‘A’ is malicious?

Import Cache Handler Cache

{A}

{A,B}

Page 87: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H3(B)

H1(A) H2(A,B)

What if package ‘A’ is malicious?● “Subset only” rule

Import Cache Handler Cache

{A}

{A,B}

Page 88: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

{ }H3(B)

H1(A) H2(A,B)

What if package ‘A’ is malicious?● “Subset only” rule

Import Cache Handler Cache

{A} {B}

{A,B}

Page 89: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Cache Interaction = django memory= handler-specific memoryhandler cache

working set

Page 90: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

django Zygote

Cache Interaction = django memory= handler-specific memoryhandler cache

working set

Page 91: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Cache Interaction

django Zygote

= django memory= handler-specific memoryhandler cache

working set

Page 92: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Cache Interaction

django Zygote

= django memory= handler-specific memoryhandler cache

working set

Page 93: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Cache Interaction

django Zygote

= django memory= handler-specific memoryhandler cache

working set

Handler cache misses are:● Rarer

Page 94: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Cache Interaction

Handler cache misses are:● Rarer● Faster

django Zygote

= django memory= handler-specific memoryhandler cache

working set

Page 95: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

OutlineMotivationServerless-optimized Containers● Design● Evaluation

Generalized Zygotes● Design● Evaluation

Serverless Caching● Design● Evaluation

Conclusion

Page 96: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

MicrobenchmarkNot a stress test, want to examine differences in caching

Experimental Setup:● 1 OpenLambda worker machine● 2 random requests per second● 100 distinct lambdas, all importing django

Page 97: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Caching Performance

Page 98: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Caching Performance

Page 99: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Caching Performance

Page 100: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Caching Performance

Page 101: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Caching Performance

Page 102: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

OutlineMotivationServerless-optimized Containers● Design● Evaluation

Generalized Zygotes● Design● Evaluation

Serverless Caching● Design● Evaluation

Conclusion

Page 103: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

PC running many diverse processes

VMs running monolithic applications

Containers running small pieces of applications

Evolution of Applications

Page 104: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

PC running many diverse processes

VMs running monolithic applications

Containers running small pieces of applications

???

Evolution of Applications

Page 105: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

How can we run small, distributed pieces of code faster, more easily, and more securely?

Modern Virtualization

Page 106: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

How can we run small, distributed pieces of code faster, more easily, and more securely?

SOCK:● Carefully measure and use existing abstractions

Modern Virtualization

Page 107: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

How can we run small, distributed pieces of code faster, more easily, and more securely?

SOCK:● Carefully measure and use existing abstractions

developed for long-running applications

Future Systems:● Need to fundamentally rethink design

Modern Virtualization

Page 108: Edward Oakes SOCK: Rapid Task Provisioning Andrea C ... · SOCK: Rapid Task Provisioning with Serverless-Optimized Containers Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler

Questions?