Bit of a leap of logic there. Using proprietary cloud services is the decision that causes lock-in, not the tool you use for managing it. Terraform and Pulumi do a resonable job of making similar APIs for the variations of cloud providers - but it's not their job to provide an abstraction layer as you need to be able to pull all of the underlying levers. Kubernetes IS an abstraction layer so where you choose to roll you own stuff you can make it somewhat portable to another cloud (at the cost of writing the config).<p>On the choice of cloud services, I'm happy enough using cloud databases (they can do fast I/O and high-availability at a reasonable price). I'm much less happy with their packaged stuff. Tried out cloud composer this week. Turns out that it can't be easily scripted in Pulumi and wants bigger infrastructure than our main application so not the painless composition of services of the marketing brochure.
> it can’t tell a damn thing about current state of the system<p>This statement is strange. The author could not possibly have written a line of Ansible, apart from blindly chaining external commands. It is possible to use it like a bash script but that's not the intention. Serializing state is its primary use case, and also makes it different from "running commands over ssh".
That title is both misleading and untrue. Infrastructure as Code is exactly that, a way to define your infrastructure definitions code. There is nothing cloud specific about that concept. You can easily write Terrform to work with VMware instances on-prem.
CNCF's crossplane seems like the answer to me:
<a href="https://crossplane.io/" rel="nofollow">https://crossplane.io/</a>
Each vendor creates/supports its own 'provider', it is day2 operations ready as it reacts to changes done manually (not like terraform), it's all around well known k8s api
Title doesn't represent what the blog post is actually about.<p>And even if it did, a tool like Terraform is just the latest iteration of what we've been doing for years already for things like shell scripts. The difference is that Terraform is a declarative language, and therefore it is easier for those who did not write it to review it, audit it, fork it, etc.
NixOS can for the most part replace Ansible and it gives you actual configuration as code for your VMs as the OS is built up from immutable configuration files and packages (think Dockerfile layers but for VMs and actually reproducible)