SlideShare una empresa de Scribd logo
1 de 23
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                                                Queries
WRITE




                                                                                              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 Model

Commands                                       App Fabric
Azure 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

Más contenido relacionado

La actualidad más candente

Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The CloudTricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
MySQLConference
 
Rails and iOS with RestKit
Rails and iOS with RestKitRails and iOS with RestKit
Rails and iOS with RestKit
Andrew Culver
 
Build the foundation for Private Cloud
Build the foundation for Private CloudBuild the foundation for Private Cloud
Build the foundation for Private Cloud
AppZero
 
13h00 p duff-building-applications-with-aws-final
13h00   p duff-building-applications-with-aws-final13h00   p duff-building-applications-with-aws-final
13h00 p duff-building-applications-with-aws-final
Luiz Gustavo Santos
 

La actualidad más candente (20)

AWS Customer Presentation – What's Up Interactive – AWS Cloud Storage for the...
AWS Customer Presentation – What's Up Interactive – AWS Cloud Storage for the...AWS Customer Presentation – What's Up Interactive – AWS Cloud Storage for the...
AWS Customer Presentation – What's Up Interactive – AWS Cloud Storage for the...
 
JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...
JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...
JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...
 
Acquia Managed Cloud: Highly Available Architecture for Highly Unpredictable ...
Acquia Managed Cloud: Highly Available Architecture for Highly Unpredictable ...Acquia Managed Cloud: Highly Available Architecture for Highly Unpredictable ...
Acquia Managed Cloud: Highly Available Architecture for Highly Unpredictable ...
 
C fowler intro-azure
C fowler intro-azureC fowler intro-azure
C fowler intro-azure
 
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
 
Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1
 
Weblogic Server
Weblogic ServerWeblogic Server
Weblogic Server
 
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The CloudTricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
Tricks And Tradeoffs Of Deploying My Sql Clusters In The Cloud
 
Rails and iOS with RestKit
Rails and iOS with RestKitRails and iOS with RestKit
Rails and iOS with RestKit
 
MBL303 Scalable Mobile and Web Apps - AWS re: Invent 2012
MBL303 Scalable Mobile and Web Apps - AWS re: Invent 2012MBL303 Scalable Mobile and Web Apps - AWS re: Invent 2012
MBL303 Scalable Mobile and Web Apps - AWS re: Invent 2012
 
Build the foundation for Private Cloud
Build the foundation for Private CloudBuild the foundation for Private Cloud
Build the foundation for Private Cloud
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 
Hyper-V Dynamic Memory in Depth
Hyper-V Dynamic Memory in Depth Hyper-V Dynamic Memory in Depth
Hyper-V Dynamic Memory in Depth
 
Prodware wa college - marcel meijer
Prodware   wa college - marcel meijerProdware   wa college - marcel meijer
Prodware wa college - marcel meijer
 
AWS Case Study
AWS Case StudyAWS Case Study
AWS Case Study
 
Microsoft TechDays 2013 - IT Pro Keynote
Microsoft TechDays 2013 - IT Pro KeynoteMicrosoft TechDays 2013 - IT Pro Keynote
Microsoft TechDays 2013 - IT Pro Keynote
 
13h00 p duff-building-applications-with-aws-final
13h00   p duff-building-applications-with-aws-final13h00   p duff-building-applications-with-aws-final
13h00 p duff-building-applications-with-aws-final
 
Building Applications with AWS
Building Applications with AWSBuilding Applications with AWS
Building Applications with AWS
 
Games + Amazon = Love - Presentation quo vadis 2011
Games + Amazon = Love - Presentation quo vadis 2011Games + Amazon = Love - Presentation quo vadis 2011
Games + Amazon = Love - Presentation quo vadis 2011
 
Forbidden fruits of Active Directory – Cloning, snapshotting, virtualization
Forbidden fruits of Active Directory  –  Cloning, snapshotting, virtualization Forbidden fruits of Active Directory  –  Cloning, snapshotting, virtualization
Forbidden fruits of Active Directory – Cloning, snapshotting, virtualization
 

Destacado

Open stack design 2012 applications targeting openstack-final
Open stack design 2012   applications targeting openstack-finalOpen stack design 2012   applications targeting openstack-final
Open stack design 2012 applications targeting openstack-final
rhirschfeld
 
SaaS and Multi-Tenancy – Foundational Concepts
SaaS and Multi-Tenancy – Foundational ConceptsSaaS and Multi-Tenancy – Foundational Concepts
SaaS and Multi-Tenancy – Foundational Concepts
Jeelani Shaik
 

Destacado (20)

Cloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azureCloud application architecture with sql azure and windows azure
Cloud application architecture with sql azure and windows azure
 
Internet of Things - Enablement by Techcello
Internet of Things - Enablement by TechcelloInternet of Things - Enablement by Techcello
Internet of Things - Enablement by Techcello
 
Getting started with microsoft azure in 30 mins
Getting started with microsoft azure in 30 minsGetting started with microsoft azure in 30 mins
Getting started with microsoft azure in 30 mins
 
Inevitability of Multi-Tenancy & SAAS in Product Engineering
Inevitability of Multi-Tenancy & SAAS in Product EngineeringInevitability of Multi-Tenancy & SAAS in Product Engineering
Inevitability of Multi-Tenancy & SAAS in Product Engineering
 
Open stack design 2012 applications targeting openstack-final
Open stack design 2012   applications targeting openstack-finalOpen stack design 2012   applications targeting openstack-final
Open stack design 2012 applications targeting openstack-final
 
OpenServerSummit: Operating Hybrid Infrastructure
OpenServerSummit:  Operating Hybrid InfrastructureOpenServerSummit:  Operating Hybrid Infrastructure
OpenServerSummit: Operating Hybrid Infrastructure
 
Achieving Multi-tenanted Business Processes in SaaS Applications
Achieving Multi-tenanted Business Processes in SaaS Applications  Achieving Multi-tenanted Business Processes in SaaS Applications
Achieving Multi-tenanted Business Processes in SaaS Applications
 
Data Migration and Data-Tier Applications with SQL Azure
Data Migration and Data-Tier Applications with SQL AzureData Migration and Data-Tier Applications with SQL Azure
Data Migration and Data-Tier Applications with SQL Azure
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructure
 
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
 
Azure search
Azure searchAzure search
Azure search
 
SaaS and Multi-Tenancy – Foundational Concepts
SaaS and Multi-Tenancy – Foundational ConceptsSaaS and Multi-Tenancy – Foundational Concepts
SaaS and Multi-Tenancy – Foundational Concepts
 
Diese wichtigen britischen straßenschilder sollten sie kennen
Diese wichtigen britischen straßenschilder sollten sie kennenDiese wichtigen britischen straßenschilder sollten sie kennen
Diese wichtigen britischen straßenschilder sollten sie kennen
 
BP Project History
BP Project HistoryBP Project History
BP Project History
 
Put Your Existing Application On Windows Azure
Put Your Existing Application On Windows AzurePut Your Existing Application On Windows Azure
Put Your Existing Application On Windows Azure
 
EEDC 2010. Scaling SaaS Applications
EEDC 2010. Scaling SaaS ApplicationsEEDC 2010. Scaling SaaS Applications
EEDC 2010. Scaling SaaS Applications
 
Windows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongWindows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan Wong
 
IoT & Azure (EventHub)
IoT & Azure (EventHub)IoT & Azure (EventHub)
IoT & Azure (EventHub)
 
Top 30 Must Read Blogs about Content Marketing
Top 30 Must Read Blogs about Content MarketingTop 30 Must Read Blogs about Content Marketing
Top 30 Must Read Blogs about Content Marketing
 
Plan, prepare & overall process of upgrade and migrate to SharePoint 2013
Plan, prepare & overall process of upgrade and migrate to SharePoint 2013Plan, prepare & overall process of upgrade and migrate to SharePoint 2013
Plan, prepare & overall process of upgrade and migrate to SharePoint 2013
 

Similar a Leverage Azure and SQL Azure to build SaaS applications

Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Michaël Figuière
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EE
Dmitri Shiryaev
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matter
Tomas Doran
 
Opscode-Eucalyptus Webinar 20110721
 Opscode-Eucalyptus Webinar 20110721 Opscode-Eucalyptus Webinar 20110721
Opscode-Eucalyptus Webinar 20110721
Chef Software, Inc.
 
Amazon shafaq v6-10-12-11
Amazon shafaq v6-10-12-11Amazon shafaq v6-10-12-11
Amazon shafaq v6-10-12-11
Shafaq Abdullah
 
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions  - Deploy and manage tomorrow's applications todayVMware - Snapshot sessions  - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
AnnSteyaert_vmware
 
