Sep 4, 2018 · 2 min read
Hi Paul! Thanks for the kind words and the questions.
To be honest, I have very limited expertise with the data warehouse side of things, so I’ll give my best, highly imperfect answer.
First, good job on trying automation, whatever kind. I feel this is super important, much more so than the specific tool used.
Second, versioning all production artifacts is also extremely important and I think you have the right approach and mindset for this.
Now, as to the specific questions:
- Traditionally, Ansible has shined in ensuring configuration consistency across a wide variety of servers. Terraform’s strength has been greenfield deployments (and destruction!) of new things. So, in the context of disposable cloud assets, Terraform is probably a better fit. But in the context of configuring existing assets, Ansible is probably a better fit. That said, if you are dealing with a single orchestrator box, then perhaps you don’t really need anything? It’s just 1 server, there can’t be that much configuration drift.
- If you are not doing immutable deployments (which you are not with data warehouses) then I think (?) Ansible is a better tool. You don’t need to provision new infrastructure so often, you need to ensure consistency of existing servers. Again, these tools shine when you have lots of servers to deal with (lots is defined as 2 or more).
- Yeah, nothing wrong with using your local Mac. I think you work from your laptop, committing code to GitHub/GitLab periodically. If you have another person you trust, issue pull requests to get feedback. Make sure you have branches for all new features, etc.
Good luck!
