Developing SaaS Applications with the Windows Azure Platform Vittorio Bertocci
The Windows Azure Platform Makes It Easier to Develop SaaS Solutions
Agenda SaaS, PaaS and the cloud opportunity FabrikamShipping SaaS – Enterprise Edition Small Business Edition
*aaS
FabrikamShipping->SaaS Existing demo application PDC08, sample, Keynote demo at TechEd NA 2010 Simple outsourcing scenario: mailing & shipping Exercise: Move FabrikamShipping to a subscription-based model… …leveraging the Windows Azure platform Goals Make it easy FOR YOU to experience Provide boilerplate code for hard tasks Engineering feedback
DEMO FabrikamShipping SaaS
Our Solution Pattern New solution structure: application factory
FabrikamShipping SaaS
Provisioning Operations Windows Azure Poll for service and storage existence React to triggers Use CSPack in a worker role for creating a package Create and upload certificates Send mails Handle payments via PayPal SQL Azure Create and destroy databases ACS Create RPs, trust IPs, create & modify rules, upload certificates
DEMO Enterprise Subscription
Enterprise Architecture
Enterprise Edition Features & Tradeoffs Completely isolated from other tenants Fs-.cloudapp.net Exclusive use of dedicated hosted service(s) SQL Azure databases Little or no change to the existing application codebase The provisioning automates the customization of the app creates a package dynamically …but requires a manual step Maximum clarity in the billing Federated SSO No need for account provisioning, reuse existing org structure The # of actual users is unknown
Enterprise Provisioning Subscription Store New Hosted Service (HS) And Storage Account (SA) Every 1 minute Check HS and SA were created Service Mgmt API triggers che ck sta tus insert Deployment Queue enqueue Create SQL Azure DB mail to FS Administrat ors Create Self Signed SSL Cert insert triggers SQL Azure Server Upload Decryption Certificate Create Relying Parties (website & odata), Upload FedMetadata (of IdP), Upload the encryption cert (of RP), Create claim mapping Rules Access Control Service Mgmt API Deploy Package and Update Subscription Status Azure Service Mgmt API Every 1 minute Check Deployment is Ready Deployment Ready Queue enque ue Send Notification ( ) triggers Enterprise Provisioning Queue triggers enque ue Provisioning Store insert update Create Provisioning Start Provisioning Get Subscriptions query Provisioning Framework API query & update IsAlias Available query Update Web.config and ServiceConfiguration.cscfg, Re-package and upload to blob storage Provisioning Workflow ENTERPRISE Makcert.ex e & certutil.exe Azure Service Mgmt API Provisionin g Store Cspack.exe triggers mail to the subscriber
DEMO Small Business Subscription
Small Business Architecture
Small Business Edition Features & Tradeoffs One application instance shared among all subscribers Classic multitenant scenario Fshippingsmallbiz.cloudapp.net/ Exclusive SQL Azure database Admits users from social identity providers Sign-up and user account activation require custom code Custom code required for customizing the same app instance per-tenant keeping tenants isolated from each other Improved resources yield Harder to track usage per customer and bill Investments in the infra (ie multiple instances for the app) affect all tenants Variant: bucketing
Small Business Provisioning Subscription Store insert Create SQL Azure DB Create User profiles triggers Provisionin g Store Create Signing X509 Certificate Deployment Ready Queue Send Notification ( ) triggers SmallBiz Provisioning Queue enqueue Provisioning Store insert update Create Provisioning Start Provisioning Get Subscriptions query Provisioning Framework API IsAlias Available query enqueue Create Tenant Metadata (name of company, alias, public key) SQL Azure Server Makcert.ex e & certutil.exe Create User and Roles tables Create Relying Party (website), Configure allowed Identity Prov (Google, LiveID, fb) Upload the signing cert (created on step 1), Upload the encryption cert (FS) Create claim mapping rules Access Control Service Mgmt API
Advices From Applications to Application Factories Whatever tradeoff you want, the Windows Azure platform allows it Reuse IP “as is” vs multitenancy Shared vs. exclusive resources Enterprise SSO vs. social providers …and everything in between Integrate other PaaS to get the vertical features you need Mail Payment..check out the code, tons of goodies
Get Started with Windows Azure For Free Today! MSDN Subscriber Activate Your Free Included MSDN Benefits via Individual: Get a Free Azure Introductory via Free Computation hours and Storage Get 30 Days Free Windows Azure via Select Belgium and enter Promo code: AZP001 Partner Get free monthly access to Azure with Partner Cloud Essentials via
Start Developing on the Windows Azure Platform 1.Activate your Benefits (see previous slide) 2.Get the Tools via 3.First learn how to create an application via
Speaker info: please do not delete the slides in this section Show these slides at the end of your session before going to Thank you page.
Stay up to date with MSDN Belux Register for our newsletters and stay up to date: Technical updates Event announcements and registration Top downloads Follow our blog Join us on Facebook LinkedIn: Download MSDN/TechNet Desktop Gadget
TechDays 2011 On-Demand Watch this session on-demand via Channel9 Download to your favorite MP3 or video player Get access to slides and recommended resources by the speakers
THANK YOU