Managing different environments
With most production-level applications, teams maintain multiple environments for different purposes. A QA
environment may exist for the QA team to run automated tests, a staging
environment may exist for the DevOps team to tests their infrastructure changes, and the production
environment exists to serve live traffic. Very often, building and maintaining these different environments can be a full-time job.
With serverless systems, I've found that maintaining different environments can be much more straightforward. Some of this may come from the fact that, by their nature, serverless applications are inherently smaller. Writing a monolithic application in a serverless architecture isn't wise - or even natural. How best, then, can we manage and maintain different environments for serverless systems?
For this, turning to tenant III of the 12-Factor App Methodology helps. This tenant can be found at https://12factor.net/config and states:
Store config in the environment...