Cloud Computing: The Main Enabler of Infrastructure as Code

The future of IT infrastructure

Shreya Sinha
Technology Hits
4 min readMay 27, 2021

--

Image by Bethany Drouin from Pixabay

Welcome to the second part of the series The future of IT Infrastructure.
In the first part, we talked about Infrastructure as code and why it is the future of IT Infrastructure.

In case you missed it, read it here: What is Infrastructure as Code?

In this story, we will explore the adoption and challenges of Infra as Code in Cloud Computing.

But before we begin, What is Cloud Computing?

Unlike its name, Cloud computing has nothing to do with Cumulus or Nimbus clouds. Cloud is the name given to data centres (a large collection of physical servers). The purpose of these servers is to provide on-demand services like storage, applications, computer resources, etc.

Cloud providers like Amazon Web Services, Google Cloud, Microsoft Azure, etc receive over a billion requests for services like IaaS (Infrastructure as a service), PaaS (Platform as a service) and SaaS (Software as a service) every day.

These companies have many data centres with millions of servers but they certainly don’t have as many servers as there are requests. The question then arises, how are they able to handle so many requests (or demands) with limited physical servers?

The Answer: Virtualization

Virtualization is a process of creating virtual environments in a resource to enable the execution of services without interfering with other activities done by the resource.

In simpler terms, it is the sharing of computer resources among various Operating systems.

Think of a computer, let’s call it Host. It has a motherboard with various hardware components like CPU, RAM and a Hard drive. For executing a process or processes, Host uses 40% of its CPU, 60% of RAM and 30% of Hard disk. This means the hardware resources are not being utilized to their maximum capacity.

If I run another computer (i.e, Operating System (OS)) using the unused hardware resources of Host, then I’d be using the existing resources of Host to their full capacity, and I don’t have to purchase a new computer with a motherboard.

You can also think of it as a guest who comes to stay with your family. The guest can use your kitchen, the bathroom, and a spare bedroom. You share resources with them.

Like you share resources with a guest in your house, the Host system shares its resources with guest OS or virtual machines. In the real world, it's called Hospitality and in the computer world, this is called Virtualization.

Companies like Citrix, VMware, Oracle, etc provide software to enable the creation and management of virtual machines.

Adoption of Infra-as-Code for Cloud

Cloud computing uses Virtualization which encourages provisioning, configuration and management of resources through programming.

This has led to the creation of tools and languages for specific resources.
Cloudify and Terraform are tools for provisioning and orchestrating Virtual machines. Docker, Kubernetes, etc are tools for provisioning containers. Chef, Puppet, Ansible are some configuration management tools.

There is no single tool that is dominating the Infra-as-code market as of now. There are many open-source tools available and all of them have their pros and cons — It is a matter of effectively combining them to get work done.

Problems with Infra-as-Code: Industry Insights

Well, as the saying goes too many cooks spoil the broth, too many tools complicate the understanding and adoption of IaC.

It takes time to learn the various infrastructure-specific tools and combine them effectively.

Also, It doesn’t help that you can only check for the correctness of your code after infrastructure deployment. If there is an error, you will have to destroy that infrastructure and create a new one. This is a tedious process.

There is a lack of standardized testing and debugging practices. Tools for checking the code (type checking, etc) are also very limited.

So, I think the companies which are providing the tools for enabling Infra-as-code must begin researching and developing tools for testing and debugging.

This brings us to the end of this story. Infrastructure as Code is in its infant years and there is a need for research and innovation to overcome the shortcomings of today’s Infra-as-code. Stay tuned for part-3 of this series.

© Shreya Sinha 2021.
Written by Shreya Sinha, Thank you for reading.

This post includes affiliate links.

--

--

Shreya Sinha
Technology Hits

Programmer on weekdays, Creative writer on weekends. New content every Friday. Connect with me: https://linktr.ee/ShreyaSinha