Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Forging Great Modules:
Standards,Tools and Patterns
Ryan Coleman
Product Owner | Puppet Labs
@ryanycoleman
Friday, August ...
puppetconf.com #puppetconf
Outline
• What’s Forge & What’s There
• Where the Forge is Going
• Module Writing Practices and...
What is the Puppet Forge?
Just the basics
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
$ puppet help module
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
The Puppet Forge Team
Professional Blacksmiths
Friday, August 23, 13
puppetconf.com #puppetconf
Ryan Coleman
Product Owner
Friday, August 23, 13
puppetconf.com #puppetconf
Melinda Campbell
User Experience Designer
Friday, August 23, 13
puppetconf.com #puppetconf
Alex Dreyer
Pieter Van De Brugen
Forge Engineering
Friday, August 23, 13
puppetconf.com #puppetconf
Hunter Haugen
Ashley Penney
Forge Module Engineering
Friday, August 23, 13
Recent Updates
Slowly but surely, we’re getting there!
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Top Ten Search Terms
Friday, August 23, 13
puppetconf.com #puppetconf
Puppet Labs Module Engineering
Friday, August 23, 13
Coming Soon
to a forge near you
Friday, August 23, 13
puppetconf.com #puppetconf
Quality Over Quantity
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
• Module Quality
Design Jam
• Friday 4:20 - 6:00
• Hunt (Mezzanine
Level)
• http://sched.co/
17...
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Tools built with the Forge API
• Geppetto IDE
• librarian-puppet
• `puppet module`
• R10K
• Mae...
Email me or talk to
me about the API!
ryan@puppetlabs.com
Friday, August 23, 13
puppetconf.com #puppetconf
Email ryan@puppetlabs.com for a Travis-driven preview
Friday, August 23, 13
puppetconf.com #puppetconf
GitHub
Flavored
Markdown on
Forge!
Friday, August 23, 13
puppetconf.com #puppetconf
Supported
Puppet Labs
Modules
Friday, August 23, 13
The Puppet Forge
Extended Family
Artisan and Apprentice Blacksmiths
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
CLI!
Ruby Code!
Functions!
Oh My!
Friday, August 23, 13
Development Tools
Friday, August 23, 13
Friday, August 23, 13
puppetconf.com #puppetconf
TextMate
w/Puppet!
Friday, August 23, 13
puppetconf.com #puppetconf
Vim
• vim-pathogen or vundle (for plugins)
• snipmate (like TextMate)
• tabular
• syntastic
• m...
Module Design Patterns
Some thoughts to guide you in the right direction
Friday, August 23, 13
puppetconf.com #puppetconf
Keep it modular
Friday, August 23, 13
An Example: PuppetDB
Friday, August 23, 13
Class Layout and Naming
the boring stuff
Friday, August 23, 13
puppetconf.com #puppetconf
Text
http://ruth-tay.deviantart.com/art/Hydra-121089045
Friday, August 23, 13
Public vs (pseudo) Private Classes
Friday, August 23, 13
puppetconf.com #puppetconf
Private classes should be discrete
Friday, August 23, 13
puppetconf.com #puppetconf
Public classes are for
parameters,
validation and
interacting with
private classes.
Friday, Aug...
https://github.com/stdmod/puppet-modules
A community-driven effort to standardize on param names
Friday, August 23, 13
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
The Style Guide
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
puppetconf.com #puppetconf
#PuppetCamp
Friday, August 23, 13
Style Guide Update Soon!
Email suggestions/feedback to ryan@puppetlabs.com
Friday, August 23, 13
Documentation
the most important part!
Friday, August 23, 13
puppetconf.com #puppetconf
Answer these questions
• What technology does your module
manage?
• What does it intend to do?
...
http://docs.puppetlabs.com/puppet/3/reference/
modules_documentation.html
Friday, August 23, 13
Module Testing
become a mad scientist!
Friday, August 23, 13
puppetconf.com #puppetconf
http://www.dsrsd.com/img/img_wwrw/Sewer_Web.png
Smoke Testing
Friday, August 23, 13
puppetconf.com #puppetconf
puppet apply ./tests/apache.pp
Friday, August 23, 13
puppetconf.com #puppetconf
http://www.pieterg.com/Media/277
Unit Testing
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
Friday, August 23, 13
puppetconf.com #puppetconf
http://robots.thoughtbot.com/post/33771089985/rspec-integration-tests-with-capybara
Integration...
puppetconf.com #puppetconf
Friday, August 23, 13
Versioning & Releasing
Friday, August 23, 13
puppetconf.com #puppetconf
Semantic Versioning
• Based on Major.Minor.Patch scheme
• X.0.0 Major version for breaking chan...
Data In-Modules
Overview & Call To Action
Friday, August 23, 13
puppetconf.com #puppetconf
Params.pp Meet
Hiera Data
./data/operatingsystem/
Amazon.yaml
Friday, August 23, 13
puppetconf.com #puppetconf
Why put Hiera in modules?
• Eliminate the params.pp pattern
• Allow for swappable data sets
• I...
http://links.puppetlabs.com/bgtm
Friday, August 23, 13
Friday, August 23, 13
puppetconf.com #puppetconf
Network Too!
Friday, August 23, 13
puppetconf.com #puppetconf
• forge.puppetlabs.com/puppetlabs/gce_compute
• certname == GCE project ID
•
Friday, August 23,...
Thank You
Ryan Coleman
Product Owner | Puppet Labs
@ryanycoleman
Collaborate. Automate. Ship.
Friday, August 23, 13
puppetconf.com #puppetconf
Don’t Forget...
• Beginners Guide to Writing Modules!
• links.puppetlabs.com/bgtm
• Design Jam ...
Prochain SlideShare
Chargement dans…5
×

