SlideShare a Scribd company logo
Ten CloudDesign PatternsShlomo SwidlerFounderOrchestratus
Shlomo SwidlerFounder, OrchestratusStrategic and technicalIT consultingCustomers include:Cloud Developer Tips bloghttp://shlomoswidler.com/Among top community-ranked contributors to Amazon Web Services discussion forums2
Ten CloudDesign PatternsShlomo SwidlerFounderOrchestratus
Ten Cloud ApplicationDesign PatternsShlomo SwidlerFounderOrchestratus
Ten Cloud ApplicationDesign PatternsManyShlomo SwidlerFounderOrchestratus
What is a Design PatternA reusable recipe for building (software) systems that solve a particular problem.6
What is a Design PatternA reusable recipe for building (software) systems that solve a particular problem.AKA Architectural Pattern7
What is a Design PatternA reusable recipe for building (software) systems that solve a particular problem.GoalAvailableResourcesConstraints8
A Design PatternA reusable recipe for building (software) systems that solve a particular problem.Meets affirmativerequirementsGoalDoes not violatenegative requirementsAvailableResourcesConstraintsCan be implemented9
Challenges Faced by Apps in the CloudApplication ScalabilityCloud promises rapid (de)provisioning of resources.How do you tap into that to create scalable systems?Application AvailabilityUnderlying resource failures happen		… usually more frequently than in		traditional data centers.How do you overcome that to create highly available systems?10
The Scalability ChallengeScalability: Handle more (or fewer) requestsIt’s not Performance (handle requests faster)It’s not Availability (tolerate failures)But improving Scalability often improves Availability11
The Scalability ChallengeTwo different components to scale:State (inputs, data store, output)Behavior (business logic)Any non-trivial application has both.Scaling one component means scaling the other, too.12
App Scalability Patterns for State Data GridsDistributed CachingHTTP CachingReverse ProxyCDNConcurrencyMessage-PassingDataflowSoftware Transactional MemoryShared-StatePartitioningCAP theorem: Data ConsistencyEventually ConsistentAtomic DataDB StrategiesRDBMSDenormalizationShardingNOSQLKey-Value storeDocument storeData Structure storeGraph database13
App Scalability Patterns for BehaviorCompute GridsEvent-Driven ArchitectureMessagingActorsEnterprise Service BusDomain EventsEvent Stream ProcessingEvent SourcingCommand & Query Responsibility Segregation (CQRS)Load BalancingRound-robinRandomWeightedDynamicParallel ComputingMaster/WorkerFork/JoinMapReduceSPMDLoop Parallelism14
The Availability ChallengeAvailability: Tolerate failuresTraditional IT focuses on increasing MTTFMean Time to FailureCloud IT focuses on reducing MTTRMean Time to Recovery15
The Availability ChallengeAvailability: Tolerate failuresTraditional IT focuses on increasing MTTFMean Time to FailureCloud IT focuses on reducing MTTRMean Time to RecoveryWhat follows is four availability scenarios:			[low, high] X [MTTF, MTTR]16
Availability and MTTF, MTTR17
Availability and MTTF, MTTRUptime53%86%69%30%18
Availability and MTTF, MTTRTraditional ITUptime53%86%69%30%19
Availability and MTTF, MTTRTraditional ITUptime53%86%Cloud69%30%20
Availability and MTTF, MTTRTraditional ITUptime53%86%Cloud69%30%Cloud done wrong21
Design Patterns for AvailabilityPattern: ReplicationPattern: Fail-OverOften used together.22
Availability Pattern: Fail-OverSource: Michael Nygaard23
Availability Pattern: Fail-OverIn practice, fail-over is not this simpleSource: Michael Nygaard24
Availability Pattern: Fail-OverSource: Michael Nygaard25
Availability Pattern: Fail-Over with Fail-BackSource: Michael Nygaard26
Availability’s NemesisSingle Points of Failure27
SPOT the SPOF**Single Point of Failure
Spot the SPOF: 129InternetCloudAppApp Instance
Spot the SPOF: 1b30InternetCloudAppApp Instance
Spot the SPOF: 1b31InternetCloudAppApp Instance
Spot the SPOF:232InternetElastic IP AddressCloudAppAppApp InstanceApp InstanceFail-over
Spot the SPOF:233InternetMight work…Until you need more App instancesOr until another SPOF fails…Elastic IP AddressCloudAppAppApp InstanceApp InstanceFail-over
Spot the SPOF: 2a34InternetLBLoad Balancer InstanceCloudAppApp
Spot the SPOF: 2a35InternetLBLoad Balancer InstanceCloudAppApp
Spot the SPOF: 336InternetElastic IP AddressLBLBAvailability ZoneReplicated configurationCloudAppAppFail-over
Spot the SPOF: 337InternetElastic IP AddressLBLBAvailability ZoneReplicated configurationCloudAppAppFail-over
Spot the SPOF: 438InternetElastic Load Balancer (Magic)ELBAvailability ZoneCloudAppApp
Spot the SPOF: 439InternetElastic Load Balancer (Magic)ELBAvailability ZoneCloudAppApp
Spot the SPOF: 540InternetElastic IP AddressLBLBAvailability ZoneAvailability ZoneReplicated configurationRegionAppAppAppAppFail-over
Spot the SPOF: 541InternetElastic IP AddressLBLBAvailability ZoneAvailability ZoneReplicated configurationRegionAppAppAppAppFail-over
Spot the SPOF: 642InternetElastic Load Balancer (Magic)ELBAvailability ZoneAvailability ZoneRegionAppAppAppApp
Spot the SPOF: 643InternetElastic Load Balancer (Magic)ELBAvailability ZoneAvailability ZoneRegionAppAppAppApp
Spot the SPOF: 744InternetLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegionOr…
Spot the SPOF: 7a45InternetLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 7/7a46InternetElastic IPs aresingle-region onlyLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 7b47InternetELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 7b48InternetELB is single-region onlyELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 7c49InternetDNSELBELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 7c50InternetELB Can’t Do ThatMultiple CNAMEs Violate RFC 2181DNSELBELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 7d51InternetDNSLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 7d52InternetDNSCloud ProviderLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
Spot the SPOF: 8InternetDNSAWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion53
Spot the SPOF: 8InternetDNSAWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion54
Spot the SPOF: 8InternetDNSand...AWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion55
Spot the SPOF: 8InternetFail-overmechanismDNSand...AWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion56
Spot the SPOF: 8InternetFail-overmechanismDNSand...Ops staffandAWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion57
Availability: Ensure RedundanciesPhysicalVirtual resource (instance, disk, etc.)Availability zoneRegionProviderHuman (ops staff)58
Availability Best Practice:Chaos MonkeyAKA Error Injection TestingForcibly create fault conditions in your cloud components.Kill instances, detach disks, screw up DNS, etc.Automate recovery from the errors.The team gets really good at reducing MTTR, increasing availability!Popularized by Netflix, who run it on their live environment.59
For more on Designing forAvailability, ScalabilityJonas BonérScalability, Availability, Stability Patterns  http://slidesha.re/cK3NJvGeorge ReeseThe AWS Outage: The Cloud’s Shining Momenthttp://oreil.ly/eKCGG9John Ciancutti of Netflix5 Lessons We’ve Learned Using AWShttp://bit.ly/h8rU8b60
Ten Cloud ApplicationDesign PatternsThank you!ManyShlomo SwidlerFounderOrchestratusshlomo@orchestratus.com@ShlomoSwidler
Ad

