SlideShare a Scribd company logo
                                         Cloud Architecture Patterns for Mere Mortals Examples drawn from Windows Azurecloud platform Vermont Code Camp III 10-September-2011 Boston Azure User Group http://www.bostonazure.org @bostonazure Bill Wilderhttp://blog.codingoutloud.com @codingoutloud Copyright (c) 2011, Bill Wilder – Use allowed under Creative Commons license http://creativecommons.org/licenses/by-nc-sa/3.0/
“These go to eleven” –Nigel Tufnel 11 is just better than 10…
Bill Wilder has been a software professional for over 20 years. In 2009 he founded the Boston Azure User Group,an in-person cloud community which gets together monthly to learn about the Windows Azure platform through prepared talks and hands-on coding. Bill is a Windows Azure MVP, an active speaker, blogger (blog.codingoutloud.com), and tweeter (@codingoutloud) on technology matters and soft skills for technologists, a member of Boston West Toastmasters, and has a day job as a .NET-focused enterprise architect. Bill Wilder
11 Scalability Concepts What is Scalability? Scaling Data Scaling Compute Q&A
Key Concepts & Patterns GENERAL Scale vs. Performance Scale Up vs. Scale Out Shared Nothing Scale Unit DATABASE ORIENTED ACID vs. BASE Eventually Consistent Sharding Optimistic Locking COMPUTE ORIENTED CQRS Pattern Poison Messages Idempotency
Key Terms Scale Up Scale Out Horizontal Scale Vertical Scale Scale Unit ACID CAP Eventual Consistency Strong Consistency Multi-tenancy NoSQL Sharding Denormalized Poison Message Idempotent CQRS Performance Scale Optimistic Locking Shared Nothing Load Balancing
Overview of Scalability Topics What is Scalability? Scaling Data Scaling Compute Q&A
Old School Excel and Word
[object Object],Scalable iff Performance constant as it grows ,[object Object]
… Volume of Data
… Across Geography
Scale can be bi-directional (more orless)
Investment α BenefitWhat does it mean to Scale?
Options: Scale Up (and Scale Down)or Scale Out (and Scale In) 	Terminology: Scaling Up/Down == Vertical Scaling Scaling Out/In == Horizontal Scaling Architectural Decision Big decision… hard to change
Scaling Up: Scaling the Box .
Scaling Out: Adding Boxes “Shared nothing” scales best
How do I Choose???? ?????? . Scale Up(Vertically) …  Scale Out(Horizontally) ,[object Object]
Part business, part technical decision (requirements and strategy)
Consider Reliability (and SLA in Azure)
Target VM size that meets min or optimal CPU, bandwidth, space,[object Object]
NoSQL: “Not Only SQL” – a family of approaches using simplified database modelComputational Scaling Patterns ,[object Object],[object Object]
Overview of Scalability Topics What is Scalability? Scaling Data ,[object Object]
NoSQLScaling Compute Q&A
Foursquare #Fail October 4, 2010 – trouble begins… After 17 hours of downtime over two days… “Oct. 5 10:28 p.m.: Running on pizza and Red Bull. Another long night.” WHAT WENT WRONG?
What is Sharding? Problem: one database can’t handle all the data Too big, not performant, needs geo distribution, … Solution: split data across multiple databases One Logical Database, multiple Physical Databases Each Physical Database Node is a Shard Most scalable is Shared Nothing design May require some denormalization (duplication)
Sharding is Difficult What defines a shard? (Where to put stuff?) Example by geography: customer_us, customer_fr, customer_cn, customer_ie, … Use same approach to find records What happens if a shard gets too big? Rebalancing shards can get complex Foursquare case study is interesting Query / join / transact across shards Cache coherence, connection pool management
SQL Azure is SQL Server Except… SQL ServerSpecific (for now) SQL Azure Specific Limitations 50 GB size limit New Capabilities Highly Available Rental model Coming: Backups & point-in-time recovery SQL Azure Federations More… Common Full Text Search Native Encryption Many more… “Just change the connection string…” Additional information on Differences: http://msdn.microsoft.com/en-us/library/ff394115.aspx
SQL Azure Federations for Sharding Single “master” database “Query Fanout” makes partitions transparent Instead of customer_us, customer_fr, etc… we have just customer database Handles redistributing shards Handles cache coherence Simplifies connection pooling Not a released product offering at this time http://blogs.msdn.com/b/cbiyikoglu/archive/2011/01/18/sql-azure-federations-robust-connectivity-model-for-federated-data.aspx
Overview of Scalability Topics What is Scalability?(10 minutes) Scaling Data(20 minutes) ,[object Object]
NoSQLScaling Compute(15 minutes) Q&A(15 minutes)
Persistent Storage Services – Azure NoSQL ?
Not Only SQL
NoSQL Databases (simplified!!!)                          , CouchDB: JSON Document Stores Amazon Dynamo, Azure Tables: Key Value Stores Dynamo: Eventually Consistent Azure Tables: Strongly Consistent Many others!  Faster, Cheaper Scales Out “Simpler”
Eventual Consistency Property of a system such that not all records of state guaranteed to agree at any given point in time. Applicable to whole systems or parts of systems (such as a database) As opposed to Strongly Consistent (or Instantly Consistent) Eventual Consistency is natural characteristic of a useful, scalable distributed systems
Why Eventual Consistency? #1 ACID Guarantees: Atomicity, Consistency, Isolation, Durability SQL insert vs read performance? How do we make them BOTH fast? Optimistic Locking and “Big Oh” math BASE Semantics: Basically Available, Soft state, Eventual consistency From: http://en.wikipedia.org/wiki/ACID and http://en.wikipedia.org/wiki/Eventual_consistency
Why Eventual Consistency? #2 CAP Theorem –Choose only two guarantees Consistency: all nodes see the same data at the same time Availability: a guarantee that every request receives a response about whether it was successful or failed Partition tolerance: the system continues to operate despite arbitrary message loss From: http://en.wikipedia.org/wiki/CAP_theorem
Cache is King Facebook has “28terabytesofmemcacheddata on 800 servers.” http://highscalability.com/blog/2010/9/30/facebook-and-site-failures-caused-by-complex-weakly-interact.html Eventual Consistency at work!
Relational (SQL Azure) vs. NoSQL (Azure Tables)
NoSQL Storage Suitable for granular, semi-structured data (Key/Value stores) Document-oriented data (Document stores) No rigid database schema Weak support for complex joins or complex transaction Usually optimized to Scale Out NoSQLdatabases generally not managed with same tooling as for SQL databases
Overview of Scalability Topics What is Scalability? Scaling Data Scaling Compute ,[object Object],Q&A
CQRS Architecture Pattern Command Query Responsibility Segregation Based on notion that actions which Update our system (“Commands”) are a separate architectural concern than those actions which ask for data (“Query”) Leads to systems where the Front End (UI) and Backend (Business Logic) are Loosely Coupled
CQRS in Windows Azure WE NEED: ,[object Object]
Web Roles (IIS) and Worker Roles (w/o IIS)
Reliable Queue to communicate
Azure Storage Queues
Durable/Persistent Storage
Azure Storage Blobs & Tables; SQL Azure,[object Object]

