Puppet @ Citygrid        PuppetCamp LA 2012
Who am I ?My name is Julien RottenbergRecovering System AdministratorPuppet user since 2009 (at GN)I like to write code an...
Puppet promises                          No need to ssh to a                          server to understand                ...
"Those who cannot remember thepast are condemned to repeat it."                                     George Santayanalitera...
Puppet promisesGuarantee that a server is setup exactly thesame way on all environments
Puppet promises
Puppet promisesAll the building stepsare auditable - SDLCDrift managementOpen knowledge, noblackbox
Puppet promises    and finally...
Toolset    Open source tools :    ●   No need to reinvent the wheel    ●   You are not alone with that problem,        get...
Toolset
Toolset puppet doc ● validate code (puppet parser validate) ● produce html doc Running on commit through Jenkins ~ 10 sec
Toolset
Toolset  puppet-lint == coding standard          Takes ~ 2 min          Part of the Ci-Game
Toolsettrunk = work in progress - could break but fixASAPproduction = tested code - do not break
Toolset    Trunk --> Production (CherryPicking)                          We use svnmerge.py   Code in progress = technical...
Toolset          Svn even with svnmerge has limitations                                  Git ?
Toolset  VagrantSits on top of VirtualboxAllows to go crazyTest, experiment, share configured box$ vagrant provision == pu...
ToolsetnVentoryAs an External Node ClassifierClasses:    - default_install    - gcd
Toolset  nVentoryHelper to build configuration files, etc.ie replacement for Stored Config
ToolsetForemanApi for puppet status, visibility of puppetrun (Failed attempt on ENC - probably pebkac)
Toolset Man ! thats a lot of tools !1!!And its fine, design by contract.Each application does one thingand was designed to...
ToolsetBoto for ●   ec2 ●   route53 ●   elb ●   sqs ●   sns River dolphin native to the amazon WP
Culture cloudEC2 glitches, expect themIt used to `just work` : ●  gmond (split view dns side effect, using    gmetric) ●  ...
Culture cloud
Culture cloud# Build 10 nodes$ create_ec2_instance.py -e dev -s m1.medium -c thd -n 10# assign them to the hadoop::datanod...
Culture Collaborate
Culture Collaborate "If the companys doing well and people dont hate each other, youre probably doing ok."             Joh...
You guys !Make it better :- Integrated function for secrets (no get_var orhiera + gpg)Something like an encrypted data lug...
Guys !
Yesterday...
Two last things... On call rotation side effect Dont be a human keyboard
Shameless plugWe aggregate advertising & content from localbusinesses and distribute across our network ofweb & mobile sit...
Q/A                                              This page : goo.gl/soxEspuppet doc : http://docs.puppetlabs.com/guides/st...
Upcoming SlideShare
Loading in...5
×

Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12

1,026

Published on

Julien Rottenberg, CityGrid. Presentation of the tools and workflow for our puppet setup. How puppet helps us managing 500+ servers in a hybrid environment O&O Datacenter and EC2, hands free. Watch the video at http://youtu.be/FPwga7HwomM

