6. I write JavaScript for the browser
▪ A high-level language
▪ The loosest types with judicious coercion
▪ No memory management
▪ No filesystem
▪ Computers are an implementation detail
10. Black box
▪ Data plane (customer sites)
▪ Control plane
▪ Some sorta scheduler
▪ Lotsa DNS for static files
▪ CDN, file propagation
▪ Cgi-bin? Lol?
▪ A bunch of engineers of all
varieties
20. What you didn’t see is what’s interesting
1. No Dockerfile or docker-compose.yml
2. No ReplicaSet
3. No Deployment
4. No Service
5. No kubectl
6. No YAML
21. The Power of Abstractions 💪
Build Registry Deploy Release
package.json
*.js
*.ejs
*.png
Source Code
Buildpacks Container Image
Hub/ECR/GCR ReplicaSet
Service
kubectl apply
Deployment
28. Takeaways
From the perspective of a product engineer
1. No workflow change!!!
1. waypoint init && waypoint up
2. Very little code change
3. Minor conceptual changes to output
4. Both Kubernetes and Nomad are built for common abstractions
39. A look at Nomad’s
Task Driver Model
A loosely abstracted,
unopinionated, pluggable
runtime model
Ranging from raw processes to
VMs to containers.
Many are builtin, many are
community owned.
40. The Nomad exec driver
1. Builds a chroot
2. And a cgroup
3. Configurable resource limits
4. All on demand
54. Docker Pkg
Let’s review some stats
Build Time 55.50s
Artifact Size 1075MB
Build Time 4.67s
Artifact Size 46MB
55. Safety NOT
Guaranteed
▪ Not ready for
production
▪ Check out the code
though!
https://github.com/dingoeatingfuzz/waypoint-plugin-pkg
56. The moral of the story
1. Consider the whole system
2. Well defined interfaces help us all
3. Abstractions are all around us
4. Challenge those abstractions from time to time
Make time and space for this R&D