SlideShare a Scribd company logo
1 of 48
APRIL 17, 2012 | SLIDE 1
Architectural Patterns for the Cloud
     Maarten Balliauw
     @maartenballiauw


APRIL 17, 2012 | SLIDE 2
Who am I?
      Maarten Balliauw
      Antwerp, Belgium
      www.realdolmen.com
      Focus on web
          ASP.NET MVC, Windows Azure, SignalR, ...
          MVP Windows Azure & ASPInsider
  http://blog.maartenballiauw.be
  @maartenballiauw
  Author: Pro NuGet - http://amzn.to/pronuget
APRIL 17, 2012 | SLIDE 4
Agenda
      Quick recap: Windows Azure
      What’s different in the cloud?
      Rethinking apps
      Conclusion


APRIL 17, 2012 | SLIDE 5
Quick recap
       Windows Azure
APRIL 17, 2012 | SLIDE 6
Windows Azure is a cloud platform
      On-demand
      Self-service
      Pay per use
      Highly automated


APRIL 17, 2012 | SLIDE 7
Windows Azure Components

               Compute                  Storage         SQL Azure      Service Bus   Connect




        BI            Marketplace                 CDN                   Caching       ACS


Application Services                Storage Services                Foundation Services



 APRIL 17, 2012 | SLIDE 8
What’s different
       in the cloud?
APRIL 17, 2012 | SLIDE 9
Differences with your infrastructure
      Uniform
      Automated
      Designed for failure
      Designed for scale
      It’s not in your datacenter

APRIL 17, 2012 | SLIDE 10
Uniform
  Every machine +/- the same
  No specialized hardware
  No specialized OS*




APRIL 17, 2012 | SLIDE 11
Demo
       Customizing the Windows Azure virtual machine
APRIL 17, 2012 | SLIDE 12
Automated
  Makes decisions on provisioning &
   updating
  Monitors health
  The platform knows what’s best
          Not necessarily for your app…


APRIL 17, 2012 | SLIDE 13
Designed for failure



UD 1


UD 2


  APRIL 17, 2012 | SLIDE 14
Designed for scale
  Scale out
  Stateless




APRIL 17, 2012 | SLIDE 15
It’s not in your datacenter
  Integration
  Authentication




APRIL 17, 2012 | SLIDE 16
Rethinking apps
       What do I have to think about?
APRIL 17, 2012 | SLIDE 17
Scenario: Newspaper website
      National & International
      Sudden spikes in usage
      Dynamic content
      Static content


APRIL 17, 2012 | SLIDE 18
Current architecture
  Will work on the cloud!
  Will fail on the cloud!




APRIL 17, 2012 | SLIDE 19
Design for failure
APRIL 17, 2012 | SLIDE 20
Assume everything will fail
      Automated service maintenance
      Compute node crash
      Storage throttling
      SQL Azure throttling
      Connectivity
      Your code
APRIL 17, 2012 | SLIDE 21
Retry everything
 SQL Azure Error 40501
 The service is currently busy. Retry the
 request after 10 seconds.

 Retry against anything that might be external
         SQL Azure, Windows Azure Storage, Service Bus, …

  http://windowsazurecat.com/2011/02/transient-fault-
  handling-framework/
APRIL 17, 2012 | SLIDE 22
The entire datacenter fails!
  Run in 2+ datacenters
  Keep data synchronized
          All data
          or limit scope



APRIL 17, 2012 | SLIDE 23
Refactoring the architecture




APRIL 17, 2012 | SLIDE 24
Windows Azure Data Centers

                                   100ms

                            50ms




APRIL 17, 2012 | SLIDE 25
Windows Azure Traffic Manager




APRIL 17, 2012 | SLIDE 26
Windows Azure Traffic Manager
  Strategies
          Round-robin
          Fail-over
          Performance (geo)
  Solves datacenter outage

APRIL 17, 2012 | SLIDE 27
Are we there yet?




APRIL 17, 2012 | SLIDE 28
Solutions to a SPOF being down
  Set a monitoring endpoint for TM
  Take the entire datacenter out of the loop

  Take the SPOF out of the story
  Degrade gracefully

