I feel stupid asking that question because to me i...
# azure
d
I feel stupid asking that question because to me its obvious that I should keep them separate but wanted to make sure I'm not missing anything
b
i've not used appservices in pulumi but we use pulumi to do infra + app deployment (containers) + db schemas and users
t
You could deploy it with Pulumi. You can make a ZipBlob from a folder on your disk, upload it to a Storage account, and then point your Function App to that bob.
That’s what our
ArchiveFunctionApp
does for Azure Functions, and that mechanism works for App Service too
But you can keep these steps separate for sure
d
That's exactly what was blurring the lines for me was the Zip blob I was seeing in many examples.
t
It’s a nice way to show end-to-end getting started example. You don’t have to use the same for your app.
d
It seems to me if I wanted to deploy a new version I would have to tear down an appservice and build it up again
t
That’s not correct, Pulumi would just see a change in app binaries, upload a new zip, point the existing APp Service to it, then delete the old zip
d
Oh it would work that way, cool!
t
Yes, generally Pulumi calculates the smallest diff needed
c
@delightful-truck-1268 curious if you are using Az Pipelines to deploy the app to your App Service?
d
I'm not but we are considering it. Should we?
c
It depends on your team’s setup. Personally, I like Azure Pipelines, but there are several CI systems out there and choosing one that is best suited for your team is good. More specifically, since you are deploying Azure resources, I think using Azure Pipelines would be a good fit. They have built-in tasks to deploy apps to App Services, as well as doing some advanced things such as swapping slots. That is, you deploy to the “staging” slot, run a test, then finally swap the slots if all looks good etc. You could then use Pulumi to deploy the underlying infrastructure itself (i.e. the App Service plan, DB etc.) and then deploy the app outside of Pulumi. You can use Pulumi for as much as your infrastructure needs as you want. It really is a matter of preference.
💯 1
d
Thank you @clever-sunset-76585 that is very helpful. I like the idea of using the native deployment pipeline for that cloud. Down the road we will likely support multiple clouds. At this time, however, we are strictly on Azure.
c
Great to hear, @delightful-truck-1268. As for helping you get setup with a CI system your team chooses, we have quite a few guides to help you integrate Pulumi into them here: https://www.pulumi.com/docs/guides/continuous-delivery/ If you have some feedback or question, please do not hesitate to reach out.
d
Excellent! I was just reading that page
🙂 1
After chatting with the team, we are going to keep our provisioning separate from our deployment.
👍 1
p
@delightful-truck-1268 We also had the same discussion a while back and quickly came to the same conclusion. We let Pulumi handle infrastructure only, and use other Azure Pipeline tasks to deploy application code.
👍 1
d
Thanks for chiming in @powerful-football-81694
p
anytime, always helpful to trade thoughts with others in the same space