Hacker News new | ask | show | jobs
Anyone like the idea using AWS SDK to build infrastructure deployment tool?
1 points by hiboyang 1488 days ago
Hi Folks,

Just saw some post about Ansible. Also lightly tried other Infrastructure as Code like Terraform. Feel getting pretty large/complex yaml files when deploying decent size infrastructure.

How do people feel just using AWS SDK or other cloud SDK to write your own deployment tools? Since it is pure code, it is easy to refactor and test.

I did some prototype building DataPunch project (https://github.com/datapunchorg/punch) to deploy Data Infrastructure using AWS Go SDK. It provides one click command like “punch install SparkOnEKS” which will automatically deploy a ready-to-use Apache Spark environment on AWS.

Want to seek feedbacks and see whether other people have similar ideas?

Thanks, Bo

2 comments

I'd shy away from writing "one off" deployment tools myself, unless I had a very specific reason to do it. My preference for automation of infrastructure provisioning these days is Ansible, although I'm starting to work with Terraform a bit at the $DAYJOB. At Fogbeam, all of our automated infra provisioning stuff is just a wrapper on top of Ansible. I don't find the YAML files to get terribly large or complex, and even if they did, I doubt hand-rolled code to achieve the same thing would be any less complex.

For my money, if I wanted to do something that wasn't supported by Ansible (or similar tool of choice) I think my time would be better spent writing a module for the tool to add that support, than writing some one-off thing. But as always, "it depends" and YMMV of course.

Oops, just found I submitted two posts duplicately. Was doing this on my phone, and got some problem. Please use another thread: https://news.ycombinator.com/item?id=31462123

Thanks mindcrime for sharing the experience! Glad to hear Ansible and related YARML files work for you!

There are many such tools from third parties. But IMO, YAML is not a programming language. It's a language for defining configurations, but that's not the same thing.

AWS has their own Cloud Development Kit (CDK) that works with multiple real languages. So you can do things like loops, or conditionals. Kinda hard to do that with plain YAML.