Systems building-systems-a-puppet-story-19133

765 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
765
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Systems building-systems-a-puppet-story-19133

  1. 1. Systems Building Systems A Puppet Story
  2. 2. What is Puppet? Language Parser Client/Server Resource Abstraction A few other things...
  3. 3. Luke Kanies Recovering Sysadmin
  4. 4. One Goal: Revolutionize System Administration
  5. 5. What is a sysadmin?
  6. 6. Not Exactly Modern
  7. 7. Do tools have to suck?
  8. 8. Say What?!??
  9. 9. Everything the Same Everything Distinct
  10. 10. “Best Practices”
  11. 11. Don’t look at me... I wasn’t the last one to touch it...
  12. 12. SSH Cfengine ?
  13. 13. Bad product, hungry Luke
  14. 14. SSH Cfengine ?
  15. 15. SSH Cfengine ?
  16. 16. You can either easily manage complex systems at scale...
  17. 17. You can either easily manage complex systems at scale... Or you can’t...
  18. 18. Who’s using Puppet? “...at Google we're currently using Puppet to manage close to 6,000 Macs, and it's likely our deployment will expand dramatically beyond that....”
  19. 19. Competitive Advantage
  20. 20. People are finally figuring out puppet and how it gets you to the pub by 4pm. Note that I've been at this pub since 2pm. -- Jorge Castro
  21. 21. Enter Puppet... Configuration Is Declarative Code Semantics Matter Reproducible Shareable Maintainable Extensible
  22. 22. Developer Sysadmin
  23. 23. Three people Developer Sysadmin
  24. 24. An Analogy Programming SysAdmin Low-level, commands Assembly non-portable and files Abstract, C* Resources portable * For small values of abstract
  25. 25. Portable Resources This:
  26. 26. Portable Resources This: Becomes:
  27. 27. Portable Resources This: Becomes:
  28. 28. Portable Resources This: Becomes:
  29. 29. Portable Resources This: Becomes:
  30. 30. Portable Resources This: Becomes:
  31. 31. Portable 23 package types Users in NetInfo, useradd, pw Support for Debian, Ubuntu, Red Hat, Solaris, OS X, Gentoo, SuSE, FreeBSD, and more
  32. 32. Debian
  33. 33. Debian Red Hat
  34. 34. Debian Red Hat
  35. 35. Package
  36. 36. Configuration should Package get modified after package installation Configuration
  37. 37. Configuration should Package get modified after package installation Service should restart Configuration when configuration changes Service
  38. 38. Idempotence...
  39. 39. Idempotence...
  40. 40. Idempotence... Describes the property of operations in mathematics and computer science which yield the same result after the operation is applied multiple times.
  41. 41. Network Effects
  42. 42. Code Puppetmasterd puppetd puppetd OS X in the puppetd cloud Linux
  43. 43. Every Client:
  44. 44. Every Client: Retrieve resource catalog from central server
  45. 45. Every Client: Retrieve resource catalog from central server Determine resource order
  46. 46. Every Client: Retrieve resource catalog from central server Determine resource order Check each resource in turn, fixing if necessary
  47. 47. Every Client: Retrieve resource catalog from central server Determine resource order Check each resource in turn, fixing if necessary Rinse and repeat, every 30 minutes
  48. 48. Every Resource:
  49. 49. Every Resource: Retrieve current state (e.g., by querying dpkg db or doing a stat)
  50. 50. Every Resource: Retrieve current state (e.g., by querying dpkg db or doing a stat) Compare to desired state
  51. 51. Every Resource: Retrieve current state (e.g., by querying dpkg db or doing a stat) Compare to desired state Fix, if necessary (or just log)
  52. 52. Image from http://flickr.com/photos/pingnews/132543603/
  53. 53. Questions? andrew@reductivelabs twitter.com/littleidea

×