SlideShare una empresa de Scribd logo
1 de 31
Let’s get started…
So you have a scalability problem?




                      Congratulations!
Scalability <> Performance
Scalability is how your application
 behaves as the number of users
              increases
Performance is how your application
       behaves for each user
CPU Utilization




                  Transactions /second
Cost per Request




                   Number of Requests
Load <> Stress
Load is how many simultaneous users
      your application can serve
Stress is how well your application
behaves when resources become
              limited
Network
Where are the         Database
scalability limits?   Web server
                      Code
Pattern: Nickel Defense
Pattern: Scale Up
PATTERN: Scale Out
      Load Balancer
PATTERN: Specialize



Web Application         Web Services    Image Server
PATTERN: Partition the database 1




        Reference    Transaction
PATTERN: Partition the database 2




    Read Copy                Read Copy




                Write Copy
PATTERN: Partition the application



microsoft.com   msdn.microsoft.com   technet.microsoft.com
Balance the computing load
Offload the work
Web




      Worker
NoSQL
Distribute globally
Cache
responsibly
Plan for concurrency
Anti-patterns
•   Blaming another department
•   “It works great on my machine!”
•   Attempting to maintain state
•   Spending all your time looking at the code
•   Caching everything (twice!)
•   Services calling services
    – especially across the network or networks
Question: “Scale Later”?
Azure: Core Services




                Azure Storage   SQL Azure
   Web
    Web                                       Worker
                                               Worker
     Web          (Queues)        (DB)          Worker
(Compute)
 (Compute)                                  (Compute)
                                             (Compute)
  (Compute)         (Blobs)                   (Compute)
                   (Tables)
Your Next Step

http://aka.ms/TryAzure
http://aka.ms/AzureBenefits
http://aka.ms/WindowsAzureSDK
Architecting Scalable Applications in the Cloud

Más contenido relacionado

La actualidad más candente

Data storage in the Cloud
Data storage in the CloudData storage in the Cloud
Data storage in the CloudBogdan Mustata
 
1003 - Virtualizing Your World
1003 - Virtualizing Your World1003 - Virtualizing Your World
1003 - Virtualizing Your WorldDiana Williams
 
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudWindows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudMichael Collier
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual MachinesNeil Mackenzie
 
Above the cloud: Big Data and BI
Above the cloud: Big Data and BIAbove the cloud: Big Data and BI
Above the cloud: Big Data and BIDenny Lee
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud  resource managerCnam azure ze cloud  resource manager
Cnam azure ze cloud resource managerAymeric Weinbach
 
Deploying DC/OS on Premises with Juju
Deploying DC/OS on Premises with JujuDeploying DC/OS on Premises with Juju
Deploying DC/OS on Premises with JujuTom Barber
 
What's new in Windows Server 2012 R2
What's new in Windows Server 2012 R2What's new in Windows Server 2012 R2
What's new in Windows Server 2012 R2Christopher Keyaert
 
Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012Einar Ingebrigtsen
 
Windows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldWindows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldMichael Collier
 
Gaming across multiple devices
Gaming across multiple devicesGaming across multiple devices
Gaming across multiple devicesPatric Boscolo
 
Binary Studio Academy 2016. MS Azure. Cloud hosting.
Binary Studio Academy 2016. MS Azure. Cloud hosting.Binary Studio Academy 2016. MS Azure. Cloud hosting.
Binary Studio Academy 2016. MS Azure. Cloud hosting.Binary Studio
 
What’s new in windows server 2012
What’s new in windows server 2012What’s new in windows server 2012
What’s new in windows server 2012Alex de Jong
 
Windows Azure for Developers - Building Block Services
Windows Azure for Developers - Building Block ServicesWindows Azure for Developers - Building Block Services
Windows Azure for Developers - Building Block ServicesMichael Collier
 
Cnam azure 2014 web sites et integration continue
Cnam azure 2014  web sites et integration continueCnam azure 2014  web sites et integration continue
Cnam azure 2014 web sites et integration continueAymeric Weinbach
 

La actualidad más candente (20)

Data storage in the Cloud
Data storage in the CloudData storage in the Cloud
Data storage in the Cloud
 
