SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Destaque

[Architecture ebook] peter zumthor thinking architecture161
[Architecture ebook] peter zumthor   thinking architecture161[Architecture ebook] peter zumthor   thinking architecture161
[Architecture ebook] peter zumthor thinking architecture161
u
 
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
Ar Premlata Gupta
 
Transport problems in urban india
Transport problems in urban indiaTransport problems in urban india
Transport problems in urban india
Neha Budhiraja
 

Destaque (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
 

Semelhante a Architectural Patterns for the Cloud

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
Maarten 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 Enterprise
Maarten 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 enterprise
Xavier Decoster
 
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
 
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
ITSpark Community
 
2012 mct summit presentation final
2012 mct summit presentation final2012 mct summit presentation final
2012 mct summit presentation final
Dmitri Artamonov
 

Semelhante a 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
 

Mais de Maarten Balliauw

Mais de 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
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

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

Notas do Editor

  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!