More Related Content

What's hot

Queues, Pools and Caches paper
Queues, Pools and Caches paperQueues, Pools and Caches paper
Queues, Pools and Caches paper
Gwen (Chen) Shapira
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010
DavidGristwood
 
Java script framework
Java script frameworkJava script framework
Java script framework
Debajani Mohanty
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
Dr-Dipali Meher
 
Understanding The Azure Platform Jan
Understanding The Azure Platform   JanUnderstanding The Azure Platform   Jan
Understanding The Azure Platform Jan
DavidGristwood
 
Scalable relational database with SQL Azure
Scalable relational database with SQL AzureScalable relational database with SQL Azure
Scalable relational database with SQL Azure
Shy Engelberg
 
Queues, Pools and Caches - Paper
Queues, Pools and Caches - PaperQueues, Pools and Caches - Paper
Queues, Pools and Caches - Paper
Gwen (Chen) Shapira
 
A Lap Around Azure
A Lap Around AzureA Lap Around Azure
A Lap Around Azure
DavidGristwood
 
I/O & virtualization performance with a search engine based on an xml databa...
 I/O & virtualization performance with a search engine based on an xml databa... I/O & virtualization performance with a search engine based on an xml databa...
I/O & virtualization performance with a search engine based on an xml databa...
lucenerevolution
 
