SlideShare une entreprise Scribd logo
1  sur  37
... 
Web Role 
Azure Cloud 
Service
Service Bus 
Web Role Worker 
Azure Cloud Service
Service Bus 
Queue 
Message 
Batch 
Process 
Messages 
Process 
Message 
Process 
Message ..
Service Bus 
Queue 
Message 
Batch 
Process 
Messages 
Process 
Message 
.. 
Process 
Message
00:30.2 
00:25.9 
00:21.6 
00:17.3 
00:13.0 
00:08.6 
00:04.3 
00:00.0 
Message 
Type 1 
Message 
Type 2 
Message 
Type 3 
Message 
Type 4 
Message 
Type 5 
Message 
Type 6 
Message 
Type 7 
Message 
Type 8 
Variation in Message Processing 
Avg Min Max
http://channel9.msdn.com/Series/PerfView-Tutorial/Tutorial-12-Wall-Clock-Time-Investigation-Basics
Cloud Service Boundary 
Load Balancer 
Web 
Servers 
Database 
App 
Servers 
Azure 
Queue(s)
... 
Web Role 
Azure Cloud 
Service 
500 databases
Azure Load Balancer 
DB1 DB2 DB3 
SrcIp SrcPort DestIp DestPort 
A.B.C.D 1 E.F.G.H 1433 
A.B.C.D 2 E.F.G.H 1433
... 
Web Role 
Azure Cloud 
Service 
500 databases 
Content 
moderation 
service
450 
400 
350 
300 
250 
200 
150 
100 
50 
0 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
Seconds 
Web Request Response Latency 
Avg Latency Response Latency
... 
Azure Cloud Service 
Web Role Worker 
Blob 
Queue 
Azure Storage Account
Query Throughput Latency Reach 
Every 30 seconds, each device publishes a status 
update (location, health, etc) 
4k – 100k 
msgs/sec 
2000 – 5000 
ms 
Single 
device 
Every 10 minutes, a batch job retrieves all of the 
status updates delivered in the past 10 minutes 
2M msgs / 10 
minutes 
2 minutes All devices 
On an ad-hoc basis, a user may request the 
current status and recent history of all of their 
devices 
15 requests / 
second 
500 ms Limited 
device set 
On an ad-hoc basis, a user may request a 
historical time range of all of their devices 
5 requests / 
second 
750 ms Limited 
device set
Pk={Device;Day}, 
Rk={Timestamp} 
Payload={fields} 
STB Readiness 
This isn’t a relational workload 
Per-device insert and lookup 
Periodic batch transfer 
Per-device lookup 
Natural fit for table storage 
Device ID = Pk 
Data type = Rk 
Periodic batch transfer 
Natural fit for blob storage 
Instance + Timestamp = blob id 
Buffer and write into blocks 
Roll over on time interval (10 min) 
0101 1101 0111 
1101 0111 ... 
Time/space 
buffer 
Table 
Storage 
Blob 
Storage 
Uri={Minute;Instance} 
Payload={JSON Data} 
Querying by device 
By time - direct { PkRk } lookup 
By day - direct { Pk } max of 2880 records per partition 
Batch transfer by time frame 
Parallel download of all blobs matching timeframe pattern 
Adding scale capacity 
20k operations per storage account,
Where are the 
scalability 
bottlenecks? 
Where are the 
availability and 
failure points? 
Where are the key 
insight and 
instrumentation 
points? 
Cloud Service 
Front End 
Web Role 
Instance Instance Instance Instance 
Caching 
Role 
Instance Instance 
Worker 
Role 
Instance 
Databases 
DB DB DB DB 
Storage 
Storage 
Account 
Storage 
Account
http://channel9.msdn.com/Series/FailSafe 
http://code.msdn.microsoft.com/windowsazure/ContosoSocial-in- 
Windows-8dd9052c
SVCC: Code Shaming and Antipatterns

Contenu connexe

Tendances

