Your SlideShare is downloading. ×
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Puppet Camp Dublin - 06/2012

265

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
265
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Puppet Camp Dublin - 2012Andrés Pereira <apereira@gilt.com> Roland Tritsch <rtritsch@gilt.com>
  • 2. Gilt in a nutshell ...•  5, 500, 1000/200, 300, 1, 18, ...
  • 3. Gilt in a nutshell ...Frontend (HTML[5], CSS, JS, ...) •  2 DCs + Amazon EC2Load Balancing (Zeus) •  CentOS Linux •  CDN (Akamai) • Aggregation (Java, Scala, ...) Puppet, Cobbler, ...Load Balancing (Zeus) •  Zenoss, Nagios, ... •  Git & GerritServices (Java, Scala, Ruby, ...) •  JenkinsDatabase (PostgreSQL, MongoDB, ...)
  • 4. Puppet at Gilt ...•  Weve been using Puppet for almost 3 years•  ~ 1000 puppet modules•  Typical setup o  Apache httpd+passenger for Puppetmaster o  Puppetcommander (MCollective plugin) to schedule puppet runs o  Puppet Dashboard (Reporting) o  In-house External Node Classifier (aka Mothership)
  • 5. Puppet - Incremental rollout
  • 6. Puppet - Incremental rollout•  Deployment of changes o  Commit to development branch o  Push changes for code review o  Once changes have been reviewed and verified, they get merged into development o  A canary flag can be set for a number of nodes o  Change is cherry-picked to master branch o  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 Classifier http://mothership.sourceforge.net/
  • 8. Puppet - External node Classifier•  Mothership o  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. 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 o  Logical (deployed/reserved), Physical•  You need to live with Physical != Logical o  Physical will be generated. It is a feedback loop.
  • 10. Next steps ...
  • 11. Requirements ...•  Accelerate our ability to do incremental deployments (multiple times a day) o  ... with easy rollback o  ... accelerating our ability to innovate o  ... while maintaining 100% uptime•  The "Happy Path" needs to be without human intervention o  From Commit to A/B test
  • 12. Architecture ... QA - Selenium / Deployment -Code - Gerrit TestComplete Puppet Ion Cannon Build - Jenkins/ Performance Analytics Nexus
  • 13. Takeaways ...•  Keep your modules small, keep them simple•  Keep change in mind o  Do incremental rollout of changes o  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. Questions ...

×