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. ...