SlideShare a Scribd company logo
1 of 35
Спикер:
Тема презентации:
Антон Бойко, Microsoft Azure MVP
Разделяй и властвуй — набор практик
для построения масштабируемого приложения в облаке
Who am I?
Developer
• .NET – 10+ years
• Node.JS and JavaScript – 3+ years
Cloud engineer
• Microsoft Azure – 4+ years
• Amazon Web Services – 3+ years
Community leader
• Microsoft Azure MVP – 2+ years
• Ukrainian Microsoft Azure Community Founder
Consultant
• 30+ cloud based projects (from 5 to 5M users) including startups, migration, etc.
• 20+ cloud based trainings, workshops, webinars, etc.
Agenda
• Scalability? It is and it isn`t.
• Ways of scaling.
• Divide and conquer. Divide what and conquer who?
• Go into more details with scalability patterns.
Scalability
Scalability is…
• Scalability is the ability of a system, network, or process to handle a
growing amount of work in a capable manner or its ability to be
enlarged to accommodate that growth.
Scalability story #1 – Gnutella
• When a user wants to do a search, a client sends a request to each
actively connected node. In version 0.4 of the protocol, the number
of actively connected nodes for a client was quite small (around 5),
therefore each node forwarded the request to all its actively
connected nodes, and they in turn forwarded the request, and so on,
until the packet reached a predetermined number of hops from the
sender.
Scalability story #2 – Domain Name System
.
.com
.dataart .blog
.google
.ua .in
.testing
.teamspark
.azureday
.gwab
Scalability is not…
• Performance tuning
Tuning
Scaling
Ways of scaling
Vertical scaling
1 CPU
4 GB RAM
4 CPU
16 GB RAM
X4
Vertical scaling
Pros
• Simple and straightforward
• Better resources’ utilization
Cons
• Usually requires shutdown
(downtime) to scale
Horizontal scaling
1 CPU
4 GB RAM
1 CPU
4 GB RAM
1 CPU
4 GB RAM
1 CPU
4 GB RAM
1 CPU
4 GB RAM
X4
Horizontal scaling
Pros
• Scale without downtime
• Improved availability out of the
box
Cons
• Your app needs to support
horizontal scaling
• Can induce inefficient resources’
utilization
There is no silver bullet
Divide and conquer
Divide application
• Split your app into independent modules which can perform some
small and dedicated tasks. For example:
• Client
• API
• Application
• Data access
• Do not try to do all tasks at once, you need to eat your elephant piece
by piece.
• It’s much easier and more transparent to work within simple module
scope than the system scope itself.
Conquer workload
• If you know your enemies and yourself, you will not be imperiled in a
hundred battles - Sun Tzu, The Art of War.
• Determine whom you are fighting against.
• Know your strengths and know your weaknesses.
Anyway… Always use your head!
Divide and conquer story #1 – web site
content analyzer
Downloader
queue
Downloader
Content storage
Analyzer
queue
Results storage
Analyzer
APIClient App
1..N
1..N
1..N
Divide and conquer story #2 – Map Reduce
Sheldon: I made tea.
Leonard: I don’t want tea.
Sheldon: I didn’t make tea for you. This is my tea.
Leonard: Then why are you telling me?
Sheldon: It’s a conversation starter.
Leonard: That’s a lousy conversation starter.
Sheldon: Oh, is it? We’re conversing. Checkmate.
HDFS Map Reduce Result
Raw data
(line from txt file)
Key and raw data array Key-value pairs
“I made tea.” =>
“tea” : “I made tea.”
“tea” : [“…”, “…”, “…”] =>
“tea” : “3”
“tea” : “3”
“you” : “1”
Scalability patterns
Static content hosting
Web Site
Web SiteWeb Site
Static content hosting CDN
Static content hosting
Pros
• Simple and straightforward way
to decrease web server load
• Very easy to implement
• Bring static content closer to
end users
Cons
• Need to wait for TTL to expire on
caching node or need to update
caching node explicitly
• Can supply content from
different IP address
• Can be harder to deploy new
version because of system
inconsistency
Worker
Queue-based load leveling
Web Site
Worker
Queue-based load leveling
Web Site
Queue
Worker
Queue-based load leveling
Pros
• Easy way to scale independent
atomic tasks
Cons
• Can take some time to rearrange
system communication
mechanism
• Queue is a one-way
communication channel
• Queue can increase response
latency
Command and query responsibility
segregation
CRUD
Command and query responsibility
segregation
Write
Read
Sync
Command and query responsibility
segregation
Pros
• Provides an ability to manage
writes and reads load separately
• Reads can be easily scaled
horizontally
Cons
• Can take a lot of time to migrate
from regular CRUD based code
• Can easily become
unmanageable and cumbersome
Sharding
Charley
Judith
Jake
Sharding
Charley Judith Jake
Charley
Judith
Jake
Sharding
Pros
• Can scale data storage almost to
infinity
• Can easily manage data load for
different shards
Cons
• Impossible to use native queries
to query data among several
shards (unless your engine is
able to do that)
• Cross-shard queries can require
a lot of additional coding
• Will introduce additional
redundancy
And again… Always use your head!
Q & A
Anton Boyko
boyko.ant@live.com
facebook.com/groups/azure.ua
it-community.in.ua

More Related Content

What's hot

Scalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessScalable and Available, Patterns for Success
Scalable and Available, Patterns for Success
Derek Collison
 

What's hot (20)

Windows Azure Service Bus
Windows Azure Service BusWindows Azure Service Bus
Windows Azure Service Bus
 
XMPP Academy #2
XMPP Academy #2XMPP Academy #2
XMPP Academy #2
 
Overview of Message Queues
Overview of Message QueuesOverview of Message Queues
Overview of Message Queues
 
RavenDB 4.0
RavenDB 4.0RavenDB 4.0
RavenDB 4.0
 
RavenDB 3.5
RavenDB 3.5RavenDB 3.5
RavenDB 3.5
 
Capacity Planning Your Kafka Cluster | Jason Bell, Digitalis
Capacity Planning Your Kafka Cluster | Jason Bell, DigitalisCapacity Planning Your Kafka Cluster | Jason Bell, Digitalis
Capacity Planning Your Kafka Cluster | Jason Bell, Digitalis
 
Message queues
Message queuesMessage queues
Message queues
 
Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 
How and when to use NoSQL
How and when to use NoSQLHow and when to use NoSQL
How and when to use NoSQL
 
Calgary azure dev camp - Service Bus
Calgary azure dev camp - Service BusCalgary azure dev camp - Service Bus
Calgary azure dev camp - Service Bus
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scales
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance
 
SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015
 
Optimizing Your WordPress Site
Optimizing Your WordPress SiteOptimizing Your WordPress Site
Optimizing Your WordPress Site
 
Scalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessScalable and Available, Patterns for Success
Scalable and Available, Patterns for Success
 
GoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraGoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at Apcera
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Cnam azure 2015 storage
Cnam azure 2015  storageCnam azure 2015  storage
Cnam azure 2015 storage
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Twitter Fatcache
Twitter FatcacheTwitter Fatcache
Twitter Fatcache
 

Similar to Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемого приложения в облаке"

Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
Noam Sheffer
 
iMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale UpiMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale Up
Pedro Machado
 
Web development tips and tricks
Web development tips and tricksWeb development tips and tricks
Web development tips and tricks
maxo_64
 

Similar to Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемого приложения в облаке" (20)

Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
Scaling apps for the big time
Scaling apps for the big timeScaling apps for the big time
Scaling apps for the big time
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
 
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesYow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
 
Windows Azure introduction
Windows Azure introductionWindows Azure introduction
Windows Azure introduction
 
Enterprise Journey to the Cloud
Enterprise Journey to the CloudEnterprise Journey to the Cloud
Enterprise Journey to the Cloud
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azure
 
iMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale UpiMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale Up
 
20141206 4 q14_dataconference_i_am_your_db
20141206 4 q14_dataconference_i_am_your_db20141206 4 q14_dataconference_i_am_your_db
20141206 4 q14_dataconference_i_am_your_db
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
 
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
 
Web development tips and tricks
Web development tips and tricksWeb development tips and tricks
Web development tips and tricks
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million Users
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million Users
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 

More from Marina Peregud

Эллина Азадова "Что за зверь Usability... и как его протестировать"
Эллина Азадова "Что за зверь Usability... и как его протестировать"Эллина Азадова "Что за зверь Usability... и как его протестировать"
Эллина Азадова "Что за зверь Usability... и как его протестировать"
Marina Peregud
 
Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"
Marina Peregud
 
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Marina Peregud
 

More from Marina Peregud (6)

IT talk #18 Odessa: Alexey Rybakov "Android TV"
IT talk #18 Odessa: Alexey Rybakov "Android TV"IT talk #18 Odessa: Alexey Rybakov "Android TV"
IT talk #18 Odessa: Alexey Rybakov "Android TV"
 
IT talk Odessa. Device Hive
IT talk Odessa. Device HiveIT talk Odessa. Device Hive
IT talk Odessa. Device Hive
 
Автоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятАвтоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едят
 
Эллина Азадова "Что за зверь Usability... и как его протестировать"
Эллина Азадова "Что за зверь Usability... и как его протестировать"Эллина Азадова "Что за зверь Usability... и как его протестировать"
Эллина Азадова "Что за зверь Usability... и как его протестировать"
 
Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"
 
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемого приложения в облаке"

  • 1. Спикер: Тема презентации: Антон Бойко, Microsoft Azure MVP Разделяй и властвуй — набор практик для построения масштабируемого приложения в облаке
  • 2. Who am I? Developer • .NET – 10+ years • Node.JS and JavaScript – 3+ years Cloud engineer • Microsoft Azure – 4+ years • Amazon Web Services – 3+ years Community leader • Microsoft Azure MVP – 2+ years • Ukrainian Microsoft Azure Community Founder Consultant • 30+ cloud based projects (from 5 to 5M users) including startups, migration, etc. • 20+ cloud based trainings, workshops, webinars, etc.
  • 3. Agenda • Scalability? It is and it isn`t. • Ways of scaling. • Divide and conquer. Divide what and conquer who? • Go into more details with scalability patterns.
  • 5. Scalability is… • Scalability is the ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth.
  • 6. Scalability story #1 – Gnutella • When a user wants to do a search, a client sends a request to each actively connected node. In version 0.4 of the protocol, the number of actively connected nodes for a client was quite small (around 5), therefore each node forwarded the request to all its actively connected nodes, and they in turn forwarded the request, and so on, until the packet reached a predetermined number of hops from the sender.
  • 7. Scalability story #2 – Domain Name System . .com .dataart .blog .google .ua .in .testing .teamspark .azureday .gwab
  • 8. Scalability is not… • Performance tuning Tuning Scaling
  • 10. Vertical scaling 1 CPU 4 GB RAM 4 CPU 16 GB RAM X4
  • 11. Vertical scaling Pros • Simple and straightforward • Better resources’ utilization Cons • Usually requires shutdown (downtime) to scale
  • 12. Horizontal scaling 1 CPU 4 GB RAM 1 CPU 4 GB RAM 1 CPU 4 GB RAM 1 CPU 4 GB RAM 1 CPU 4 GB RAM X4
  • 13. Horizontal scaling Pros • Scale without downtime • Improved availability out of the box Cons • Your app needs to support horizontal scaling • Can induce inefficient resources’ utilization
  • 14. There is no silver bullet
  • 16. Divide application • Split your app into independent modules which can perform some small and dedicated tasks. For example: • Client • API • Application • Data access • Do not try to do all tasks at once, you need to eat your elephant piece by piece. • It’s much easier and more transparent to work within simple module scope than the system scope itself.
  • 17. Conquer workload • If you know your enemies and yourself, you will not be imperiled in a hundred battles - Sun Tzu, The Art of War. • Determine whom you are fighting against. • Know your strengths and know your weaknesses.
  • 18. Anyway… Always use your head!
  • 19. Divide and conquer story #1 – web site content analyzer Downloader queue Downloader Content storage Analyzer queue Results storage Analyzer APIClient App 1..N 1..N 1..N
  • 20. Divide and conquer story #2 – Map Reduce Sheldon: I made tea. Leonard: I don’t want tea. Sheldon: I didn’t make tea for you. This is my tea. Leonard: Then why are you telling me? Sheldon: It’s a conversation starter. Leonard: That’s a lousy conversation starter. Sheldon: Oh, is it? We’re conversing. Checkmate. HDFS Map Reduce Result Raw data (line from txt file) Key and raw data array Key-value pairs “I made tea.” => “tea” : “I made tea.” “tea” : [“…”, “…”, “…”] => “tea” : “3” “tea” : “3” “you” : “1”
  • 23. Web SiteWeb Site Static content hosting CDN
  • 24. Static content hosting Pros • Simple and straightforward way to decrease web server load • Very easy to implement • Bring static content closer to end users Cons • Need to wait for TTL to expire on caching node or need to update caching node explicitly • Can supply content from different IP address • Can be harder to deploy new version because of system inconsistency
  • 27. Queue-based load leveling Pros • Easy way to scale independent atomic tasks Cons • Can take some time to rearrange system communication mechanism • Queue is a one-way communication channel • Queue can increase response latency
  • 28. Command and query responsibility segregation CRUD
  • 29. Command and query responsibility segregation Write Read Sync
  • 30. Command and query responsibility segregation Pros • Provides an ability to manage writes and reads load separately • Reads can be easily scaled horizontally Cons • Can take a lot of time to migrate from regular CRUD based code • Can easily become unmanageable and cumbersome
  • 33. Sharding Pros • Can scale data storage almost to infinity • Can easily manage data load for different shards Cons • Impossible to use native queries to query data among several shards (unless your engine is able to do that) • Cross-shard queries can require a lot of additional coding • Will introduce additional redundancy
  • 34. And again… Always use your head!
  • 35. Q & A Anton Boyko boyko.ant@live.com facebook.com/groups/azure.ua it-community.in.ua