Skip to main content

Infrastructure-as-Code

Home > Cloud & DevOps > Infrastructure-as-Code

Unlock the Power of Infrastructure as Code (IaC) with Terraform and DevOps Expertise

Infratructure as Code (IaC) is the process of using a programmatic approach to configuring your IT infrastructure. This can be your servers, network devices, network security devices, cloud infrastructure (e.g. Azure, AWS) and more.

Many organizations attempt IaC for a variety of reasons – there are many advantages but the transition can be difficult to get from a traditional infrastructure culture to a DevOps culture. Crossconnect brings IaC experience to help decide if an IaC and a DevOps approach is a good fit for your IT culture. If it is, Crossconnect can help you navigate this journey and avoid the pitfalls that many organizations fall into.

Terraform

There are many IaC platforms that can be used but the gold standard in the industry today is Terraform. Terraform allows for creating infrastructure configurations in a common code base which brings many advantages.

BENEFITS

Is IaC a good fit for your IT Culture?

The organizations that can take advantage of IaC are those that already have both a strong internal coding practice and a strong infrastructure practice. Organizations that have no internal coding practice will find it difficult to move into IaC without the coding background, and organizations that do not have a strong infrastructure practice will find it hard to code for infrastructure because of the lack of the infrastructure knowledge. If strong in both areas, IaC and a DevOps approach can bring advantages.

There are many advantages to IaC:

Easily duplicate environments or create clones of environments for upgrades, testing, staging, and user acceptance testing.

Reduce configuration errors: An IaC approach helps ensure that changes are intentional, makes error checking easier, and streamlines the rollback process.

Iterate best practice environments: After building the “gold” configuration of an environment it is easily re-useable and there is minimal chance of configuration errors when building on it in future iterations as the build process is no longer manual.

Documentation and configuration management: When using an IaC approach,  IaC code can use the same code repositories, approvals, change management process, and deployment pipelines as the rest of your code. As the infrastructure configuration is in a code repository, it eases the documentation of changes and automatically stores previous revisions for rollback purposes.

CASE STUDY

What kind of things can be done with IaC / Terraform?

Crossconnect has done many interesting projects with Terraform for our customers. Here is an example:

A Crossconnect customer that writes and hosts software for their clients wanted to move from their on-premises data centers to Azure. A DevOps approach for their infrastructure was desired from the start of the project. Crossconnect helped the customer to configure their first Azure environment with a best practice cloud network topology, routing, firewalling, load balancing, and VPNs all through Terraform.

Building this first topology, testing it, and migrating their applications to it was a challenge. After the first topology build, the customer was able to replicate this first environment into separate dev, stage, user acceptance, and production environments with ease. Further, they realized their goals of tracking infrastructure changes in their Github repository, streamlining change approvals, and allowing the creation of new environments in an automated manner. Their developers are now able to quickly test new branches of code in isolated environments.

The Bottom Line

Come into IaC with the right expectations

Coming into IaC with an appropriate vision and expectations greatly enhances the potential for success. A vision that typically fails with IaC and DevOps is the idea that once this model is adopted, generalist coders will perform all maintenance on it. Using an IaC or DevOps approach to infrastructure doesn’t mean that infrastructure experts such as server administrators, network and firewall engineers, etc., are no longer needed. Instead, these infrastructure experts will have to learn to work collaboratively with the developers, and vice-versa. It’s few and far between that infrastructure experts become fantastic coders, or that fantastic coders learn the ins & outs of infrastructure. The process is more of a shift of working together – basically the definition of DevOps – but not the replacement of headcount.