Rainforest QA Lunch talk:!

3 Infrastructure + workflow
lessons learned at an
early-stage startup
rainforest

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

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

@rainforestqa
3 Infrastructure + workflow
lessons learned

rainforest

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

rainforest

@rainforestqa
(Aside: we 💖 Mongo)

rainforest

@rainforestqa
Why?

rainforest

@rainforestqa
Transactions

rainforest

@rainforestqa
Transactions -> Less junk

rainforest

@rainforestqa
Migrations

rainforest

@rainforestqa
Adhoc queries

rainforest

@rainforestqa
<3 window functions

rainforest

@rainforestqa
rainforest

@rainforestqa
Joins

rainforest

@rainforestqa
#2: QueueClassic > Resque!
for simplicity

rainforest

@rainforestqa
Why?

rainforest

@rainforestqa
Less moving parts

rainforest

@rainforestqa
Transactions

rainforest

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

rainforest

@rainforestqa
Find your users’ pain!
before they do

rainforest

@rainforestqa
Goal:!
Rainforest + Continuous Delivery

rainforest

@rainforestqa
push

rainforest

@rainforestqa
push -> circle

rainforest

@rainforestqa
push -> circle -> rainforest

rainforest

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

rainforest

@rainforestqa
Rainforest tests fail = no
deploy

rainforest

@rainforestqa
Step 1: Built CLI client

rainforest

@rainforestqa
Step 2: Put in build process

rainforest

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

rainforest

@rainforestqa
Our Extreme Dogfooding rules

rainforest

@rainforestqa
#1 Make it disruptive

rainforest

@rainforestqa
#2 Fix it quickly

rainforest

@rainforestqa
#3 Don’t cheat

rainforest

@rainforestqa
Current state:

rainforest

@rainforestqa
full continuous delivery

rainforest

@rainforestqa
< 20 mins to test

rainforest

@rainforestqa
in 5 browsers

rainforest

@rainforestqa
> 60 people

rainforest

@rainforestqa
~9.5 hours of testing in ~20
min

rainforest

@rainforestqa
we run 5-10 x per day

rainforest

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

@rainforestqa
Questions?
@rainforestqa
@rhs

rainforest

@rainforestqa
Pivotal Labs Lunch Talk; 3 Infrastructure and workflow lessons learned at an early stage startup
Pivotal Labs Lunch Talk; 3 Infrastructure and workflow lessons learned at an early stage startup
Upcoming SlideShare
Loading in …5
×

Pivotal Labs Lunch Talk; 3 Infrastructure and workflow lessons learned at an early stage startup

493 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
493
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • - Master
    - Run SF Mongo meetup
  • - No support in mongo
  • - Inconsistent data in db due to our code breaking
    - We fixed with helper scripts. Slow and sucked.
  • - No formal or standard way of doing them
    - All complex or slow if large
    - Schema design suffers as a result
  • - Non-trivial reporting queries require code
    - Great if you know what you’re after when you design your schema
    - Ours is evolving
  • - We especially love window functions in PG
  • - wanted to know how much each client costed us per week
    - this joins 4 tables, partitions by week and sorts by most expensive first
  • - Don’t exist
    - Fix by de normalizing data
    - Usually results in-consistent data without transactions
  • - No redis
  • - We sent emails and enqueued jobs before things were consistent
  • Pivotal Labs Lunch Talk; 3 Infrastructure and workflow lessons learned at an early stage startup

    1. 1. Rainforest QA Lunch talk:! 3 Infrastructure + workflow lessons learned at an early-stage startup rainforest @rainforestqa
    2. 2. Rainforest Human powered QA SaaS Designed for ‘Continuous QA’ Built for PMs and Developers rainforest @rainforestqa
    3. 3. Us Team of 3 in SoMa All developers YC S12 rainforest @rainforestqa
    4. 4. 3 Infrastructure + workflow lessons learned rainforest @rainforestqa
    5. 5. #1: Mongo isn’t right for! early-stage SaaS rainforest @rainforestqa
    6. 6. (Aside: we 💖 Mongo) rainforest @rainforestqa
    7. 7. Why? rainforest @rainforestqa
    8. 8. Transactions rainforest @rainforestqa
    9. 9. Transactions -> Less junk rainforest @rainforestqa
    10. 10. Migrations rainforest @rainforestqa
    11. 11. Adhoc queries rainforest @rainforestqa
    12. 12. <3 window functions rainforest @rainforestqa
    13. 13. rainforest @rainforestqa
    14. 14. Joins rainforest @rainforestqa
    15. 15. #2: QueueClassic > Resque! for simplicity rainforest @rainforestqa
    16. 16. Why? rainforest @rainforestqa
    17. 17. Less moving parts rainforest @rainforestqa
    18. 18. Transactions rainforest @rainforestqa
    19. 19. #3: Use your own product! (aka dogfooding) rainforest @rainforestqa
    20. 20. Find your users’ pain! before they do rainforest @rainforestqa
    21. 21. Goal:! Rainforest + Continuous Delivery rainforest @rainforestqa
    22. 22. push rainforest @rainforestqa
    23. 23. push -> circle rainforest @rainforestqa
    24. 24. push -> circle -> rainforest rainforest @rainforestqa
    25. 25. push -> circle -> rainforest -> prod rainforest @rainforestqa
    26. 26. Rainforest tests fail = no deploy rainforest @rainforestqa
    27. 27. Step 1: Built CLI client rainforest @rainforestqa
    28. 28. Step 2: Put in build process rainforest @rainforestqa
    29. 29. #1 - add gem! #2 - add to circle.yml rainforest @rainforestqa
    30. 30. Our Extreme Dogfooding rules rainforest @rainforestqa
    31. 31. #1 Make it disruptive rainforest @rainforestqa
    32. 32. #2 Fix it quickly rainforest @rainforestqa
    33. 33. #3 Don’t cheat rainforest @rainforestqa
    34. 34. Current state: rainforest @rainforestqa
    35. 35. full continuous delivery rainforest @rainforestqa
    36. 36. < 20 mins to test rainforest @rainforestqa
    37. 37. in 5 browsers rainforest @rainforestqa
    38. 38. > 60 people rainforest @rainforestqa
    39. 39. ~9.5 hours of testing in ~20 min rainforest @rainforestqa
    40. 40. we run 5-10 x per day rainforest @rainforestqa
    41. 41. Conclusion Simpler = better Transactions = better Use your own product = better product rainforest @rainforestqa
    42. 42. Questions? @rainforestqa @rhs rainforest @rainforestqa

    ×