• Save
Leverage Azure and SQL Azure to build SaaS applications
Upcoming SlideShare
Loading in...5
×
 

Leverage Azure and SQL Azure to build SaaS applications

on

  • 1,345 views

• How to make the most of Azure elasticity storage and scalability ...

• How to make the most of Azure elasticity storage and scalability
on a global SaaS app

• How to use storage Caching to render web pages, efficiently


Intended for:CIOs, CTOs, IT Managers, IT Developers, Lead Developers

Statistics

Views

Total Views
1,345
Views on SlideShare
1,345
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Leverage Azure and SQL Azure to build SaaS applications Leverage Azure and SQL Azure to build SaaS applications Presentation Transcript

  • Leverage Azure and SQL Azure to build SaaS applications (Lander Case). Juan De Abreu jdeabreu@getcs.com© Copyright 2011 Common Sense2011 Common Sense LLC © Copyright LLC www.GetCS.com #CSWebinar www.GetCS.com
  • Twitter # csWebinar © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Agenda• Considerations• Azure Overview• Aspects we need to be prepared for• Lander Application• Summary and Q&A © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Considerations• Get out of the infrastructure business• Subscription Payment Model: Pay as you go• Obtain elastic IT Capacity: Pay as you grow / peak• High Availability, (SLA).• Reduce Upfront Cost, Storage Cost.• Improve time to market.• Rapid Innovation. Quick Update Cycles. © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Azure Overview © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Azure Solution Architecture Network Load Balancer SQL Web Worker Role Role Your Services SQL Internet Queues Blobs SQL Tables Your Storage SQL Azure Windows Azure Services Services © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Aspects we need to be prepared for• Partition the Application• Queues• Units of Scale• Load Balancer (Prepare for Failure) • No server Affinity • No sticky session • Stateless • Resources are Shared• Scaling • Compute • Storage © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Partition of the application Prepare to Scale Out Async, loosely coupled services Monolithic Sales Inventory Application Orders Begin Transaction Soft Reservation Msg Sync Check Inventory If Succeed Create Order Begin Transaction Reserve Inventory Create Order Commit Transaction Create Message Commit Transaction Begin Transaction End If DeQueue Msg Firm Soft Reserve Commit Transaction © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Queue Management Web Role Worker Role Instance 1 Instance 1 Busy Instance 1 Instance 1 Free Instance 1 Instance 1 Busy Put Message © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Queue Management Web Role Worker Role Instance 1 Instance 1 Busy Get Message Instance 1 Instance 1 Free Instance 1 Instance 1 Busy © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Working with queues• Methods • GetMessage = 1 REST call one message read • GetMessages(32) = 1 REST call up to 32 messages read.• Dynamic Delay based on Traffic• Operational Cost 1 year, 24h/day, 10 GetMessage call per second = $315,36 1 year, 24h/day, 1 GetMessage call per minute = $0,52 © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Units of Scale Pattern• Scaling Should Be done in units• A unit-of-Scale is a combination of components in multiple layers• Application Instances and a database should be considered as a unit-of-scale• If you add more compute instances you should add database/storage• Not necessary 1 to 1, but you should know how many instances a database can handle and add if needed.• Consider all mechanisms that have different scaling behavior, Queues, storage, blob drive IO, bandwidth…etc. © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Load Balancer Network Load Balancer Web Role 1 Round Robin Web Role 2 Web Role 3 Your Services © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Prepare for failure• Stateless• No server Affinity • Do not write data to the local filesystem • Write Data to Azure Storage• No sticky session • Avoid use session variables • Store State in SQL Azure • Redirect session state to AppFabric Caching• Resources are Shared © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Scaling Compute 321654 6 1.00987 98756 3 App 1.5567546 DB 7 0.68976 0 Add or Define Metrics and polling intervals Reduces the Scaling Engine instances count Changes de configuration Configuration © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Scaling Storage• Azure Storage supports huge volume tables• Table schema is part of your application• Huge Capacity • 100TB of storage per storage account • 5 storage accounts per subscription• Need of partitioning your tables to have a good response time• Azure will move Hot Partitions to separate nodes to Achieve SLA’s © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Azure tables Tables are partitioned to support load balancing across storage nodes partition key Unique row key timestamp table field1 field2 field3 © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Table Partitioning A 1 foo bar etc A 2 foo bar etc B 1 foo bar etc Partition A Partition B A 1 foo bar etc B 1 foo bar etc A 2 foo bar etc Storage node 1 Storage node 2 © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • SQL Azure Throttling /retry logic• Sharing a SQL Server node means Throttling to protect the other customers.• A connection to a SQL Azure Could be dropped unexpectedly.• Before issuing a command against a connection check if is still open, reopen it if close. © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Lander Publish View Landing Page Landing Page Presentation Commands QueriesWRITE READ Events Domain Model Query Model Landing Page Published Relational DB Query Store © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Lander and Windows Azure Admin Presentation State Consumer Presentation Azure Web Role Azure Web Role Query ModelCommands App FabricAzure Queue Cache Service Azure Worker Role Command Handlers Domain Model Event Handlers Azure Worker Role Events Azure Queue Relational DB Query Store Azure SQL Azure Blob © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Summary• Multiple benefits by going to the cloud High Availability, Elasticity, Low Cost Scalability and Performance Upgradability• Multiple design patters considerations to reach de benefits Application partitioning A sync architecture using queues Units of scale Stateless applications, cache management Data partitioning Retry logic on SQL Azure. © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • Thanks Juan De Abreu jdeabreu@getcs.com Twitter: juandeabreu Ph: 210 8073552 x 1702 Cell: 210 3862492 © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar