Photo by Chris Curry on Unsplash

Factors Choosing Infrastructure as Code tool

Vaibhav Pandey
4 min readDec 29, 2022

Infrastructure as Code is a compelling infrastructure management paradigm that simplifies and standardizes infrastructure provisioning on private and public cloud infrastructure.

Here are a few factors you may want to use while making decisions on choosing a tool that fits your or your organization’s requirements:

1. Need an imperative or a declarative IAC tool?

This factor is about the flavour of choice — if you want to be specific and tell the platform how to go after resourced or keep it general and let the tool decide the most optimised way of spinning your target infrastructure.

Imperative tools need steps to be prescribed to reach the desired solution consisting of one or more elements/services/components.

On the other hand, declarative tools only provide elements/services/components to be provisioned on the target infrastructure rather than steps to achieve it.

2. Need a platform agnostic tool?

A wide variety of tools are available in the market today, and a lot of them may have a strong affinity to a particular cloud platform; platform providers provide some, and a lot of them may be open-source and works across platforms(with cross-platform we mean different types of private or public cloud platforms).

The following rules can be followed:

  • Rule: Need to be on a particular cloud platform — use platform-specific IaC tool.
  • Rule: Need to be on a multi-cloud platform — use the platform-agnostic tool.

Examples of platform-specific IaC tools:

  • Azure CLI — CLI for scripting Azure, not solely intended to do IaC. IaC is one aspect of it. Available to run from any operating system platform but only targets resource provisioning.
  • Azure PowerShell — available to run from any operating system but only targets resource provisioning.
  • Azure Resource Manager(ARM) — Azure’s native IaC technique based on JSON.
  • Azure Bicep
  • Google CLI-CLI for scripting Google Cloud Platform, not solely intended to do IaC. IaC is one aspect of it.
  • AWS CloudFormation —AWS’s native IaC technique based on JSON. IaC is a core aspect of CloudFormation.

Examples of platform-agnostic IaC tools:

  • Terraform- Terraform is one of the true platform-agnostic IaC tools, written using Hashicorp Configuration Language(HCL) syntax, and can be used to write IaC for most cloud platforms in a consistent manner, cloud-specific commands and modules can be utilized to provide desired state.
  • Pulumi — is another tool for platform-agnostic IaC tool. It goes a step further by letting developers write IaC in their language of choice rather than learning a new language.
  • Bicep — is a Microsoft Azure declarative IaC tool for azure resource deployments, documentation is available here.

3. Cost

Most of the IaC tools are free but some flavours have costs associated. For e.g. Terraform Enterprise is a paid option while Core Terraform is free for all.

It is always a good idea to have a feature comparison between — the free Open-Source version and paid enterprise-rich features.

Paid products, services or versions may offer features which are easier to adopt, and may have better support available from experts.

4. Tool support your cloud-platform

You may want to ensure that your target cloud platform is supported by the toolset of your choice, it is highly likely that the tool will be rendered ineffective if you want to use an unsupported one.

Use a tool which has a good API, command set, and community, and lets you develop and configure your cloud infrastructure with confidence.

5. Effort to learn, build and maintain

Some tools have an associated learning cycle, and efforts are required to build and later maintain IaC. This should be an important factor when choosing a tool for IaC.

A tool with considerable learning effort, and complicated concepts always result in higher efforts being incurred at different stages of the lifecycle, teams not given sufficient time will result in inefficiencies, tech debt introduction, and drift in environments.

As an example Terraform has generally a 2–3 week learning curve for an experienced programmer.

Establishing good practices, consistent patterns, and imbibing standards in day-to-day ways of working can take longer periods of time.

In summary, the following rules can be utilised to arrive at a quick decision:

  • Use the tool on which the developer has good experience and high competence.
  • Use the tool which has better community or professional support available.
  • Use the tool which offers a consistent model over private, public and hybrid cloud models.
  • Easily fits or supports in a single or multi-cloud environments.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Vaibhav Pandey
Vaibhav Pandey

Written by Vaibhav Pandey

https://vaibhavpandey.co.uk, 9x Azure Certs Masters Degree in AI 2023, PG Diploma in AI 2022, Desertation in Cancer Prediction, Builds with AI

No responses yet

Write a response