Polyglot Persistence
Polyglot Persistence Polyglot Persistence
Polyglot Persistence
Dr-Dipali Meher
 
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
Vivek Adithya Mohankumar
 
Consistency in NoSQL
Consistency in NoSQLConsistency in NoSQL
Consistency in NoSQL
Dr-Dipali Meher
 
Cache and consistency in nosql
Cache and consistency in nosqlCache and consistency in nosql
Cache and consistency in nosql
João Gabriel Lima
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform   March 2010Understanding The Azure Platform   March 2010
Understanding The Azure Platform March 2010
DavidGristwood
 
Azure bootcamp (1)
Azure bootcamp (1)Azure bootcamp (1)
Azure bootcamp (1)
AmnaHussain26
 
Data models in NoSQL
Data models in NoSQLData models in NoSQL
Data models in NoSQL
Dr-Dipali Meher
 
Prepare Your Data For The Cloud
Prepare Your Data For The CloudPrepare Your Data For The Cloud
Prepare Your Data For The Cloud
IndicThreads
 
Data Platform Overview
Data Platform OverviewData Platform Overview
Data Platform Overview
Hamid J. Fard
 
Data SLA in the public cloud
Data SLA in the public cloudData SLA in the public cloud
Data SLA in the public cloud
Liran Zelkha
 
OpenStack for VMware Admins - VMworld vBrownbag 2013
OpenStack for VMware Admins - VMworld vBrownbag 2013OpenStack for VMware Admins - VMworld vBrownbag 2013
OpenStack for VMware Admins - VMworld vBrownbag 2013
Colin McNamara
 

What's hot (20)

Queues, Pools and Caches paper
Queues, Pools and Caches paperQueues, Pools and Caches paper
Queues, Pools and Caches paper
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010
 
Java script framework
Java script frameworkJava script framework
Java script framework
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Understanding The Azure Platform Jan
Understanding The Azure Platform   JanUnderstanding The Azure Platform   Jan
Understanding The Azure Platform Jan
 
Scalable relational database with SQL Azure
Scalable relational database with SQL AzureScalable relational database with SQL Azure
Scalable relational database with SQL Azure
 
Queues, Pools and Caches - Paper
Queues, Pools and Caches - PaperQueues, Pools and Caches - Paper
Queues, Pools and Caches - Paper
 
A Lap Around Azure
A Lap Around AzureA Lap Around Azure
A Lap Around Azure
 
I/O & virtualization performance with a search engine based on an xml databa...
 I/O & virtualization performance with a search engine based on an xml databa... I/O & virtualization performance with a search engine based on an xml databa...
I/O & virtualization performance with a search engine based on an xml databa...
 
Polyglot Persistence
Polyglot Persistence Polyglot Persistence
Polyglot Persistence
 
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
 
Consistency in NoSQL
Consistency in NoSQLConsistency in NoSQL
Consistency in NoSQL
 
Cache and consistency in nosql
Cache and consistency in nosqlCache and consistency in nosql
Cache and consistency in nosql
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform   March 2010Understanding The Azure Platform   March 2010
Understanding The Azure Platform March 2010
 
Azure bootcamp (1)
Azure bootcamp (1)Azure bootcamp (1)
Azure bootcamp (1)
 
Data models in NoSQL
Data models in NoSQLData models in NoSQL
Data models in NoSQL
 
Prepare Your Data For The Cloud
Prepare Your Data For The CloudPrepare Your Data For The Cloud
Prepare Your Data For The Cloud
 
Data Platform Overview
Data Platform OverviewData Platform Overview
Data Platform Overview
 
Data SLA in the public cloud
Data SLA in the public cloudData SLA in the public cloud
Data SLA in the public cloud
 
OpenStack for VMware Admins - VMworld vBrownbag 2013
OpenStack for VMware Admins - VMworld vBrownbag 2013OpenStack for VMware Admins - VMworld vBrownbag 2013
OpenStack for VMware Admins - VMworld vBrownbag 2013
 

Similar to Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Camp III - 10-sept-2011

Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
vaishalisahare123
 
Design Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows AzureDesign Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows Azure
Eric Nelson
 
