Playground v3

2019-10-08

Brad Fitzpatrick

Overview

2

What does it does

3

Time

4

Sleep replays

5

Fun: clear screen with \f

func main() {
   const x = `.oOo`
   for i := 0; i < 100; i++ {
       fmt.Printf("\f%c", x[i%len(x)])
       time.Sleep(200 * time.Millisecond)
   }
}
6

Fun: images

7

History

Caveat: fake, retroactive version numbers follow for ease of discussion.

In reality, v0.0.0-20141209125517-dba9ba1953c6

8

Native Client (NaCl)

9

Playground ~v1

10

Playground ~v1.1

11

Playground ~v2

12

2017

13

2018, 2019...

14

How to sandbox play.golang.org without NaCl?

15

Plan: Playground v3

16

gVisor

17

Who uses gVisor?

18

How to use gVisor?

19

runsc woes

20

root

21

Docker

docker run --runtime=runsc ...
22

v3 architecture

23

v3 architecture

24

On each VM

25

VM view

26

Transition plan

27

Today

28

Today+1

29

Today+2:

30

Go 1.14 release day

31

Future possibilities

32

Alternatives

33

Cloud Run?

34

GKE Sandbox?

35

WebAssembly?

36

Thank you

Brad Fitzpatrick

Use the left and right arrow keys or click the left and right edges of the page to navigate between slides.
(Press 'H' or navigate to hide this message.)