a million containers isnt cool - usenix...a million containers isn’t cool you know what’s cool?...
TRANSCRIPT
![Page 1: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/1.jpg)
A million containers isn’t cool
![Page 2: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/2.jpg)
You know what’s cool?
![Page 3: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/3.jpg)
A hundred containers
![Page 4: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/4.jpg)
A million containers isn’t cool
You know what’s cool? A hundred containers.
@ChrisSinjo
![Page 5: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/5.jpg)
GOCARDLESS
![Page 6: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/6.jpg)
![Page 7: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/7.jpg)
![Page 8: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/8.jpg)
![Page 9: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/9.jpg)
We aren’t #webscale
(#sorrynotsorry)
![Page 10: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/10.jpg)
So why do we care about containers?
![Page 11: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/11.jpg)
POST /cash/monies HTTP/1.1
{ amount: 100 }
💰💰💰
![Page 12: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/12.jpg)
High 💵 per-request
![Page 13: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/13.jpg)
Reliability is 🔑
![Page 14: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/14.jpg)
Deploying software reliably
![Page 15: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/15.jpg)
Deploying software reliably
How containers can help
![Page 16: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/16.jpg)
Deploying software reliably
How containers can help
Other options
![Page 17: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/17.jpg)
First things first: deployment artifacts
![Page 18: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/18.jpg)
Source code ↓
Something you can put on a server
![Page 19: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/19.jpg)
A .jar file
A statically linked binary
An OS package (.deb, .rpm)
![Page 20: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/20.jpg)
Some languages start on the back foot
![Page 21: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/21.jpg)
![Page 22: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/22.jpg)
Capistrano: a typical Ruby flow
![Page 23: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/23.jpg)
On each server:
![Page 24: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/24.jpg)
On each server: - Clone source
![Page 25: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/25.jpg)
On each server: - Clone source - Build dependencies
![Page 26: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/26.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations
![Page 27: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/27.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations - Build static assets
![Page 28: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/28.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations - Build static assets - SIGHUP
![Page 29: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/29.jpg)
What’s wrong here?
![Page 30: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/30.jpg)
Hope
![Page 31: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/31.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations - Build static assets - SIGHUP
![Page 32: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/32.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations - Build static assets - SIGHUP
Hope
![Page 33: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/33.jpg)
$ bundle install … Building nokogiri using system libraries.
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
![Page 34: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/34.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations - Build static assets - SIGHUP
Hope
![Page 35: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/35.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations - Build static assets - SIGHUP
Hope
Hope
![Page 36: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/36.jpg)
On each server: - Clone source - Build dependencies - Run schema migrations - Build static assets - SIGHUP
Hope
HopeHope
![Page 37: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/37.jpg)
– Traditional SRE saying
“Hope is not a strategy.”
https://landing.google.com/sre/book.html
![Page 38: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/38.jpg)
There’s something else
![Page 39: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/39.jpg)
Applications
don’t run in a
vacuum
![Page 40: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/40.jpg)
Ruby app
![Page 41: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/41.jpg)
Ruby app
Ruby dependencies
![Page 42: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/42.jpg)
Ruby app
Ruby dependencies
Native libraries
![Page 43: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/43.jpg)
Ruby app
Ruby dependencies
Native libraries
![Page 44: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/44.jpg)
Ruby app
Ruby dependencies
Native libraries
Nokogiri
libxml2
![Page 45: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/45.jpg)
Ruby app
Ruby dependencies
Native libraries
Nokogiri
libxml2
![Page 46: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/46.jpg)
Ruby app
Ruby dependencies
Native libraries
Nokogiri
libxml2
![Page 47: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/47.jpg)
How do we install software?
![Page 48: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/48.jpg)
Nokogiri
libxml2
![Page 49: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/49.jpg)
Nokogiri
libxml2
$ bundle install
![Page 50: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/50.jpg)
Nokogiri
libxml2 $ apt-get install libxml2
$ bundle install
![Page 51: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/51.jpg)
Nokogiri
libxml2 Chef or whatever
App’s source repository
![Page 52: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/52.jpg)
That seems inconvenient…
![Page 53: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/53.jpg)
Container images: totally a thing
![Page 54: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/54.jpg)
Nokogiri
libxml2 Chef or whatever
App’s source repository
![Page 55: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/55.jpg)
Nokogiri
libxml2 App’s source repository
App’s source repository
![Page 56: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/56.jpg)
This is why most people care about
Docker
![Page 57: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/57.jpg)
namespaces cgroups images
![Page 58: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/58.jpg)
namespaces cgroups images
![Page 59: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/59.jpg)
https://twitter.com/benjiweber/status/770306615555854336
![Page 60: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/60.jpg)
Deploying software reliably
How containers can help
Other options
![Page 61: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/61.jpg)
Deploying software reliably
How containers can help
Other options
![Page 62: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/62.jpg)
So what did we care about?
![Page 63: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/63.jpg)
Uniform deployment
![Page 64: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/64.jpg)
Uniform deployment
Based around an artifact
![Page 65: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/65.jpg)
Uniform deployment
Based around an artifact
Fail early
![Page 66: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/66.jpg)
And what didn’t we care about?
![Page 67: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/67.jpg)
Know what your aims aren’t
![Page 68: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/68.jpg)
Distributed schedulers
![Page 69: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/69.jpg)
compute compute compute !!!computecompute
![Page 70: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/70.jpg)
Scheduler
compute compute compute !!!computecompute
![Page 71: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/71.jpg)
compute compute compute !!!computecompute
SchedulerApp
App
App
![Page 72: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/72.jpg)
compute compute compute !!!computecompute
Scheduler
AppAppApp
![Page 73: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/73.jpg)
compute compute compute !!!computecompute
Scheduler
AppApp App
![Page 74: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/74.jpg)
Nothing comes for free
![Page 75: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/75.jpg)
Kubernetes means:
![Page 76: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/76.jpg)
Kubernetes means: — a distributed scheduler
![Page 77: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/77.jpg)
Kubernetes means: — a distributed scheduler — cluster DNS
![Page 78: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/78.jpg)
Kubernetes means: — a distributed scheduler — cluster DNS — etcd
![Page 79: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/79.jpg)
Kubernetes means: — a distributed scheduler — cluster DNS — etcd — …
![Page 80: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/80.jpg)
Nothing comes for free
![Page 81: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/81.jpg)
We aren’t #webscale
(#sorrynotsorry)
![Page 82: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/82.jpg)
Distributed schedulers
![Page 83: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/83.jpg)
Distributed schedulers
![Page 84: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/84.jpg)
So what did we build?
![Page 85: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/85.jpg)
3 parts…
![Page 86: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/86.jpg)
Service definitions
![Page 87: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/87.jpg)
A service:
![Page 88: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/88.jpg)
A service: — an image
![Page 89: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/89.jpg)
A service: — an image — environment config
![Page 90: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/90.jpg)
A service: — an image — environment config — command to run
![Page 91: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/91.jpg)
A service: — an image — environment config — command to run — limits (memory, CPU)
![Page 92: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/92.jpg)
A service: — an image — environment config — command to run — limits (memory, CPU) — …
![Page 93: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/93.jpg)
This is config management
![Page 94: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/94.jpg)
So we used Chef
![Page 95: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/95.jpg)
Chef
Service A
Service C
Service B
![Page 96: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/96.jpg)
Chef
Service A
Service C
Service B
Compute 1
Compute 2
Compute 3
![Page 97: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/97.jpg)
Chef
Service A
Service C
Service B
Compute 1Service A Service B
Compute 2
Compute 3
config
![Page 98: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/98.jpg)
Chef
Service A
Service C
Service B
Compute 1Service A Service B
Compute 2Service B Service C
Compute 3
config
![Page 99: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/99.jpg)
Chef
Service A
Service C
Service B
Compute 1Service A Service B
Compute 2Service B Service C
Compute 3Service A Service C
config
![Page 100: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/100.jpg)
Chef
Service A
Service C
Service B
Compute 1Service A Service B
Compute 2Service B Service C
Compute 3Service A Service C
![Page 101: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/101.jpg)
Service definitions
![Page 102: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/102.jpg)
Service definitions
Single-node orchestration
![Page 103: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/103.jpg)
Enter Conductor
![Page 104: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/104.jpg)
conductor service upgrade --id gocardless_app_production --revision 279d903588
![Page 105: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/105.jpg)
conductor service upgrade --id gocardless_app_production --revision 279d903588
![Page 106: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/106.jpg)
conductor service upgrade --id gocardless_app_production --revision 279d903588
![Page 107: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/107.jpg)
The flow:
![Page 108: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/108.jpg)
The flow: — start containers for new version
![Page 109: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/109.jpg)
The flow: — start containers for new version — wait for health check
![Page 110: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/110.jpg)
The flow: — start containers for new version — wait for health check — rewrite local nginx config
![Page 111: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/111.jpg)
The flow: — start containers for new version — wait for health check — rewrite local nginx config — reload nginx
![Page 112: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/112.jpg)
The flow: — start containers for new version — wait for health check — rewrite local nginx config — reload nginx — stop old containers
![Page 113: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/113.jpg)
Conductor
nginx Docker
![Page 114: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/114.jpg)
Conductor
nginx Docker
Old
![Page 115: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/115.jpg)
Conductor
nginx
traffic
Oldtraffic
Docker
![Page 116: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/116.jpg)
Conductor
nginx
traffic
Old
New
traffic
API
Docker
![Page 117: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/117.jpg)
Conductor
nginx
traffic
Old
New
traffic
health check
Docker
![Page 118: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/118.jpg)
Conductor
nginx
traffic
Old
New
traffic
config
Docker
![Page 119: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/119.jpg)
Conductor
nginx
traffic
Old
Newtraffic
reload
Docker
![Page 120: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/120.jpg)
Conductor
nginx
traffic
Old
Newtraffic
Docker
![Page 121: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/121.jpg)
Conductor
nginx
traffic
Old
Newtraffic
Docker
API
![Page 122: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/122.jpg)
Conductor
nginx
traffic Newtraffic
Docker
API
![Page 123: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/123.jpg)
Conductor
nginx
traffic Newtraffic
Docker
![Page 124: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/124.jpg)
What about cron jobs?
![Page 125: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/125.jpg)
conductor cron generate --id gocardless_cron_production --revision 279d903588
![Page 126: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/126.jpg)
conductor cron generate --id gocardless_cron_production --revision 279d903588
![Page 127: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/127.jpg)
gocardless/ ▼ app/ payment_stuff.rb ▶ lib/ generate-cron
![Page 128: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/128.jpg)
# Clean up expired API tokens
*/30 * * * * scripts/cleanup-api-tokens
![Page 129: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/129.jpg)
# Clean up expired API tokens
*/30 * * * * /usr/local/bin/conductor run --id gocardless_cron_production --revision 279d903588 scripts/cleanup-api-tokens
![Page 130: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/130.jpg)
Service definitions
Single-node orchestration
![Page 131: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/131.jpg)
Service definitions
Single-node orchestration
A way to trigger deploys
![Page 132: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/132.jpg)
Keep it boring
![Page 133: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/133.jpg)
Keep it in Capistrano
![Page 134: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/134.jpg)
Capistrano
Legacy infra
deploy
![Page 135: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/135.jpg)
Capistrano
Legacy infra
deploy
New infra
deploy
![Page 136: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/136.jpg)
Help developers do their job
![Page 137: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/137.jpg)
$💯
![Page 138: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/138.jpg)
1thing missing
![Page 139: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/139.jpg)
– a computer
“Hey, this process died.”
![Page 140: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/140.jpg)
Process Process Process
Supervisor
![Page 141: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/141.jpg)
Process Process Process
Supervisor
![Page 142: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/142.jpg)
Process Process Process
Supervisor
👀
![Page 143: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/143.jpg)
Process Process Process
Supervisor
start
![Page 144: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/144.jpg)
Some supervisors:
![Page 145: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/145.jpg)
Some supervisors: — Upstart
![Page 146: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/146.jpg)
Some supervisors: — Upstart — systemd
![Page 147: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/147.jpg)
Some supervisors: — Upstart — systemd — runit
![Page 148: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/148.jpg)
Those didn’t play well with
Docker
![Page 149: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/149.jpg)
Docker restart policies
![Page 150: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/150.jpg)
We didn’t get along well
![Page 151: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/151.jpg)
Hard to stop or
Gave up entirely
![Page 152: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/152.jpg)
Hard to stop or
Gave up entirely
![Page 153: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/153.jpg)
We built a process supervisor 😬
![Page 154: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/154.jpg)
conductor supervise
![Page 155: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/155.jpg)
Specifically:
![Page 156: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/156.jpg)
Specifically: — check number of containers
![Page 157: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/157.jpg)
Specifically: — check number of containers — health check each container
![Page 158: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/158.jpg)
Specifically: — check number of containers — health check each container
![Page 159: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/159.jpg)
Specifically: — check number of containers — health check each container — restart if either fails
![Page 160: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/160.jpg)
Specifically: — check number of containers — health check each container — restart if either fails — at most every 5 seconds
![Page 161: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/161.jpg)
# service conductor-supervise stop
![Page 162: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/162.jpg)
We don’t want this piece of software
![Page 163: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/163.jpg)
$💯
![Page 164: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/164.jpg)
Deploying software reliably
How containers can help
Other options
![Page 165: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/165.jpg)
Deploying software reliably
How containers can help
Other options
![Page 166: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/166.jpg)
systemd + rkt or
VMs + autoscaling
![Page 167: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/167.jpg)
Supervisor: systemd
Containers: rkt
![Page 168: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/168.jpg)
Supervisor: systemd
Containers: rkt
![Page 169: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/169.jpg)
To fit our usage:
![Page 170: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/170.jpg)
To fit our usage: — Conductor generates systemd config
![Page 171: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/171.jpg)
To fit our usage: — Conductor generates systemd config — systemd manages processes
![Page 172: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/172.jpg)
To fit our usage: — Conductor generates systemd config — systemd manages processes — Delete conductor supervise
![Page 173: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/173.jpg)
To fit our usage: — Conductor generates systemd config — systemd manages processes — Delete conductor supervise — HTTP health checks???
![Page 174: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/174.jpg)
systemd + rkt or
VMs + autoscaling
![Page 175: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/175.jpg)
Supervisor: autoscaling
Containers → VMs
![Page 176: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/176.jpg)
Supervisor: autoscaling
Containers → VMs
![Page 177: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/177.jpg)
![Page 178: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/178.jpg)
![Page 179: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/179.jpg)
Meta-thoughts
![Page 180: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/180.jpg)
Meta-thoughts
![Page 181: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/181.jpg)
Some reckons 🤔
![Page 182: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/182.jpg)
Introduce new infrastructure
where failure is survivable
![Page 183: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/183.jpg)
Non-critical batch jobs ↓
Background workers ↓
API servers
![Page 184: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/184.jpg)
Goal state is what matters
![Page 185: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/185.jpg)
Everything might change before your
next method call
![Page 186: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/186.jpg)
The system isn’t interesting
without context
![Page 187: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/187.jpg)
Start with why
![Page 188: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/188.jpg)
Thank you✌❤
@ChrisSinjo @GoCardlessEng
![Page 189: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/189.jpg)
We’re hiring✌❤
@ChrisSinjo @GoCardlessEng
![Page 190: a million containers isnt cool - USENIX...A million containers isn’t cool You know what’s cool? A hundred containers. @ChrisSinjo GOCARDLESS We aren’t #webscale (#sorrynotsorry)](https://reader034.vdocuments.us/reader034/viewer/2022052303/5f0eb5d37e708231d4408eec/html5/thumbnails/190.jpg)
Questions?✌❤
@ChrisSinjo @GoCardlessEng