GSS Release Mop ¶
Preparation and Rollout Steps: ¶
- Refresh the latest package with all features in stage, and verify all release features
- Create a release change on ServiceSNOW(Generally, the time of GSS application change is 7 pm PST)
- Merge all codes from staging to master branch
- Code deployment and verification
- Add a release note on GSS releaseNote page and github release page**
- Close this release change
ServiceNow Change ¶
We need to create a release change on servicenow 3~5 days before the rollout.
servicenow change link: https://ciscowebex.servicenowservices.com/ (search: "change")
Package Preparation ¶
frontend repo: https://sqbu-github.cisco.com/Monitoring/global-service-status-webui-vuejs
backend repo: https://sqbu-github.cisco.com/Monitoring/global-service-status-service
- merge all codes from staging to master branch
Code Deployment ¶
frontend jenkins deployment job: https://engci-jenkins-gpk.cisco.com/jenkins/job/team_mas/view/GSS/job/global-service-status-webui-vuejs/
backend jenkins deployment job: https://engci-jenkins-gpk.cisco.com/jenkins/job/team_mas/view/GSS/job/global-service-status-service/
- When merged codes from staging to master branch, it will auto trigger jenkins master pipeline
- Jenkins master pipeline will deploy code to stage environment first when someone approves the deployment of stage environment, and we can run tests on stage.
- Jenkins master pipeline will deploy code to prod environment when someone approves the deployment of prod environment.
Note: Jenkins job will trigger the deployment process according to Jenkins file.
Deployment steps of jenkins file: (linux deployment machine: 10.225.36.47 wbxbuilds/***)
- download package from github
- upload package to S3 bucket: gss-cisco-dist-bucket
- trigger AWS CodePipeline for the corresponding environment(AWS CodePipeline will deploy package to the corresponding EC2 instance by deploying the Beanstalk environment)
frontend jenkins file:
backend jenkins file:
Release Note ¶
Refer to: How to rollout the release?
AWS Job ¶
CodePipeline ¶
backend:
gss-microservice-prod-pipeline-13UWZ1FII3R31-microserviceDeployPipeline-12WU3NL23CD7M
gss-microservice-stage-pipeline-6MU9J4Y79NPY-microserviceDeployPipeline-P10I3PUK8V1P
gss-microservice-dev-pipeline-PFUPL6H3DPP8-microserviceDeployPipeline-1NPYSWPVX114U
frontend:
gss-web-prod-pipeline-1EJP8XZY430TG-webDeployPipeline-1MZV5462QXK7C
gss-web-stage-pipeline-CM5GPORJ9Z12-webDeployPipeline-1LY0CNYSMCYM0
gss-web-dev-pipeline-74MWR8F4DN4G-webDeployPipeline-OKU8O3XT94HJ
a) Backend codePipeline flow:
b) Frontend codePipeline flow:
BeanStalk Environment ¶
prod: gss-micr-1S6AI137R0XHV-prod
stage: gss-micr-M1YGZDOXN9K7-stage
dev: gss-micr-1O1MVRK0ZZ3BV-dev
EC2 instances ¶
(check in BeanStalk Environment|Health)
GSS failover in route53 ¶
Refer to GSS failover in route53
Daily Sync for Backup(already disable) ¶
- primary db copy by RDS Event subscription: gss-rds-copy in us-east-1
- secondary db sync by RDS Event subscription: replica-restore-req in us-east-2[lambda: chp-rds-replica-restore]
- trigger CodeBuild(replicaLauncher-vl6qTES98bGr) by lambda: gss-rds-replica-restore-finished
- above CodeBuild will sync package from s3://ha-gss-cisco-dist-bucket/microservice/prod/gss-service.zip to s3://ha-gss-cisco-dist-bucket/microservice/preprod/gss-service.zip t, and trigger CodePipeline: gss-service-preprod-pipeline-5KVC14570TWO-microserviceDeployPipeline-AT05HMSP9E3Y



