3 ms·
Very interesting, thanks for the links! I have a different approach. When I'm deciding about a new technology that we could add to our tech stack, I ask myself
by octopoc 7y ago
Very interesting, thanks for the links!
I have a different approach. When I'm deciding about a new technology that we could add to our tech stack, I ask myself if it's really worth it. Adding a new tech is very expensive because it adds to the list of things that the developers have to be good at. I would avoid adding a configuration language and prefer using the same general purpose language that the rest of the software is written in.
At work, we have a C# ASP.NET Core application we build.
- We use Pulumi's C# API to deploy to the cloud. This lets us avoid yet another YAML based config format, and it lets us edit the deployment in a familiar language with a pretty simple API in our favorite IDE. (Link: https://www.pulumi.com/ https://www.pulumi.com/)
- We're going to move to Nuke instead of having Azure Pipelines YAML files. One less YAML file format to remember. (Link: https://www.nuke.build/ https://www.nuke.build/)
- We're going to do benchmarks with BenchmarkDotNet, to keep our code in C#. (Link: https://benchmarkdotnet.org/ https://benchmarkdotnet.org/)
- We're going to be adding Spark-based analytics, and I'm undecided about whether we should use Python or the C#. Python is so ubiquitous in analytics and there are so many libraries that it might be worth adding another language to our system. (Link: https://dotnet.microsoft.com/apps/data/spark https://dotnet.microsoft.com/apps/data/spark)
- q3k 7y agoYes. I don't like that it a) uses imperative, general purpose programming languages b) requires keeping an external statefile for deploying prod. EDIT: parent originally asked 'we use Pulumi, have you heard of it?'
- octopoc 7y agoYeah that is a pretty big downside to Pulumi. That's something it shares with Terraform.
- lima 7y agoLarge parts of Pulumi actually use Terraform providers.
- reilly3000 7y agoWhat is the downside of storing state for external services vs using configuration to attempt to recreate everything each time?