A large automotive manufacturing company approached us to help them with a hybrid deployment of a commercial content management system (CMS) on the AWS platform. Once deployed, the solution would provide services to a network of dealers across Canada. We worked with their in-house team to develop and implement a solution based on AWS CloudFormation and integrated it with GitLab. By combining the Continuous Integration (CI) capabilities of GitLab with the native functionality of AWS CloudFormation, we were able to create a system which allowed fast, efficient and repeatable deployments across multiple environments - including production - and AWS accounts.
For the implementation to be considered a success, we needed to create a solution which provided rigorous change control but allowed teams to move at a rapid pace. Using AWS CloudFormation Change Sets meant we were able to adjust templates and fine tune the initial deployment based on feedback all while ensuring the customer was able to adhere to strict change management requirements.
We deployed a centralized version control system based on GitLab in a Shared Services AWS account and leveraged its native CI functionality to rapidly validate templates and create Change Sets as modifications are made across a large number of templates and CloudFormation stacks.
In addition to creating a CI pipeline, we implemented Stack Policies to help lessen the likelihood of changes being made outside of CloudFormation.
AWS CloudFormation is used to deploy the entire solution stack. From templates managing access via IAM to the compute, database, and storage configuration, all aspects of the CMS are handled through CloudFormation. This ‘Infrastructure as Code’ deployment helps to manage configuration drift and maintain security ‘guard rails’ defined by the customer and its stakeholders.
Like what you read? Why not subscribe to the weekly Orbit newsletter and get content before everyone else?