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

Starting Over: Designing a new server environment from scratch using lessons of old environments

Starting Over: Designing a new server environment from scratch using lessons of old environments

How we set about using new tools to create a new server environment from scratch.

90604a245b7afffa43dd7a2b35c72608?s=128

Lisa Seelye

January 20, 2016
Tweet

Transcript

  1. Starting Over Designing a new server environment from scratch using

    lessons of old environments Me: Lisa Seelye, @thedoh FreshBooks, Operations 1
  2. The Plan • Test environment • Minimize source control repositories

    • More recent versions of tools 2
  3. The Old Production What it looked like 3

  4. Ops has no place to test • It is risky

    to deploy changes • High risk deployments • Development bottleneck 4
  5. Collaboration is hard • Too many source control repositories (repos)

    • Complex workflow • Ops testing bottleneck 5
  6. Technical Debt • Overly complex code • Comes from unplanned

    organic growth • Difficult to pay down • Makes life tough 6
  7. Old versions of tools 7 • Old version is unsupported

    • Upgrading in old environment is high risk • New version has killer features
  8. Designing something better If you build it, they will come

    8
  9. Tools of the trade 9

  10. Git, for source control • Source control software. Wildly popular

    • Paired with the GitHub GUI to ease management • Used throughout FreshBooks • Supports our workflow 10
  11. Testing with Vagrant and beyond • Easy to develop and

    test locally • Larger test environment to fit all the pieces together 11
  12. The New Workflow 12

  13. Puppet • Configuration management tool. Widely adopted • Ensures our

    config is always applied • One tool amongst many of its kind • Deep history within Ops and FreshBooks using Puppet 13
  14. • Integrate them from the start • Each environment must

    have a purpose • Leverage tools to get value out of the complexity Life with our many environments 14
  15. Hiera • Abstracts environment settings from code • Manage settings

    in separate files 15
  16. Hiera Secrets • Passwords • Tokens • API credentials •

    SSL Certificates 16
  17. So how’s it going? Our report card 17

  18. Our new environment report card 18

  19. Thanks for listening! Want to come work for FreshBooks? We’re

    hiring! https://freshbooks.com/jobs 19
  20. Questions? Comments Want to come work for FreshBooks? We’re hiring!

    https://freshbooks.com/jobs 20