Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12

  • 947 views
Uploaded 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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
947
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
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/