Hacker News new | past | comments | ask | show | jobs | submit login

I think it's too much to expect staging to match the load and access patterns of your prod system.

I find staging to be very useful. In various teams I have been a part of, I have seen the following productive use cases for staging

1. Extended development environment - If you use a micro-services or serverless architecture, it becomes really useful to do end-to-end tests of your code on staging. Docker helps locally, but unless you have a $4,000 laptop, the dev experience becomes very poor.

2. User acceptance testing - Generally performed by QAs, PMs or some other businessy folks. This becomes very important for teams that serve a small number of customer who write big checks.

3. Legacy enterprise teams - Very large corporations in which software does not drive revenue directly, but high quality software drives a competitive advantage. Insurance companies are an example. These folks have a much lower tolerance for shipping software that doesn't work exactly right for customers.




> I think it's too much to expect staging to match the load and access patterns of your prod system.

For a lot of things, this makes staging useless, or worse. When production falls over, but it worked in staging, then staging gave unwarranted confidence. When you push to production without staging, you know there's danger.

That said, for changes that don't affect stability (which can sometimes be hard to tell), staging can be useful. And I don't disagree with a staging environment for your usecases.


> For a lot of things, this makes staging useless, or worse.

That depends on what Staging is used for, if its used to run e2e tests, giving a demo to PMs etc, you can use Staging. For performance testing you can setup a similar env like Prod, run your perf tests and then kill the perf env or you can scale up the staging env, dont let anyone use it except for performance and then scale it down.


dev workstations should cost at least $4000.

Like how much productivity is being wasted because their machine is slow.

$4000 workstations are cheap compared to staging.


Multiply that by the number of employees who need it ... staging is cheaper.


Multiply that by the lost hours waiting for compilation, etc and whether you have staging or not doesn’t matter.


It’s crazy sometimes how big of a difference it is. One recent example - I had to build a custom Docker image of some OSS project. Not even a huge one - only what I would call small-mid size. Just clone the repo and run the makefile, super simple. It took 35 minutes to build on my 2020 Mac Mini (Intel) and would have been probably half that if I had the most recent machine.


Why would I build on a local machine vs running the build on a server in a datacenter? Per your own arguments, server grade hardware is going to compile much faster than any local workstation.


That’s not really true, because of Amdahl’s law you need good single thread perf in addition to a reasonable amount of cores.

Often workstation class processors, like an i9 are the sweet spot, especially with ccache as only one file is being recompiled.

Servers often sacrifice single thread performance for many more cores.


Compile time might be fractionally faster, but the latency of the CI pipeline gets you.


Ah, good old "compiling" [0]. When a worker needs a $4000 machine to actually do his work then it's unavoidable. The slow machine? $2000 out to be enough™ for everyone else.

[0] https://xkcd.com/303/


when I worked for big corp, the reason we were told in engineering for getting $1,000 laptops was that it wasn't fair to accounting, HR, etc for us to have better machines. In the past people from these departments complained quite a bit.

The official reason (which was BS) was "to simplify IT's job by only having to support one model"


Who cares what is "fair"? A decision like that should be based on an elementary productivity calculation. If not the inmates have taken over the asylum.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: