Understanding cloud-agnostic tools
In Chapter 4, Deploying to Microsoft Azure, and Chapter 5, Deploying to Amazon Web Services, we use both Terraform and Ansible to target these clouds – so we know they work with both cloud providers, but how much of the code did we reuse?
The honest answer is very little.
We used different providers/collections for each of the cloud providers. As a result, there were many allowances we needed to make. While conceptually, the cloud providers offer like-for-like services at a high level; they have evolved in very different ways to achieve the same task.
For example, launching something as simple as a virtual machine requires two approaches: deploying services such as networking work requires different considerations and configurations as they simply just work differently.
So why do we call the two tools we have been looking at cloud agnostic? Surely that should mean they just work.
In an ideal world, yes, that should be the case...