I would highly reccomend having at least one previous version running at all times, just so you can switch back instantly if there is a problem.
However, because the Container images are saved, you can roll back using this trick:
Let's say your first deployment is version 'v1' and your second is 'v2'
gcloud preview app deploy app.yaml --promote --version v1
- make some code changes
gcloud preview app deploy app.yaml --promote --version v2
- delete v1 in console for some reason or another
- oh no! v2 has a bug! users are mad!
- oh no! I deleted v1 and can’t instantly switch back to it with zero downtime!
gcloud preview app deploy app.yaml --promote --version v1 --image-url appengine.gcr.io/vm-containers.<your-project-id>.appspot.com/<your-project-id>.default.v1
- 2-4 minutes of downtime
- App starts working again at version v1