1003 - Virtualizing Your World
1003 - Virtualizing Your World1003 - Virtualizing Your World
1003 - Virtualizing Your World
 
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudWindows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
Above the cloud: Big Data and BI
Above the cloud: Big Data and BIAbove the cloud: Big Data and BI
Above the cloud: Big Data and BI
 
Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud  resource managerCnam azure ze cloud  resource manager
Cnam azure ze cloud resource manager
 
Windows Azure Storage – Architecture View
Windows Azure Storage – Architecture ViewWindows Azure Storage – Architecture View
Windows Azure Storage – Architecture View
 
SQL Azure
SQL AzureSQL Azure
SQL Azure
 
Deploying DC/OS on Premises with Juju
Deploying DC/OS on Premises with JujuDeploying DC/OS on Premises with Juju
Deploying DC/OS on Premises with Juju
 
What's new in Windows Server 2012 R2
What's new in Windows Server 2012 R2What's new in Windows Server 2012 R2
What's new in Windows Server 2012 R2
 
Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012Windows Azure Camps - Oktober 2012
Windows Azure Camps - Oktober 2012
 
Windows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldWindows Azure: Lessons From the Field
Windows Azure: Lessons From the Field
 
Gaming across multiple devices
Gaming across multiple devicesGaming across multiple devices
Gaming across multiple devices
 
Binary Studio Academy 2016. MS Azure. Cloud hosting.
Binary Studio Academy 2016. MS Azure. Cloud hosting.Binary Studio Academy 2016. MS Azure. Cloud hosting.
Binary Studio Academy 2016. MS Azure. Cloud hosting.
 
Web 2.0 Futures
Web 2.0 FuturesWeb 2.0 Futures
Web 2.0 Futures
 
Cnam azure 2014 storage
Cnam azure 2014   storageCnam azure 2014   storage
Cnam azure 2014 storage
 
What’s new in windows server 2012
What’s new in windows server 2012What’s new in windows server 2012
What’s new in windows server 2012
 
Windows Azure for Developers - Building Block Services
Windows Azure for Developers - Building Block ServicesWindows Azure for Developers - Building Block Services
Windows Azure for Developers - Building Block Services
 
Cnam azure 2014 web sites et integration continue
Cnam azure 2014  web sites et integration continueCnam azure 2014  web sites et integration continue
Cnam azure 2014 web sites et integration continue
 

Similar a Architecting Scalable Applications in the Cloud

AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAmazon Web Services
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputPaolo Negri
 
Erlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputErlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputWooga
 
Erlang as a Cloud Citizen
Erlang as a Cloud CitizenErlang as a Cloud Citizen
Erlang as a Cloud CitizenWooga
 
DevLink - Architecting Scalable Web Applications
DevLink - Architecting Scalable Web ApplicationsDevLink - Architecting Scalable Web Applications
DevLink - Architecting Scalable Web ApplicationsClint Edmonson
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWSAmazon Web Services Korea
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowGibraltar Software
 
CodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the CloudCodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the CloudRightScale
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsMicrosoft ArcReady
 
Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web ApplicationsClint Edmonson
 
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley WoodAWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley WoodAmazon Web Services
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale ArchitectureRightScale
 
Patterns & Practices of Microservices
Patterns & Practices of MicroservicesPatterns & Practices of Microservices
Patterns & Practices of MicroservicesWesley Reisz
 
Microservices: moving parts around
Microservices: moving parts aroundMicroservices: moving parts around
Microservices: moving parts aroundChris Winters
 
Database Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big DataDatabase Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big Dataexponential-inc
 
Web scale architecture design
Web scale architecture designWeb scale architecture design
Web scale architecture designNepalAdz
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloudnwcloud
 

Similar a Architecting Scalable Applications in the Cloud (20)

How To Scale v2
How To Scale v2How To Scale v2
How To Scale v2
 
Azure and cloud design patterns
Azure and cloud design patternsAzure and cloud design patterns
Azure and cloud design patterns
 
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughput
 
Erlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to ThroughputErlang and the Cloud: A Fractal Approach to Throughput
Erlang and the Cloud: A Fractal Approach to Throughput
 
Erlang as a Cloud Citizen
Erlang as a Cloud CitizenErlang as a Cloud Citizen
Erlang as a Cloud Citizen
 
