Puppet Camp           Dublin - 2012Andrés Pereira <apereira@gilt.com> Roland Tritsch <rtritsch@gilt.com>
Gilt in a nutshell ...● 5, 500, 1000/200, 300, 1, 18, ...
Gilt in a nutshell ...Frontend (HTML[5], CSS, JS, ...)      ●   2 DCs + AWS EC2                                      ●   C...
Puppet at Gilt ...● Weve been using Puppet for almost 3 years  ○ ~ 1000 puppet modules● Typical setup  ○ Apache httpd+pass...
Puppet - Incremental rollout
Puppet - Incremental rollout● Deployment of changes  ○ Commit to development branch  ○ Push changes for code review  ○ Onc...
Puppet - External node Classifier      http://mothership.sourceforge.net/
Puppet - External node Classifier● Mothership  ○ In-house assets management & provisioning tool. It    also acts as an Ext...
Lessons learned / Best practices ...Puppet ...● Dont just run it!● Node mgmt can become difficult (+100)● Keep change in m...
Next steps ...
Requirements ...● Accelerate our ability to do incremental  deployments (multiple times a day)   ○ ... with easy rollback ...
Architecture ...                QA - Selenium /    Deployment -Code - Gerrit                 TestComplete        Puppet   ...
Takeaways ...● Keep your modules small, keep them simple● Keep change in mind  ○ Do incremental rollout of changes  ○ Prov...
Questions?
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
Upcoming SlideShare
Loading in...5
×

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

1,816

Published on

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

Published in: Technology, Spiritual
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,816
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Puppet Camp Dublin - 2012Andrés Pereira <apereira@gilt.com> Roland Tritsch <rtritsch@gilt.com>
  2. 2. Gilt in a nutshell ...● 5, 500, 1000/200, 300, 1, 18, ...
  3. 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. 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 schedule puppet runs ○ Puppet Dashboard (Reporting) ○ In-house External Node Classifier (aka Mothership)
  5. 5. Puppet - Incremental rollout
  6. 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. 7. Puppet - External node Classifier http://mothership.sourceforge.net/
  8. 8. Puppet - External node Classifier● Mothership ○ In-house assets 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
  9. 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. 10. Next steps ...
  11. 11. Requirements ...● Accelerate our ability to do incremental deployments (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
  12. 12. Architecture ... QA - Selenium / Deployment -Code - Gerrit TestComplete Puppet Ion Cannon Build - Performance Analytics Jenkins/Nexus
  13. 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 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
  14. 14. Questions?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×