Modern CI/CD system on GCP – P1

The main content of the post includes

  • Basic CI/CD workflow
  • CI/CD System architecture
  • Practice on GCP

Step 1: Prepare a basic CI/CD workflow

My basic workflow

I have 2 zones, zone for developer zone and zone for dev/staging/production zone.

  • In developer zone : any commit from developer will active CI system to run test case and report to notification center (Slack, telegram, email)
  • In dev/staging/production zone : Any merge request to dev/staging/production environment will be active CI system. Pull code -> application packaging (docker, maven, npm) -> tag packaging -> push to container registry (Nexus, Harbor, Container registry) -> deploy to Kubernetes cluster -> rollback to the recent version if have system error.

Step 2 : CI/CD system architect

Source repository : Bitbucket, Github enterprise

Container registry : Google container registry

CI tool : Google cloudBuild

CD tool : Spinnaker

Kubernetes : Google kubernetes engine

Messaging : Google cloud pub/sub

Storage : Google cloud storage

Cloud load balancing : Load balancer IP

The next post will write more details on how to implement it, thanks you.

Leave a comment