More Related Content

What's hot (15)

Adopting Java for the Serverless world at JUG Hamburg
Adopting Java for the Serverless world at  JUG HamburgAdopting Java for the Serverless world at  JUG Hamburg
Adopting Java for the Serverless world at JUG Hamburg
Vadym Kazulkin
 
Can I Contain This?
Can I Contain This?Can I Contain This?
Can I Contain This?
Eficode
 
Mini-Training: Netflix Simian Army
Mini-Training: Netflix Simian ArmyMini-Training: Netflix Simian Army
Mini-Training: Netflix Simian Army
Betclic Everest Group Tech Team
 
Adapting Java for the Serverless World at JUG Barcelona
Adapting Java for the Serverless World at JUG BarcelonaAdapting Java for the Serverless World at JUG Barcelona
Adapting Java for the Serverless World at JUG Barcelona
Vadym Kazulkin
 
PaaS with Java
PaaS with JavaPaaS with Java
PaaS with Java
Eberhard Wolff
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
cornelia davis
 
Netflix and Open Source
Netflix and Open SourceNetflix and Open Source
Netflix and Open Source
Adrian Cockcroft
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
aspyker
 
Cloud Foundry | How it works
Cloud Foundry | How it worksCloud Foundry | How it works
Cloud Foundry | How it works
Kazuto Kusama
 
Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014 Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014
Uri Cohen
 