Forging Great Modules: Standards, Tools and Patterns - PuppetConf 2013

4 701 vues

Publié le

"Forging Great Modules: Standards, Tools and Patterns" by Ryan Coleman, Product Owner, Puppet Labs.

Presentation Overview: Your entire datacenter doesn't need to be lovingly hand-crafted Puppet manifests. Focus your time and energy on the specific, business enabling challenges. Puppet Labs runs the Puppet Forge, a community-driven collection of modules that let you do anything from build an entire OpenStack PaaS to provide you with an awesome new resource type. Come learn what the Forge is all about, where it's headed and how to build the next great module that will live amongst the 1300+ contributed by your peers.

Ryan will cover the following and a little more.
- What the Puppet Forge is and what you'll find there.
- Module Design Patterns (e.g., parameter naming & puppet-lint)
- Module Testing Frameworks and Practical Examples (e.g., rspec-puppet)
- Iterative Development Tools and Practices
- Forge Publishing Workflows (e.g., versioning & github)

Speaker Bio: Ryan is a product owner at Puppet Labs, responsible for the Puppet Forge. He used Puppet at Penn State to keep up with demands in Penn State's central infrastructure teams before joining Puppet Labs as a professional services engineer. He has tackled building services like Shibboleth, MIT Kerberos, Samba and Zimbra across distributed environments on top of IBM's GPFS file system and would love to chat with you about solving problems with Puppet.