PuppetCamp LA, May '12.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,026
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12

  1. 1. Puppet @ Citygrid PuppetCamp LA 2012
  2. 2. Who am I ?My name is Julien RottenbergRecovering System AdministratorPuppet user since 2009 (at GN)I like to write code and answer questions
  3. 3. Puppet promises No need to ssh to a server to understand how it worksLook at the puppet code
  4. 4. "Those who cannot remember thepast are condemned to repeat it." George Santayanaliterally... go to a server, run `history` as root.
  5. 5. Puppet promisesGuarantee that a server is setup exactly thesame way on all environments
  6. 6. Puppet promises
  7. 7. Puppet promisesAll the building stepsare auditable - SDLCDrift managementOpen knowledge, noblackbox
  8. 8. Puppet promises and finally...
  9. 9. Toolset Open source tools : ● No need to reinvent the wheel ● You are not alone with that problem, get help
  10. 10. Toolset
  11. 11. Toolset puppet doc ● validate code (puppet parser validate) ● produce html doc Running on commit through Jenkins ~ 10 sec
  12. 12. Toolset
  13. 13. Toolset puppet-lint == coding standard Takes ~ 2 min Part of the Ci-Game
  14. 14. Toolsettrunk = work in progress - could break but fixASAPproduction = tested code - do not break
  15. 15. Toolset Trunk --> Production (CherryPicking) We use svnmerge.py Code in progress = technical debt It needs to be merged and deployed or reverted Fail the build if pending Cherry Picks > 30 Cant CherryPick yourself ~ code review
  16. 16. Toolset Svn even with svnmerge has limitations Git ?
  17. 17. Toolset VagrantSits on top of VirtualboxAllows to go crazyTest, experiment, share configured box$ vagrant provision == puppet apply
  18. 18. ToolsetnVentoryAs an External Node ClassifierClasses: - default_install - gcd
  19. 19. Toolset nVentoryHelper to build configuration files, etc.ie replacement for Stored Config
  20. 20. ToolsetForemanApi for puppet status, visibility of puppetrun (Failed attempt on ENC - probably pebkac)
  21. 21. Toolset Man ! thats a lot of tools !1!!And its fine, design by contract.Each application does one thingand was designed to do thatthing only (so does it well)Pipe them Dennis Ritchie
  22. 22. ToolsetBoto for ● ec2 ● route53 ● elb ● sqs ● sns River dolphin native to the amazon WP
  23. 23. Culture cloudEC2 glitches, expect themIt used to `just work` : ● gmond (split view dns side effect, using gmetric) ● jmx (need to specify public name at runtime) ● ELB pseudo load balancer ● Bad neighbors
  24. 24. Culture cloud
  25. 25. Culture cloud# Build 10 nodes$ create_ec2_instance.py -e dev -s m1.medium -c thd -n 10# assign them to the hadoop::datanode class (specific install on top of our vanilla)$ nv --name aws1devthd --addtonodegroup hadoop::datanode# send traffic & enable monitoring (configs to be updated on the next puppet run)$ nv --name aws1devthd --set status=inservice One AMI to rule them all (map set per region)
  26. 26. Culture Collaborate
  27. 27. Culture Collaborate "If the companys doing well and people dont hate each other, youre probably doing ok." John Allspaw, speaking at Devopsdays 2011 MV.
  28. 28. You guys !Make it better :- Integrated function for secrets (no get_var orhiera + gpg)Something like an encrypted data luggage - puppet agent stability, puppetd vs cron ?
  29. 29. Guys !
  30. 30. Yesterday...
  31. 31. Two last things... On call rotation side effect Dont be a human keyboard
  32. 32. Shameless plugWe aggregate advertising & content from localbusinesses and distribute across our network ofweb & mobile sites ● Ingest : Hadoop & Cassandra ● Serve : Solr & MongoDb + Tomcat ● Code : Java mostly
  33. 33. Q/A This page : goo.gl/soxEspuppet doc : http://docs.puppetlabs.com/guides/style_guide.html#puppet-docpuppet-lint : http://puppet-lint.com/Jenkins : http://jenkins-ci.org/svn strategy : http://weblogs.java.net/blog/johnsmart/archive/2009/05/ci_branching_an.htmlsvnmerge.py : http://www.orcaware.com/svn/wiki/Svnmerge.pyvagrant : http://vagrantup.com/nventory : http://sourceforge.net/apps/trac/nventory/wikiforeman : http://theforeman.org/boto : https://github.com/boto/botoDont be an Ahole : http://www.hollenback.net/DevOpsMeansDontBeAnAholeDevelopers on call - Mitchell Hashimoto : http://vimeo.com/31367609Dont be a human keyboard : http://sysadvent.blogspot.com/2010/12/day-13-dont-be-human-keyboard.htmlCitygrid is hiring : http://careers.citygrid.com/Puppet Master LA User Group : http://www.meetup.com/LAPMUG/
  1. A particular slide catching your eye?

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

×