DevLink - Architecting Scalable Web Applications
DevLink - Architecting Scalable Web ApplicationsDevLink - Architecting Scalable Web Applications
DevLink - Architecting Scalable Web Applications
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that Grow
 
CodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the CloudCodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the Cloud
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web Applications
 
Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web Applications
 
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley WoodAWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
 
Microservices and Amazon ECS
Microservices and Amazon ECSMicroservices and Amazon ECS
Microservices and Amazon ECS
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale Architecture
 
Patterns & Practices of Microservices
Patterns & Practices of MicroservicesPatterns & Practices of Microservices
Patterns & Practices of Microservices
 
Microservices: moving parts around
Microservices: moving parts aroundMicroservices: moving parts around
Microservices: moving parts around
 
Database Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big DataDatabase Virtualization: The Next Wave of Big Data
Database Virtualization: The Next Wave of Big Data
 
Web scale architecture design
Web scale architecture designWeb scale architecture design
Web scale architecture design
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
 

Más de Clint Edmonson

New Product Concept Design.pptx
New Product Concept Design.pptxNew Product Concept Design.pptx
New Product Concept Design.pptxClint Edmonson
 
Lean & Agile Essentials
Lean & Agile EssentialsLean & Agile Essentials
Lean & Agile EssentialsClint Edmonson
 
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?Clint Edmonson
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and EverythingClint Edmonson
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstartClint Edmonson
 
Code smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsCode smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsClint Edmonson
 
Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015Clint Edmonson
 
Application Architecture Jumpstart
Application Architecture JumpstartApplication Architecture Jumpstart
Application Architecture JumpstartClint Edmonson
 
Agile Metrics That Matter
Agile Metrics That MatterAgile Metrics That Matter
Agile Metrics That MatterClint Edmonson
 
Advanced oop laws, principles, idioms
Advanced oop laws, principles, idiomsAdvanced oop laws, principles, idioms
Advanced oop laws, principles, idiomsClint Edmonson
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstartClint Edmonson
 
ADO.NET Entity Framework
ADO.NET Entity FrameworkADO.NET Entity Framework
ADO.NET Entity FrameworkClint Edmonson
 
Windows 8 - The JavaScript Story
Windows 8 - The JavaScript StoryWindows 8 - The JavaScript Story
Windows 8 - The JavaScript StoryClint Edmonson
 
Windows Azure Jumpstart
Windows Azure JumpstartWindows Azure Jumpstart
Windows Azure JumpstartClint Edmonson
 
A Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo DeveloperA Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo DeveloperClint Edmonson
 
Agile is as Agile Does
Agile is as Agile DoesAgile is as Agile Does
Agile is as Agile DoesClint Edmonson
 
Visual Studio 2010 Ultimate
Visual Studio 2010 UltimateVisual Studio 2010 Ultimate
Visual Studio 2010 UltimateClint Edmonson
 
Visual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good StuffVisual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good StuffClint Edmonson
 
Architecting Applications the Microsoft Way
Architecting Applications the Microsoft WayArchitecting Applications the Microsoft Way
Architecting Applications the Microsoft WayClint Edmonson
 

Más de Clint Edmonson (20)

New Product Concept Design.pptx
New Product Concept Design.pptxNew Product Concept Design.pptx
New Product Concept Design.pptx
 
Lean & Agile Essentials
Lean & Agile EssentialsLean & Agile Essentials
Lean & Agile Essentials
 
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and Everything
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstart
 
Code smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsCode smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software Odors
 
State of agile 2016
State of agile 2016State of agile 2016
State of agile 2016
 
Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015Lean & Agile DevOps with VSTS and TFS 2015
Lean & Agile DevOps with VSTS and TFS 2015
 
Application Architecture Jumpstart
Application Architecture JumpstartApplication Architecture Jumpstart
Application Architecture Jumpstart
 
Agile Metrics That Matter
Agile Metrics That MatterAgile Metrics That Matter
Agile Metrics That Matter
 
Advanced oop laws, principles, idioms
Advanced oop laws, principles, idiomsAdvanced oop laws, principles, idioms
Advanced oop laws, principles, idioms
 
