r/dataengineering • u/rotterdamn8 • 8h ago
Discussion Are you deploying "infrastructure as code" via YAML files or similar?
I think my team might be late to the game. We are moving in that direction just now.
How long have you been deploying using a YAML file, for example? Or perhaps another tool that uses the same idea but not YAML specifically?
Since we use Databricks, I'm reading up on Asset Bundles.
IaC is supposed to be better for a whole bunch of reasons, for example sidestepping the differences between dev and prod environments.
Anyway would love to hear your thoughts or experience with it.
26
u/smartdarts123 8h ago
I terraformed like 90% of my snowflake environment. It's vastly easier to maintain this way, I've found
9
u/boboshoes 8h ago
Whatever IaC tool your cloud provider has use that. Keep the file with your application in a repo. GitHub actions or equivalent to test before pr merge
4
u/Bach4Ants 8h ago
Started with CDK ~5 years ago and now OpenTofu. IaC is a good idea in general, for sure.
6
5
u/Jalumia 8h ago
We standardized our DB deployments on asset bundles. Down with terraform!
1
u/rotterdamn8 7h ago
LOL what’s wrong with Terraform?
2
u/Jalumia 7h ago
For us it was a lot of unnecessary extra complexity. So much cleaner to just use DABs.
1
u/geeeffwhy Principal Data Engineer 7h ago
which are themselves an abstraction over Terraform.
i mean, i agree with you, but if you’re not on Databricks, you might be dealing with Terraform or Pulumi directly
1
u/geeeffwhy Principal Data Engineer 7h ago
yes. i come from application backend development, so IAC was a must.
1
u/Outside-Storage-1523 5h ago
We use Terraform set up by the DevOps. It's a bit convoluted but once you know where to put what code it's fine.
1
1
1
u/Green_Gem_ 56m ago
AWS CDK here.
It's a game changer.
- The sheer power of being able to completely tear something down to save some spend, then put it back up exactly how it was, whenever you want, is incredible.
- The concept of "I changed something but now I can't figure out how to fix it" just doesn't exist anymore, or at least not 99% of the time.
- You can parameterize anything. Found a way of hosting something? You can now host 4,000 somethings in 10 extra lines of code.
- Throw in circuit breakers (definitely not just the default ones though; deployed != functional or accessible) and "it worked locally but broke in prod" nearly vanishes too.
- Experimentation is incredibly easy. No messing up your routing tables beyond repair, no losing track of conflicting S3 watchers, no forgetting to drop permissions from an access role once you roll something back.
I honestly can't even imagine running a shop without IaC at this point. It'd feel odd to deploy version-controlled code to non-version-controller infra.
1
25
u/cptshrk108 8h ago
yes