Nodester Architecture overview & roadmap
Nodester Architecture overview & roadmapNodester Architecture overview & roadmap
Nodester Architecture overview & roadmap
cmatthieu
 
nodester Architecture overview & roadmap
nodester Architecture overview & roadmapnodester Architecture overview & roadmap
nodester Architecture overview & roadmap
wearefractal
 
Statim, time series interface for Perl.
Statim, time series interface for Perl.Statim, time series interface for Perl.
Statim, time series interface for Perl.
Thiago Rondon
 

Tendances (20)

GEO mapbox geo_api_develop2 Intro
 GEO mapbox geo_api_develop2 Intro GEO mapbox geo_api_develop2 Intro
GEO mapbox geo_api_develop2 Intro
 
Jsonnet, terraform & packer
Jsonnet, terraform & packerJsonnet, terraform & packer
Jsonnet, terraform & packer
 
Scenejs
ScenejsScenejs
Scenejs
 
Containers and Logging
Containers and LoggingContainers and Logging
Containers and Logging
 
SceneJS
SceneJSSceneJS
SceneJS
 
Fluentd and Distributed Logging at Kubecon
Fluentd and Distributed Logging at KubeconFluentd and Distributed Logging at Kubecon
Fluentd and Distributed Logging at Kubecon
 
Solving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.comSolving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.com
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
Elk with Openstack
Elk with OpenstackElk with Openstack
Elk with Openstack
 
Logging for Containers
Logging for ContainersLogging for Containers
Logging for Containers
 
OpenStack Log Mining
OpenStack Log MiningOpenStack Log Mining
OpenStack Log Mining
 
Fluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at ScaleFluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at Scale
 
SqliteToRealm
SqliteToRealmSqliteToRealm
SqliteToRealm
 
Datafying Bitcoins
Datafying BitcoinsDatafying Bitcoins
Datafying Bitcoins
 
Exploring Parallel Merging In GPU Based Systems Using CUDA C.
Exploring Parallel Merging In GPU Based Systems Using CUDA C.Exploring Parallel Merging In GPU Based Systems Using CUDA C.
Exploring Parallel Merging In GPU Based Systems Using CUDA C.
 
Cassandra at talkbits
Cassandra at talkbitsCassandra at talkbits
Cassandra at talkbits
 
Nodester Architecture overview & roadmap
Nodester Architecture overview & roadmapNodester Architecture overview & roadmap
Nodester Architecture overview & roadmap
 
nodester Architecture overview & roadmap
nodester Architecture overview & roadmapnodester Architecture overview & roadmap
nodester Architecture overview & roadmap
 
Statim, time series interface for Perl.
Statim, time series interface for Perl.Statim, time series interface for Perl.
Statim, time series interface for Perl.
 
Building real-time apps with WebSockets
Building real-time apps with WebSocketsBuilding real-time apps with WebSockets
Building real-time apps with WebSockets
 

En vedette

En vedette (8)

SVCC-2014
SVCC-2014SVCC-2014
SVCC-2014
 
Google Glass, the GDK, and HTML5
Google Glass, the GDK, and HTML5Google Glass, the GDK, and HTML5
Google Glass, the GDK, and HTML5
 
Silicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsSilicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API Antipatterns
 
Zero-config JavaScript apps with RaveJS -- SVCC fall 2014
Zero-config JavaScript apps with RaveJS -- SVCC fall 2014Zero-config JavaScript apps with RaveJS -- SVCC fall 2014
Zero-config JavaScript apps with RaveJS -- SVCC fall 2014
 
Integrating Hadoop & Solr
Integrating Hadoop & SolrIntegrating Hadoop & Solr
Integrating Hadoop & Solr
 
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conferenceVaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
 
Cracking the Coding Interview
Cracking the Coding InterviewCracking the Coding Interview
Cracking the Coding Interview
 
Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)
 

Similaire à SVCC: Code Shaming and Antipatterns

Similaire à SVCC: Code Shaming and Antipatterns (20)