Leveraging elastic web scale computing with AWS
 Leveraging elastic web scale computing with AWS Leveraging elastic web scale computing with AWS
Leveraging elastic web scale computing with AWS
Shiva Narayanaswamy
 
Serverless security: defence against the dark arts
Serverless security: defence against the dark artsServerless security: defence against the dark arts
Serverless security: defence against the dark arts
Yan Cui
 
Implementing Infrastructure as Code ConfigMgtCamp 2017
Implementing Infrastructure as Code ConfigMgtCamp 2017Implementing Infrastructure as Code ConfigMgtCamp 2017
Implementing Infrastructure as Code ConfigMgtCamp 2017
Kief Morris
 
Security in serverless world
Security in serverless worldSecurity in serverless world
Security in serverless world
Yan Cui
 
Infrastructure as Code and AWS CDK
Infrastructure as Code and AWS CDKInfrastructure as Code and AWS CDK
Infrastructure as Code and AWS CDK
SupratipBanerjee
 
Adopting Java for the Serverless world at JUG Hamburg
Adopting Java for the Serverless world at  JUG HamburgAdopting Java for the Serverless world at  JUG Hamburg
Adopting Java for the Serverless world at JUG Hamburg
Vadym Kazulkin
 
Can I Contain This?
Can I Contain This?Can I Contain This?
Can I Contain This?
Eficode
 
Adapting Java for the Serverless World at JUG Barcelona
Adapting Java for the Serverless World at JUG BarcelonaAdapting Java for the Serverless World at JUG Barcelona
Adapting Java for the Serverless World at JUG Barcelona
Vadym Kazulkin
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
cornelia davis
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
aspyker
 
Cloud Foundry | How it works
Cloud Foundry | How it worksCloud Foundry | How it works
Cloud Foundry | How it works
Kazuto Kusama
 
Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014 Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014
Uri Cohen
 
Leveraging elastic web scale computing with AWS
 Leveraging elastic web scale computing with AWS Leveraging elastic web scale computing with AWS
Leveraging elastic web scale computing with AWS
Shiva Narayanaswamy
 
Serverless security: defence against the dark arts
Serverless security: defence against the dark artsServerless security: defence against the dark arts
Serverless security: defence against the dark arts
Yan Cui
 
Implementing Infrastructure as Code ConfigMgtCamp 2017
Implementing Infrastructure as Code ConfigMgtCamp 2017Implementing Infrastructure as Code ConfigMgtCamp 2017
Implementing Infrastructure as Code ConfigMgtCamp 2017
Kief Morris
 
Security in serverless world
Security in serverless worldSecurity in serverless world
Security in serverless world
Yan Cui
 
Infrastructure as Code and AWS CDK
Infrastructure as Code and AWS CDKInfrastructure as Code and AWS CDK
Infrastructure as Code and AWS CDK
SupratipBanerjee
 

Similar to Ten^H^H^H Many Cloud App Design Patterns (20)

SolarWinds Scalability for the Enterprise
SolarWinds Scalability for the EnterpriseSolarWinds Scalability for the Enterprise
SolarWinds Scalability for the Enterprise
SolarWinds
 
From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud. From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud.
OPEN KNOWLEDGE GmbH
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
Dun & Bradstreet Cloud Innovation Center
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1
Kurt Liu
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
SimranjyotSuri
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to Microservices
Josh Evans
 
Building the Case for System z Linux
Building the Case for System z LinuxBuilding the Case for System z Linux
Building the Case for System z Linux
Mainline's Knowledge Center
 