Best Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWSBest Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWS
Amazon Web Services
 
Erlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputErlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to Throughput
Wooga
 

Similar a Leverage Azure and SQL Azure to build SaaS applications (20)

Cloud Computing - Making IT Simple
 Cloud Computing - Making IT Simple Cloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
 
Cloud Computing: Making IT Simple
Cloud Computing: Making IT SimpleCloud Computing: Making IT Simple
Cloud Computing: Making IT Simple
 
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
Xebia Knowledge Exchange (jan 2011) - Trends in Enterprise Applications Archi...
 
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EE
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matter
 
Opscode-Eucalyptus Webinar 20110721
 Opscode-Eucalyptus Webinar 20110721 Opscode-Eucalyptus Webinar 20110721
Opscode-Eucalyptus Webinar 20110721
 
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo RamassoServer Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
 
Oracle Fusion Middleware - pragmatic approach to build up your applications -...
Oracle Fusion Middleware - pragmatic approach to build up your applications -...Oracle Fusion Middleware - pragmatic approach to build up your applications -...
Oracle Fusion Middleware - pragmatic approach to build up your applications -...
 
Amazon shafaq v6-10-12-11
Amazon shafaq v6-10-12-11Amazon shafaq v6-10-12-11
Amazon shafaq v6-10-12-11
 
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions  - Deploy and manage tomorrow's applications todayVMware - Snapshot sessions  - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that Grow
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million Users
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million Users
 
Patterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWSPatterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWS
 
Best Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWSBest Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWS
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughput
 
Erlang as a Cloud Citizen
Erlang as a Cloud CitizenErlang as a Cloud Citizen
Erlang as a Cloud Citizen
 
Erlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputErlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to Throughput
 
What's new in Exchange 2013?
What's new in Exchange 2013?What's new in Exchange 2013?
What's new in Exchange 2013?
 

Más de Common Sense

How to scale up, out or down in Windows Azure
How to scale up, out or down in Windows AzureHow to scale up, out or down in Windows Azure
How to scale up, out or down in Windows Azure
Common Sense
 
The Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense WebinarThe Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense Webinar
Common Sense
 

Más de Common Sense (8)

How to scale up, out or down in Windows Azure
How to scale up, out or down in Windows AzureHow to scale up, out or down in Windows Azure
How to scale up, out or down in Windows Azure
 
Innovation in Outsourcing & Reserach
Innovation in Outsourcing & ReserachInnovation in Outsourcing & Reserach
Innovation in Outsourcing & Reserach
 
Webinar: How Microsoft is changing the game with Windows Azure
Webinar: How Microsoft is changing the game with Windows AzureWebinar: How Microsoft is changing the game with Windows Azure
Webinar: How Microsoft is changing the game with Windows Azure
 
How to develop a WP7 app?
How to develop a WP7 app?How to develop a WP7 app?
How to develop a WP7 app?
 
How to scale up, out or down in Windows Azure - Webinar
How to scale up, out or down in Windows Azure - WebinarHow to scale up, out or down in Windows Azure - Webinar
How to scale up, out or down in Windows Azure - Webinar
 
The Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense WebinarThe Azure Platform. Common Sense Webinar
The Azure Platform. Common Sense Webinar
 
Windows Azure PaaS - Webinar Common Sense
Windows Azure PaaS - Webinar Common SenseWindows Azure PaaS - Webinar Common Sense
Windows Azure PaaS - Webinar Common Sense
 
Mobile Marketing Tips
Mobile Marketing TipsMobile Marketing Tips
Mobile Marketing Tips
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Leverage Azure and SQL Azure to build SaaS applications

  • 1. 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
  • 2. Twitter # csWebinar © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • 3. 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
  • 4. 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
  • 5. Azure Overview © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. Lander Publish View Landing Page Landing Page Presentation Commands Queries WRITE READ Events Domain Model Query Model Landing Page Published Relational DB Query Store © Copyright 2011 Common Sense LLC www.GetCS.com #CSWebinar
  • 21. Lander and Windows Azure Admin Presentation State Consumer Presentation Azure Web Role Azure Web Role Query Model Commands App Fabric Azure 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
  • 22. 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
  • 23. 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