A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
A Deep Dive into Stateful Stream Processing in Structured Streaming with Tath...
 
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
 
Azure: Lessons From The Field
Azure: Lessons From The FieldAzure: Lessons From The Field
Azure: Lessons From The Field
 
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
Virtual Flink Forward 2020: Netflix Data Mesh: Composable Data Processing - J...
 
Scale and Throughput @ Clicktale with Akka
Scale and Throughput @ Clicktale with AkkaScale and Throughput @ Clicktale with Akka
Scale and Throughput @ Clicktale with Akka
 
Leveraging open source tools to gain insight into OpenStack Swift
Leveraging open source tools to gain insight into OpenStack SwiftLeveraging open source tools to gain insight into OpenStack Swift
Leveraging open source tools to gain insight into OpenStack Swift
 
(BAC404) Deploying High Availability and Disaster Recovery Architectures with...
(BAC404) Deploying High Availability and Disaster Recovery Architectures with...(BAC404) Deploying High Availability and Disaster Recovery Architectures with...
(BAC404) Deploying High Availability and Disaster Recovery Architectures with...
 
Microsoft Azure Storage - Table (NoSQL)
Microsoft Azure Storage - Table (NoSQL)Microsoft Azure Storage - Table (NoSQL)
Microsoft Azure Storage - Table (NoSQL)
 
Scaling Data Analytics Workloads on Databricks
Scaling Data Analytics Workloads on DatabricksScaling Data Analytics Workloads on Databricks
Scaling Data Analytics Workloads on Databricks
 
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
Drizzle—Low Latency Execution for Apache Spark: Spark Summit East talk by Shi...
 
ASP.NET Core 3.0 Deep Dive
ASP.NET Core 3.0 Deep DiveASP.NET Core 3.0 Deep Dive
ASP.NET Core 3.0 Deep Dive
 
Windows Azure Tables e NoSQL
Windows Azure Tables e NoSQLWindows Azure Tables e NoSQL
Windows Azure Tables e NoSQL
 
Cortana Analytics Workshop: Real-Time Data Processing -- How Do I Choose the ...
Cortana Analytics Workshop: Real-Time Data Processing -- How Do I Choose the ...Cortana Analytics Workshop: Real-Time Data Processing -- How Do I Choose the ...
Cortana Analytics Workshop: Real-Time Data Processing -- How Do I Choose the ...
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
 
Tech-Spark: Exploring the Cosmos DB
Tech-Spark: Exploring the Cosmos DBTech-Spark: Exploring the Cosmos DB
Tech-Spark: Exploring the Cosmos DB
 
Windows Azure: Lessons From The Field
Windows Azure: Lessons From The FieldWindows Azure: Lessons From The Field
Windows Azure: Lessons From The Field
 
Oracle E-Business Suite On Oracle Cloud
Oracle E-Business Suite On Oracle CloudOracle E-Business Suite On Oracle Cloud
Oracle E-Business Suite On Oracle Cloud
 
Treasure Data and AWS - Developers.io 2015
Treasure Data and AWS - Developers.io 2015Treasure Data and AWS - Developers.io 2015
Treasure Data and AWS - Developers.io 2015
 
Concurrency at the Database Layer
Concurrency at the Database Layer Concurrency at the Database Layer
Concurrency at the Database Layer
 

Dernier

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Dernier (20)

WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 

