Stelvio: Ship Python to AWS

URL: github.com
3 comments

Why would I ever use this instead of just using the CDK with Python? There is plenty of documentation and my experience is I can one shot my entire IAC with a well defined spec with ChatGPT to generate CDK code.

Yes I know AWS well enough to know whether it is correct

Also where is this idea that it takes days to ship Python in CDK coming from?

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.

1) The first 2 links in the readme are 404s

2) I feel like the very first question this project needs to answer is: "Why should i use this over the official AWS CDK?" (assuming you want other people to use this). Besides maybe some nicer syntax I don't really see a reason to use this and lose all the (sometimes lacking) documentation, examples + community support that exists for CDK.

2.1) The listed benefits include "Use your favorite [...] type checker", but the example uses strings for specifying field types (vs. AWS CDK which would use enums, and is also "pure python") which immediately throws that out of the window

Thanks for having a look.

1. Links are fixed now.

2. We try to answer that hopefully better at our website https://stelvio.dev but you're right we should do it better in readme too! - Can you please be more specific regarding syntax? What you don't like or what you'd like to see? We try to have - Whole point of Stelvio is that you need to write much less code to define your infra, e.g. almost none IAM code due to our linking system. We also have "dev mode" which let's you to test/debug your lambdas locally without re-deployment - We try to have comprehensive documentation and guide covering each component. If you see something missing please can you be more specific? - Regarding community support we can't do much here other than grow community which we're trying to do. Having said that we're happy to support our users personally and answer any question or help you onboard. Just shoot email to team@stelvio.dev

2.1 many parameters/fields/properties in Stelvio have option to use either enum or string. If it's string with specific supported values it's defined as e.g. ` Literal["keys-only", "new-image", "old-image", "new-and-old-images"]` so you'll get help of IDE for auto complete as well as type-checker/linter if you use wrong value.

Thank you again for your valuable feedback. Happy to talk anytime. If you want to try Stelvio just shoot us an email and we'll help you along the way.

It's unlikely to cover the AWS API's with 100% certainty, and I don't want to spend time trying to work out the kinks, so honestly, I'd rather just use the AWS CDK and CloudFormation.

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.