Bring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-appsBring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-apps
Thang Chung
 
Accelerate your digital transformation
Accelerate your digital transformationAccelerate your digital transformation
Accelerate your digital transformation
Michael Dawson
 
Oracle ravello overview
Oracle ravello overviewOracle ravello overview
Oracle ravello overview
wk c
 
Oracle Ravello Overview
Oracle Ravello OverviewOracle Ravello Overview
Oracle Ravello Overview
오라클 클라우드
 
todd-ncts-2011-110828224616-phpapp02 (1).pptx
todd-ncts-2011-110828224616-phpapp02 (1).pptxtodd-ncts-2011-110828224616-phpapp02 (1).pptx
todd-ncts-2011-110828224616-phpapp02 (1).pptx
kumarkaushal17
 
Observability Best Practices for Your Cloud DBaaS
Observability Best Practices for Your Cloud DBaaSObservability Best Practices for Your Cloud DBaaS
Observability Best Practices for Your Cloud DBaaS
ScyllaDB
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
ThousandEyes
 
Cloud Computing Design Best Practices
Cloud Computing Design Best PracticesCloud Computing Design Best Practices
Cloud Computing Design Best Practices
Moshe Kaplan
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving System
Databricks
 
Why Cloud Management Makes Sense
Why Cloud Management Makes SenseWhy Cloud Management Makes Sense
Why Cloud Management Makes Sense
RightScale
 
Driving Down Costs of z Systems™ Storage
Driving Down Costs of z Systems™ StorageDriving Down Costs of z Systems™ Storage
Driving Down Costs of z Systems™ Storage
CA Technologies
 
Level up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using RubrikLevel up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using Rubrik
Jaap Brasser
 
Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)
removed_414e600f33c7539c2e1b596a774aaebd
 
SolarWinds Scalability for the Enterprise
SolarWinds Scalability for the EnterpriseSolarWinds Scalability for the Enterprise
SolarWinds Scalability for the Enterprise
SolarWinds
 
From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud. From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud.
OPEN KNOWLEDGE GmbH
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1
Kurt Liu
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
SimranjyotSuri
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to Microservices
Josh Evans
 
Bring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-appsBring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-apps
Thang Chung
 
Accelerate your digital transformation
Accelerate your digital transformationAccelerate your digital transformation
Accelerate your digital transformation
Michael Dawson
 
Oracle ravello overview
Oracle ravello overviewOracle ravello overview
Oracle ravello overview
wk c
 
todd-ncts-2011-110828224616-phpapp02 (1).pptx
todd-ncts-2011-110828224616-phpapp02 (1).pptxtodd-ncts-2011-110828224616-phpapp02 (1).pptx
todd-ncts-2011-110828224616-phpapp02 (1).pptx
kumarkaushal17
 
Observability Best Practices for Your Cloud DBaaS
Observability Best Practices for Your Cloud DBaaSObservability Best Practices for Your Cloud DBaaS
Observability Best Practices for Your Cloud DBaaS
ScyllaDB
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
ThousandEyes
 
Cloud Computing Design Best Practices
Cloud Computing Design Best PracticesCloud Computing Design Best Practices
Cloud Computing Design Best Practices
Moshe Kaplan
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving System
Databricks
 
Why Cloud Management Makes Sense
Why Cloud Management Makes SenseWhy Cloud Management Makes Sense
Why Cloud Management Makes Sense
RightScale
 
Driving Down Costs of z Systems™ Storage
Driving Down Costs of z Systems™ StorageDriving Down Costs of z Systems™ Storage
Driving Down Costs of z Systems™ Storage
CA Technologies
 
Level up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using RubrikLevel up your SQL and Azure, by using Rubrik
Level up your SQL and Azure, by using Rubrik
Jaap Brasser
 
Ad

Recently uploaded (20)

Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Ad

