The software package is developed in the dev env. The dev env does not necessary reassemble the real production env. It supposes to be a simple, isolated env for dev to code and perform unit testig. That's why we need the QA env. The QA env should cover the testing cases that represent the customer's deployments.
However, a cloud env may have additional requirements.