APRIL 17, 2012 | SLIDE 29
Refactoring our architecture




APRIL 17, 2012 | SLIDE 30
Design for scale
       *and failure
APRIL 17, 2012 | SLIDE 31
Belgians are not used to snow


                            What will happen to our
                                architecture?



APRIL 17, 2012 | SLIDE 32
Here’s what will happen…




APRIL 17, 2012 | SLIDE 33
Solution: scale out!
  Add more VM’s!
  Autoscaling (WASABi)
          Windows Azure Autoscaling Application Block
          Enterprise Library
          http://entlib.codeplex.com/wikipage?title=WASABiBet
           aReleaseNotes&referringTitle=EntLib5Azure




APRIL 17, 2012 | SLIDE 34
Solution: scale out!
  Add more VM’s!
  Autoscaling (as-a-Service)
          www.opstera.com




APRIL 17, 2012 | SLIDE 35
Here’s what will happen…




APRIL 17, 2012 | SLIDE 36
SQL Azure
  Monitored by the platform
  The platform does not like high DB traffic
          Throttling & retries




APRIL 17, 2012 | SLIDE 37
Caching
  Most of our users are doing reads
  Cache content near where it’s needed

  Windows Azure Caching
  Blob Storage

APRIL 17, 2012 | SLIDE 38
Refactoring our architecture




APRIL 17, 2012 | SLIDE 39
Caching
  How do you populate it?
  When do you populate it?
  When do you invalidate it?




APRIL 17, 2012 | SLIDE 40
Work asynchrounously
  Read from cache
  Present? Use cache
  Not present? Ask to cache it & read from
   DB



APRIL 17, 2012 | SLIDE 41
Refactoring our architecture




APRIL 17, 2012 | SLIDE 42
A typical web request…
  1 request is dynamic
  493 requests are static*

  Get that static content out of your servers!
          Cache content near where it’s needed

APRIL 17, 2012 | SLIDE 43
Windows Azure CDN




APRIL 17, 2012 | SLIDE 44
Refactoring our architecture




APRIL 17, 2012 | SLIDE 45
Conclusion
APRIL 17, 2012 | SLIDE 46
Key takeaways
      Cloud is different
      Design for failure
      Design for scale
      Work asynchronously
      Cache close to where it’s needed
      Also think price vs. Allowed outage
APRIL 17, 2012 | SLIDE 47
One more… Learn from others!
      Amazon - http://slidesha.re/AlaHIG
      Trello - http://bit.ly/xO5G9e
      YouPorn - http://bit.ly/yUSanQ
      StackOverflow - http://bit.ly/xkLvH9
      InstaGram - http://bit.ly/xbWuzx
      … (highscalability.com)
APRIL 17, 2012 | SLIDE 48
http://blog.maartenballiauw.be
                                               @maartenballiauw




                                   http://amzn.to/pronuget
                            or Install-Package ProNuGet

THANK YOU!
APRIL 17, 2012 | SLIDE 49

More Related Content

Viewers also liked

[Architecture ebook] peter zumthor thinking architecture161
[Architecture ebook] peter zumthor   thinking architecture161[Architecture ebook] peter zumthor   thinking architecture161
[Architecture ebook] peter zumthor thinking architecture161u
 
Mule integration patterns
Mule    integration patternsMule    integration patterns
Mule integration patternshimajareddys
 
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...Amazon Web Services
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSJinkyu Kim
 
1.1.2.a principles and elements of design applied to architecture
1.1.2.a principles and elements of design applied to architecture1.1.2.a principles and elements of design applied to architecture
1.1.2.a principles and elements of design applied to architectureAr Premlata Gupta
 
Peter zumthor
Peter zumthorPeter zumthor
Peter zumthorsakshi_1609
 
Principal of architecture
Principal of architecturePrincipal of architecture
Principal of architecturermeena99
 
Architectural Patterns for Streaming Applications
Architectural Patterns for Streaming ApplicationsArchitectural Patterns for Streaming Applications
Architectural Patterns for Streaming Applicationshadooparchbook
 
Architecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesArchitecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesAmazon Web Services
 
Architectural styles class 1
Architectural  styles class 1Architectural  styles class 1
Architectural styles class 1Dr Reeja S R
 
