A shortage of skilled talent, a recent move to the cloud, and looking to mitigate human error, are all valid and common reasons why companies in every industry are inclined to start writing infrastructure as code (IaC) with AWS.

Nowadays, cloud service providers like Amazon Web Services and Microsoft Azure make it possible and increasingly easy to spin up a virtual server in a matter of minutes. The difficult part becomes spinning up a server that is interconnected with the correctly managed services and configurations needed to perform in stride with your current infrastructure.

The Evolution of IaC Deployments

First applications were manually deployed to their hosting environments, then network engineers began to automate that process through fragile scripts. People started modifying these scripts to adapt to new requirements, but it was difficult and time-consuming. These modifications quickly became inconsistent and unreliable due to evolving cloud environments and new technology causing misconfigurations, inoperable dependencies, or a dozen other unaccounted for outcomes.

The popularity of DevOps has since introduced IaC, a single file that serves as the source of truth for spinning up infrastructure requirements perfectly provisioned for code deployments. Creating a technically sound, easily manageable, and repeatable process for modern code deployments.

Reducing Time to Market by 88%: IaC on AWS Use Case

IaC is a process that describes and provisions all the infrastructure resources in a cloud environment using a simple text file. Used to model and provision all the resources needed for your applications across all regions and accounts.

For instance, it’s one thing to spin up an EC2 instance. It’s another thing to do it correctly and effectively with the complex smorgasbord of services these providers offer. Getting them all interconnected and working properly can require you to navigate an unfamiliar landscape and be quite cumbersome if you’re not versed in cloud services, offerings, and capabilities.

When we first started working with a client in the employee engagement space on their SaaS product, in traditional start-up fashion every employee was moving a mile-a-minute and responsible for a portfolio of tasks. Our DevOps-as-a-Service partnership allowed us to set up Continuous Integration and Continuous Delivery (CI/CD) pipelines as well as start writing IaC to deploy code and launch additional infrastructure services quickly, effortlessly, and accurately.

Allowing their development team to instantly code on properly provisioned VPCs and provide their clients with immediate compute power to handle growing workloads.

Achieving Tangible Outcomes

IaC and CI/CD opened the option to pursue what we call “single-as-multi-tenant” systems. A service that is multi-tenant from our client’s perspective but rolled out as isolated single tenant systems for each of their customers in compliance with their security and privacy policies.

Single tenant applications can sometimes be known for their cumbersome maintenance, be more costly to host than multi-tenant systems, and not always maximize their infrastructure resource allocation – three key pain points that cloud computing solves natively.

The automated deployment (CI/CD) pipelines and auto-deploying infrastructure (IaC) we created for our SaaS client allow us the ability to spin up, correctly size, and provision new environments without excessive workloads and extended timeframes. While safeguarding data and privileged employee information, at the same time making the entire environment less vulnerable and highly available.

Our Strategy to Scale

The client’s legacy infrastructure was hosted with a cloud service that only provided virtual machines (VM), and no additional services to help optimize or right-size configurations. We knew immediately that by hosting with AWS we would be able to leverage AWS features and services to configure equivalent VPCs and run these same workloads cheaper, faster, and more securely.

Being AWS Advanced Consulting Partners, our migration process to AWS Cloud adheres to AWS security best practices and its Well-Architected Review Framework. Following the high standards for operational excellence, security, reliability, performance efficiency, and cost optimization enabled us to create auto scaling groups and add horizontal scalability to achieve significant performance gains.

IaC & AWS Resource Provisioning

  • Using AWS CloudFormation, we wrote a simple text file to serve as the single source of truth for our clients’ cloud environment, using code to automate the process of setting up and configuring a VM or container.
  • This resulted in having a fast and repeatable method for replicating the process when our client scales and on-boards new accounts. This also became very beneficial when large clients required customization and additional deployments, which were previously being handled manually. Turning a tedious and expensive on-boarding process into something palatable and risk averse.
  • Next, we developed tools and delivered proof of concepts (PoC) to be used for automated deployments with features that were carefully thought-out and evaluated.
  • We also leveraged Terraform to handle the deployment of multiple single-tenant applications with infrastructure written as code. This ensured quick rollouts of additional environments, while establishing a protocol used for Beta and QA for each tenant in a consistent manner.

Third Party Services Used

Conclusion

We migrated our client and their SaaS product into an auto-scalable, multi-server cloud infrastructure that ensured consistent application performance. While delivering a better user experience for their customers with zero downtime.

Implementing Infrastructure as Code increased the standardization of rollouts, reduced client-side risk, and increased developer productivity to fully reap the benefits of a DevOps culture. We optimized our client’s wallet along with their infrastructure, to reduce their overall total cost of ownership and free up monetary and human capital.

The strength of Amazon’s IaC offering is that it has such tight integration with all the other AWS services, that almost anything that can be done with scripts using CloudFormation. Our expertise in combining a powerful catalog of AWS cloud tools and services enables us to build templates for our customers for them to easily experiment with while inheriting the best infrastructure practices.

All set to utilize IaC on AWS to scale your business?