Publié dans : Technologie
  • DOWNLOAD FULL BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Forging Great Modules: Standards, Tools and Patterns - PuppetConf 2013

  1. 1. Forging Great Modules: Standards,Tools and Patterns Ryan Coleman Product Owner | Puppet Labs @ryanycoleman Friday, August 23, 13
  2. 2. puppetconf.com #puppetconf Outline • What’s Forge & What’s There • Where the Forge is Going • Module Writing Practices and Tips Friday, August 23, 13
  3. 3. What is the Puppet Forge? Just the basics Friday, August 23, 13
  4. 4. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  5. 5. puppetconf.com #puppetconf #PuppetCamp $ puppet help module Friday, August 23, 13
  6. 6. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  7. 7. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  8. 8. puppetconf.com #puppetconf Friday, August 23, 13
  9. 9. The Puppet Forge Team Professional Blacksmiths Friday, August 23, 13
  10. 10. puppetconf.com #puppetconf Ryan Coleman Product Owner Friday, August 23, 13
  11. 11. puppetconf.com #puppetconf Melinda Campbell User Experience Designer Friday, August 23, 13
  12. 12. puppetconf.com #puppetconf Alex Dreyer Pieter Van De Brugen Forge Engineering Friday, August 23, 13
  13. 13. puppetconf.com #puppetconf Hunter Haugen Ashley Penney Forge Module Engineering Friday, August 23, 13
  14. 14. Recent Updates Slowly but surely, we’re getting there! Friday, August 23, 13
  15. 15. puppetconf.com #puppetconf Friday, August 23, 13
  16. 16. puppetconf.com #puppetconf Friday, August 23, 13
  17. 17. puppetconf.com #puppetconf Friday, August 23, 13
  18. 18. puppetconf.com #puppetconf Friday, August 23, 13
  19. 19. puppetconf.com #puppetconf Top Ten Search Terms Friday, August 23, 13
  20. 20. puppetconf.com #puppetconf Puppet Labs Module Engineering Friday, August 23, 13
  21. 21. Coming Soon to a forge near you Friday, August 23, 13
  22. 22. puppetconf.com #puppetconf Quality Over Quantity Friday, August 23, 13
  23. 23. puppetconf.com #puppetconf Friday, August 23, 13
  24. 24. puppetconf.com #puppetconf • Module Quality Design Jam • Friday 4:20 - 6:00 • Hunt (Mezzanine Level) • http://sched.co/ 17fAJn7 Friday, August 23, 13
  25. 25. puppetconf.com #puppetconf Friday, August 23, 13
  26. 26. puppetconf.com #puppetconf Tools built with the Forge API • Geppetto IDE • librarian-puppet • `puppet module` • R10K • MaestroDev Blacksmith Friday, August 23, 13
  27. 27. Email me or talk to me about the API! ryan@puppetlabs.com Friday, August 23, 13
  28. 28. puppetconf.com #puppetconf Email ryan@puppetlabs.com for a Travis-driven preview Friday, August 23, 13
  29. 29. puppetconf.com #puppetconf GitHub Flavored Markdown on Forge! Friday, August 23, 13
  30. 30. puppetconf.com #puppetconf Supported Puppet Labs Modules Friday, August 23, 13
  31. 31. The Puppet Forge Extended Family Artisan and Apprentice Blacksmiths Friday, August 23, 13
  32. 32. puppetconf.com #puppetconf Friday, August 23, 13
  33. 33. puppetconf.com #puppetconf Friday, August 23, 13
  34. 34. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  35. 35. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  36. 36. puppetconf.com #puppetconf Friday, August 23, 13
  37. 37. puppetconf.com #puppetconf Friday, August 23, 13
  38. 38. puppetconf.com #puppetconf Friday, August 23, 13
  39. 39. puppetconf.com #puppetconf Friday, August 23, 13
  40. 40. puppetconf.com #puppetconf Friday, August 23, 13
  41. 41. puppetconf.com #puppetconf Friday, August 23, 13
  42. 42. puppetconf.com #puppetconf CLI! Ruby Code! Functions! Oh My! Friday, August 23, 13
  43. 43. Development Tools Friday, August 23, 13
  44. 44. Friday, August 23, 13
  45. 45. puppetconf.com #puppetconf TextMate w/Puppet! Friday, August 23, 13
  46. 46. puppetconf.com #puppetconf Vim • vim-pathogen or vundle (for plugins) • snipmate (like TextMate) • tabular • syntastic • mv-vim-puppet Friday, August 23, 13
  47. 47. Module Design Patterns Some thoughts to guide you in the right direction Friday, August 23, 13
  48. 48. puppetconf.com #puppetconf Keep it modular Friday, August 23, 13
  49. 49. An Example: PuppetDB Friday, August 23, 13
  50. 50. Class Layout and Naming the boring stuff Friday, August 23, 13
  51. 51. puppetconf.com #puppetconf Text http://ruth-tay.deviantart.com/art/Hydra-121089045 Friday, August 23, 13
  52. 52. Public vs (pseudo) Private Classes Friday, August 23, 13
  53. 53. puppetconf.com #puppetconf Private classes should be discrete Friday, August 23, 13
  54. 54. puppetconf.com #puppetconf Public classes are for parameters, validation and interacting with private classes. Friday, August 23, 13
  55. 55. https://github.com/stdmod/puppet-modules A community-driven effort to standardize on param names Friday, August 23, 13
  56. 56. Friday, August 23, 13
  57. 57. puppetconf.com #puppetconf #PuppetCamp The Style Guide Friday, August 23, 13
  58. 58. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  59. 59. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  60. 60. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  61. 61. puppetconf.com #puppetconf #PuppetCamp Friday, August 23, 13
  62. 62. Style Guide Update Soon! Email suggestions/feedback to ryan@puppetlabs.com Friday, August 23, 13
  63. 63. Documentation the most important part! Friday, August 23, 13
  64. 64. puppetconf.com #puppetconf Answer these questions • What technology does your module manage? • What does it intend to do? • How does it do it? (impact on the system) • How should one use it? Friday, August 23, 13
  65. 65. http://docs.puppetlabs.com/puppet/3/reference/ modules_documentation.html Friday, August 23, 13
  66. 66. Module Testing become a mad scientist! Friday, August 23, 13
  67. 67. puppetconf.com #puppetconf http://www.dsrsd.com/img/img_wwrw/Sewer_Web.png Smoke Testing Friday, August 23, 13
  68. 68. puppetconf.com #puppetconf puppet apply ./tests/apache.pp Friday, August 23, 13
  69. 69. puppetconf.com #puppetconf http://www.pieterg.com/Media/277 Unit Testing Friday, August 23, 13
  70. 70. puppetconf.com #puppetconf Friday, August 23, 13
  71. 71. puppetconf.com #puppetconf Friday, August 23, 13
  72. 72. puppetconf.com #puppetconf http://robots.thoughtbot.com/post/33771089985/rspec-integration-tests-with-capybara Integration Testing Friday, August 23, 13
  73. 73. puppetconf.com #puppetconf Friday, August 23, 13
  74. 74. Versioning & Releasing Friday, August 23, 13
  75. 75. puppetconf.com #puppetconf Semantic Versioning • Based on Major.Minor.Patch scheme • X.0.0 Major version for breaking change • 0.X.0 Minor version for new non- breaking functionality • 0.0.X Patch version for backwards compatible bug fixes Friday, August 23, 13
  76. 76. Data In-Modules Overview & Call To Action Friday, August 23, 13
  77. 77. puppetconf.com #puppetconf Params.pp Meet Hiera Data ./data/operatingsystem/ Amazon.yaml Friday, August 23, 13
  78. 78. puppetconf.com #puppetconf Why put Hiera in modules? • Eliminate the params.pp pattern • Allow for swappable data sets • Introspect data in ruby code • ??? <--- we need your help Friday, August 23, 13
  79. 79. http://links.puppetlabs.com/bgtm Friday, August 23, 13
  80. 80. Friday, August 23, 13
  81. 81. puppetconf.com #puppetconf Network Too! Friday, August 23, 13
  82. 82. puppetconf.com #puppetconf • forge.puppetlabs.com/puppetlabs/gce_compute • certname == GCE project ID • Friday, August 23, 13
  83. 83. Thank You Ryan Coleman Product Owner | Puppet Labs @ryanycoleman Collaborate. Automate. Ship. Friday, August 23, 13
  84. 84. puppetconf.com #puppetconf Don’t Forget... • Beginners Guide to Writing Modules! • links.puppetlabs.com/bgtm • Design Jam on Module Quality • http://sched.co/16C7ET3 • Spend your GCE Credit with our Module! • http://forge.puppetlabs.com/puppetlabs/gce_compute • forge.puppetlabs.com Ryan Coleman Product Owner | Puppet Forge @ryanycoleman ryan@puppetlabs.com Friday, August 23, 13

×