Skip to content

GSS Release Mop

Preparation and Rollout Steps:

  1. Refresh the latest package with all features in stage, and verify all release features
  2. Create a release change on ServiceSNOW(Generally, the time of GSS application change is 7 pm PST)
  3. Merge all codes from staging to master branch
  4. Code deployment and verification
  5. Add a release note on GSS releaseNote page and github release page**
  6. 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

  1. 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/***)

  1. download package from github
  2. upload package to S3 bucket: gss-cisco-dist-bucket
  3. 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:
release_mop_1.png release_mop_2.png backend jenkins file:

release_mop_3.png

release_mop_4.png

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:

release_mop_5.png

b) Frontend codePipeline flow:

release_mop_6.png

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)

  1. primary db copy by RDS Event subscription: gss-rds-copy in us-east-1
  2. secondary db sync by RDS Event subscription: replica-restore-req in us-east-2[lambda: chp-rds-replica-restore]
  3. trigger CodeBuild(replicaLauncher-vl6qTES98bGr) by lambda: gss-rds-replica-restore-finished
  4. 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