What is the definition of a staging environment when developing web applications?

前端 未结 4 481
-上瘾入骨i
-上瘾入骨i 2021-02-02 00:24

When developing a web application for others, multiple environments for testing are a good idea. However, different development teams have different definitions for the meaning

4条回答
  •  离开以前
    2021-02-02 01:00

    To me the implication in "staging" is that you're on the verge of deploying to production so you need an environment that as closely mimics the production environment as possible to minimize any problems that may crop up as a direct result of different environments. For example the development and testing environments may have certain utilities the production environment doesn't, or the production environment may have stricter permissions and authentication that could cause issues with your app.

    As such, an ideal staging environment is one that is an exact clone of the production environment (albeit without public access). If you're using virtualized servers this should be near trivial. If not, then the environment should as closely mimic the production environment as possible (the app should be deployed to the same path, permissions should be identical, configuration files should be copies of production, et cetera). To answer your questions:

    • Does the web server have to be on a separate physical machine than the database? If that is how it is in production.
    • Does the database have to be exactly identical to the production database? Exact structure, it can be filled with dummy values.
    • Can the staging environment go down for maintenance? Yes.
    • Can the staging environment be used to test out new features (ie. a beta env)? No, that's what I would use a development or testing environment for. Staging should be for features that will immediately go into production (i.e. a "release candidate" environment).

提交回复
热议问题