Boxen: PuppetConf 2013

Boxen: PuppetConf 2013

Cd839cc361ffa996be0cc8259f3d7555?s=128

Will Farrington

August 23, 2013
Tweet

Transcript

  1. BOXEN

  2. WFARR

  3. JBARNETTE

  4. ! "

  5. INVENTING ON PRINCIPLE

  6. WHAT IN THE HELL IS MY PRINCIPLE?

  7. SOFTWARE IS TERRIBLE

  8. DEVELOPING SOFTWARE IS HARD

  9. INTERACTING WITH SOFTWARE IS PAINFUL

  10. PAINFUL SOFTWARE CREATES FRICTION

  11. FRICTION GETS BETWEEN PEOPLE AND PRODUCT

  12. SOFTWARE SHOULD FEEL EASY TO EVERYONE

  13. SOFTWARE SHOULD GET OUT OF THE WAY

  14. “Help people design, build, and ship software better, together.” "

  15. “Help people more easily design, build, and ship things, with

    software.”
  16. None
  17. WE'RE GOING TO NEED MORE PORCELAIN TO ENABLE PEOPLE TO

    SHIP
  18. SHIPPING ISN'T JUST FOR SOFTWARE, YO

  19. EVERYONE IN YOUR ORGANIZATION SHIPS; HOW DOES YOUR CULTURE ENCOURAGE

    THAT?
  20. ENABLE #

  21. HOW?

  22. WE NEED A MISSION STATEMENT

  23. TATFT

  24. T E S T A L L T H E

    F & % $ I N G T I M E
  25. “Whatever you do, make sure you are testing, because if

    you aren’t, all you are doing is making it harder for yourself when you revisit the code, and making it even harder for the next developer who will inevitably have to maintain what you just wrote.” - Bryan Liles
  26. $

  27. “Whatever you do, make sure you are automating, because if

    you aren’t, all you are doing is making it harder for yourself when you revisit the problem, and making it even harder for the next person who will inevitably have to reproduce your solution.”
  28. “Whatever you do, make sure you are automating, because if

    you aren’t, all you are doing is making it harder for yourself when you revisit the problem, and making it even harder for the next person who will inevitably have to reproduce your solution.”
  29. AUTOMATE PROBLEM REPRODUCE SOLUTION

  30. AUTOMATING SOLUTIONS TO PROBLEMS LEADS TO REPRODUCIBLE SOLUTIONS

  31. AUTOMATING SOLUTIONS TO PROBLEMS LEADS TO REPRODUCIBLE SOLUTIONS WHICH ARE

    EASIER THAN SOLVING PROBLEMS UNIQUELY EACH TIME
  32. AUTOMATING SOLUTIONS TO PROBLEMS LEADS TO REPRODUCIBLE SOLUTIONS WHICH ARE

    EASIER THAN SOLVING PROBLEMS UNIQUELY EACH TIME FOR EVERYONE
  33. A U T O M A T E A L

    L T H E F & % $ I N G T H I N G S
  34. # WORK IN ENVIRONMENTS

  35. % &

  36. ' (

  37. )

  38. *

  39. class github::environment { include clojure include go include mysql include

    nodejs include postgresql include ruby $gems = [ 'bundler', 'rails' ] ruby::gem { $gems: } }
  40. class github::environment::rails { include mysql include nodejs # asset pipeline

    :( include ruby $gems = [ 'bundler', 'rails' ] ruby::gem { $gems: } }
  41. class github::environment::webscale { include mongodb include nodejs include redis }

  42. class github::environment::hipsterstack { include funding::series_a # FIXME: include business_model }

  43. class github::environment::design { include photoshop # ??? }

  44. class github::environment::legal { include microsoft_word # ??? }

  45. class github::environment::hr { include hugs # ??? }

  46. WE KNOW A THING OR TWO ABOUT DEVELOPMENT ENVIRONMENTS

  47. BUT WE ARE COMPLETELY CLUELESS WHEN IT COMES TO EMPOWERING

    PEOPLE OUTSIDE DEVELOPER-SPACE
  48. WE NEED TO UNDERSTAND DIFFERENT KINDS OF ENVIRONMENTS AND THEN

    MAKE THEM BETTER WITH AUTOMATION
  49. TELLING THEM THEY HAVE TO USE OUR TOOLING TO AUTOMATE

    AWAY PAIN IS A COP-OUT
  50. # WORK ON PROJECTS

  51. + github/github

  52. class projects::github { github::project { 'github': mysql => true, redis

    => true, ruby => '2.1', } }
  53. $ boxen github

  54. <LOTS OF TECHNOLOGY HAPPENING HERE>

  55. AND NOW JILL DEVELOPER CAN WORK ON GITHUB

  56. BUT WHAT ABOUT THOSE FOLKS IN FINANCE?

  57. class projects::quarterly_taxes { # ??? }

  58. class projects::financial_audit { # ??? }

  59. # NEED DIFFERENT THINGS

  60. # DESERVE TO BE HAPPY

  61. # REALLY LIKE ,

  62. OS X 10.9 "MAVERICKS" SUPPORT

  63. NO MANUAL XCODE INSTALL REQUIRED

  64. None
  65. HIERA EVERYWHERE

  66. UPDATING MODULES TO GET A NEW VERSION OF X SUCKS

  67. TRYING TO RUN A SERVICE ON A DIFFERENT PORT SUCKS

  68. HIERA FIXES THESE THINGS WITHOUT UGLY HACKS

  69. HIERA FIXES THESE THINGS WITHOUT FORKING MODULES

  70. YAML CHANGES ARE MORE APPROACHABLE THAN PUPPET

  71. HINTS OF LINUX SUPPORT

  72. REALLY SUBTLE HINTS

  73. # grep boxen github/puppet/Puppetfile mod "nodejs", "3.2.5", :github_tarball => "boxen/puppet-nodejs"

    mod "phantomjs", "2.0.1", :github_tarball => "boxen/puppet-phantomjs" mod "repository", "2.2.0", :github_tarball => "boxen/puppet-repository"
  74. MORE CORE MODULES WILL GET SUPPORT OVER TIME

  75. PUPPETMASTER SUPPORT

  76. I ACTUALLY WASN'T INVOLVED IN THIS

  77. SOMEONE TOLD ME THEY HAD DONE IT YESTERDAY

  78. GOOD ON YA

  79. I NEED TO BUY YOU A BEER

  80. MENUBAR APP

  81. LAST YEAR I HAD A TERRIBLE PROOF-OF-CONCEPT

  82. THIS YEAR I HAVE THE SAME PROOF-OF-CONCEPT

  83. BUT GOOD NEWS

  84. MY ROOMMATE IS A GITHUB FOR MAC DEVELOPER

  85. THIS THING IS FINALLY GOING TO HAPPEN

  86. HENSON

  87. LIBRARIAN-PUPPET "WORKS"

  88. LIBRARIAN-PUPPET "WORKS"-ISH

  89. YOUR SOFTWARE IS BAD AND YOU SHOULD FEEL BAD

  90. HENSON IS NOT A DEAD PROJECT

  91. SOME OTHER PRIORITIES NEEDED OUR ATTENTION FIRST

  92. CLOSING THOUGHTS

  93. BOXEN IS NOT PERFECT

  94. IT'S SOFTWARE

  95. IT HAS MADE OUR LIVES A LOT EASIER AT GITHUB

  96. IT MIGHT MAKE YOUR LIFE EASIER

  97. DON'T USE IT BECAUSE THERE'S A BIG NAME ATTACHED

  98. F&%$ THIS GUY

  99. DO IT FOR YOU

  100. HEeeeLLO BEAUTIFUL

  101. THANKS