CICD Design for Atlassian Suites in AWS


I have been working on a project of migrating Atlassian suites (Confluence/Jira/…) to AWS. This is not a simple lift and shift migration. We actually redesigned everything from ground up. Here is the CICD that I designed. The source codes are stored in on-premise BitBucket, the build tools is AWS Dev Tools (mainly CodeBuild).

Development Phase (DEV)

  1. Raise a Jira ticket for a bug-fixing or new feature task, and create a branch from master for this ticket. (e.g feature/jira-1234-stack-building-pipeline)
  2. Commit your changes to the above branch when you are ready to test your codes. Then release your codes to DEV deploy bucket from your laptop.
  3. Raise a PR (Pull Request) for peer review your work once you are happy with your codes. Your branch will be merged into master if the PR is approved by the reviewers. Sometimes you need to fix issues in your codes that are detected by the reviewers before it can be merged.

Integration Test Phase (DEV)

Every night

  1. Data-Provider syncs the latest data from PROD environment to a S3 bucket, then Data-Refresher syncs the data from the S3 bucket to DEV environment, and updates the environment settings (e.g site name, application-links, theme color).
  2. Code-Releaser pulls the latest codes from master branch, and uploads them into DEV deploy bucket.
  3. Cold-Deployer updates all application stacks with the latest codes from the DEV deploy bucket.
  4. App-Tester tests the functions of the newly deployed applications in DEV account.

UAT and Performance Test Phase (UAT)

  1. Pass COMMIT_ID of the successful integration test to Code-Releaser in UAT account. It will release the specific commit into UAT deploy bucket.
  2. Run Cold-Deployer or Hot-Deployer to deploy the latest codes into UAT environment.
  3. Run App-Tester and Perf-Tester
  4. Invite users for UAT tests.

Go Live Phase (PROD)

  1. Pass COMMIT_ID of the successufl UAT and Performance test to Code-Releaser in PROD account. It will relesae the specific commit into PROD deploy acount.
  2. Run Cold-Deployer or Hot-Deployer to deploy the latest codes into PROD environment.
  3. Run some smoke tests.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s