+ All Categories
Home > Technology > Building a continuous delivery platform for the biggest spike in e-commerce - Puppet Camp Dublin '12

Building a continuous delivery platform for the biggest spike in e-commerce - Puppet Camp Dublin '12

Date post: 15-Jan-2015
Category:
Upload: puppet-labs
View: 1,713 times
Download: 1 times
Share this document with a friend
Description:
Roland Tritsch, VP of Technical Operations at the Gilt Groupe, speaks on "Building a continuous delivery platform for the biggest spike in e-commerce" at PuppetCamp Dublin, 2012. Learn More: http://www.puppetlabs.com
Popular Tags:
16
Puppet Camp Dublin - 2012 Andrés Pereira <[email protected]> Roland Tritsch <[email protected]>
Transcript
  • 1. Puppet Camp Dublin - 2012Andrs Pereira Roland Tritsch

2. Gilt in a nutshell ... 5, 500, 1000/200, 300, 1, 18, ... 3. Gilt in a nutshell ...Frontend (HTML[5], CSS, JS, ...) 2 DCs + AWS EC2 CentOS LinuxLoad Balancing (Zeus) CDN (Akamai) Puppet, Cobbler, ...Aggregation (Java, Scala, ...) Zenoss, Nagios, ... Git & GerritLoad Balancing (Zeus) JenkinsServices (Java, Scala, Ruby, ...)Database (PostgreSQL, MongoDB, ...) 4. Puppet at Gilt ... Weve been using Puppet for almost 3 years ~ 1000 puppet modules Typical setup Apache httpd+passenger for Puppetmaster Puppetcommander (MCollective plugin) to schedulepuppet runs Puppet Dashboard (Reporting) In-house External Node Classifier (aka Mothership) 5. Puppet - Incremental rollout 6. Puppet - Incremental rollout Deployment of changes Commit 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 7. Puppet - External node Classifierhttp://mothership.sourceforge.net/ 8. Puppet - External node Classifier Mothership In-house assets management & provisioning tool. Italso 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 9. Lessons learned / Best practices ...Puppet ... Dont 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. 10. Next steps ... 11. Requirements ... Accelerate our ability to do incrementaldeployments (multiple times a day) ... with easy rollback ... accelerating our ability to innovate ... while maintaining 100% uptime The "Happy Path" needs to be withouthuman intervention From Commit to A/B test 12. Architecture ...QA - Selenium /Deployment -Code - Gerrit TestCompletePuppetIon Cannon Build -Performance AnalyticsJenkins/Nexus 13. Takeaways ... Keep your modules small, keep them simple Keep change in mind Do incremental rollout of changes Provide a default case in your puppet modules anduse fail (sdtlib) as a default case. If you are looking for a complete CDplatform, then you need to embed Puppetinto a larger solution 14. Questions?


Recommended