SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

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, DigitalisHostedbyConfluent
 
Calgary azure dev camp - Service Bus
Calgary azure dev camp - Service BusCalgary azure dev camp - Service Bus
Calgary azure dev camp - Service Buswearsy
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scalesOren Eini
 
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 PerormanceSpark::red
 
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 2015Speedment, Inc.
 
Optimizing Your WordPress Site
Optimizing Your WordPress SiteOptimizing Your WordPress Site
Optimizing Your WordPress Siteozzyr
 
Scalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessScalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessDerek Collison
 
GoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraGoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraDerek Collison
 
Twitter Fatcache
Twitter FatcacheTwitter Fatcache
Twitter Fatcacheits_skm
 

La actualidad más candente (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 a Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемого приложения в облаке"

Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDBFoundationDB
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that growGibraltar Software
 
Scaling apps for the big time
Scaling apps for the big timeScaling apps for the big time
Scaling apps for the big timeproitconsult
 
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 applicationNoam Sheffer
 
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_monolithMarkus Eisele
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
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 NotesAdrian Cockcroft
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azuredivyapisces
 
iMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale UpiMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale UpPedro Machado
 
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_dbhyeongchae lee
 
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, ACLTriNimbus
 
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...Amazon Web Services
 
Web development tips and tricks
Web development tips and tricksWeb development tips and tricks
Web development tips and tricksmaxo_64
 
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 UsersAmazon Web Services
 
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 UsersAmazon Web Services
 
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 UsersAmazon Web Services
 
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 GoelevenParticular Software
 

Similar a Антон Бойко "Разделяй и властвуй — набор практик для построения масштабируемого приложения в облаке" (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
 

Más de Marina Peregud

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"Marina Peregud
 
IT talk Odessa. Device Hive
IT talk Odessa. Device HiveIT talk Odessa. Device Hive
IT talk Odessa. Device HiveMarina Peregud
 
Автоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятАвтоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едятMarina Peregud
 
Эллина Азадова "Что за зверь Usability... и как его протестировать"
Эллина Азадова "Что за зверь Usability... и как его протестировать"Эллина Азадова "Что за зверь Usability... и как его протестировать"
Эллина Азадова "Что за зверь Usability... и как его протестировать"Marina Peregud
 
Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"Marina Peregud
 
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"Marina Peregud
 

Más de 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... и как его протестировать"
 
Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"Александр Демура "Сферы применения разных типов менеджмента"
Александр Демура "Сферы применения разных типов менеджмента"
 
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
Михаил Сердюк "Приятности Руби или Зачем писать красивый код"
 

Último

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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...Drew Madelung
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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 2024Rafal Los
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Último (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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 Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

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

  • 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