DevOps Automation with Cloudformation
Achieved extremely high levels of efficiency and automation by migrating their platform to AWS and managing all infrastructure as code
Highlights
  • Migrated from multiple different cloud providers to AWS for streamlined operations
  • Established a culture of automation quality and IaaC by leveraging cloudformation and containers
  • Established CI/CD pipelines that met the needs of the team and business
95%
Infrastructure Automation
65%
Reduction Build Times
3x
More Releases
AWS Services
AWS RDS
Cloud Formation
AWS Fargate
AWS ALB
AWS CloudFront
About Customer
A company on a mission to deliver results to local governments. Software that is easy to use and even easier to buy and provides immediate value to customers instead of locking them into expensive contracts.

Executive Summary

The customer is redefining the way local governments manage their IT systems and provide services to their constituents. Their platform has been under development for years and their developers have focused on implementing new features. The team lacked DevOps practices and that work was being performed by developers on an as needed basis. Over time, automation and efficiency began to suffer as server operations began to take more resources.

Customer Challenge

Over the course of several years of development, the customer has developed a world class product but also accumulated a fair bit of technical debt around DevOps & operations of their platform. Their platform was running accross different cloud providers and infrastructure management was taking more of devleopers efforts with each release.

Releases were time consuming and brittle since the infrastructure was managed manually and CI/CD pipelines were not reliable. New environments had to be setup manually and were prone to human error.

Why the Customer Chose ThoughtSimplified

One of ThoughtSimplified's main areas of technical focus is DevOps and cloud automation. After discussing the challenges the customer faced, we were chosen to centralize all platform components on a single cloud provider and eliminate as much manual effort as possible.

ThoughtSimplified's Solution

ThoughtSimplified reviewed the current development environment with the customer's development team and stakeholders and proposed the following.

Front-end Architecture Diagram

Front-end Architecture Diagram

Back-end Architecture Diagram

Back-end Architecture Diagram

Pre-Production Environments

  • Code and CI/CD pipelines would continue to be managed in gitlab
  • Backend services would be containerized and deployed to AWS ECS with an ALB to route requests properly
  • Since the UI's were angular SPA applications, they should be deployed to cloudfront CDN
  • Databases for all lower envs should be hosted on a single RDS server
  • All infrastructure should be defined and managed as code (IaC) in repository

Production Environment

After completing and testing pre-production cloudformation templates and CI/CD pipelines, ThoughtSimplified used these scripts as a starting place for a set of production infrastructure. The main changes are summarized by the following:

  • CI/CD pipelines should be hardened for production releases
  • Backend ECS services should be deployed across multiple AZs for increased availability
  • The RDS instance should be deployed as multi-AZ for failover purposes
  • Scripts to manage releases were created to help the dev team deploy in a predictable way

Results and Benefits

After the migration to AWS the following benefits were achieved

  • Improved Infrastructure Management
    • Configuration Cloudformation templates
    • Runtime Logs, Monitoring and Alarming
  • Increased Security All access is centralized in IAM
  • Increased Development Velocity Operational tasks have been automated
  • Increased Platform Stability Manual intervention has been minimized

About the Partner

ThoughtSimplified is currently an AWS Select Consulting Partner, with a focus on DevOps and AWS Database migration.