SVCC: Code Shaming and Antipatterns

  • 1.
  • 2.
  • 3. ... Web Role Azure Cloud Service
  • 4. Service Bus Web Role Worker Azure Cloud Service
  • 5.
  • 6. Service Bus Queue Message Batch Process Messages Process Message Process Message ..
  • 7. Service Bus Queue Message Batch Process Messages Process Message .. Process Message
  • 8.
  • 9.
  • 10. 00:30.2 00:25.9 00:21.6 00:17.3 00:13.0 00:08.6 00:04.3 00:00.0 Message Type 1 Message Type 2 Message Type 3 Message Type 4 Message Type 5 Message Type 6 Message Type 7 Message Type 8 Variation in Message Processing Avg Min Max
  • 12. Cloud Service Boundary Load Balancer Web Servers Database App Servers Azure Queue(s)
  • 13. ... Web Role Azure Cloud Service 500 databases
  • 14. Azure Load Balancer DB1 DB2 DB3 SrcIp SrcPort DestIp DestPort A.B.C.D 1 E.F.G.H 1433 A.B.C.D 2 E.F.G.H 1433
  • 15. ... Web Role Azure Cloud Service 500 databases Content moderation service
  • 16. 450 400 350 300 250 200 150 100 50 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Seconds Web Request Response Latency Avg Latency Response Latency
  • 17. ... Azure Cloud Service Web Role Worker Blob Queue Azure Storage Account
  • 18.
  • 19.
  • 20. Query Throughput Latency Reach Every 30 seconds, each device publishes a status update (location, health, etc) 4k – 100k msgs/sec 2000 – 5000 ms Single device Every 10 minutes, a batch job retrieves all of the status updates delivered in the past 10 minutes 2M msgs / 10 minutes 2 minutes All devices On an ad-hoc basis, a user may request the current status and recent history of all of their devices 15 requests / second 500 ms Limited device set On an ad-hoc basis, a user may request a historical time range of all of their devices 5 requests / second 750 ms Limited device set
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. Pk={Device;Day}, Rk={Timestamp} Payload={fields} STB Readiness This isn’t a relational workload Per-device insert and lookup Periodic batch transfer Per-device lookup Natural fit for table storage Device ID = Pk Data type = Rk Periodic batch transfer Natural fit for blob storage Instance + Timestamp = blob id Buffer and write into blocks Roll over on time interval (10 min) 0101 1101 0111 1101 0111 ... Time/space buffer Table Storage Blob Storage Uri={Minute;Instance} Payload={JSON Data} Querying by device By time - direct { PkRk } lookup By day - direct { Pk } max of 2880 records per partition Batch transfer by time frame Parallel download of all blobs matching timeframe pattern Adding scale capacity 20k operations per storage account,
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Where are the scalability bottlenecks? Where are the availability and failure points? Where are the key insight and instrumentation points? Cloud Service Front End Web Role Instance Instance Instance Instance Caching Role Instance Instance Worker Role Instance Databases DB DB DB DB Storage Storage Account Storage Account
  • 34.
  • 35.

Notes de l'éditeur

  1. Optimize for the most stringent case More options for latency insensitive workflows Simplicity is king Use the simplest, most robust approach that fulfills needs But not simpler… That’s not always the obvious or familiar one… No one, true solution Favour of composition of approaches to improve resiliency, reduce complexity
  2. Periodic query spike on bulk reporting Impact to online operations (30M+ rows) Rebalancing Moving data between partitions / databases Distribution of reference data (relational model) Keeping in sync Impact of noisy neighbors (Azure SQL DB) Variable latency, pushback under heavy load Cost of management (SQL IaaS) Cost of automation for patching, maintenance
  3. Periodic query spike on bulk reporting Impact to online operations (30M+ rows) Rebalancing Moving data between partitions / databases Distribution of reference data (relational model) Keeping in sync Impact of noisy neighbors (Azure SQL DB) Variable latency, pushback under heavy load Cost of management (SQL IaaS) Cost of automation for patching, maintenance
  4. Periodic query spike on bulk reporting Impact to online operations (30M+ rows) Rebalancing Moving data between partitions / databases Distribution of reference data (relational model) Keeping in sync Impact of noisy neighbors (Azure SQL DB) Variable latency, pushback under heavy load Cost of management (SQL IaaS) Cost of automation for patching, maintenance
  5. Scalability bottlenecks No long able to add additional capacity? How to add additional scale units? Where are the key optimization points? Messaging, serialization, asynchronicity Availability and failure points Node level Service level DC level Operational and instrumentation points