I just checked, pulumi does have a good track record of keeping up with AWS. But using a non industry standard framework (Stevio) just doesn’t make any sense from a long term portable career perspective.
While I’m not a fanatic about which one I use out of the major ones. My last three projects were CDK/Typescript, Terraform and CloudFormation with my own collection of utility scripts I’ve used over 5 years to make it act more like TF. But the CFTs are standard.
Our goal with Stelvio is bringing these two together: Using Pulumi (for performance and multi-cloud capatbilities) with the convenience of some parts of CDK.
Curious why you’d go from sst (back?) to terraform? Are there services or features missing in sst or is it about terraforms ergonomics that fits your case better?
Stelvio's main selling point here is that you can use our higher-level components for different services and have them automatically configured.
So, you don't have to configure IAM roles, or Env vars manually, as this is handled for you through a concept called linking. https://stelvio.dev/concepts/linking/
In our experience, that alone adds a lot of productivity gains for teams.
Higher level CDK constructs do the same thing. But honestly, IAC is one of the easiest thing for LLMs to do and there is plenty of documentation to troubleshoot. There is no reason to introduce this into a company instead of using the official CDK.
But coincidentally Stelvio was born out of frustration with CDK which I'm using at my day job for 4 years at this point:
- slow deployment: CDK is layer on top of cloud formation, it first translates to CF which is then moved to AWS and resolved/deployed there. Process is quite slow and if something goes wrong it's hard to debug, rollbacks take ages, sometimes they block due to inter-stack dependencies
- CDK is still quite low level and focused on infra. You just can't create say api gateway with 3 routes each using 3 different lambdas with permission to use dynamo table in 4 lines - you an with stelvio
- whatever code change you need to test you need to deploy it first which is probably slowest with CDK(compared e.g. to pulumi) then even if you run it you can't really debug it or just see prints, you need to just go thru cloudwath or other services - stelvio allows you to run lambdas in "dev mode" so you don't need to redeploy and run your lambdas locally for instant feedback and even debugging support
Having said that CDK is good tool and I'm happy that it exists as I like it much better than CF itself or Terraform. Stelvio just tries to be even better and focused on developers.
Regarding LLMs sure, problem with LLMs is not they can't generate the code but if you're willing to read and understand all of it. Stelvio is less code with higher abstractions so it's easier to comprehend.
And what assurances are there that you will be around for five years? Or that you will support new services features when they come out?
And I always “disable rollbacks” this has been a feature in CloudFormation, CDK and SAM for years.
Running lambdas locally with SAM has been a feature for at least 5 or six years as with the CDK. But these days you really should be packaging lambdas as Docker containers - those are really easy to test locally without any special infrastructure
We still believe to have a more flexible solution that also adds some features, including combining multiple cloud providers which at the moment we use to enable cloudflare DNS in front of AWS infra. Feel free to give it a try!
Co-Author here. As long as you have trust in the underlying API of the Pulumi resources that Stelvio creates on your behalf, we have a mechanism in place that let's you fine-tune every parameter if you like. See: https://stelvio.dev/concepts/customization/
Otherwise, you can stick with Stelvio's sensible defaults if you wish.
We believe that we're creating a solution for problems that we fought with during a combined 40 years of experience in the team. ymmv, but you are invited to give it a try. Happy to show you a demo ;)
Yet I have never had those problems in 8 years of working with AWS including almost 4 working at AWS ProServe (no longer there). I would never depend on a third party IAC package aside from Terraform knowing the surface area of AWS services and nit knowing if this is still going to be supported a decade from now.
reply