Configuration Management for theDevops generation.Friday, 17 May 13
We Live In A Confusing World?Friday, 17 May 13
And We’ve All Experienced This?SometimesFeels Like itisDev vs. Opsvs. ITIL?Friday, 17 May 13
* Applications deliveredquickly to help businesssucceed* Allowing us to work oninteresting projects* Tools that will simpl...
* Applications deliveredquickly to help businesssucceed* Allowing us to work oninteresting projects* Tools that will simpl...
* Applications deliveredquickly to help businesssucceed* Allowing us to work oninteresting projects* Tools that will simpl...
*You built your own or*You bought something* You had to bend your thinking* It was hard to install if it worked* You had a...
Enter DevOps and ChefFriday, 17 May 13
Chef is an automation platform for developers & systems engineers to continuouslydefine, build, and manage infrastructure....
Consider this.....Friday, 17 May 13
Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphiteTypical InfrastructureFriday, 17 May 13
Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphite• Move SSH off port 22• Lets put it on 2022New Compliance Man...
Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphite• Change, Restart• Repeat• Typically manuallyMany Changes , M...
Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphite• More Complexity• More wiring• Bigger run-bookScale OutFrida...
And It Gets Worse?Application ServersApplication Database CacheLoad BalancersFloating IP?Application DatabasesFriday, 17 M...
And It Gets Worse?Application ServersApplication Database CacheLoad BalancersFloating IP?Application DatabasesEvolvingcomp...
Complexity Grows QuicklyDC1DC3DC2Friday, 17 May 13
Configuration DesperationCode Samplehttp://www.flickr.com/photos/francoforeshock/5716969942/Friday, 17 May 13
• But you alreadyguessed that, didn’tyou?Chef Solves this ProblemFriday, 17 May 13
Chef is Infrastructure as Codehttp://www.flickr.com/photos/louisb/4555295187/• Programmaticallyprovision and configure• Tre...
• Chef-Client generatesconfigurations directlyon nodes from theirrun list• Reduce managementcomplexity throughabstraction•...
Collections of Resources• Networking• Files• Directories• Symlinks• Mounts• Routes• Users• Groups• Tasks• Packages• Softwa...
Declarative Interface to Resources• Define policy• Say what, not how• Pull not Pushhttp://www.flickr.com/photos/bixentro/25...
Recipes and Cookbooks• Recipes are collections ofResources• Cookbooks containrecipes, templates, files,custom resources, e...
http://www.flickr.com/photos/kathycsus/2686772625• IP addresses• Hostnames• FQDNs• Search for whenstatic config isn’tenough...
pool_members = search("node","role:webserver”)template "/etc/haproxy/haproxy.cfg" dosource "haproxy-app_lb.cfg.erb"owner "...
# Set up application listeners here.listen application 0.0.0.0:80balance roundrobin<% @pool_members.each do |member| -%>se...
Jboss AppMemcachePostgres SlavesPostgres MasterSo when thisNagiosGraphiteFriday, 17 May 13
Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphiteBecomes thisFriday, 17 May 13
Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphiteUpdates can be automaticFriday, 17 May 13
NagiosGraphiteCount the resourcesJboss AppMemcachePostgres Slaves• Load balancer config• Nagios host ping• Nagios host ssh...
Build anything• Simple internal applications• Complex external applications• Workstations• Hadoop clusters• IaaS infrastru...
And manage it simplyhttp://www.flickr.com/photos/helico/404640681/• Automaticallyreconfigureeverything• Linux,Windows,Unixe...
Code SampleChef ComponentsFriday, 17 May 13
knife with the Chef Server• knife node• create/delete/edit• list• knife cookbook ...• knife role ...• knife environment .....
knife search• What operating systems are running?• What version of ruby is running?• How much memory do you have on eachma...
Discovery & Data Driven (Ohai!)Friday, 17 May 13
knife searchknife search “*:*” -a platformknife search “*:*” -a languages.ruby.versionknife search “*:*” -a memory.totalFr...
knife ssh$ knife ssh "roles:rails-web" "sudo chef-client"Friday, 17 May 13
And the Cloud.....$ knife ec2Available ec2 subcommands: (for details, knife SUB-COMMAND --help)** EC2 COMMANDS **knife ec2...
CommunityFriday, 17 May 13
The Chef Community• Apache License,Version 2.0• 1200+ Individual contributors• 200+ Corporate contributors• Google, HP, De...
How Do I Start?•docs.opscode.com•learnchef.com•opscode.eventbrite.com•lists.opscode.comFriday, 17 May 13
Friday, 17 May 13
Yep, we’re hiring!Friday, 17 May 13
Thanks! Any Questions?Andy Hawkinsandy@opscode.comFriday, 17 May 13
Upcoming SlideShare
Loading in...5
×

eSynergy Andy Hawkins - Enabling DevOps through next generation configuration management

501

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
501
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

eSynergy Andy Hawkins - Enabling DevOps through next generation configuration management

  1. 1. Configuration Management for theDevops generation.Friday, 17 May 13
  2. 2. We Live In A Confusing World?Friday, 17 May 13
  3. 3. And We’ve All Experienced This?SometimesFeels Like itisDev vs. Opsvs. ITIL?Friday, 17 May 13
  4. 4. * Applications deliveredquickly to help businesssucceed* Allowing us to work oninteresting projects* Tools that will simplifyconfiguration, release andchangeBut We All Want The Same Thing?Friday, 17 May 13
  5. 5. * Applications deliveredquickly to help businesssucceed* Allowing us to work oninteresting projects* Tools that will simplifyconfiguration, release andchangeBut We All Want The Same Thing?Friday, 17 May 13
  6. 6. * Applications deliveredquickly to help businesssucceed* Allowing us to work oninteresting projects* Tools that will simplifyconfiguration, release andchangeBut We All Want The Same Thing?And not this ?Friday, 17 May 13
  7. 7. *You built your own or*You bought something* You had to bend your thinking* It was hard to install if it worked* You had an empty vessel* Did it support multiple OS’s or scaleIt took a long time to go anywhere.In The PastFriday, 17 May 13
  8. 8. Enter DevOps and ChefFriday, 17 May 13
  9. 9. Chef is an automation platform for developers & systems engineers to continuouslydefine, build, and manage infrastructure.CHEF USES:Recipes and Cookbooksthat describe Infrastructure as Code.Chef enables people to easily build &manage complex & dynamic applicationsat massive scale• New model for describing infrastructure thatpromotes reuse• Programmatically provision and configure• Reconstruct business from code repository,data backup, and bare metal resourcesChefChef is available in open source, PaaS andEnterprise optionsFriday, 17 May 13
  10. 10. Consider this.....Friday, 17 May 13
  11. 11. Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphiteTypical InfrastructureFriday, 17 May 13
  12. 12. Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphite• Move SSH off port 22• Lets put it on 2022New Compliance Mandate!Friday, 17 May 13
  13. 13. Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphite• Change, Restart• Repeat• Typically manuallyMany Changes , Mostly Manual?• Don’t break anything!• Bob just got fired =(Friday, 17 May 13
  14. 14. Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphite• More Complexity• More wiring• Bigger run-bookScale OutFriday, 17 May 13
  15. 15. And It Gets Worse?Application ServersApplication Database CacheLoad BalancersFloating IP?Application DatabasesFriday, 17 May 13
  16. 16. And It Gets Worse?Application ServersApplication Database CacheLoad BalancersFloating IP?Application DatabasesEvolvingcomplexityVirtualizationCloudPortabilityFriday, 17 May 13
  17. 17. Complexity Grows QuicklyDC1DC3DC2Friday, 17 May 13
  18. 18. Configuration DesperationCode Samplehttp://www.flickr.com/photos/francoforeshock/5716969942/Friday, 17 May 13
  19. 19. • But you alreadyguessed that, didn’tyou?Chef Solves this ProblemFriday, 17 May 13
  20. 20. Chef is Infrastructure as Codehttp://www.flickr.com/photos/louisb/4555295187/• Programmaticallyprovision and configure• Treat like any other codebase• Reconstruct business fromcode repository, databackup, and bare metalresources.Friday, 17 May 13
  21. 21. • Chef-Client generatesconfigurations directlyon nodes from theirrun list• Reduce managementcomplexity throughabstraction• Store the configurationof your programs inversion controlhttp://www.flickr.com/photos/ssoosay/5126146763/NodesFriday, 17 May 13
  22. 22. Collections of Resources• Networking• Files• Directories• Symlinks• Mounts• Routes• Users• Groups• Tasks• Packages• Software• Services• Configurations• Other Stuffhttp://www.flickr.com/photos/stevekeys/3123167585/Friday, 17 May 13
  23. 23. Declarative Interface to Resources• Define policy• Say what, not how• Pull not Pushhttp://www.flickr.com/photos/bixentro/2591838509/Friday, 17 May 13
  24. 24. Recipes and Cookbooks• Recipes are collections ofResources• Cookbooks containrecipes, templates, files,custom resources, etc• Code re-use andmodularity• Written in Ruby - extendas necessary• Hundreds already onCommunity.opscode.comhttp://www.flickr.com/photos/shutterhacks/4474421855/Friday, 17 May 13
  25. 25. http://www.flickr.com/photos/kathycsus/2686772625• IP addresses• Hostnames• FQDNs• Search for whenstatic config isn’tenough• data-driven powerSearchFriday, 17 May 13
  26. 26. pool_members = search("node","role:webserver”)template "/etc/haproxy/haproxy.cfg" dosource "haproxy-app_lb.cfg.erb"owner "root"group "root"mode 0644variables :pool_members => pool_members.uniqnotifies :restart, "service[haproxy]"endPass Results to TemplatesFriday, 17 May 13
  27. 27. # Set up application listeners here.listen application 0.0.0.0:80balance roundrobin<% @pool_members.each do |member| -%>server <%= member[:hostname] %> <%= member[:ipaddress] %>:> weight 1 maxconn 1 check<% end -%><% if node["haproxy"]["enable_admin"] -%>listen admin 0.0.0.0:22002mode httpstats uri /<% end -%>Pass Results to TemplatesFriday, 17 May 13
  28. 28. Jboss AppMemcachePostgres SlavesPostgres MasterSo when thisNagiosGraphiteFriday, 17 May 13
  29. 29. Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphiteBecomes thisFriday, 17 May 13
  30. 30. Jboss AppMemcachePostgres SlavesPostgres MasterNagiosGraphiteUpdates can be automaticFriday, 17 May 13
  31. 31. NagiosGraphiteCount the resourcesJboss AppMemcachePostgres Slaves• Load balancer config• Nagios host ping• Nagios host ssh• Nagios host HTTP• Nagios host app health• Graphite CPU• Graphite Memory• Graphite Disk• Graphite SNMP• Memcache firewall• Postgres firewall• Postgres authZ config• 12+ resource changes for 1 node additionFriday, 17 May 13
  32. 32. Build anything• Simple internal applications• Complex external applications• Workstations• Hadoop clusters• IaaS infrastructure• PaaS infrastructure• SaaS applications• Storage systems• You name ithttp://www.flickr.com/photos/hyku/245010680/Friday, 17 May 13
  33. 33. And manage it simplyhttp://www.flickr.com/photos/helico/404640681/• Automaticallyreconfigureeverything• Linux,Windows,Unixes, BSDs• Load balancers• Metrics collectionsystems• Monitoring systems• Cloud migrationsbecome trivialFriday, 17 May 13
  34. 34. Code SampleChef ComponentsFriday, 17 May 13
  35. 35. knife with the Chef Server• knife node• create/delete/edit• list• knife cookbook ...• knife role ...• knife environment ...Friday, 17 May 13
  36. 36. knife search• What operating systems are running?• What version of ruby is running?• How much memory do you have on eachmachine?Friday, 17 May 13
  37. 37. Discovery & Data Driven (Ohai!)Friday, 17 May 13
  38. 38. knife searchknife search “*:*” -a platformknife search “*:*” -a languages.ruby.versionknife search “*:*” -a memory.totalFriday, 17 May 13
  39. 39. knife ssh$ knife ssh "roles:rails-web" "sudo chef-client"Friday, 17 May 13
  40. 40. And the Cloud.....$ knife ec2Available ec2 subcommands: (for details, knife SUB-COMMAND --help)** EC2 COMMANDS **knife ec2 flavor list (options)knife ec2 instance data (options)knife ec2 server create (options)knife ec2 server delete SERVER [SERVER] (options)knife ec2 server list (options)$ knife ec2 server create -S keypair -i ~/.ssh/id_rsa -x ubuntu-I ami-4721882e -f m1.small -r role[webserver]• knife ec2• knife rackspace• knife hp• knife google• knife azure• knife cloudstack• knife openstack• knife vsphere• ... and many othersFriday, 17 May 13
  41. 41. CommunityFriday, 17 May 13
  42. 42. The Chef Community• Apache License,Version 2.0• 1200+ Individual contributors• 200+ Corporate contributors• Google, HP, Dell, Rackspace,VMware,Joyent, Calxeda, Heroku, SUSE and manymore• 800+ cookbooks• http://community.opscode.comFriday, 17 May 13
  43. 43. How Do I Start?•docs.opscode.com•learnchef.com•opscode.eventbrite.com•lists.opscode.comFriday, 17 May 13
  44. 44. Friday, 17 May 13
  45. 45. Yep, we’re hiring!Friday, 17 May 13
  46. 46. Thanks! Any Questions?Andy Hawkinsandy@opscode.comFriday, 17 May 13
  1. A particular slide catching your eye?

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

×