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