Microsoft cloud 101
Microsoft cloud 101Microsoft cloud 101
Microsoft cloud 101
Rateb Abu Hawieleh
 
NOSQL
NOSQLNOSQL
Windows Azure: Lessons From The Field
Windows Azure: Lessons From The FieldWindows Azure: Lessons From The Field
Windows Azure: Lessons From The Field
Rob Gillen
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With Azure
Clint Edmonson
 
Cloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure toolsCloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure tools
Pushkar Chivate
 
Deploying your Application to SQLRally
Deploying your Application to SQLRallyDeploying your Application to SQLRally
Deploying your Application to SQLRally
Joseph D'Antoni
 
Day2
Day2Day2
Azure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerAzure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL Server
Rafał Hryniewski
 
Azure and cloud design patterns
Azure and cloud design patternsAzure and cloud design patterns
Azure and cloud design patterns
Venkatesh Narayanan
 
Storage in the Windows Azure Platform - ericnel
Storage in the Windows Azure Platform - ericnelStorage in the Windows Azure Platform - ericnel
Storage in the Windows Azure Platform - ericnel
ukdpe
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
Ethos Technologies
 
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics Platform
DATAVERSITY
 
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
Amazon Web Services Korea
 
Introduction to Azure Cloud Storage
Introduction to Azure Cloud StorageIntroduction to Azure Cloud Storage
Introduction to Azure Cloud Storage
Ganga R Jaiswal
 
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesWindows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Comunidade NetPonto
 
Afternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data ServicesAfternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data Services
CCG
 
How to Win When Migrating to Azure
How to Win When Migrating to AzureHow to Win When Migrating to Azure
How to Win When Migrating to Azure
Kellyn Pot'Vin-Gorman
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
Venkat Eswaran
 

Similar to Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Camp III - 10-sept-2011 (20)

Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
 
Design Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows AzureDesign Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows Azure
 
Microsoft cloud 101
Microsoft cloud 101Microsoft cloud 101
Microsoft cloud 101
 
NOSQL
NOSQLNOSQL
NOSQL
 
Windows Azure: Lessons From The Field
Windows Azure: Lessons From The FieldWindows Azure: Lessons From The Field
Windows Azure: Lessons From The Field
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With Azure
 
Cloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure toolsCloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure tools
 
Deploying your Application to SQLRally
Deploying your Application to SQLRallyDeploying your Application to SQLRally
Deploying your Application to SQLRally
 
Day2
Day2Day2
Day2
 
Azure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerAzure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL Server
 
Azure and cloud design patterns
Azure and cloud design patternsAzure and cloud design patterns
Azure and cloud design patterns
 
Storage in the Windows Azure Platform - ericnel
Storage in the Windows Azure Platform - ericnelStorage in the Windows Azure Platform - ericnel
Storage in the Windows Azure Platform - ericnel
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
 
Estimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics PlatformEstimating the Total Costs of Your Cloud Analytics Platform
Estimating the Total Costs of Your Cloud Analytics Platform
 
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
 
Introduction to Azure Cloud Storage
Introduction to Azure Cloud StorageIntroduction to Azure Cloud Storage
Introduction to Azure Cloud Storage
 
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesWindows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
 
Afternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data ServicesAfternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data Services
 
How to Win When Migrating to Azure
How to Win When Migrating to AzureHow to Win When Migrating to Azure
How to Win When Migrating to Azure
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 

Recently uploaded

“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 

Recently uploaded (20)

