Developing SaaS Applications with the Windows Azure Platform

23
Developing SaaS Applications with the Windows Azure Platform Vittorio Bertocci www.cloudidentity.net/@vibronet

description

Developing SaaS Applications with the Windows Azure Platform. Vittorio Bertocci www.cloudidentity.net/@vibronet. The Windows Azure Platform Makes It Easier to Develop SaaS Solutions. Agenda. SaaS , PaaS and the cloud opportunity FabrikamShipping SaaS – www.fabrikamshipping.com - PowerPoint PPT Presentation

Transcript of Developing SaaS Applications with the Windows Azure Platform

Page 1: Developing  SaaS  Applications  with the Windows Azure Platform

Developing SaaS Applications with the Windows Azure PlatformVittorio Bertocciwww.cloudidentity.net/@vibronet

Page 2: Developing  SaaS  Applications  with the Windows Azure Platform

The Windows Azure Platform Makes It Easierto Develop SaaS Solutions

Page 3: Developing  SaaS  Applications  with the Windows Azure Platform

Agenda

• SaaS, PaaS and the cloud opportunity• FabrikamShipping SaaS – www.fabrikamshipping.com • Enterprise Edition• Small Business Edition

Page 4: Developing  SaaS  Applications  with the Windows Azure Platform

*aaS

Page 5: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 6: Developing  SaaS  Applications  with the Windows Azure Platform

DEMOFabrikamShipping SaaS

Page 7: Developing  SaaS  Applications  with the Windows Azure Platform

Our Solution Pattern

• New solution structure: application factory

Page 8: Developing  SaaS  Applications  with the Windows Azure Platform

FabrikamShipping SaaS

Page 9: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 10: Developing  SaaS  Applications  with the Windows Azure Platform

DEMOEnterprise Subscription

Page 11: Developing  SaaS  Applications  with the Windows Azure Platform

Enterprise Architecture

Page 12: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 13: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 14: Developing  SaaS  Applications  with the Windows Azure Platform

DEMOSmall Business Subscription

Page 15: Developing  SaaS  Applications  with the Windows Azure Platform

Small Business Architecture

Page 16: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 17: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 18: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 19: Developing  SaaS  Applications  with the Windows Azure Platform

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/

Page 20: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 21: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 22: Developing  SaaS  Applications  with the Windows Azure Platform

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

Page 23: Developing  SaaS  Applications  with the Windows Azure Platform

THANK YOU