Roland Tritsch - VP Technical Operations, Gilt Groupe
"Building a continuous delivery platform for the biggest spike in e-commerce" at PuppetCamp Dublin 2012.
to 'development' branch ◦ Push changes for code review ◦ Once changes have been reviewed and verified, they get merged into 'development' ◦ A 'canary' flag can be set for a number of nodes ◦ Change is cherry-picked to 'master' branch ◦ A 'tag' from master is created and deployed ▪ See behavior in the canary environment ▪ Expand the canary env. Rinse & repeat ▪ Remove canary flag
management & provisioning tool. It also acts as an External Node Classifier for Puppet ▪ Can provision bare-metal & virtual machines ▪ Integrated with Cobbler ▪ Also manages users/groups & sudoers • Synchronized to LDAP • Puppet deploys sudoers file ▪ DNS management ▪ Hosts can have one or more labels (tags) that are mapped to Puppet modules
just run it! • Node mgmt can become difficult (+100) • Keep change in mind (e.g. OS upgrades) Mothership ... • ... is not enough. You need at least 2 views ◦ Logical (deployed/reserved), Physical • You need to live with Physical != Logical ◦ Physical will be generated. It is a feedback loop.
(multiple times a day) ◦ ... with easy rollback ◦ ... accelerating our ability to innovate ◦ ... while maintaining 100% uptime • The "Happy Path" needs to be without human intervention ◦ From Commit to A/B test
• Keep change in mind ◦ Do incremental rollout of changes ◦ Provide a 'default' case in your puppet modules and use 'fail' (sdtlib) as a default case. • If you are looking for a complete CD platform, then you need to embed Puppet into a larger solution