16. It’s old
CFEngine v1
released in 1993,
as a “teddy
bear”, it’s
reassuring: it’s
been used for
this long without
any big problem,
cf. OpenBSD’s “2
holes since 1996”
20. Documented Infrastructure
• grep the whole cluster
• what's in there is what's live
• no need to SSH
• knowledge is shared
• history is kept
• company is more valuable
21. Scalability
We want to build for success, not failure
We hope what we build will succeed
26. Footprint
• Package to install is < 3MB
• Largest binary is 320kB
(96% C, 3% C++)
• The server is just letting
clients download policies
• Clients are trying to apply
the policies locally
27. It’s GPL
It’s free (libre) and will ever be. It’s in Debian so it
passed the DFSG test: Fastest way to check.
28. Open & active community
You can open bug reports and submit Pull
Requests on Github, a must nowadays
51. Naming convention to leverage
CFEngine classes
• Our DNS is our inventory
• We leverage it with a
coordination service (AWS Tags
(does not scale), Zookeeper, …)
61. Our infrastructure has no state
• Policies in git
• App code in git
• Data in datastores
• No backup: Images are cache
62. No instance backup at all ?
2 exceptions:
S3 for cryptic generated config files (Jenkins)
EBS for large non-vital changing data (RabbitMQ)
63. We are independent
No state is left on AWS (No AMI), we migrate away
For better prices, stability, features, mood
64. We know and hear everything
But tell everyone to shut up (email). When
something happens, you'll know. Your goal is
silence: 0 email.
65. We don’t push to deploy
It does not scale. We update the live version and
every server updates itself. You can do this if your
infrastructure is limpid, CFEnginized.
66. We are resilient
Anything can go down, it will go up and rebuild
itself automatically - It happens nightly.
67. We can change our shape
Upgrading a server takes 2 commands:
1. Launch a beefier instance with the same name
2. Kill the weak one
68. We use spot instances, it’s
cheap!
We can launch and kill any server anytime. It
happens while we sleep.