• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Architectural Patterns for the Cloud
 

Architectural Patterns for the Cloud

on

  • 2,250 views

 

Statistics

Views

Total Views
2,250
Views on SlideShare
2,229
Embed Views
21

Actions

Likes
0
Downloads
31
Comments
0

4 Embeds 21

https://twitter.com 17
http://www.linkedin.com 2
http://us-w1.rockmelt.com 1
https://si0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Maarten
  • Kinepolis: veel static content / in-frame caching
  • Show DemoUniformDemonstrate OS choice in ServiceConfiguration.Cloud.cscfg (osFamily2)Demonstrate run withstartup scriptDemonstratestartup scriptExplainxpath in ServiceDefinition.csdeftoretrieve Azure variables in the environment
  • Tell health is monitored, but more towards Azure. For example: throttling!

Architectural Patterns for the Cloud Architectural Patterns for the Cloud Presentation Transcript

  • APRIL 17, 2012 | SLIDE 1
  • Architectural Patterns for the Cloud Maarten Balliauw @maartenballiauwAPRIL 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/pronugetAPRIL 17, 2012 | SLIDE 4
  • Agenda  Quick recap: Windows Azure  What’s different in the cloud?  Rethinking apps  ConclusionAPRIL 17, 2012 | SLIDE 5
  • Quick recap Windows AzureAPRIL 17, 2012 | SLIDE 6
  • Windows Azure is a cloud platform  On-demand  Self-service  Pay per use  Highly automatedAPRIL 17, 2012 | SLIDE 7
  • Windows Azure Components Compute Storage SQL Azure Service Bus Connect BI Marketplace CDN Caching ACSApplication 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 datacenterAPRIL 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 machineAPRIL 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 failureUD 1UD 2 APRIL 17, 2012 | SLIDE 14
  • Designed for scale  Scale out  StatelessAPRIL 17, 2012 | SLIDE 15
  • It’s not in your datacenter  Integration  AuthenticationAPRIL 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 contentAPRIL 17, 2012 | SLIDE 18
  • Current architecture  Will work on the cloud!  Will fail on the cloud!APRIL 17, 2012 | SLIDE 19
  • Design for failureAPRIL 17, 2012 | SLIDE 20
  • Assume everything will fail  Automated service maintenance  Compute node crash  Storage throttling  SQL Azure throttling  Connectivity  Your codeAPRIL 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 scopeAPRIL 17, 2012 | SLIDE 23
  • Refactoring the architectureAPRIL 17, 2012 | SLIDE 24
  • Windows Azure Data Centers 100ms 50msAPRIL 17, 2012 | SLIDE 25
  • Windows Azure Traffic ManagerAPRIL 17, 2012 | SLIDE 26
  • Windows Azure Traffic Manager  Strategies  Round-robin  Fail-over  Performance (geo)  Solves datacenter outageAPRIL 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 gracefullyAPRIL 17, 2012 | SLIDE 29
  • Refactoring our architectureAPRIL 17, 2012 | SLIDE 30
  • Design for scale *and failureAPRIL 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=EntLib5AzureAPRIL 17, 2012 | SLIDE 34
  • Solution: scale out!  Add more VM’s!  Autoscaling (as-a-Service)  www.opstera.comAPRIL 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 & retriesAPRIL 17, 2012 | SLIDE 37
  • Caching  Most of our users are doing reads  Cache content near where it’s needed  Windows Azure Caching  Blob StorageAPRIL 17, 2012 | SLIDE 38
  • Refactoring our architectureAPRIL 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 DBAPRIL 17, 2012 | SLIDE 41
  • Refactoring our architectureAPRIL 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 neededAPRIL 17, 2012 | SLIDE 43
  • Windows Azure CDNAPRIL 17, 2012 | SLIDE 44
  • Refactoring our architectureAPRIL 17, 2012 | SLIDE 45
  • ConclusionAPRIL 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 outageAPRIL 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 ProNuGetTHANK YOU!APRIL 17, 2012 | SLIDE 49