Ask HN: Trying to collect data about the state of staging in web dev
I am currently collecting informations about how and why people do staging in the web development industry. Would you be so kind as to answer (and share!) that 2 min survey?
http://stage1.io/survey?ref=hn0
I'll be happy to discuss that in the comments too.
13 comments
[ 3.5 ms ] story [ 43.8 ms ] threadI'm looking forward to see what you want to do with this, handling staging environment in the age of cloud can be a real pain.
I'm now using dedicated servers, so staging is quite straightforward. But before that, I was in a company which had two heroku applications tied together through api, and a dedicated aws for optical processing (also tied through api).
Having two apps was mainly a memory concern with heroku dynos and the third on aws was to install custom software, so we had three applications where we would probably had a single on dedicated machines.
Anyway, the pain in that was we had to replicate the exact same relation between all staging apps, mirroring production apps (so, two heroku apps and one on dedicated server).
I can imagine that such app specialization is something we will see more and more, thus the harder task it may imply in staging env setting.
With regards to setting up a company to do this, I'm not sure. A staging environment really needs to be as close as possible to production. Perhaps docker will become enough of a standard that it'll be easy to match production apps much easier in different clouds...
I think the real added value of a successful staging platform will come from staging specific features, like making everything automated, easing feedback gathering, one-click staging/prod mirroring, etc. Docker and other isolation or virtualization technologies are most certainly a step in the good direction, but that's precisely what I'm trying to mesure with that survey and the discussion around it.
So it's going to come down to being able to reproduce the production in staging (db, web server, plugins, bandwidth, memory, storage, data and the exact version of all of these - every bit of state which might affect production), which would be an awful lot easier if you are also serving the production side, or perhaps if you have a very limited set of supported production targets. It's a tricky problem and one that's hard to solve if you don't control production.
Having set up a few staging environments, here are things Id find handy/essential, for what it's worth:
Exact duplication of production setup
Easily getting scrubbed production data into staging
Easy replication (probably with version control)
Easy deployment to production
Easy rollback (probably with multiple instances)
Feedback might be nice I guess if you had a sort of comment on this page system, could easily grow out of control though into a ticket management nightmare - many managers use email/phone for this and are hard to wean off it.
NB that if you don't have no.1 on that list, nothing else matters, and people are not going to want to use a different tool to deploy dev and production.