2

If a Stg Deployment uses a different Package as Production does, can it really be called "Staging"? Isn't it at this point another "System Integration"?

The setup is the following:

  • Pileline: Dev > CI > Stg > Prod
  • Application: A MultiConfiguration Project (say C# Mvc)
  • Configurations:
    • Dev >> Dev DB
    • CI/QA >> CI DB
    • "Staging" >> Stg DB
    • Production >> Prod DB
  • Stack: AWS CloudFormation Template
    • ELB with N EC2 Hosting the
    • RDS Hosting the DB

Aspects we are interested to test:

  • IAM Security Roles
  • SecurityGroup: Even if both were created with the same template, but are different entities (and can be manually edited separately), is it really "staging"?
  • CodeDeploy: If it uses a different Revision, is it really "staging"?
  • EC2 >> RDS connectivity: If it's a different DNS, is it really "staging"?
  • New App to current DB
  • SSL certificates

UPDATE

This question is more philosophical than anything else.

In a Blue/Green deployment, you deploy to blue, and if it's good enough, then you promote it to green by swapping them.

But in a Staging/Prod deployment, the idea is that the artifact being pushed will work the same way as in production, reducing to almost 0 of any non-forseen environment issues. Kinda of pushing to "blue" and then to "green" w/o the swap.

But if the "staging" environment is a full "clone" of the environment, than your risk rises as any ephimeral discrepancy might affect your release.

Without this, the "Staging" environment becomes yet another "SI" environment, leaving you w/o a proper 'stg/prod' or 'blue/green prod' deployment strategy.

6

Rather than argue over the definition of staging, consider asking (1) what goals your staging environment needs achieve and (2) whether the approach you described meets those goals.

Random people on the Internet can't answer those questions for you; you and your organization need to decide them for yourself.

  • 1
    I came to write this exact answer and found it worded better than I was going to. Just because some blog or consultant or some other team said "You need a staging environment" means literal 0. What matters is what goals has your firm agreed to fund and how well are you meeting those goals. – corsiKa Feb 15 '17 at 0:48
  • I extended the question based on your feedback :) – percebus Feb 16 '17 at 17:25
  • Excellent answer. If you use Staging as a location for performance testing, then duplication of Production might be very important. On the other hand if you use Staging as a place to practice your rollout scripts or a place to conduct UAT, then duplication may not be as important. – Joe Strazzere Feb 16 '17 at 17:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.