Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Boxen: PuppetConf 2013

Boxen: PuppetConf 2013

Will Farrington

August 23, 2013
Tweet

More Decks by Will Farrington

Other Decks in Technology

Transcript

  1. BOXEN

    View Slide

  2. WFARR

    View Slide

  3. JBARNETTE

    View Slide

  4. !
    "

    View Slide

  5. INVENTING ON PRINCIPLE

    View Slide

  6. WHAT IN THE HELL IS MY PRINCIPLE?

    View Slide

  7. SOFTWARE IS TERRIBLE

    View Slide

  8. DEVELOPING SOFTWARE IS HARD

    View Slide

  9. INTERACTING WITH SOFTWARE IS PAINFUL

    View Slide

  10. PAINFUL SOFTWARE CREATES FRICTION

    View Slide

  11. FRICTION GETS BETWEEN PEOPLE AND PRODUCT

    View Slide

  12. SOFTWARE SHOULD FEEL EASY TO EVERYONE

    View Slide

  13. SOFTWARE SHOULD GET OUT OF THE WAY

    View Slide

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

    View Slide

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

    View Slide

  16. View Slide

  17. WE'RE GOING TO NEED MORE PORCELAIN
    TO ENABLE PEOPLE TO SHIP

    View Slide

  18. SHIPPING ISN'T JUST FOR SOFTWARE, YO

    View Slide

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

    View Slide

  20. ENABLE #

    View Slide

  21. HOW?

    View Slide

  22. WE NEED A MISSION STATEMENT

    View Slide

  23. TATFT

    View Slide

  24. T E S T
    A L L
    T H E
    F & % $ I N G
    T I M E

    View Slide

  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

    View Slide

  26. $

    View Slide

  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.”

    View Slide

  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.”

    View Slide

  29. AUTOMATE PROBLEM REPRODUCE SOLUTION

    View Slide

  30. AUTOMATING SOLUTIONS TO PROBLEMS LEADS TO
    REPRODUCIBLE SOLUTIONS

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  34. # WORK IN ENVIRONMENTS

    View Slide

  35. % &

    View Slide

  36. ' (

    View Slide

  37. )

    View Slide

  38. *

    View Slide

  39. class github::environment {
    include clojure
    include go
    include mysql
    include nodejs
    include postgresql
    include ruby
    $gems = [ 'bundler', 'rails' ]
    ruby::gem { $gems: }
    }

    View Slide

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

    View Slide

  41. class github::environment::webscale {
    include mongodb
    include nodejs
    include redis
    }

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  46. WE KNOW A THING OR TWO ABOUT
    DEVELOPMENT ENVIRONMENTS

    View Slide

  47. BUT WE ARE COMPLETELY CLUELESS WHEN
    IT COMES TO EMPOWERING PEOPLE
    OUTSIDE DEVELOPER-SPACE

    View Slide

  48. WE NEED TO UNDERSTAND DIFFERENT KINDS
    OF ENVIRONMENTS AND THEN MAKE THEM
    BETTER WITH AUTOMATION

    View Slide

  49. TELLING THEM THEY HAVE TO USE
    OUR TOOLING TO AUTOMATE AWAY
    PAIN IS A COP-OUT

    View Slide

  50. # WORK ON PROJECTS

    View Slide

  51. + github/github

    View Slide

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

    View Slide

  53. $ boxen github

    View Slide


  54. View Slide

  55. AND NOW JILL DEVELOPER CAN WORK ON GITHUB

    View Slide

  56. BUT WHAT ABOUT THOSE FOLKS IN FINANCE?

    View Slide

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

    View Slide

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

    View Slide

  59. # NEED DIFFERENT THINGS

    View Slide

  60. # DESERVE TO BE HAPPY

    View Slide

  61. # REALLY LIKE ,

    View Slide

  62. OS X 10.9 "MAVERICKS" SUPPORT

    View Slide

  63. NO MANUAL XCODE INSTALL REQUIRED

    View Slide

  64. View Slide

  65. HIERA EVERYWHERE

    View Slide

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

    View Slide

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

    View Slide

  68. HIERA FIXES THESE THINGS WITHOUT UGLY HACKS

    View Slide

  69. HIERA FIXES THESE THINGS WITHOUT FORKING MODULES

    View Slide

  70. YAML CHANGES ARE MORE APPROACHABLE THAN PUPPET

    View Slide

  71. HINTS OF LINUX SUPPORT

    View Slide

  72. REALLY SUBTLE HINTS

    View Slide

  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"

    View Slide

  74. MORE CORE MODULES WILL GET SUPPORT OVER TIME

    View Slide

  75. PUPPETMASTER SUPPORT

    View Slide

  76. I ACTUALLY WASN'T INVOLVED IN THIS

    View Slide

  77. SOMEONE TOLD ME THEY HAD DONE IT YESTERDAY

    View Slide

  78. GOOD ON YA

    View Slide

  79. I NEED TO BUY YOU A BEER

    View Slide

  80. MENUBAR APP

    View Slide

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

    View Slide

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

    View Slide

  83. BUT GOOD NEWS

    View Slide

  84. MY ROOMMATE IS A GITHUB FOR MAC DEVELOPER

    View Slide

  85. THIS THING IS FINALLY GOING TO HAPPEN

    View Slide

  86. HENSON

    View Slide

  87. LIBRARIAN-PUPPET "WORKS"

    View Slide

  88. LIBRARIAN-PUPPET "WORKS"-ISH

    View Slide

  89. YOUR SOFTWARE IS BAD
    AND YOU SHOULD FEEL BAD

    View Slide

  90. HENSON IS NOT A DEAD PROJECT

    View Slide

  91. SOME OTHER PRIORITIES NEEDED OUR ATTENTION FIRST

    View Slide

  92. CLOSING THOUGHTS

    View Slide

  93. BOXEN IS NOT PERFECT

    View Slide

  94. IT'S SOFTWARE

    View Slide

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

    View Slide

  96. IT MIGHT MAKE YOUR LIFE EASIER

    View Slide

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

    View Slide

  98. F&%$ THIS GUY

    View Slide

  99. DO IT FOR YOU

    View Slide

  100. HEeeeLLO
    BEAUTIFUL

    View Slide

  101. THANKS

    View Slide