Architectural Patterns for the Cloud

Maarten Balliauw
Maarten BalliauwDeveloper Advocate
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
1 of 48

Recommended

Brewing Beer with Windows Azure UKWAUG by
Brewing Beerwith Windows Azure UKWAUGBrewing Beerwith Windows Azure UKWAUG
Brewing Beer with Windows Azure UKWAUGMaarten Balliauw
1.4K views53 slides
The latest technology by
The latest technologyThe latest technology
The latest technologyArt 37
236 views47 slides
Share point external-data by
Share point external-dataShare point external-data
Share point external-dataPushkar Chivate
326 views22 slides
1 logical data models for cc arch by
1 logical data models for cc arch1 logical data models for cc arch
1 logical data models for cc archzafargilani
642 views10 slides
Cloud architectural patterns and Microsoft Azure tools by
Cloud architectural patterns and Microsoft Azure toolsCloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure toolsPushkar Chivate
1.5K views43 slides
Hadoop - Integration Patterns and Practices__HadoopSummit2010 by
Hadoop - Integration Patterns and Practices__HadoopSummit2010Hadoop - Integration Patterns and Practices__HadoopSummit2010
Hadoop - Integration Patterns and Practices__HadoopSummit2010Yahoo Developer Network
1.6K views21 slides

More Related Content

Viewers also liked

[Architecture ebook] peter zumthor thinking architecture161 by
[Architecture ebook] peter zumthor   thinking architecture161[Architecture ebook] peter zumthor   thinking architecture161
[Architecture ebook] peter zumthor thinking architecture161u
6K views33 slides
Mule integration patterns by
Mule    integration patternsMule    integration patterns
Mule integration patternshimajareddys
795 views8 slides
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A... by
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
1.7K views93 slides
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS by
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
2.6K views38 slides
1.1.2.a principles and elements of design applied to architecture by
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
20.7K views38 slides
Peter zumthor by
Peter zumthorPeter zumthor
Peter zumthorvikashsaini78
15.5K views47 slides

Viewers also liked(20)

[Architecture ebook] peter zumthor thinking architecture161 by u
[Architecture ebook] peter zumthor   thinking architecture161[Architecture ebook] peter zumthor   thinking architecture161
[Architecture ebook] peter zumthor thinking architecture161
u6K views
Mule integration patterns by himajareddys
Mule    integration patternsMule    integration patterns
Mule integration patterns
himajareddys795 views
AWS re:Invent 2016: From Resilience to Ubiquity - #NetflixEverywhere Global A... by Amazon Web Services
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 Services1.7K views
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS by Jinkyu Kim
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
Jinkyu Kim2.6K views
1.1.2.a principles and elements of design applied to architecture by Ar Premlata Gupta
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
Ar Premlata Gupta20.7K views
Peter zumthor by sakshi_1609
Peter zumthorPeter zumthor
Peter zumthor
sakshi_16098.2K views
Principal of architecture by rmeena99
Principal of architecturePrincipal of architecture
Principal of architecture
rmeena9939K views
Architectural Patterns for Streaming Applications by hadooparchbook
Architectural Patterns for Streaming ApplicationsArchitectural Patterns for Streaming Applications
Architectural Patterns for Streaming Applications
hadooparchbook2.8K views
Architectural styles class 1 by Dr Reeja S R
Architectural  styles class 1Architectural  styles class 1
Architectural styles class 1
Dr Reeja S R226 views
Traffic Congestion PowerPoint Presentation with Images by Road Safety
Traffic Congestion PowerPoint Presentation with ImagesTraffic Congestion PowerPoint Presentation with Images
Traffic Congestion PowerPoint Presentation with Images
Road Safety21.7K views
Introduction to urban transportation by Ali Alraouf
Introduction to urban transportationIntroduction to urban transportation
Introduction to urban transportation
Ali Alraouf8.5K views
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ... by Michael Kehoe
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 Kehoe534 views
Transport problems in urban india by Neha Budhiraja
Transport problems in urban indiaTransport problems in urban india
Transport problems in urban india
Neha Budhiraja42.9K views

Similar to Architectural Patterns for the Cloud

Who Pulls the Strings? by
Who Pulls the Strings?Who Pulls the Strings?
Who Pulls the Strings?Ronny Trommer
46 views47 slides
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control by
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
4.2K views40 slides
SDC Sweden - Organize your chickens - NuGet for the Enterprise by
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
1.1K views39 slides
20111010 agile minds - organize your chickens - nuget for the enterprise by
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
972 views51 slides
SharePoint 2013 REST and CSOM by
SharePoint 2013 REST  and CSOMSharePoint 2013 REST  and CSOM
SharePoint 2013 REST and CSOMUsama Wahab Khan Cloud, Data and AI
2.3K views28 slides
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T... by
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
2.2K views30 slides

Similar to Architectural Patterns for the Cloud(20)

OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control by Maarten Balliauw
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
Maarten Balliauw4.2K views
SDC Sweden - Organize your chickens - NuGet for the Enterprise by Maarten Balliauw
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
Maarten Balliauw1.1K views
20111010 agile minds - organize your chickens - nuget for the enterprise by Xavier Decoster
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
Xavier Decoster972 views
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T... by hannonhill
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...
hannonhill2.2K views
MSDN Live - CI using TFS11 & NuGet by Xavier Decoster
MSDN Live - CI using TFS11 & NuGetMSDN Live - CI using TFS11 & NuGet
MSDN Live - CI using TFS11 & NuGet
Xavier Decoster1.2K views
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI... by VISEO
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...
VISEO5.9K views
Easier with visual studio productivity tools by Chris Eargle
Easier with visual studio productivity toolsEasier with visual studio productivity tools
Easier with visual studio productivity tools
Chris Eargle499 views
Ostd.ksplice.talk by Udo Seidel
Ostd.ksplice.talkOstd.ksplice.talk
Ostd.ksplice.talk
Udo Seidel401 views
O365Engage17 - Architecting cloud only solutions with office 365, azure, and ... by NCCOMMS
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 ...
NCCOMMS99 views
Florin Loghiade - Windows Server & SCVMM 2012 R2 by ITSpark Community
Florin Loghiade - Windows Server & SCVMM 2012 R2Florin Loghiade - Windows Server & SCVMM 2012 R2
Florin Loghiade - Windows Server & SCVMM 2012 R2
ITSpark Community877 views
13 - Panorama Necto 14 building models - visualization & data discovery solu... by Panorama Software
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 Software646 views
DocDoku: Using web technologies in a desktop application. OW2con'15, November... by OW2
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...
OW2357 views
DocDokuPLM presentation - OW2Con 2015 Community Award winner by DocDoku
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDoku3.1K views
Oracle ICS Best Practises - 1st Presented at Oracle Partner PaaS Forum by Phi... by Phil Wilkins
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 Wilkins7.2K views

More from Maarten Balliauw

Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s... by
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
360 views64 slides
Building a friendly .NET SDK to connect to Space by
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
182 views47 slides
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo... by
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
406 views52 slides
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday... by
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
180 views32 slides
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain... by
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
326 views53 slides
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m... by
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
280 views42 slides

More from Maarten Balliauw(20)

Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s... by Maarten 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...
Maarten Balliauw360 views
Building a friendly .NET SDK to connect to Space by Maarten Balliauw
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
Maarten Balliauw182 views
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo... by Maarten 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...
Maarten Balliauw406 views
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday... by 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...
Maarten Balliauw180 views
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain... by 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...
Maarten Balliauw326 views
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m... by 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...
Maarten Balliauw280 views
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se... by 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...
Maarten Balliauw290 views
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S... by 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...
Maarten Balliauw564 views
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search by Maarten Balliauw
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
Maarten Balliauw958 views
Approaches for application request throttling - Cloud Developer Days Poland by Maarten Balliauw
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
Maarten Balliauw1.1K views
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve... by Maarten 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...
Maarten Balliauw1.1K views
Approaches for application request throttling - dotNetCologne by Maarten Balliauw
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
Maarten Balliauw246 views
CodeStock - Exploring .NET memory management - a trip down memory lane by Maarten Balliauw
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
Maarten Balliauw1.9K views
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain... by Maarten 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...
Maarten Balliauw1.2K views
ConFoo Montreal - Approaches for application request throttling by Maarten Balliauw
ConFoo Montreal - Approaches for application request throttlingConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttling
Maarten Balliauw1.2K views
Microservices for building an IDE – The innards of JetBrains Rider - TechDays... by Maarten 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...
Maarten Balliauw10.5K views
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory... by 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...
Maarten Balliauw1.1K views
DotNetFest - Let’s refresh our memory! Memory management in .NET by Maarten Balliauw
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
Maarten Balliauw480 views
VISUG - Approaches for application request throttling by Maarten Balliauw
VISUG - Approaches for application request throttlingVISUG - Approaches for application request throttling
VISUG - Approaches for application request throttling
Maarten Balliauw817 views
What is going on - Application diagnostics on Azure - TechDays Finland by Maarten Balliauw
What is going on - Application diagnostics on Azure - TechDays FinlandWhat is going on - Application diagnostics on Azure - TechDays Finland
What is going on - Application diagnostics on Azure - TechDays Finland
Maarten Balliauw746 views

Recently uploaded

Qualifying SaaS, IaaS.pptx by
Qualifying SaaS, IaaS.pptxQualifying SaaS, IaaS.pptx
Qualifying SaaS, IaaS.pptxSachin Bhandari
1.1K views8 slides
LLMs in Production: Tooling, Process, and Team Structure by
LLMs in Production: Tooling, Process, and Team StructureLLMs in Production: Tooling, Process, and Team Structure
LLMs in Production: Tooling, Process, and Team StructureAggregage
57 views77 slides
Initiating and Advancing Your Strategic GIS Governance Strategy by
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance StrategySafe Software
184 views68 slides
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
265 views23 slides
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...ShapeBlue
129 views10 slides
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...Jasper Oosterveld
35 views49 slides

Recently uploaded(20)

LLMs in Production: Tooling, Process, and Team Structure by Aggregage
LLMs in Production: Tooling, Process, and Team StructureLLMs in Production: Tooling, Process, and Team Structure
LLMs in Production: Tooling, Process, and Team Structure
Aggregage57 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software184 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue265 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue129 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Optimizing Communication to Optimize Human Behavior - LCBM by Yaman Kumar
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBM
Yaman Kumar38 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue139 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays58 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue225 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue178 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue208 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays36 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash162 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue199 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue108 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue164 views

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!