“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 

Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Camp III - 10-sept-2011

  • 1.                                          Cloud Architecture Patterns for Mere Mortals Examples drawn from Windows Azurecloud platform Vermont Code Camp III 10-September-2011 Boston Azure User Group http://www.bostonazure.org @bostonazure Bill Wilderhttp://blog.codingoutloud.com @codingoutloud Copyright (c) 2011, Bill Wilder – Use allowed under Creative Commons license http://creativecommons.org/licenses/by-nc-sa/3.0/
  • 2. “These go to eleven” –Nigel Tufnel 11 is just better than 10…
  • 3. Bill Wilder has been a software professional for over 20 years. In 2009 he founded the Boston Azure User Group,an in-person cloud community which gets together monthly to learn about the Windows Azure platform through prepared talks and hands-on coding. Bill is a Windows Azure MVP, an active speaker, blogger (blog.codingoutloud.com), and tweeter (@codingoutloud) on technology matters and soft skills for technologists, a member of Boston West Toastmasters, and has a day job as a .NET-focused enterprise architect. Bill Wilder
  • 4. 11 Scalability Concepts What is Scalability? Scaling Data Scaling Compute Q&A
  • 5. Key Concepts & Patterns GENERAL Scale vs. Performance Scale Up vs. Scale Out Shared Nothing Scale Unit DATABASE ORIENTED ACID vs. BASE Eventually Consistent Sharding Optimistic Locking COMPUTE ORIENTED CQRS Pattern Poison Messages Idempotency
  • 6. Key Terms Scale Up Scale Out Horizontal Scale Vertical Scale Scale Unit ACID CAP Eventual Consistency Strong Consistency Multi-tenancy NoSQL Sharding Denormalized Poison Message Idempotent CQRS Performance Scale Optimistic Locking Shared Nothing Load Balancing
  • 7. Overview of Scalability Topics What is Scalability? Scaling Data Scaling Compute Q&A
  • 8. Old School Excel and Word
  • 9.
  • 12. Scale can be bi-directional (more orless)
  • 13. Investment α BenefitWhat does it mean to Scale?
  • 14. Options: Scale Up (and Scale Down)or Scale Out (and Scale In) Terminology: Scaling Up/Down == Vertical Scaling Scaling Out/In == Horizontal Scaling Architectural Decision Big decision… hard to change
  • 15. Scaling Up: Scaling the Box .
  • 16. Scaling Out: Adding Boxes “Shared nothing” scales best
  • 17.
  • 18. Part business, part technical decision (requirements and strategy)
  • 20.
  • 21.
  • 22.
  • 24. Foursquare #Fail October 4, 2010 – trouble begins… After 17 hours of downtime over two days… “Oct. 5 10:28 p.m.: Running on pizza and Red Bull. Another long night.” WHAT WENT WRONG?
  • 25. What is Sharding? Problem: one database can’t handle all the data Too big, not performant, needs geo distribution, … Solution: split data across multiple databases One Logical Database, multiple Physical Databases Each Physical Database Node is a Shard Most scalable is Shared Nothing design May require some denormalization (duplication)
  • 26. Sharding is Difficult What defines a shard? (Where to put stuff?) Example by geography: customer_us, customer_fr, customer_cn, customer_ie, … Use same approach to find records What happens if a shard gets too big? Rebalancing shards can get complex Foursquare case study is interesting Query / join / transact across shards Cache coherence, connection pool management
  • 27. SQL Azure is SQL Server Except… SQL ServerSpecific (for now) SQL Azure Specific Limitations 50 GB size limit New Capabilities Highly Available Rental model Coming: Backups & point-in-time recovery SQL Azure Federations More… Common Full Text Search Native Encryption Many more… “Just change the connection string…” Additional information on Differences: http://msdn.microsoft.com/en-us/library/ff394115.aspx
  • 28. SQL Azure Federations for Sharding Single “master” database “Query Fanout” makes partitions transparent Instead of customer_us, customer_fr, etc… we have just customer database Handles redistributing shards Handles cache coherence Simplifies connection pooling Not a released product offering at this time http://blogs.msdn.com/b/cbiyikoglu/archive/2011/01/18/sql-azure-federations-robust-connectivity-model-for-federated-data.aspx
  • 29.
  • 31. Persistent Storage Services – Azure NoSQL ?
  • 33. NoSQL Databases (simplified!!!) , CouchDB: JSON Document Stores Amazon Dynamo, Azure Tables: Key Value Stores Dynamo: Eventually Consistent Azure Tables: Strongly Consistent Many others! Faster, Cheaper Scales Out “Simpler”
  • 34. Eventual Consistency Property of a system such that not all records of state guaranteed to agree at any given point in time. Applicable to whole systems or parts of systems (such as a database) As opposed to Strongly Consistent (or Instantly Consistent) Eventual Consistency is natural characteristic of a useful, scalable distributed systems
  • 35. Why Eventual Consistency? #1 ACID Guarantees: Atomicity, Consistency, Isolation, Durability SQL insert vs read performance? How do we make them BOTH fast? Optimistic Locking and “Big Oh” math BASE Semantics: Basically Available, Soft state, Eventual consistency From: http://en.wikipedia.org/wiki/ACID and http://en.wikipedia.org/wiki/Eventual_consistency
  • 36. Why Eventual Consistency? #2 CAP Theorem –Choose only two guarantees Consistency: all nodes see the same data at the same time Availability: a guarantee that every request receives a response about whether it was successful or failed Partition tolerance: the system continues to operate despite arbitrary message loss From: http://en.wikipedia.org/wiki/CAP_theorem
  • 37. Cache is King Facebook has “28terabytesofmemcacheddata on 800 servers.” http://highscalability.com/blog/2010/9/30/facebook-and-site-failures-caused-by-complex-weakly-interact.html Eventual Consistency at work!
  • 38. Relational (SQL Azure) vs. NoSQL (Azure Tables)
  • 39. NoSQL Storage Suitable for granular, semi-structured data (Key/Value stores) Document-oriented data (Document stores) No rigid database schema Weak support for complex joins or complex transaction Usually optimized to Scale Out NoSQLdatabases generally not managed with same tooling as for SQL databases
  • 40.
  • 41. CQRS Architecture Pattern Command Query Responsibility Segregation Based on notion that actions which Update our system (“Commands”) are a separate architectural concern than those actions which ask for data (“Query”) Leads to systems where the Front End (UI) and Backend (Business Logic) are Loosely Coupled
  • 42.
  • 43. Web Roles (IIS) and Worker Roles (w/o IIS)
  • 44. Reliable Queue to communicate
  • 47.
  • 48. Canonical Example: Thumbnails Web Role (IIS) Worker Role Azure Queue Azure Blob Key Point: at first, user does not get the thumbnail (UX implications)
  • 49. Reliable Queue & 2-step Delete queue.AddMessage( new CloudQueueMessage( urlToMediaInBlob)); (IIS) Web Role Worker Role Queue CloudQueueMessagemsg = queue.GetMessage( TimeSpan.FromSeconds(10)); … queue.DeleteMessage(msg);
  • 50.
  • 51. Watch your scale units!
  • 52.
  • 53. CQRS expects Poison Messages A Poison Message cannot be processed Error condition for non-transient reason Queue feature: know your dequeue count CloudQueueMessage.DequeueCount property in Azure Be proactive Falling off the queue may kill your system Message TTL = 7 days by default in Azure Determine a max Retry policy May differ by queue object type or other criteria Delete, Move to Special Queue
  • 54. CQRS enables Responsive Response to interactive users is as fast as a work request can be persisted Time consuming work done off-line Comparable total resource consumption, arguably better subjective UX UX challenge – how to express Async to users? Communicate Progress Display Final results
  • 55. CQRS enables Scalable Loosely coupled, concern-independent scaling Getting Scale Units right Blocking is Bane of Scalability Decoupled front/back ends insulate from other system issues if… Twitter down Email server unreachable Order processing partner doing maintenance Internet connectivity interruption
  • 56.
  • 57. CQRS enables Resilient And Requires that you “Plan for failure” There will be VM (or Azure role) restarts Bake in handling of restarts Not an exception case! Expect it! Restarts are routine, system “just keeps working” If you follow the pattern, the payoff is substantial…
  • 58. What’s Up?Aspirin-free Reliability as EMERGENT PROPERTY
  • 59.
  • 60.
  • 62.
  • 63. Focused on Microsoft’s cloud platform
  • 64. Last Thursday, monthly, 6:00-8:30 PM at NERD
  • 65. Food; wifi; free; great topics; growing community
  • 66. Special Waltham meeting on Wed Sept 21
  • 67. Boston Azure Boot Camp: Fri 9/30-Sat 10/1
  • 68. Follow on Twitter: @bostonazure More info or to join our email list: http://www.bostonazure.org
  • 69. Contact Me I may be able to speak at your technology event Just Ask! Bill Wilder @codingoutloud http://blog.codingoutloud.com

