Building Saas Applications on Microsoft Azure
Building Saas Applications on Microsoft Azure
Building Saas Applications on Microsoft Azure
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<str<strong>on</strong>g>Building</str<strong>on</strong>g> SaaS <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g><br />
<strong>on</strong> <strong>Microsoft</strong> <strong>Azure</strong><br />
November 2011<br />
www.zensar.com | © Zensar Technologies 2011
Software as a Service (SaaS) – Various Dimensi<strong>on</strong>s<br />
What is SaaS<br />
SaaS is a Software Delivery Model (“As a Service” as against “Licensed”) where<br />
the Software is<br />
• Hosted centrally<br />
• Accessed through internet<br />
• Normally accessed using thin client (browser)<br />
Business<br />
• Subscripti<strong>on</strong> based<br />
rather than Purchasing<br />
• Normally pay-per-use<br />
payment models<br />
Operati<strong>on</strong>s<br />
• Easy Deployment and<br />
upgrades<br />
• Quick scale-out<br />
• Normally a single code<br />
set<br />
Technology<br />
• Multi-tenancy<br />
• Data segregati<strong>on</strong><br />
• C<strong>on</strong>figurati<strong>on</strong> /<br />
Pers<strong>on</strong>alizati<strong>on</strong><br />
www.zensar.com | © Zensar Technologies 2011 2
SaaS – Different Levels<br />
• Diff. code<br />
• Diff. instances<br />
• Same code<br />
• Same instance<br />
• Same code<br />
• Diff. instances<br />
• Same code<br />
• Horiz<strong>on</strong>tally<br />
scaled instances<br />
Source: MSDN Article 2006 http://msdn.microsoft.com/en-us/library/aa479069.aspx<br />
www.zensar.com | © Zensar Technologies 2011 3
SaaS Characteristics<br />
Tenant<br />
Management<br />
Super Admin<br />
• Tenant creati<strong>on</strong><br />
• Subscripti<strong>on</strong> plan<br />
creati<strong>on</strong><br />
• Usage m<strong>on</strong>itoring<br />
– app level<br />
Tenant Admin<br />
• User creati<strong>on</strong><br />
• C<strong>on</strong>figurati<strong>on</strong><br />
• Usage m<strong>on</strong>itoring<br />
– tenant level<br />
Tenant Users<br />
• Access business<br />
functi<strong>on</strong>ality<br />
• User level<br />
c<strong>on</strong>figurati<strong>on</strong> (if<br />
provided)<br />
Tenant<br />
Admin<br />
Users<br />
Super<br />
Admin<br />
Tenant 1<br />
SaaS Applicati<strong>on</strong><br />
(Same instance for<br />
different tenants)<br />
Tenant<br />
Admin<br />
Users<br />
Tenant 2<br />
How to achieve Multi-tenancy<br />
Separate<br />
DBs<br />
Same DB<br />
Separate<br />
Schemas<br />
Same DB<br />
Same<br />
Schema<br />
Tenant – specific<br />
C<strong>on</strong>figurati<strong>on</strong><br />
www.zensar.com | © Zensar Technologies 2011 4<br />
…<br />
Tenant<br />
Admin<br />
Users<br />
Tenant n<br />
• Branding (Logos, etc.)<br />
• Colour themes<br />
• UI positi<strong>on</strong>ing<br />
• Tenant-specific Fields
SaaS Applicati<strong>on</strong> <strong>on</strong> <strong>Microsoft</strong> <strong>Azure</strong><br />
Combining the power of SaaS and Cloud<br />
• Scaling:<br />
– SaaS applicati<strong>on</strong> requires Scaling - <strong>Azure</strong> makes it very easy<br />
not <strong>on</strong>ly to scale-up but also to scale-down<br />
– Applicati<strong>on</strong> can be divided into multiple web / worker roles to<br />
be scaled according to requirement<br />
• Applicati<strong>on</strong> can be deployed to specific geography<br />
• Pay-per-use model of SaaS applicati<strong>on</strong> is backed up by<br />
the same model at the platform level<br />
• Use of C<strong>on</strong>tent Delivery Network for large BLOB c<strong>on</strong>tent<br />
• Other inherent Cloud advantages<br />
– No upfr<strong>on</strong>t infrastructure cost<br />
– No upfr<strong>on</strong>t licensing cost<br />
www.zensar.com | © Zensar Technologies 2011 5
Case Study – ZenAutoPro<br />
Business Challenge<br />
• Testing Professi<strong>on</strong>als<br />
need separate licenses<br />
to generate automated<br />
Test Script<br />
• The initial system was<br />
developed as a desktop<br />
applicati<strong>on</strong> needing<br />
separate installati<strong>on</strong>s.<br />
• Difficult to make<br />
customer-specific<br />
changes and maintain<br />
each of them<br />
ZenAutoPro is a cloud hosted (<strong>Microsoft</strong> <strong>Azure</strong>) applicati<strong>on</strong> for<br />
Automati<strong>on</strong> Test Scripts generati<strong>on</strong> that can be used by multiple<br />
customers / internal testing teams <strong>on</strong> "As A Service" basis.<br />
Soluti<strong>on</strong> Provided Provided<br />
• Developed Cloud<br />
enabled Web<br />
Applicati<strong>on</strong> using<br />
Windows <strong>Azure</strong> cloud<br />
• Use of SaaS Framework<br />
developed by Zensar to Benefit<br />
implement standard<br />
SaaS features<br />
• Separate Schemas are<br />
maintained to achieve<br />
data segregati<strong>on</strong> am<strong>on</strong>g<br />
different customers<br />
• <strong>Azure</strong> Diagnostics to<br />
maintain the Logs Customer<br />
Customer Benefit<br />
• Possible reducti<strong>on</strong> in<br />
licensing cost<br />
• Reduced Infrastructure<br />
and Software<br />
maintenance cost<br />
• Easier deployment ,<br />
maintenance and<br />
support<br />
• Dynamic scalability<br />
(easy scale up and scale<br />
down)<br />
www.zensar.com | © Zensar Technologies 2011 6
SaaS <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g><br />
Need for Framework Based Approach<br />
SaaS App 1<br />
Business<br />
Functi<strong>on</strong>ality<br />
Tenant Management<br />
Metering and Billing<br />
C<strong>on</strong>figurability /<br />
Branding<br />
SaaS App 1<br />
Business<br />
Functi<strong>on</strong>ality<br />
SaaS Framework<br />
Comp<strong>on</strong>ents<br />
• Tenant Mgmt<br />
• Metering/Billing<br />
• C<strong>on</strong>figurability<br />
SaaS App 2<br />
Business<br />
Functi<strong>on</strong>ality<br />
Tenant Management<br />
Metering and Billing<br />
C<strong>on</strong>figurability /<br />
Branding<br />
A Better Approach would be as below<br />
Business<br />
Functi<strong>on</strong>ality<br />
SaaS Framework<br />
Comp<strong>on</strong>ents<br />
• Tenant Mgmt<br />
• Metering/Billing<br />
• C<strong>on</strong>figurability<br />
SaaS App 1 and App 2 are<br />
independently implementing very<br />
similar SaaS-specific features<br />
• Duplicati<strong>on</strong> of code/efforts<br />
• Missing out / insufficient<br />
implementati<strong>on</strong> of standard SaaS<br />
features<br />
SaaS App 2 • Standard SaaS features<br />
implemented <strong>on</strong>ce in the SaaS<br />
framework and Re-used by all<br />
applicati<strong>on</strong>s<br />
• <str<strong>on</strong>g>Applicati<strong>on</strong>s</str<strong>on</strong>g> can c<strong>on</strong>centrate <strong>on</strong><br />
business functi<strong>on</strong>ality<br />
www.zensar.com | © Zensar Technologies 2011 7
SaaS Framework System Architecture<br />
www.zensar.com | © Zensar Technologies 2011 8
Mapping a typical SaaS applicati<strong>on</strong> to <strong>Azure</strong><br />
www.zensar.com | © Zensar Technologies 2011 9
Summary<br />
Benefits of Framework based approach <strong>on</strong> <strong>Azure</strong><br />
• Flexibility of starting-small still maintaining the<br />
scalability<br />
• SQL <strong>Azure</strong> allowed Multi-tenancy to be achieved<br />
different schema level in the same database<br />
• Very small learning curve for team members<br />
• Tenant Management and Metering/Billing became<br />
highly c<strong>on</strong>figurable<br />
– Tenant name and fields, UDFs, Subscripti<strong>on</strong> types, User<br />
defined transacti<strong>on</strong>s, Billing cycles<br />
• C<strong>on</strong>figurability<br />
– At SaaS provider level<br />
– At Tenant level<br />
www.zensar.com | © Zensar Technologies 2011 10
Thank you<br />
www.zensar.com | © Zensar Technologies 2011