(no title)
justin_vanw | 7 years ago
The amount of friction you add to the development velocity has to be proportioned to the potential downsides. A system that shows doctors xray images in the ER cant go down or people might die. A site like twitter can go down and slightly improve the life of its users. It sounds like you are recommending big company super risk averse solutions at a startup, which is just silly. Besides, staging environments never work, for a long list of reasons. You should be recommending continuous integration and a focus on proper unit tests.
websitescenes|7 years ago
I can hardly see how a staging environment is "recommending big company super risk averse solutions at a startup, which is just silly". A staging environment has never slowed us down; if anything it gives us the confidence to push to master sooner.
stestagg|7 years ago
My experiences are:
1. Staging environments are typically imperfect and have issues
2. Staging environments often help with product stability despite (1.)
3. Having staging envs is common, and could be considered standard in many companies, but..
4. Staging environments are a cost-benefit trade-off and should be considered on a product-by-product case.
5. CI and Unit testing are also common approaches to increasing product stability, and should be subjected to the same cost-benefit analysis per-product (yes, even unit tests), It's not an either-or with staging environments
6. staging envs should be prod-1 but often they end up being (prod-1 + some workarounds + some cruft left over from a failed deployment + other noise) over time.
7. Running a fully prod-equivalent staging environment can be prohibitively expensive (exact replica of prod configuration including infrastructure, realistic copies of prod data at volume, etc..) so usually some compromises are made to give a best-effort simulation of prod (fewer resources, etc..).
8. 'Battle testing' in staging is not always done, it's not uncommon for staging to be largely not looked at, except for whatever automated testing/alerting is running in that environment
9. It's ok for staging environments to test multiple changes at once, the typical intent of a staging area is to identify the presence of problems before they hit prod. The debugging & isolation of what caused problems is a secondary issue.
Your experiences may differ from the above, but they still stand
[edit: formatting]
dfee|7 years ago
Ha!
whack|7 years ago
Can you go into more detail on this? I would have thought that having a staging environment where all changes get battle-tested by the wider team, before being deployed to prod, would be a good thing.
bjourne|7 years ago
Xeago|7 years ago
Hope that provides a new perspective. If the team is small, or the product is not susceptible to concurrent development you might not have this phenomenon.
unknown|7 years ago
[deleted]
cam3ham|7 years ago
[deleted]