Ten^H^H^H Many Cloud App Design Patterns

  • 1. Ten CloudDesign PatternsShlomo SwidlerFounderOrchestratus
  • 2. Shlomo SwidlerFounder, OrchestratusStrategic and technicalIT consultingCustomers include:Cloud Developer Tips bloghttp://shlomoswidler.com/Among top community-ranked contributors to Amazon Web Services discussion forums2
  • 3. Ten CloudDesign PatternsShlomo SwidlerFounderOrchestratus
  • 4. Ten Cloud ApplicationDesign PatternsShlomo SwidlerFounderOrchestratus
  • 5. Ten Cloud ApplicationDesign PatternsManyShlomo SwidlerFounderOrchestratus
  • 6. What is a Design PatternA reusable recipe for building (software) systems that solve a particular problem.6
  • 7. What is a Design PatternA reusable recipe for building (software) systems that solve a particular problem.AKA Architectural Pattern7
  • 8. What is a Design PatternA reusable recipe for building (software) systems that solve a particular problem.GoalAvailableResourcesConstraints8
  • 9. A Design PatternA reusable recipe for building (software) systems that solve a particular problem.Meets affirmativerequirementsGoalDoes not violatenegative requirementsAvailableResourcesConstraintsCan be implemented9
  • 10. Challenges Faced by Apps in the CloudApplication ScalabilityCloud promises rapid (de)provisioning of resources.How do you tap into that to create scalable systems?Application AvailabilityUnderlying resource failures happen … usually more frequently than in traditional data centers.How do you overcome that to create highly available systems?10
  • 11. The Scalability ChallengeScalability: Handle more (or fewer) requestsIt’s not Performance (handle requests faster)It’s not Availability (tolerate failures)But improving Scalability often improves Availability11
  • 12. The Scalability ChallengeTwo different components to scale:State (inputs, data store, output)Behavior (business logic)Any non-trivial application has both.Scaling one component means scaling the other, too.12
  • 13. App Scalability Patterns for State Data GridsDistributed CachingHTTP CachingReverse ProxyCDNConcurrencyMessage-PassingDataflowSoftware Transactional MemoryShared-StatePartitioningCAP theorem: Data ConsistencyEventually ConsistentAtomic DataDB StrategiesRDBMSDenormalizationShardingNOSQLKey-Value storeDocument storeData Structure storeGraph database13
  • 14. App Scalability Patterns for BehaviorCompute GridsEvent-Driven ArchitectureMessagingActorsEnterprise Service BusDomain EventsEvent Stream ProcessingEvent SourcingCommand & Query Responsibility Segregation (CQRS)Load BalancingRound-robinRandomWeightedDynamicParallel ComputingMaster/WorkerFork/JoinMapReduceSPMDLoop Parallelism14
  • 15. The Availability ChallengeAvailability: Tolerate failuresTraditional IT focuses on increasing MTTFMean Time to FailureCloud IT focuses on reducing MTTRMean Time to Recovery15
  • 16. The Availability ChallengeAvailability: Tolerate failuresTraditional IT focuses on increasing MTTFMean Time to FailureCloud IT focuses on reducing MTTRMean Time to RecoveryWhat follows is four availability scenarios: [low, high] X [MTTF, MTTR]16
  • 18. Availability and MTTF, MTTRUptime53%86%69%30%18
  • 19. Availability and MTTF, MTTRTraditional ITUptime53%86%69%30%19
  • 20. Availability and MTTF, MTTRTraditional ITUptime53%86%Cloud69%30%20
  • 21. Availability and MTTF, MTTRTraditional ITUptime53%86%Cloud69%30%Cloud done wrong21
  • 22. Design Patterns for AvailabilityPattern: ReplicationPattern: Fail-OverOften used together.22
  • 24. Availability Pattern: Fail-OverIn practice, fail-over is not this simpleSource: Michael Nygaard24
  • 26. Availability Pattern: Fail-Over with Fail-BackSource: Michael Nygaard26
  • 28. SPOT the SPOF**Single Point of Failure
  • 29. Spot the SPOF: 129InternetCloudAppApp Instance
  • 30. Spot the SPOF: 1b30InternetCloudAppApp Instance
  • 31. Spot the SPOF: 1b31InternetCloudAppApp Instance
  • 32. Spot the SPOF:232InternetElastic IP AddressCloudAppAppApp InstanceApp InstanceFail-over
  • 33. Spot the SPOF:233InternetMight work…Until you need more App instancesOr until another SPOF fails…Elastic IP AddressCloudAppAppApp InstanceApp InstanceFail-over
  • 34. Spot the SPOF: 2a34InternetLBLoad Balancer InstanceCloudAppApp
  • 35. Spot the SPOF: 2a35InternetLBLoad Balancer InstanceCloudAppApp
  • 36. Spot the SPOF: 336InternetElastic IP AddressLBLBAvailability ZoneReplicated configurationCloudAppAppFail-over
  • 37. Spot the SPOF: 337InternetElastic IP AddressLBLBAvailability ZoneReplicated configurationCloudAppAppFail-over
  • 38. Spot the SPOF: 438InternetElastic Load Balancer (Magic)ELBAvailability ZoneCloudAppApp
  • 39. Spot the SPOF: 439InternetElastic Load Balancer (Magic)ELBAvailability ZoneCloudAppApp
  • 40. Spot the SPOF: 540InternetElastic IP AddressLBLBAvailability ZoneAvailability ZoneReplicated configurationRegionAppAppAppAppFail-over
  • 41. Spot the SPOF: 541InternetElastic IP AddressLBLBAvailability ZoneAvailability ZoneReplicated configurationRegionAppAppAppAppFail-over
  • 42. Spot the SPOF: 642InternetElastic Load Balancer (Magic)ELBAvailability ZoneAvailability ZoneRegionAppAppAppApp
  • 43. Spot the SPOF: 643InternetElastic Load Balancer (Magic)ELBAvailability ZoneAvailability ZoneRegionAppAppAppApp
  • 44. Spot the SPOF: 744InternetLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegionOr…
  • 45. Spot the SPOF: 7a45InternetLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 46. Spot the SPOF: 7/7a46InternetElastic IPs aresingle-region onlyLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 47. Spot the SPOF: 7b47InternetELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 48. Spot the SPOF: 7b48InternetELB is single-region onlyELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 49. Spot the SPOF: 7c49InternetDNSELBELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 50. Spot the SPOF: 7c50InternetELB Can’t Do ThatMultiple CNAMEs Violate RFC 2181DNSELBELBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 51. Spot the SPOF: 7d51InternetDNSLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 52. Spot the SPOF: 7d52InternetDNSCloud ProviderLBLBLBLBAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppRegionRegion
  • 53. Spot the SPOF: 8InternetDNSAWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion53
  • 54. Spot the SPOF: 8InternetDNSAWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion54
  • 55. Spot the SPOF: 8InternetDNSand...AWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion55
  • 56. Spot the SPOF: 8InternetFail-overmechanismDNSand...AWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion56
  • 57. Spot the SPOF: 8InternetFail-overmechanismDNSand...Ops staffandAWSLBLBLBLBLBRackspaceAvailability ZoneAvailability ZoneAvailability ZoneAvailability ZoneAppAppAppAppAppAppAppAppAppAppRegionRegion57
  • 58. Availability: Ensure RedundanciesPhysicalVirtual resource (instance, disk, etc.)Availability zoneRegionProviderHuman (ops staff)58
  • 59. Availability Best Practice:Chaos MonkeyAKA Error Injection TestingForcibly create fault conditions in your cloud components.Kill instances, detach disks, screw up DNS, etc.Automate recovery from the errors.The team gets really good at reducing MTTR, increasing availability!Popularized by Netflix, who run it on their live environment.59
  • 60. For more on Designing forAvailability, ScalabilityJonas BonérScalability, Availability, Stability Patterns http://slidesha.re/cK3NJvGeorge ReeseThe AWS Outage: The Cloud’s Shining Momenthttp://oreil.ly/eKCGG9John Ciancutti of Netflix5 Lessons We’ve Learned Using AWShttp://bit.ly/h8rU8b60
  • 61. Ten Cloud ApplicationDesign PatternsThank you!ManyShlomo [email protected]@ShlomoSwidler

Editor's Notes

  • #28: Nemesis by Alfred Rethel, 1837.
  • #34: More on other SPOFs here in a minute. Now, let’s see what you do if you want that scalability