Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. # Staging
  2. These are recommendations. The team is free to do what they deem best.
  3.  
  4. Overarching principle:
  5. * *Staging is where you validate the known-unknowns of your systems*
  6. * Known-unknowns:
  7. * interactions between various systems and edge cases
  8. * possible to write unit tests, but difficult, especially when UIs are involved
  9. * Unknown-unknowns:
  10. * e.g. traffic patterns, traffic loads etc.
  11.  
  12. However:
  13. * expensive - manpower and money
  14. * will require investment to keep up to date
  15. * still need to generate data to test with
  16.  
  17. Terraform + Kube means we can treat staging like cattle - easily destroy and remake.
  18.  
  19. General Dev flow:
  20. Code -> Unit Test for basic cases and edge cases within an app -> test interactions between apps in Staging -> Prod
  21.  
  22. Sometimes we use Staging for scale testing. If possible we try to do this in Prod, since completely replicating Staging to Prod is tricky.
  23.  
  24. e.g. Prod testing in Pixel Serving was possible since losing a portion of traffic was deemed an acceptable trade off for speed.
  25.  
  26. Don’t expect China services to have scale problems.
  27.  
  28. Focus on:
  29. * Correctness
  30. * Reproducibility
  31. * Ease of adoption (POs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement