For the series “things I was working on before moving from DPE to the product team”. Today Wade’s gang released an update to the Windows Azure Platform Training Kit containing a new lab, “Introduction to the Windows Azure Marketplace for Applications”. Here there’s a bit of brain dump (not too long, it’s already past midnight here) of what were the thoughts in designing the lab: I see that the guys did some changes here and there, but the structure appears to be the same.
You may have seen last month the announcement that Windows Azure opened up a marketplace for applications: the aforementioned lab walks you though the process of adapting one existing SaaS application to take advantage of the marketplace for handling subscriptions & subscription lifecycle.
The main idea behind the lab was to show how an existing subscription management solution- such as a redeemable code handed out by your salesperson for every new deal - could be handled in a much more natural way by integrating with the Windows Azure marketplace. Another reason for starting from an existing working solution was to make extra-clear where the marketplace responsibilities end and yours begin: for example the user registration (via ACS, of course) are entirely up to you. I would have liked to add a feature for handling multiple users (in order to be extra certain that nobody confuses “user” with “tenant”, you won’t believe how many times that happens) but there was no time. In any case, I am satisfied with the amount of identity topics we got in there
I won’t spoil (all) the surprise to you, but integrating your app in the marketplace largely consists in adding to your app an endpoint that the marketplace can call to notify you of a new subscription, a deprovisioning of an existing subscriptions, and the various details you need to act upon that info (for example which subscription level the customer paid for). Those calls are secured by…. surprise surprise… OAuth2. In fact, the lab takes advantage of WIF’s OAuth2 extensions.
The Windows Azure marketplace has various developer-friendly features, such as a “playground” from where you can send test subscription and deprovisioning messages; the lab walks you thru their user in detail. The lab also demonstrates how to go through the publication process, necessary to get one entry for your app in the application catalog.
Of course another important goal of the lab was to help you wrap your head about how to handle multitenancy (by managing the subscriptions info accordingly) and think a bit about what a real system may need to cope with (for example avoiding to delete all tenant data upon preprovisioning messages, or handle idempotency in case the same message needs to be re-sent). You tell me, but I think that the lab covers that pretty nicely.
Extra goodness? The lab setup uses the ACS cmdlets.
What is there to add? Congratulations to Wade, Donovan & he rest o the gang for the new release, and I wish you best of luck for your Windows Azure apps in the Marketplace!