Application architecture jumpstart
Application architecture jumpstartApplication architecture jumpstart
Application architecture jumpstart
 
ADO.NET Entity Framework
ADO.NET Entity FrameworkADO.NET Entity Framework
ADO.NET Entity Framework
 
Windows 8 - The JavaScript Story
Windows 8 - The JavaScript StoryWindows 8 - The JavaScript Story
Windows 8 - The JavaScript Story
 
Windows Azure Jumpstart
Windows Azure JumpstartWindows Azure Jumpstart
Windows Azure Jumpstart
 
A Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo DeveloperA Force of One - Agile and the Solo Developer
A Force of One - Agile and the Solo Developer
 
Agile is as Agile Does
Agile is as Agile DoesAgile is as Agile Does
Agile is as Agile Does
 
Visual Studio 2010 Ultimate
Visual Studio 2010 UltimateVisual Studio 2010 Ultimate
Visual Studio 2010 Ultimate
 
Visual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good StuffVisual Studio 2010 - The Good Stuff
Visual Studio 2010 - The Good Stuff
 
Architecting Applications the Microsoft Way
Architecting Applications the Microsoft WayArchitecting Applications the Microsoft Way
Architecting Applications the Microsoft Way
 

Último

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
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
 

Último (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
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
 

Architecting Scalable Applications in the Cloud

Notas del editor

  1. Hopefully you are here to learn how to avoid scalability problems, but there are doubtless people in this room who have experienced scalability problems are who are currently experiencing them. Hopefully that means that you have an application that has exceeded your expectations and you are reaping the rewards of your hard work!
  2. One of the first things that we would like to address is the common confusion between the very related topics of performance and scalability. Most of the time you will actually here the two terms used like that: with the “and” right in the middle of them. The truth of the matter is that the two are related, but sometimes they actually work against each other. Things that you do for scalability can actually hurt performance. Adding a load balancer (as fast as the devices are) actually adds a finite amount of time to each and every request that hurts performance. For the purposes of our discussion today we will use the following definition (put forth by Richard Campbell of the .NET Rocks Show):
  3. When we talk about scalability, often linear scalability comes to mind. Linear scalability, relative to load, means that with fixed resources, performance decreases at a constant rate relative to load increases. Linear scalability, relative to resources, means that with a constant load, performance improves at a constant rate relative to additional resources. (click slide)The reality with scaling web applications is not a straight line, often times you will see a step function emerge. There is a base to this type of step function, to process zero requests in your web application still requires some infrastructure. But you will see that you can reasonably process a certain amount of load, before you need to “step up” to the next level. The problem with the step functions is that at a point, each additional “step” costs you more to take after a certain point (click slide).Our ideal scenario is that we have a relatively flat line where as the number of transactions increases, the cost to process each additional transaction does not increase. This way of measuring scalability was introduced by Roger Sessions of Objectwatch about 10 years ago and it holds true today.Also, we want to make sure as we plan our architecture, that we keep that cost per transaction as low as possible. (click slide).
  4. When we talk about scalability, often linear scalability comes to mind. Linear scalability, relative to load, means that with fixed resources, performance decreases at a constant rate relative to load increases. Linear scalability, relative to resources, means that with a constant load, performance improves at a constant rate relative to additional resources. (click slide)The reality with scaling web applications is not a straight line, often times you will see a step function emerge. There is a base to this type of step function, to process zero requests in your web application still requires some infrastructure. But you will see that you can reasonably process a certain amount of load, before you need to “step up” to the next level. The problem with the step functions is that at a point, each additional “step” costs you more to take after a certain point (click slide).Our ideal scenario is that we have a relatively flat line where as the number of transactions increases, the cost to process each additional transaction does not increase. This way of measuring scalability was introduced by Roger Sessions of Objectwatch about 10 years ago and it holds true today.Also, we want to make sure as we plan our architecture, that we keep that cost per transaction as low as possible. (click slide).
  5. Another point to make is that load and stress are not the same thing to a system. Load refers to the number of concurrent users currently using an application and there is a finite amount of load any system can reach due to computing and network resources. Stress refers to how the system behaves when it’s computing resources become constrained.
  6. Let’s take a look at a the architecture of a typical web application. Now don’t laugh (although it is very tempting)! A slide similar to this was put up by Charlie Bell of Amazon.com and he said that this was the architecture that they started with and see where it has gotten them!Probably a large majority of the sites on the Internet run with this architecture and probably don’t need more than that. But there are obviously some scalability issues with this model. Can you name some of the things that could limit scale?NetworkCodeDatabaseWeb serverJust about everything, eh?
  7. We are going to use a series of patterns to talk about how you could scale. These are not mutually exclusive and you will probably use more than one in your journey. But the first one is often overlooked, and that is an examination of your current environment to make sure you are not missing something obvious. I am amazed at what interesting things that people find when they examine their environment. Often times these examinations will increase performance, increase scalability and avoid thousands of dollars in hardware costs. Here are 2 examples that I personally have experienced:Debug=“True” in your web.config files. I would bet that there are several people in this room that have production ASP.NET applications that are running in Debug mode. Why because that is the default option! Among other things, the debug setting removes all time outs from your application, so if you have an error the request will live forever. Talk about the “retail” configuration in ASP.NET 2.0 and higher and suggest that people call their server admins during the break to get that setting changed!Having internal network traffic run on old switching equipment. I personally worked on a project where we could not figure out why our production traffic was much slower than our test environment (where we did load testing). Turns our that the web server and the database server were connected by a 10 MBPS switch misconfigured to run at ½ duplex. The cost of a 100 GB managed switch was about $100 at the time. We spent countless thousands of dollars in man hours trying to improve the performance
  8. This pattern often manifests itself as “throw hardware at it”. What this pattern really entails is to leave your architecture the way it is, but
  9. When we showed the first architecture slide, I think a lot of you cringed and thought “single point of failure” more than “scalability concern”. Most corporate web sites follow this pattern not out of scalability concern, but because they are very risk adverse and want their web sites to be “hyper available”. Web servers are relatively cheap in relation to the cost of business done on them in an hour (a beefy web server fully loaded and licensed will run you about $5000 and most eCommerce web sites do that amount of volume in an hour – so the cost of a redundant server is much less the business you would lose).Already in taking this first step we have a lot of architectural decisions to make. From an infrastructure standpoint we have:Are we going to use “software” load balancing or a dedicated hardware deviceHow do I determine that a web server has malfunctioned and
  10. Load TestingDecide where the logic and processing balance on where’s the logic? Client/Server - this line is starting to get more and more blurry but there are some guideposts that we can throw out there.Deciding on where the data goes. What’s the balance between client side/server side. Think S+S and multiple clients and state management. Speed verses flexibility.Photo credit:http://www.flickr.com/photos/saschapohflepp/
  11. From wikipedia:- It does not use SQL as its query language-It may not give full ACID guarantees-It has a distributed, fault-tolerant architectureNoSQL database systems are often highly optimized for retrieve and append operations and often offer little functionality beyond record storage (e.g. key-value stores). The reduced run time flexibility compared to full SQL systems is compensated by significant gains in scalability and performance for certain data modelsPhoto credit: http://www.flickr.com/photos/audiinsperation
  12. Understand locality of referenceWhere are is caching already happening in your system right now? UI, BL, DBWhat caching can you get for free?Caching is a business decision!Photo credit: http://www.flickr.com/photos/peasap
  13. Just as two objects can’t occupy the same space, two people can’t edit the same data with out a conflict.Build for multi-user concurrency right up front.Optimistic concurrency is NOT concurrency!Photo credit:http://www.flickr.com/photos/conanil/
  14. We would like to wrap up this session with a discussion about the “scale later” philosophy. This ArcReady topic actually stemmed from the Web 2.0 session that we did last fall. There is a company called 37 Signals (based our of Chicago, IL) and they have a book called “Getting Real”. One of the tenants of their philosophy (not sure if we can call it a methodology) is that when you are creating a web application for public consumption, there are 1001 other things to consider before you have to worry about scalability. There notion is that you should worry about the application’s features and functionality much more than how your application is going to serve 1,000,000 people. There thought is that your should worry about getting your first customer and deal with the problem of 1,000,000 users if it comes to fruition.Story about a.com – 20 million users, 20,000 concurrent users