Your SlideShare is downloading. ×
Using puppet, foreman and git to develop and operate a large scale internet service (eBuddy).
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

Using puppet, foreman and git to develop and operate a large scale internet service (eBuddy).


Published on

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Facts Examples: installed application version, os version, memory size
  • service, package and file are built-in resource typesResource-type handled by pluggable providers -> example aptAny changes to the ntp.conf will cause the service to restart (if running)
  • Same parameters can be set on Host level (hierarchical)
  • Transcript

    • 1. Using Puppet, Foreman and Gitto Develop and Operate a Large Scale Internet Service
    • 2. Agenda• Introduction and background• Puppet• Foreman• Demo: Deploy change to Development Cluster• Future plans• Questions and Answers
    • 3. Introduction and background
    • 4. Joost van de Wijgerd • 37Chief Architect / VP Operations • Dutch • In IT Industry since 1999 • @ eBuddy since 2009 • Responsibilities – Overall Architecture – Datacenter Operations
    • 5. About eBuddy• Founded in 2003• eBuddy Chat Platform peak at 35M MAU, 9M DAU, 17B Messages per month• Started XMS Messaging Platform in 2010• Currently managing 3 production sites and 2 development sites• About 500 instances (physical and virtual) total
    • 6. DevOps!? – Some Quotes from the Web• “Developer and Operations collaboration”• “Infrastructure as code”• “Using Automation”• “Using Kanban”
    • 7. DevOps at eBuddy• Operations – Provide Infrastructure and Monitoring – Provisioning with Foreman, automating with Puppet – Providing a Puppet framework for Developers – Organized through Kanban• Development (Backend Teams) – Deliver systems not compiled software (including puppet classes) – Manage Development environments – Deploy to Production Environments – Using Scrum
    • 8. 9 Pull artifact (Pro)Process 3 upload 4 scp puppetmaster (Dev) 8 puppet run 2 checkout 1 Read properties 0 6 post_commit 7 Puppet kick 1 commit 5 push properties
    • 9. Puppet
    • 10. What is Puppet?• Centralized Configuration Management• Automate repetitive tasks• Deploy applications
    • 11. How does it work?
    • 12. Puppet Details• Puppet DSL built on top of Ruby• Puppet Classes defined in Puppet Modules• Use Modules to compose application stacks• Collection of Puppet Classes make an environment• Puppet environment(s) stored in Git and pulled by Puppet Masters
    • 13. Module Example• a module is simply a directory tree with a specific, predictable structure: – MODULE NAME • manifests  contains init.pp file with module class • files  served as static files to agent nodes • templates  ERB (Ruby Templating) files evaluated at runtime • lib  plugins (Ruby Code)
    • 14. Foreman
    • 15. What is Foreman?• External Node Classifier for Puppet• Add Nodes to Host Groups• Assign Puppet Classes per Host or Host Group• Define parameters per Host Group or per Host• Report Collector for Puppet runs• Kick Puppet agents• Access control – Let Developers deploy on Production with needing platform access
    • 16. EBUDDY THEME
    • 17. EBUDDY THEME
    • 18. EBUDDY THEME
    • 19. EBUDDY THEME
    • 20. EBUDDY THEME
    • 21. Demo
    • 22. Future Plans
    • 23. Future Plans• Complete automatic provisioning with Foreman – Fill in MAC address and Host Group.. Et Voila!• Refactor for Puppet 3.x and Hiera – Completely separate Data and Code – To support multiple environments from a single codebase• Implement staged Git repo approach with Pull Requests and Code Reviews• Unsupervised application deployment
    • 24. Q&A
    • 25. We’re Hiring! • We’re a Super.Cool.Company©• Visit