CI / CD on AWS

CI / CD on AWS

Jun 05, 2024 | Andrew Wilson

With years of experience designing deployment pipelines, M.D.G. IT can assist in creating CI/CD pipeline to the AWS Cloud that deploy applications at the click of a button.

We can build AWS CI/CD solutions at any scale. Basic pipelines deploy code from version control systems such as Gitlab, Github and Bitbucket to a single EC2 instance. More advanced solutions include zero-downtime deployments with EC2 Auto Scaling Groups, provisioning entire hosting environments using CloudFormation stacks.

Infrastructure as Code

We can develop easy-to-use CloudFormation stack templates that define your application environments as code. This allows for predictable, fast and scalable replication of an environment, whether for auto scaling in production or to build an identical clones for staging and pre-production environments.

Developers, in particular, can benefit from this standardised approach to design an environment template that can be used for multiple clients, providing a consistent development environment across multiple accounts.

Blue/Green Deployments

Traditional hosting methods can make trialing website changes costly, difficult to test with live traffic, and difficult to roll back should application issues be found. Utilising CI/CD with AWS deployment targets can simplify the process by using Blue/Green Deployments.

As opposed to upgrading an application in place and rolling back if necessary, Blue/Green deployments function by running two versions of the application side-by-side and directing a percentage of the live traffic to a new deployment for testing and analytics. Once confirmed the previous deployment can be removed to complete the upgrade.

Automated Golden Image Maintenance

While CI/CD solutions and working with AWS EC2 instances at scale allows for code to be rolled back with relative ease, it is also important to ensure that the instances themselves are versioned. We can arrange for client specific AMI images to be created at regular intervals containing the latest security patches, software upgrades etc, while maintaining the customisation that instances require, like SSH public keys, scripts and custom configurations.

You may also like: