Use Git Workflow to Manage Multiple AWS Environments


Managing multiple AWS environments (sandbox/dev/uat/stage/prod) is challenging, as it is hard to keep track of the current status of each environment. For example, user A deploys his feature branch into dev to test his code, then later user B deploys his hotfix branch into dev to test his code. This can cause many issues: User … Continue reading Use Git Workflow to Manage Multiple AWS Environments

Automate Atlassian Add-on Management Part Two


Continue with Part One, let me list some requirements that I would like to keep in the scope: Must Have Plugins metadata (application, version, desired_state...) is source controlled.Can query plugins information (version, license, expiry date...) from servers.Can query plugins information from Atlassian Market place.Can enable/disable plugins.Can install/uninstall plugins.Can update plugins.Can check compatibility. Should Have Can … Continue reading Automate Atlassian Add-on Management Part Two

Renew AWS credential for a long run AWS CLI process


We use aws s3 sync to synchronise a big mount of files (800,000+ objects) from on-premise to AWS S3 bucket. Due to security restrictions, the Maximum CLI/API session duration is configured for 1 hour. So it is most likely the credential will expire before the sync job is completed. There are generally two places to … Continue reading Renew AWS credential for a long run AWS CLI process

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 … Continue reading CICD Design for Atlassian Suites in AWS