-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Pulumi #93
Comments
Pulumi currently supports a YAML authoring language, which is convertible to a fully fledged programming language. Being able to output Pulumi YAML, then running |
Why do you think the code that pulumi creates with its cli is not sufficient? I am just curious. |
It's not that pulumi cli is not sufficient but about being able to use azd with pulumi. Azure Developer CLI is not only about Infrastructure as Code but also about generating the application code, generating the pipelines to deploy the code, deploying the application, and monitoring the application, ... So for someone who wants to manage its application using azd (code, build, deploy, monitor) but with the infrastructure code using Pulumi, support for Pulumi in azd is a must have. Or maybe I misunderstood the question and your question was about what @jaxxstorm said? |
I can see the benefit in that if everything is generated automatically with 1 command thus saving time. It was not related to @jaxxstorm comment. |
Yes, another related benefit is to be able to share templates that contain the application and the infrastructure code. Pulumi CLI is only about the infrastructure code. For people getting started using Azure, I believe it's nice to have some boilerplate (infra+app) to build an application that can be directly deployed to Azure. |
Yes defintely. I was actually working on building a SaaS template for azure some time ago so I can see the benefit of that. |
@savannahostrowski does So far I have not seen concrete advice on how to combine / plans for supporting that in the bits - see discussion on pulumi repo |
I'd like to better understand the scenario here - specifically what "together with Pulumi" ends up meaning. Do you simply want I suspect for the former - just wanting to use To be frank, the second case is harder - we currently don't have a great story for using generated infrastructure from Aspire together with hand authored infrastructure for other resources - we'll need to come up with a solution for this independent of support for Pulumi (since |
Thanks for asking @ellismg. I don't have My main goal is to simplify Azure distributed application development for C# developers, and to enable them to use their core C# skills + tools in as many areas as possible.
What I imagine AZD Pulumi support to enable:
Would the above be possible with the first approach you described?
(I suspect so because no direct Aspire - Pulumi integration is needed; the application code just uses resources defined by both)
In summary, if my reasoning above is correct the first approach you described should be sufficient, while the second polyglot approach seems a more powerful option further down the road. Does this make sense from your perspective? If you see limitations or other options I'm also interested - thanks! |
These are really great questions and really get to the heart of some of the problems we're trying to solve as continue towards a GA of Aspire and improve the As you mentioned - I worked at Pulumi for a while and have a pretty good idea about what a story in Pulumi might look like (granted the team over there has done a ton of amazing work since I have left, but I feel like I still have a pretty good handle on the model). I think the answers to these questions depends on if you are looking at the problem through a "pulumi first" lens or an "azd first" lens. Since I work on
I think this is a bit of a philosophical question - my general view is that Aspire is/can be this but there are just some gaps today in the end to end that we need to go improve. You've outlined some of them:
We've been talking about how we support all these cases. For (1) we're looking at how we can auto-generate these Aspire components in the same way that the Azure SDK team generates much of the code for the .NET Azure SDKs. We're currently in the ideation stage of this work stream, but we have some really good ideas and I suspect over the next few previews you'll start seeing stuff come online here. We're also looking at the ability to do something like For (2) We're currently thinking about a strategy that allows you to add annotations to resources in your app host and tools like We also have been talking about (3) and it's something we want to deliver as part of Aspire GA. We have some ideas here and you should see that work come online during the preview 4 timeframe as well. All of this work can be done without adopting Pulumi and we plan to build all this stuff on top of Bicep. A place where Pulumi would be helpful is if you wanted to start to manage resources in non Azure clouds (since
This is a large amount of work (and adding another IaC provider to If I was to put my Pulumi hat on I think the answer would be something like: "There should be a Pulumi component that let's you do something like: But that's a discussion for another day and another issue (I will try to find some time to brain dump thoughts into that discussion thread at some point). Hope this is helpful and gives you an idea about what we are thinking about and "where the puck is headed". Sorry for taking a while to get back to you - you're touching on the some of the core complex issues we've been struggling with and so it took some time for me to synthesize our current thinking and lay it all out for you (while at the same time trying to make Hope this is helpful - happy to answer any follow ups, but it might take me some time :-). |
Thank you @ellismg - I really appreciate the effort to share this comprehensive overview. It took some time for me as well to let it sink in and reciprocate. The examples you mention match my experience; sharing this is very helpful in wrapping one's mind around the technologies, and it can help to determine a course in solution technology roadmaps.
Hmmm... my grok (so far) is that Aspire helps simplify multiple aspects of distributed application development (IaC being one), while Pulumi is fully focused on IaC. Think e.g. about all the different environments a solution exists in with their respective infrastructure variations and partial IaC reuse across them, versus just two infrastructure variations: local and deployed. As a .NET / Azure distributed application architect I like to have as much power as possible, as soon as possible, with early maturity, to reduce complexity and effort. A clear product focus helps for that; from that perspective it would appeal to me to have Aspire become truly great for development-centric aspects of distributed applications, including the first step / core IaC, and focus on a smooth and flexible integration with specialized infrastructure solutions such as Pulumi, rather than trying to make Aspire a full IaC competitor. As seen on many occasions, combining strengths and clear focus makes an ecosystem more valuable than adding more alternatives that have a bigger overlap with a less intense focus. It results in earlier maturity as well. Just food for thought... not disagreeing with you here. That being said, the Azure focus of AZD is clear and I think some of the features described above would be great:
In short, I love the plans in 1 to address gaps 1 and 2 - I will be using that functionality for sure. Plan 2 I would not do and instead try to smooth integration (incoming and/or outgoing) with other IaC products. That might also obviate the need for plan 3. Hope this helps - interested to continue the evolution of thinking, and thanks again for sharing! |
My point at
above prompted me to start a wider discussion about IaC in the Aspire repo; afaiac we can continue with other AZD specific things below; hth |
Quick reference to the Radius project: https://github.com/radius-project/radius |
From DevBlogs:
Please upvote if this is important to you!
The text was updated successfully, but these errors were encountered: