Developing SaaS Applications with the Windows Azure PlatformVittorio Bertocciwww.cloudidentity.net/@vibronet
The Windows Azure Platform Makes It Easierto Develop SaaS Solutions
Agenda
• SaaS, PaaS and the cloud opportunity• FabrikamShipping SaaS – www.fabrikamshipping.com • 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
DEMOFabrikamShipping 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
DEMOEnterprise Subscription
Enterprise Architecture
Enterprise Edition Features & Tradeoffs
• Completely isolated from other tenants• Fs-<tenant>.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
SubscriptionStore
New Hosted Service (HS)And Storage Account (SA)
Every 1 minuteCheck HS and SAwere created
Service Mgmt API
triggers
check
status
inser
tDeployment
Queue
enqueue
Create SQL Azure DB
mail to FS Administrat
ors
Create Self Signed SSL Cert
inserttriggers
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 ServiceMgmt API
Deploy Package and Update Subscription Status
Azure ServiceMgmt API
Every 1 minuteCheck Deployment is ReadyDeployment Ready
Queue
enqueue
Send Notification (email)
triggers
EnterpriseProvisioning
Queue
triggers
enqueue
Provisioning Store
insertupdate
Create Provisioning
StartProvisioning
GetSubscriptions
query
Provisioning Framework API
query & update
IsAliasAvailable
query
Update Web.config and ServiceConfiguration.cscfg,
Re-package and upload to blob storage
Provisioning Workflow
ENTERPRISE
Makcert.exe & certutil.exe
Azure Service Mgmt API
Provisioning Store
Cspack.exe
triggers
mail to the subscriber
DEMOSmall Business Subscription
Small Business Architecture
Small Business Edition Features & Tradeoffs
• One application instance shared among all subscribers• Classic multitenant scenario• Fshippingsmallbiz.cloudapp.net/<tenant>
• 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
SubscriptionStore
inser
t Create SQL Azure DB
Create Userprofiles
triggers
Provisioning
Store
Create Signing X509 Certificate
Deployment ReadyQueue
Send Notification (email)
triggers
SmallBizProvisioning
Queue
enqueue
Provisioning Store
insertupdate
Create Provisioning
StartProvisioning
GetSubscriptions
query
Provisioning Framework API
IsAliasAvailable
query
enqueue Create Tenant Metadata
(name of company, alias, public key)
SQL Azure Server
Makcert.exe & 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 ServiceMgmt 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
http://tinyurl.com/activatemsdnazurebenefits
• Individual: • Get a Free Azure Introductory via http://tinyurl.com/freeintroazureoffer
• Free Computation hours and Storage
• Get 30 Days Free Windows Azure via http://www.windowsazurepass.com• Select Belgium and enter Promo code: AZP001
• Partner• Get free monthly access to Azure with Partner Cloud Essentials via
http://www.microsoftcloudpartner.com/
Start Developing on the Windows Azure Platform
1. Activate your Benefits (see previous slide)
2. Get the Tools via http://tinyurl.com/toolsforazure
3. First learn how to create an application via http://tinyurl.com/deployazureapplication
Stay up to date with MSDN Belux
• Register for our newsletters and stay up to date:http://www.msdn-newsletters.be• Technical updates• Event announcements and registration• Top downloads
• Follow our bloghttp://blogs.msdn.com/belux
• Join us on Facebookhttp://www.facebook.com/msdnbehttp://www.facebook.com/msdnbelux
• LinkedIn: http://linkd.in/msdnbelux/ • Twitter: @msdnbelux
Download MSDN/TechNet Desktop Gadget
http://bit.ly/msdntngadget
TechDays 2011 On-Demand
• Watch this session on-demand via Channel9http://channel9.msdn.com/belux
• Download to your favorite MP3 or video player• Get access to slides and recommended resources by the speakers
THANK YOU
Top Related