Growing Pains: Avoiding Module Hell
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Growing Pains: Avoiding Module Hell

on

  • 3,955 views

As the Puppet community grows by leaps and bounds we find ourselves having many of the same problems other software development communities have. Whether its libraries in C, JARs in Java, or gems in ...

As the Puppet community grows by leaps and bounds we find ourselves having many of the same problems other software development communities have. Whether its libraries in C, JARs in Java, or gems in Ruby the basic unit of software can be a huge source of problems. With the proliferation of modules on the forge, Github, or internally grow we face the same problems. How many times have you gone to pull in a module only to find it requires a conflicting sudo module? How many Apache modules are there and why are they all different? Where did that class go, the version only changed by 0.0.1? As a community we should address these challenges early or face our own module hell.

Chad Metcalf
Infrastructure Engineer, WibiData
Chad Metcalf leads the Infrastructure Engineering team at WibiData. His team is charged with developing the infrastructure, tools and automation that help drive a company building Big Data Applications. Previously he lead the Infrastructure Operations team at Cloudera building large Hadoop clusters and occasionally pretending to be a network engineer. When not pretending to be someone who understands networking he enjoys living in San Francisco, taking his wife out for dinner, and playing with his 75 pound pit-mix, River.

Statistics

Views

Total Views
3,955
Views on SlideShare
2,118
Embed Views
1,837

Actions

Likes
2
Downloads
17
Comments
0

5 Embeds 1,837

http://puppetlabs.com 1831
http://plus.url.google.com 3
http://analyst.test.ciradar.com 1
http://translate.googleusercontent.com 1
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Growing Pains: Avoiding Module Hell Presentation Transcript

  • 1. Growing Pains: Avoiding Module Hell Chad Metcalf @metcalfc Saturday, August 24, 13
  • 2. Saturday, August 24, 13
  • 3. Saturday, August 24, 13
  • 4. Saturday, August 24, 13
  • 5. As do many stories, it all begins with ... Saturday, August 24, 13
  • 6. $ sudo Saturday, August 24, 13
  • 7. Saturday, August 24, 13
  • 8. Saturday, August 24, 13
  • 9. sudo::conf { 'web': source => 'puppet:///files/etc/sudoers.d/web', } sudo::conf { 'admins': priority => 10, content => "%admins ALL=(ALL) NOPASSWD: ALLn", } sudo::conf { 'joe': priority => 60, source => 'puppet:///files/etc/sudoers.d/users/joed', } Saturday, August 24, 13
  • 10. sudo::rule { "extra_rule": ensure => present, who => 'bob', commands => "/usr/sbin/systemctl", nopass => false, comment => "what ever you like", } Saturday, August 24, 13
  • 11. Saturday, August 24, 13
  • 12. Infrastructure as Code Module as an API Source Code Management Verification andValidation Release Management Saturday, August 24, 13
  • 13. Saturday, August 24, 13
  • 14. Saturday, August 24, 13
  • 15. Saturday, August 24, 13
  • 16. Saturday, August 24, 13
  • 17. Saturday, August 24, 13
  • 18. Saturday, August 24, 13
  • 19. Saturday, August 24, 13
  • 20. Saturday, August 24, 13
  • 21. Saturday, August 24, 13
  • 22. Saturday, August 24, 13
  • 23. Saturday, August 24, 13
  • 24. semver.org Saturday, August 24, 13
  • 25. MAJOR.MINOR.PATC H Saturday, August 24, 13
  • 26. MAJOR version when you make incompatible API changes 1.x.x Saturday, August 24, 13
  • 27. MINOR version when you add functionality in a backwards- compatible manner x.0.x Saturday, August 24, 13
  • 28. PATCH version when you make backwards-compatible bug fixes x.x.0 Saturday, August 24, 13
  • 29. Its OK to go: 1.0. 0 Saturday, August 24, 13
  • 30. Saturday, August 24, 13
  • 31. Easy to learn Easy to use Hard to misuse Easy to Saturday, August 24, 13
  • 32. Gather requirements Use cases Don’t over specify Private as possible Saturday, August 24, 13
  • 33. Saturday, August 24, 13
  • 34. Saturday, August 24, 13
  • 35. Saturday, August 24, 13
  • 36. Saturday, August 24, 13
  • 37. Nifty Nifty::Firewall Nifty::Monitoring Nifty::Supervisor iptables Icinga Monit Firewall::Nifty Monitoring::Nifty Supervisor::Nifty Saturday, August 24, 13
  • 38. Nifty Nifty::Firewall Nifty::Monitoring Nifty::Supervisor pf Sensu Supervisord Firewall::Nifty Monitoring::Nifty Supervisor::Nifty Saturday, August 24, 13
  • 39. Saturday, August 24, 13
  • 40. Don’t Specify ALL THE THINGS!!! Saturday, August 24, 13
  • 41. define apache::vhost ( $server_admin $server_name = '', $docroot = '', $docroot_create = false, $docroot_owner = 'root', $docroot_group = 'root', $port = '80', $ssl = false, $template = 'apache/virtualhost/vho $priority = '50', $serveraliases = '', $env_variables = '', $passenger = false, $passenger_high_performance = true, $passenger_max_pool_size = 12, $passenger_pool_idle_time = 1200, $passenger_max_requests = 0, $passenger_stat_throttle_rate = 30, $passenger_rack_auto_detect = true, $passenger_rails_auto_detect = false, $passenger_rails_env = '', Saturday, August 24, 13
  • 42. <property> <name>mapred.map.output.compression.codec</name> <value>org.apache.hadoop.io.compress.SnappyCodec</valu </property> <property> <name>mapred.compress.map.output</name> <value>true</value> </property> <property> <name>io.sort.factor</name> <value>64</value> </property> <property> <name>io.sort.record.percent</name> <value>0.05</value> </property> <property> <name>io.sort.spill.percent</name> <value>0.8</value> </property> <property> <name>mapred.reduce.parallel.copies</name> Saturday, August 24, 13
  • 43. "foobar-cluster": { "mapred-options": [ { "name": "mapred.map.output.compression.codec", "value": "org.apache.hadoop.io.compress.SnappyCode }, { "name": "mapred.compress.map.output", "value": "true" }, { "name": "io.sort.factor", "value": "64" }, { "name": "io.sort.record.percent", "value": "0.05" }, { "name": "mapred.map.tasks.speculative.execution", { "name": "mapred.reduce.tasks.speculative.execution Saturday, August 24, 13
  • 44. Saturday, August 24, 13