Your SlideShare is downloading. ×
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
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@Citygrid - Julien Rottenberg - PuppetCamp LA '12

1,010

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 …

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,010
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
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 @ Citygrid PuppetCamp LA 2012
  • 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. Puppet promises No need to ssh to a server to understand how it worksLook at the puppet code
  • 4. "Those who cannot remember thepast are condemned to repeat it." George Santayanaliterally... go to a server, run `history` as root.
  • 5. Puppet promisesGuarantee that a server is setup exactly thesame way on all environments
  • 6. Puppet promises
  • 7. Puppet promisesAll the building stepsare auditable - SDLCDrift managementOpen knowledge, noblackbox
  • 8. Puppet promises and finally...
  • 9. Toolset Open source tools : ● No need to reinvent the wheel ● You are not alone with that problem, get help
  • 10. Toolset
  • 11. Toolset puppet doc ● validate code (puppet parser validate) ● produce html doc Running on commit through Jenkins ~ 10 sec
  • 12. Toolset
  • 13. Toolset puppet-lint == coding standard Takes ~ 2 min Part of the Ci-Game
  • 14. Toolsettrunk = work in progress - could break but fixASAPproduction = tested code - do not break
  • 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. Toolset Svn even with svnmerge has limitations Git ?
  • 17. Toolset VagrantSits on top of VirtualboxAllows to go crazyTest, experiment, share configured box$ vagrant provision == puppet apply
  • 18. ToolsetnVentoryAs an External Node ClassifierClasses: - default_install - gcd
  • 19. Toolset nVentoryHelper to build configuration files, etc.ie replacement for Stored Config
  • 20. ToolsetForemanApi for puppet status, visibility of puppetrun (Failed attempt on ENC - probably pebkac)
  • 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. ToolsetBoto for ● ec2 ● route53 ● elb ● sqs ● sns River dolphin native to the amazon WP
  • 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. Culture cloud
  • 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. Culture Collaborate
  • 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. 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. Guys !
  • 30. Yesterday...
  • 31. Two last things... On call rotation side effect Dont be a human keyboard
  • 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. 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/

×