introduction and background - trifork · –provisioning with foreman, automating with puppet...
TRANSCRIPT
![Page 1: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/1.jpg)
Using Puppet, Foreman and Git
to Develop and Operate a Large
Scale Internet Service
![Page 2: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/2.jpg)
Agenda
• Introduction and background
• Puppet
• Foreman
• Demo: Deploy change to Development Cluster
• Future plans
• Questions and Answers
![Page 3: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/3.jpg)
Introduction and background
![Page 4: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/4.jpg)
Joost van de Wijgerd Chief Architect / VP Operations
• 37
• Dutch
• In IT Industry since 1999
• @ eBuddy since 2009
• Responsibilities
– Overall Architecture
– Datacenter Operations
![Page 5: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/5.jpg)
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
![Page 6: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/6.jpg)
DevOps!? – Some Quotes from the Web
• “Developer and Operations collaboration”
• “Infrastructure as code”
• “Using Automation”
• “Using Kanban”
![Page 7: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/7.jpg)
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
![Page 8: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/8.jpg)
Process
commit 1 push properties 5
checkout 2
scp puppetmaster (Dev)
4
upload 3
post_commit 6
puppet run 8
Puppet kick 7
Read properties 10
Pull artifact (Pro) 9
![Page 9: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/9.jpg)
Puppet
![Page 10: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/10.jpg)
What is Puppet?
• Centralized Configuration Management
• Automate repetitive tasks
• Deploy applications
![Page 11: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/11.jpg)
How does it work?
![Page 12: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/12.jpg)
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
![Page 13: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/13.jpg)
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)
![Page 14: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/14.jpg)
![Page 15: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/15.jpg)
Foreman
![Page 16: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/16.jpg)
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
![Page 17: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/17.jpg)
EBUDDY THEME
![Page 18: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/18.jpg)
EBUDDY THEME
![Page 19: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/19.jpg)
EBUDDY THEME
![Page 20: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/20.jpg)
EBUDDY THEME
![Page 21: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/21.jpg)
EBUDDY THEME
![Page 22: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/22.jpg)
Demo
![Page 23: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/23.jpg)
Future Plans
![Page 24: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/24.jpg)
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
![Page 25: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/25.jpg)
Q & A
![Page 26: Introduction and background - Trifork · –Provisioning with Foreman, automating with Puppet –Providing a Puppet framework for Developers –Organized through Kanban • Development](https://reader034.vdocuments.net/reader034/viewer/2022042321/5f0b65357e708231d4304f00/html5/thumbnails/26.jpg)
We’re Hiring!
• We’re a Super.Cool.Company©
• Visit jobs.ebuddy.com