In my previous post, we learned about Terraform as a product and its generic use cases. The upcoming post will be much-focussed topics covering fundamentals involved in Terraform as an IAC solution. I will be using AWS as a platform in my examples, however, I will try my best to add Azure and other related examples as part of the blogs. Before going ahead it is assumed that following pre-requisites and technology you must be already aware.
- Basic understanding on these cloud IAAS providers e.g. (AWS, Azure, GCP).
- Basic knowledge of core services like cloud instance, networking, object storage, cloud DB, Autoscaling, Load-Balancer, Identity management via GUI
- Basics on cost management and understanding on how pricing works in Cloud.
- Basic understanding on code editors like.(Visual Studio Code, Atom)
- Enthusiasm to learn and automate.
A question may come to your mind, why should I use terraform? Since I am used to GUI and comfortable managing my cloud infrastructure at ease!!!. In such cases, you can continue managing. However managing in this fashion may have challenges associated in the long run and few are worth mentioning such as efficiently tracking and tracing the configuration changes, lack of control on manual/Ad-Hoc provisioning, no cost control, administrative overhaul. Usually, such situations are common, when there is a small infrastructure footprint or non-complex set of architecture, in those cases, it’s up to the administrator what to choose GUI or Code. Remember that using Terraform is a choice, not force, but bringing a code-based approach brings many more additional benefits.
As most of the organizations are adopting cloud and transitioning their operations, but still the provisioning method remains the same, in a similar traditional fashion as managed on on-premises, by logging into virtual environment and provision the infrastructure. Adoption of IAC tools like (Terraform and Cloudformation) will help build the framework and the building blocks for the Day0 and Day1 based activities for modern applications and infrastructure provisioning. In the below infographics I have explained the most common components of Terraform.