Editor's Notes

  1. http://discussion.autodesk.com/forums/thread.jspa?threadID=479556
  2. Scaling DataSQL Azure != SQL Server – 5 minutesQuery Fanout – 5 minutesNoSQL, Table Storage – 10 minutes (mention Eventual Consistency)Scaling ComputeRoles & Queues – 5 minutesScalability Pattern – 10 minutes (mention scale unit)
  3. Scaling DataSQL Azure != SQL Server – 5 minutesQuery Fanout – 5 minutesNoSQL, Table Storage – 10 minutes (mention Eventual Consistency)Scaling ComputeRoles & Queues – 5 minutesScalability Pattern – 10 minutes (mention scale unit)
  4. Image credits/sources:http://www.flickr.com/photos/microsoftsweden/5394688397/http://en.wikipedia.org/wiki/File:Bundesarchiv_B_145_Bild-F077869-0042,_Jugend-Computerschule_mit_IBM-PC.jpghttp://www.flickr.com/photos/microsoftsweden/5395284268/
  5. Same performance when system is managing x units as with 10x, 100x, 1000x …
  6. Talk will focus on how specific Scale Out Patterns can be realized using the Windows Azure Platform, though concepts are generally applicable to other cloud platforms and non-cloud systems…Not ACID, thus addressing CAP theorem limitationsUses concepts of shardingNot discussing MAP/REDUCE, Warehouse, …
  7. Scaling DataSQL Azure != SQL Server – 5 minutesQuery Fanout – 5 minutesNoSQL, Table Storage – 10 minutes (mention Eventual Consistency)Scaling ComputeRoles & Queues – 5 minutesScalability Pattern – 10 minutes (mention scale unit)
  8. Scaling DataSQL Azure != SQL Server – 5 minutesQuery Fanout – 5 minutesNoSQL, Table Storage – 10 minutes (mention Eventual Consistency)Scaling ComputeRoles & Queues – 5 minutesScalability Pattern – 10 minutes (mention scale unit)
  9. Social Check-in Site Foursquare32 employees (at the time)10GenSmall companyMicrosoftBIG COMPANY (how many of the 90k employees work on SQL Server?)http://blog.foursquare.com/2010/10/05/so-that-was-a-bummer/http://highscalability.com/blog/2010/10/15/troubles-with-sharding-what-can-we-learn-from-the-foursquare.html
  10. [Not same as Data Warehouse or Reporting DB]
  11. http://blogs.msdn.com/b/cbiyikoglu/archive/2011/01/18/sql-azure-federations-robust-connectivity-model-for-federated-data.aspx
  12. Scaling DataSQL Azure != SQL Server – 5 minutesQuery Fanout – 5 minutesNoSQL, Table Storage – 10 minutes (mention Eventual Consistency)Scaling ComputeRoles & Queues – 5 minutesScalability Pattern – 10 minutes (mention scale unit)
  13. http://www.cloudave.com/695/nosql-is-not-sql-and-thats-a-problem/http://notonlysql.com/
  14. http://en.wikipedia.org/wiki/NoSQLAmazon Dynamo is inspiration for other popular NoSQLs like Riak and Cassandra
  15. Facebook image:http://www.flickr.com/photos/69805768@N00/3292553947/
  16. http://en.wikipedia.org/wiki/NoSQL
  17. Scaling DataSQL Azure != SQL Server – 5 minutesQuery Fanout – 5 minutesNoSQL, Table Storage – 10 minutes (mention Eventual Consistency)Scaling ComputeRoles & Queues – 5 minutesScalability Pattern – 10 minutes (mention scale unit)
  18. AJAX – orthogonal concernWorker Role not related to HTML 5 concept of Web Worker
  19. AJAX – orthogonal concernWorker Role not related to HTML 5 concept of Web Worker“Thumbnails” sample code available from http://code.msdn.microsoft.com/windowsazuresamples
  20. AJAX – orthogonal concernWorker Role not related to HTML 5 concept of Web Worker
  21. Chainsaw: http://commons.wikimedia.org/wiki/File:Chainsaw_cutting_tree.jpg
  22. Tech Windows
  23. Scaling DataSQL Azure != SQL Server – 5 minutesQuery Fanout – 5 minutesNoSQL, Table Storage – 10 minutes (mention Eventual Consistency)Scaling ComputeRoles & Queues – 5 minutesScalability Pattern – 10 minutes (mention scale unit)