The way I see it is this. Tools like ansible, terraform, etc. don't eliminate the need to understand about shell scripting, the AWS API, etc. All they do is give you something additional to learn on top of all the stuff you already need to know. It's like
Maybe I am cynical but once you get into the ecosystem of tools like that then you are stuck investing more resources into those tools, paying for support, adopting more tools to deal with the complexity, you never win.
Years ago I was building virtual machines that would run a web service or populate a database full of content and publish it to an AWS image that I sold in the AWS marketplace.
The architecture was: a Java program sets up the resources required to do the job with the AWS API, then creates an init script and installs it on a new VM, that init script does all the work that has to be done on that machine, then it sends a message to SQS that tells the program that started it all it is done. Very simple, and if my DSL connection flakes out momentarily during the hour or so the init script takes to run it keeps running and I don't have to do it all over again the way I might if there was excessive communication going on between the master program and the host.
Yeah, I feel exactly same. There are tons of tools like Terraform, and sometime people need to wait new AWS features being added to Terraform. All these tools use SDKs from cloud providers. I prefer simple and "just work", thus thinking to directly use those SDKs without additional layer.
The way I see it is this. Tools like ansible, terraform, etc. don't eliminate the need to understand about shell scripting, the AWS API, etc. All they do is give you something additional to learn on top of all the stuff you already need to know. It's like
https://en.wikipedia.org/wiki/There_Was_an_Old_Lady_Who_Swal...
Maybe I am cynical but once you get into the ecosystem of tools like that then you are stuck investing more resources into those tools, paying for support, adopting more tools to deal with the complexity, you never win.
Years ago I was building virtual machines that would run a web service or populate a database full of content and publish it to an AWS image that I sold in the AWS marketplace.
The architecture was: a Java program sets up the resources required to do the job with the AWS API, then creates an init script and installs it on a new VM, that init script does all the work that has to be done on that machine, then it sends a message to SQS that tells the program that started it all it is done. Very simple, and if my DSL connection flakes out momentarily during the hour or so the init script takes to run it keeps running and I don't have to do it all over again the way I might if there was excessive communication going on between the master program and the host.