0.) Prepare branch release-3.4. Create Prod build.1.) Snapshot prod server box.2.) Create new prod box with snapshot3.) Create copy of prod DB (cloudpano-STAGE)5.) Update new prod box env variables ( SQL_DB=cloudpano-STAGE GOOGLE_STREET_VIEW_PUBLISH_CLIENT_ID GOOGLE_STREET_VIEW_PUBLISH_CLIENT_SECRET GOOGLE_API_KEY) sudo nano /etc/environment set -a source /etc/environment set +a pm2 reload all --update-env6.) Add new prod box IP to Whitelist IP of the prod SQL Server (Azure)7.) edit hosts file such that staging.cloudpano.com points to new prod box.8.) git checkout release-3.4 on new prod box9.) Run knex migrate:latest and knex seed:run --specific=add_gsv_general_feature.js on new prod box, with env variables pointed to cloudpano-STAGE database which mimics prod10.) Quick user integration tests on staging.cloudpano.com11.) Update new prod box env variables ( SQL_DB=cloudpano)12.) Run knex migrate:latest on new prod box, with env variables pointed to prod DB. **risk area: ensure pm2 in-memory env variables dont remain pointed at stage, even after pm2 restart.13.) Make one test tour and observe.14.) IP Swap. We are live.15.) Keep release-3.3.3. box running, in case we have to emergency swap back in next 24 hours.
Written by Clayton Rothschild
Updated over 2 years ago