Traffic Congestion PowerPoint Presentation with Images
Traffic Congestion PowerPoint Presentation with ImagesTraffic Congestion PowerPoint Presentation with Images
Traffic Congestion PowerPoint Presentation with ImagesRoad Safety
 
Introduction to urban transportation
Introduction to urban transportationIntroduction to urban transportation
Introduction to urban transportationAli Alraouf
 
RESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web APIRESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web API💻 Spencer Schneidenbach
 
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...Michael Kehoe
 
Transport problems in urban india
Transport problems in urban indiaTransport problems in urban india
Transport problems in urban indiaNeha Budhiraja
 

Viewers also liked (20)

[Architecture ebook] peter zumthor thinking architecture161
[Architecture ebook] peter zumthor   thinking architecture161[Architecture ebook] peter zumthor   thinking architecture161
[Architecture ebook] peter zumthor thinking architecture161
 
Mule integration patterns
Mule    integration patternsMule    integration patterns
Mule integration patterns
 
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A...
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
 
1.1.2.a principles and elements of design applied to architecture
1.1.2.a principles and elements of design applied to architecture1.1.2.a principles and elements of design applied to architecture
1.1.2.a principles and elements of design applied to architecture
 
Peter zumthor
Peter zumthorPeter zumthor
Peter zumthor
 
URBAN TRANSPORT DEVELOPMENT PLANNING
URBAN TRANSPORT DEVELOPMENT PLANNINGURBAN TRANSPORT DEVELOPMENT PLANNING
URBAN TRANSPORT DEVELOPMENT PLANNING
 
Peter zumthor
Peter zumthorPeter zumthor
Peter zumthor
 
Principal of architecture
Principal of architecturePrincipal of architecture
Principal of architecture
 
Architectural Patterns for Streaming Applications
Architectural Patterns for Streaming ApplicationsArchitectural Patterns for Streaming Applications
Architectural Patterns for Streaming Applications
 
Architecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesArchitecting for the Cloud: Best Practices
Architecting for the Cloud: Best Practices
 
Architectural styles class 1
Architectural  styles class 1Architectural  styles class 1
Architectural styles class 1
 
Traffic Congestion PowerPoint Presentation with Images
Traffic Congestion PowerPoint Presentation with ImagesTraffic Congestion PowerPoint Presentation with Images
Traffic Congestion PowerPoint Presentation with Images
 
Introduction to urban transportation
Introduction to urban transportationIntroduction to urban transportation
Introduction to urban transportation
 
RESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web APIRESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web API
 
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
 
TRAFFIC JAM
TRAFFIC JAMTRAFFIC JAM
TRAFFIC JAM
 
Transport problems in urban india
Transport problems in urban indiaTransport problems in urban india
Transport problems in urban india
 
Traffic congestion
Traffic congestionTraffic congestion
Traffic congestion
 
Basic Theory of Architecture
Basic Theory of Architecture Basic Theory of Architecture
Basic Theory of Architecture
 

Similar to Architectural Patterns for the Cloud

Who Pulls the Strings?
Who Pulls the Strings?Who Pulls the Strings?
Who Pulls the Strings?Ronny Trommer
 
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access ControlOAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access ControlMaarten Balliauw
 
SDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the EnterpriseSDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the EnterpriseMaarten Balliauw
 
20111010 agile minds - organize your chickens - nuget for the enterprise
20111010 agile minds - organize your chickens - nuget for the enterprise20111010 agile minds - organize your chickens - nuget for the enterprise
20111010 agile minds - organize your chickens - nuget for the enterpriseXavier Decoster
 
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...hannonhill
 
MSDN Live - CI using TFS11 & NuGet
MSDN Live - CI using TFS11 & NuGetMSDN Live - CI using TFS11 & NuGet
MSDN Live - CI using TFS11 & NuGetXavier Decoster
 
Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14AMD Developer Central
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...VISEO
 
Easier with visual studio productivity tools
Easier with visual studio productivity toolsEasier with visual studio productivity tools
Easier with visual studio productivity toolsChris Eargle
 
