🔆 How Does Infrastructure as a Code (Iac) Work? And How Does It Help?
The Tech Caffeine #45: This Week in Tech
I hope you're enjoying "The Tech Caffeine." I would appreciate it if you passed this along to a friend.
🗞 In This Issue
My Top 5 Articles that I recommend you read
Deep Dive: How Does Infrastructure as a Code (IaC) Work? And How Does It Help?
Watch this: Data Mesh in the Real World: Lessons Learnt from the Financial Markets
Tweets of the week
👉 Top Five
1️⃣ Augusto Marietti writes about 20 years of Jeff Bezos’ API first Mandate and how the world has transformed since then.
2️⃣ Many times Time Series Databases(TSDB) are considered synonyms for monitoring platforms. In this post, Alex Vondrak explains why TSDBs might not be good enough for observability platforms.
3️⃣ If you have been considering Cassandra's replacement, you may be interested in knowing more about the ScyllaDB.
4️⃣ Omar Ghalawinji shares his learnings about using Debezium to replicate real-time production data into Snowflake.
5️⃣ If you have been working with distributed systems, you may have heard about the CAP Theorem. If you haven’t got a chance to go deep, this FAQ is a rich source.
🤿 The Deep Dive: How Does Infrastructure as a Code (IaC) Work? And How Does It Help?
In simple words, it’s implying that infrastructure is like an application and applying all good software practices we have developed over the years to it. Software Development Life Cycle(SDLC), testing, version control, everything.
Infrastructure as a Code is a practice that allows you to create human-readable configuration files that can be used to create, manage or destroy the cloud or on-premise infrastructure.
How Does Iac Work?
IaC Tools use Application Programming Interfaces(APIs) provided by the cloud or the on-prem infra services to manage the infrastructure.
Many cloud service providers have their providers made available on various IaC platforms. If you are a cloud service provider, you can even create your own provider for others to use.
Which are the most popular IaC platforms?
There are many IaC platforms available these days. Some of them are open source projects. Here is a list to name a few -
Some are cloud agnostic while others are purpose-built toward specific cloud service providers.
If you are interested in knowing more about the comparisons between various platforms, here are some useful links -
How Is This Different Than Writing Infrastructure Automation Scripts?
Most of these IaC platforms are declarative in nature. It means here you need to define the end state of your infrastructure and you don’t write step-by-step commands to create it like in the automation scripts. IaC takes care of the actual steps.
If you want to modify or delete your infrastructure, you don’t need to write another script or program. You simply use the commands provided by the IaC platform and that’s it.
In automation scripts, you need to make sure the ordering of commands is correct before the execution. IaC you don’t need to worry about it, the execution plan will be automatically adjusted in the order required.
How Is This Different Than The Configuration Management Platforms Like Chef/Puppet/Ansible?
Configurations Management tools focus on managing software on an already existing VM. IaC tools complement tools like Chef/Puppet/Ansible.
You can use IaC tools to create and manage your infra while you can use configuration management tools to manage software on that infra.
What Role Does IaC Play in Disaster Recovery(DR) Scenarios?
IaC gives you the flexibility to create the infrastructure on the fly in case of emergency. While it covers very important things like Infra re-deployment, state management, etc. during the DR phase but you also need to do additional things like data backups, software & app configurations, etc. outside of IaC tools
Where can I learn more about these?
If you have any questions about this topic, feel free to let me know in the comments.
👀 Watch This: Data Mesh in the Real World: Lessons Learnt from the Financial Markets
Watch Tareq from CMC Markets talks about his experience in implementing Data Mesh in the real world. If you don’t know what Data Mesh is, I discussed it in the previous issue.