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

3 Infrastructure + workflow lessons from an early stage startup

3 Infrastructure + workflow lessons from an early stage startup

Russell Smith

April 08, 2014
Tweet

More Decks by Russell Smith

Other Decks in Programming

Transcript

  1. rainforest @rainforestqa
    Rainforest QA Lunch talk:!
    3 Infrastructure + workflow
    lessons learned at an
    early-stage startup

    View Slide

  2. @rainforestqa
    rainforest
    Rainforest
    Human powered QA SaaS
    Designed for ‘Continuous QA’
    Built for PMs and Developers

    View Slide

  3. @rainforestqa
    rainforest
    Us
    Team of 3 in SoMa
    All developers
    YC S12

    View Slide

  4. @rainforestqa
    rainforest
    3 Infrastructure + workflow
    lessons learned

    View Slide

  5. @rainforestqa
    rainforest
    #1: Mongo isn’t right for!
    early-stage SaaS

    View Slide

  6. @rainforestqa
    rainforest
    (Aside: we Mongo)

    View Slide

  7. @rainforestqa
    rainforest
    Why?

    View Slide

  8. @rainforestqa
    rainforest
    Transactions

    View Slide

  9. @rainforestqa
    rainforest
    Transactions -> Less junk

    View Slide

  10. @rainforestqa
    rainforest
    Migrations

    View Slide

  11. @rainforestqa
    rainforest
    Adhoc queries

    View Slide

  12. @rainforestqa
    rainforest
    <3 window functions

    View Slide

  13. @rainforestqa
    rainforest

    View Slide

  14. @rainforestqa
    rainforest
    Joins

    View Slide

  15. @rainforestqa
    rainforest
    #2: QueueClassic > Resque!
    for simplicity

    View Slide

  16. @rainforestqa
    rainforest
    Why?

    View Slide

  17. @rainforestqa
    rainforest
    Less moving parts

    View Slide

  18. @rainforestqa
    rainforest
    Transactions

    View Slide

  19. @rainforestqa
    rainforest
    #3: Use your own product!
    (aka dogfooding)

    View Slide

  20. @rainforestqa
    rainforest
    Find your users’ pain!
    before they do

    View Slide

  21. View Slide

  22. @rainforestqa
    rainforest
    Goal:!
    Rainforest + Continuous Delivery

    View Slide

  23. @rainforestqa
    rainforest
    push

    View Slide

  24. @rainforestqa
    rainforest
    push -> circle

    View Slide

  25. @rainforestqa
    rainforest
    push -> circle -> rainforest

    View Slide

  26. @rainforestqa
    rainforest
    push -> circle -> rainforest ->
    prod

    View Slide

  27. @rainforestqa
    rainforest
    Rainforest tests fail = no
    deploy

    View Slide

  28. @rainforestqa
    rainforest
    Step 1: Built CLI client

    View Slide

  29. View Slide

  30. @rainforestqa
    rainforest
    Step 2: Put in build process

    View Slide

  31. @rainforestqa
    rainforest
    #1 - add gem!
    #2 - add to circle.yml

    View Slide

  32. @rainforestqa
    rainforest
    Our Extreme Dogfooding rules

    View Slide

  33. @rainforestqa
    rainforest
    #1 Make it disruptive

    View Slide

  34. @rainforestqa
    rainforest
    #2 Fix it quickly

    View Slide

  35. @rainforestqa
    rainforest
    #3 Don’t cheat

    View Slide

  36. @rainforestqa
    rainforest
    Current state:

    View Slide

  37. @rainforestqa
    rainforest
    full continuous delivery

    View Slide

  38. @rainforestqa
    rainforest
    < 20 mins to test

    View Slide

  39. @rainforestqa
    rainforest
    in 5 browsers

    View Slide

  40. @rainforestqa
    rainforest
    > 60 people

    View Slide

  41. @rainforestqa
    rainforest
    ~9.5 hours of testing in ~20
    min

    View Slide

  42. @rainforestqa
    rainforest
    we run 5-10 x per day

    View Slide

  43. @rainforestqa
    rainforest
    Conclusion
    Simpler = better
    Transactions = better
    Use your own product = better product

    View Slide

  44. rainforest @rainforestqa
    Questions?
    @rainforestqa
    @rhs

    View Slide