Ostd.ksplice.talk
Ostd.ksplice.talkOstd.ksplice.talk
Ostd.ksplice.talkUdo Seidel
 
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...NCCOMMS
 
Montée en version de 300 bases de données vers Oracle 12c en 300 jours. Quel...
Montée en version de 300 bases de données vers Oracle 12c en 300 jours.  Quel...Montée en version de 300 bases de données vers Oracle 12c en 300 jours.  Quel...
Montée en version de 300 bases de données vers Oracle 12c en 300 jours. Quel...Swiss Data Forum Swiss Data Forum
 
Florin Loghiade - Windows Server & SCVMM 2012 R2
Florin Loghiade - Windows Server & SCVMM 2012 R2Florin Loghiade - Windows Server & SCVMM 2012 R2
Florin Loghiade - Windows Server & SCVMM 2012 R2ITSpark Community
 
13 - Panorama Necto 14 building models - visualization & data discovery solu...
13  - Panorama Necto 14 building models - visualization & data discovery solu...13  - Panorama Necto 14 building models - visualization & data discovery solu...
13 - Panorama Necto 14 building models - visualization & data discovery solu...Panorama Software
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDoku
 
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...Phil Wilkins
 
2012 mct summit presentation final
2012 mct summit presentation final2012 mct summit presentation final
2012 mct summit presentation finalDmitri Artamonov
 

Similar to Architectural Patterns for the Cloud (20)

Who Pulls the Strings?
Who Pulls the Strings?Who Pulls the Strings?
Who Pulls the Strings?
 
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access ControlOAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control
 
SDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the EnterpriseSDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the Enterprise
 
20111010 agile minds - organize your chickens - nuget for the enterprise
20111010 agile minds - organize your chickens - nuget for the enterprise20111010 agile minds - organize your chickens - nuget for the enterprise
20111010 agile minds - organize your chickens - nuget for the enterprise
 
SharePoint 2013 REST and CSOM
SharePoint 2013 REST  and CSOMSharePoint 2013 REST  and CSOM
SharePoint 2013 REST and CSOM
 
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
 
MSDN Live - CI using TFS11 & NuGet
MSDN Live - CI using TFS11 & NuGetMSDN Live - CI using TFS11 & NuGet
MSDN Live - CI using TFS11 & NuGet
 
Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
 
Easier with visual studio productivity tools
Easier with visual studio productivity toolsEasier with visual studio productivity tools
Easier with visual studio productivity tools
 
Ostd.ksplice.talk
Ostd.ksplice.talkOstd.ksplice.talk
Ostd.ksplice.talk
 
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ...
 
Montée en version de 300 bases de données vers Oracle 12c en 300 jours. Quel...
Montée en version de 300 bases de données vers Oracle 12c en 300 jours.  Quel...Montée en version de 300 bases de données vers Oracle 12c en 300 jours.  Quel...
Montée en version de 300 bases de données vers Oracle 12c en 300 jours. Quel...
 
Florin Loghiade - Windows Server & SCVMM 2012 R2
Florin Loghiade - Windows Server & SCVMM 2012 R2Florin Loghiade - Windows Server & SCVMM 2012 R2
Florin Loghiade - Windows Server & SCVMM 2012 R2
 
Why angular?
Why angular?Why angular?
Why angular?
 
13 - Panorama Necto 14 building models - visualization & data discovery solu...
13  - Panorama Necto 14 building models - visualization & data discovery solu...13  - Panorama Necto 14 building models - visualization & data discovery solu...
13 - Panorama Necto 14 building models - visualization & data discovery solu...
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi...
 
2012 mct summit presentation final
2012 mct summit presentation final2012 mct summit presentation final
2012 mct summit presentation final
 

More from Maarten Balliauw

Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxMaarten Balliauw
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Maarten Balliauw
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceMaarten Balliauw
 
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Maarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...Maarten Balliauw
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...Maarten Balliauw
 
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...Maarten Balliauw
 
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se....NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...Maarten Balliauw
 
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...Maarten Balliauw
 
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and SearchNDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and SearchMaarten Balliauw
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandApproaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandMaarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...Maarten Balliauw
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneMaarten Balliauw
 
CodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory laneCodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory laneMaarten Balliauw
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
 
ConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttlingConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttlingMaarten Balliauw
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Maarten Balliauw
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...Maarten Balliauw
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETMaarten Balliauw
 
VISUG - Approaches for application request throttling
VISUG - Approaches for application request throttlingVISUG - Approaches for application request throttling
VISUG - Approaches for application request throttlingMaarten Balliauw
 

More from Maarten Balliauw (20)

Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
 
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
 
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
 
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se....NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
 
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
 
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and SearchNDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandApproaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days Poland
 
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
 
CodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory laneCodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory lane
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
ConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttlingConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttling
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NET
 
VISUG - Approaches for application request throttling
VISUG - Approaches for application request throttlingVISUG - Approaches for application request throttling
VISUG - Approaches for application request throttling
 

Recently uploaded

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 

Architectural Patterns for the Cloud

  • 1. APRIL 17, 2012 | SLIDE 1
  • 2. Architectural Patterns for the Cloud Maarten Balliauw @maartenballiauw APRIL 17, 2012 | SLIDE 2
  • 3. Who am I?  Maarten Balliauw  Antwerp, Belgium  www.realdolmen.com  Focus on web  ASP.NET MVC, Windows Azure, SignalR, ...  MVP Windows Azure & ASPInsider  http://blog.maartenballiauw.be  @maartenballiauw  Author: Pro NuGet - http://amzn.to/pronuget APRIL 17, 2012 | SLIDE 4
  • 4. Agenda  Quick recap: Windows Azure  What’s different in the cloud?  Rethinking apps  Conclusion APRIL 17, 2012 | SLIDE 5
  • 5. Quick recap Windows Azure APRIL 17, 2012 | SLIDE 6
  • 6. Windows Azure is a cloud platform  On-demand  Self-service  Pay per use  Highly automated APRIL 17, 2012 | SLIDE 7
  • 7. Windows Azure Components Compute Storage SQL Azure Service Bus Connect BI Marketplace CDN Caching ACS Application Services Storage Services Foundation Services APRIL 17, 2012 | SLIDE 8
  • 8. What’s different in the cloud? APRIL 17, 2012 | SLIDE 9
  • 9. Differences with your infrastructure  Uniform  Automated  Designed for failure  Designed for scale  It’s not in your datacenter APRIL 17, 2012 | SLIDE 10
  • 10. Uniform  Every machine +/- the same  No specialized hardware  No specialized OS* APRIL 17, 2012 | SLIDE 11
  • 11. Demo Customizing the Windows Azure virtual machine APRIL 17, 2012 | SLIDE 12
  • 12. Automated  Makes decisions on provisioning & updating  Monitors health  The platform knows what’s best  Not necessarily for your app… APRIL 17, 2012 | SLIDE 13
  • 13. Designed for failure UD 1 UD 2 APRIL 17, 2012 | SLIDE 14
  • 14. Designed for scale  Scale out  Stateless APRIL 17, 2012 | SLIDE 15
  • 15. It’s not in your datacenter  Integration  Authentication APRIL 17, 2012 | SLIDE 16
  • 16. Rethinking apps What do I have to think about? APRIL 17, 2012 | SLIDE 17
  • 17. Scenario: Newspaper website  National & International  Sudden spikes in usage  Dynamic content  Static content APRIL 17, 2012 | SLIDE 18
  • 18. Current architecture  Will work on the cloud!  Will fail on the cloud! APRIL 17, 2012 | SLIDE 19
  • 19. Design for failure APRIL 17, 2012 | SLIDE 20
  • 20. Assume everything will fail  Automated service maintenance  Compute node crash  Storage throttling  SQL Azure throttling  Connectivity  Your code APRIL 17, 2012 | SLIDE 21
  • 21. Retry everything SQL Azure Error 40501 The service is currently busy. Retry the request after 10 seconds. Retry against anything that might be external SQL Azure, Windows Azure Storage, Service Bus, … http://windowsazurecat.com/2011/02/transient-fault- handling-framework/ APRIL 17, 2012 | SLIDE 22
  • 22. The entire datacenter fails!  Run in 2+ datacenters  Keep data synchronized  All data  or limit scope APRIL 17, 2012 | SLIDE 23
  • 23. Refactoring the architecture APRIL 17, 2012 | SLIDE 24
  • 24. Windows Azure Data Centers 100ms 50ms APRIL 17, 2012 | SLIDE 25
  • 25. Windows Azure Traffic Manager APRIL 17, 2012 | SLIDE 26
  • 26. Windows Azure Traffic Manager  Strategies  Round-robin  Fail-over  Performance (geo)  Solves datacenter outage APRIL 17, 2012 | SLIDE 27
  • 27. Are we there yet? APRIL 17, 2012 | SLIDE 28
  • 28. Solutions to a SPOF being down  Set a monitoring endpoint for TM  Take the entire datacenter out of the loop  Take the SPOF out of the story  Degrade gracefully APRIL 17, 2012 | SLIDE 29
  • 29. Refactoring our architecture APRIL 17, 2012 | SLIDE 30
  • 30. Design for scale *and failure APRIL 17, 2012 | SLIDE 31
  • 31. Belgians are not used to snow What will happen to our architecture? APRIL 17, 2012 | SLIDE 32
  • 32. Here’s what will happen… APRIL 17, 2012 | SLIDE 33
  • 33. Solution: scale out!  Add more VM’s!  Autoscaling (WASABi)  Windows Azure Autoscaling Application Block  Enterprise Library  http://entlib.codeplex.com/wikipage?title=WASABiBet aReleaseNotes&referringTitle=EntLib5Azure APRIL 17, 2012 | SLIDE 34
  • 34. Solution: scale out!  Add more VM’s!  Autoscaling (as-a-Service)  www.opstera.com APRIL 17, 2012 | SLIDE 35
  • 35. Here’s what will happen… APRIL 17, 2012 | SLIDE 36
  • 36. SQL Azure  Monitored by the platform  The platform does not like high DB traffic  Throttling & retries APRIL 17, 2012 | SLIDE 37
  • 37. Caching  Most of our users are doing reads  Cache content near where it’s needed  Windows Azure Caching  Blob Storage APRIL 17, 2012 | SLIDE 38
  • 38. Refactoring our architecture APRIL 17, 2012 | SLIDE 39
  • 39. Caching  How do you populate it?  When do you populate it?  When do you invalidate it? APRIL 17, 2012 | SLIDE 40
  • 40. Work asynchrounously  Read from cache  Present? Use cache  Not present? Ask to cache it & read from DB APRIL 17, 2012 | SLIDE 41
  • 41. Refactoring our architecture APRIL 17, 2012 | SLIDE 42
  • 42. A typical web request…  1 request is dynamic  493 requests are static*  Get that static content out of your servers!  Cache content near where it’s needed APRIL 17, 2012 | SLIDE 43
  • 43. Windows Azure CDN APRIL 17, 2012 | SLIDE 44
  • 44. Refactoring our architecture APRIL 17, 2012 | SLIDE 45
  • 46. Key takeaways  Cloud is different  Design for failure  Design for scale  Work asynchronously  Cache close to where it’s needed  Also think price vs. Allowed outage APRIL 17, 2012 | SLIDE 47
  • 47. One more… Learn from others!  Amazon - http://slidesha.re/AlaHIG  Trello - http://bit.ly/xO5G9e  YouPorn - http://bit.ly/yUSanQ  StackOverflow - http://bit.ly/xkLvH9  InstaGram - http://bit.ly/xbWuzx  … (highscalability.com) APRIL 17, 2012 | SLIDE 48
  • 48. http://blog.maartenballiauw.be @maartenballiauw http://amzn.to/pronuget or Install-Package ProNuGet THANK YOU! APRIL 17, 2012 | SLIDE 49

Editor's Notes

  1. Maarten
  2. Kinepolis: veel static content / in-frame caching
  3. Show DemoUniformDemonstrate OS choice in ServiceConfiguration.Cloud.cscfg (osFamily2)Demonstrate run withstartup scriptDemonstratestartup scriptExplainxpath in ServiceDefinition.csdeftoretrieve Azure variables in the environment
  4. Tell health is monitored, but more towards Azure. For example: throttling!