SlideShare a Scribd company logo
FFFast Drupal 
backend 
No kidding! 
Pavel Prischepa 
1
Pavel Prischepa 
Partner at i20 Group 
CEO at DrupalJedi 
5 years of work with Drupal (and Drupal only) 
on an international level 
• Development 
• Project management 
• Drupal PR, promotion 
• Drupal audit 
• Consulting 
2
Is Drupal fast? 
Browser Cache layer Drupal 
3
Real project 
• 5 000 000 nodes 
• 1 000 000 unique visitors per day 
• 0,4 seconds per page 
• Cache: MongoDB, Redis, NginX, Varnish 
• Dynamic blocks: ESI, AJAX 
4
Drupal as backend 
Drupal 
Mobile 
application 
Single-page 
application 
Web sites 
5
Drupal as backend 
• DRUPAL_BOOTSTRAP_FULL for each request 
• 30-100 database queries per request 
• Slow server response 
6
Silk Paints: 
mobile application 
for drawing 
7
Silk Paints 
• Users draw paintings, save them to server 
• Backend on Drupal (Services) 
• 500 000 users 
• 5-20 requests per second 
8
9
Silk Paints: 
launch of iOS version 
• Likes 
• Friend lists 
• Pictures moderation 
• 50-100 requests per second 
10
11
Looking for an 
alternative to Drupal 
• Node.js 
• Python 
• Zend 
12
One does not simply 
use a new framework 
• Change production process 
• Train / hire people 
• “Nabit’ shishki” 
• Meanwhile...project is uncontrollable 
13
Back to Drupal 
14
Back to Drupal 
• Coding standards 
• Config 
• DB integration 
• Cache 
• Modules 
• Design, Develop, Testing, Deploy processes 
15
Tasks are processed 
Запрос 
Back to Drupal 
in background 
Drupal 
Worker 
Queue Worker 
Quick response Worker 
16
Запрос 
Back to Drupal 
Drupal 
Module JS 
Drush 
Daemon API 
Drupal 
Queue API 
Drush 
Daemon API 
Drush 
Daemon API 
17
Silk Paints: result 
• 50 requests per second 
• 5-10 requests to MySQL per request 
• Response time less than 1 second 
• Savings on development and support 
• Predictability of development 
18
Drupal as backend 
Best practice 
19
Application architecture 
• Service Oriented 
Architecture (SOA) 
• Queue service 
(middleware) 
20
Queue service 
Drupal 
Core, Contrib 
modules 
Module 1 
Module 2 
21
Queue service 
Service 
(based on Module 1) 
Drupal 
Node.js 
Python 
Drupal 
Module 2 
Redis 
as a Lock 
storage 
Core, Contrib 
modules 
External services 
22
Queue 
Worker 1 
Producer 
Worker 2 
Worker 3 
Work queues 
(worker per task) 
23
Queue 
Subscriber 1 
Publisher 
Subscriber 2 
Subscriber 3 
Publish / subscribe 
(one message for all subscribers) 
24
Producer Worker 
Queue 
Task 
Create task 
Producer 
RPC 
Worker Producer 
Queue 
Result 
Worker 
Receive result 
25
Best practice 
What else? 
26
Degradation of functionality 
• If load increases, non-critical functionality could be 
disabled 
• Several cases for disabling 
• Approach allows pass the peak load successfully 
27
Cache 
• Application should work perfectly without cache 
• Cache invalidation scheme 
• “Cold cache” problem 
• Efficient of cache using (hit/miss correlation) 
28
Database 
• Take care of database 
• Denormalize it! 
• Check indexes 
• Do not add other databases beforehand (like 
MongoDB) 
• Migrate to Postgres? (…, NoSQL, memory storage) 
29
Database 
replica, partition, sharding 
CAP Theorem: 
Consistency 
Availability 
Partition tolerance 
30
The most important 
• The main causes of low performance - “krivie ruki” 
• Use technologies that you know well 
• Remember about business 
• Optimize only what prevents sells 
31
Thank you! 
Pavel Prischepa 
CEO at DrupalJedi 
pprischepa@drupaljedi.com 
32

More Related Content

What's hot

Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Dylan Butler
 
Whats new in Columnstore Indexes for SQL Server 2017
Whats new in Columnstore Indexes for SQL Server 2017Whats new in Columnstore Indexes for SQL Server 2017
Whats new in Columnstore Indexes for SQL Server 2017
Niko Neugebauer
 
Mongo db admin_20110329
Mongo db admin_20110329Mongo db admin_20110329
Mongo db admin_20110329
radiocats
 
Redis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button gamesRedis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button games
Redis Labs
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?
DrupalCamp Kyiv
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpande
IndicThreads
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
Shiju Varghese
 
ETL with Clustered Columnstore - PASS Summit 2014
ETL with Clustered Columnstore - PASS Summit 2014ETL with Clustered Columnstore - PASS Summit 2014
ETL with Clustered Columnstore - PASS Summit 2014
Niko Neugebauer
 
Introduction to DL platform
Introduction to DL platformIntroduction to DL platform
Introduction to DL platform
xiaogaozi
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the Scenes
Boyan Borisov
 
SQL Azure for ISUG(SQL Server Israeli User Group)
SQL Azure for ISUG(SQL Server Israeli User Group)SQL Azure for ISUG(SQL Server Israeli User Group)
SQL Azure for ISUG(SQL Server Israeli User Group)
Pini Krisher
 
Continuous Delivery at Wix
Continuous Delivery at WixContinuous Delivery at Wix
Continuous Delivery at Wix
Yoav Avrahami
 
Handling scale on AWS
Handling scale on AWSHandling scale on AWS
Handling scale on AWS
David Ilievsky
 
Deploying OpenNebula in an HPC environment
Deploying OpenNebula in an HPC environmentDeploying OpenNebula in an HPC environment
Deploying OpenNebula in an HPC environment
CSUC - Consorci de Serveis Universitaris de Catalunya
 
Infrastructure Around Hadoop
Infrastructure Around HadoopInfrastructure Around Hadoop
Infrastructure Around Hadoop
DataWorks Summit
 
ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012
rushabh_mehta
 
Agile Blackboard
Agile BlackboardAgile Blackboard
Agile Blackboard
BlackboardEMEA
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
Foyzul Karim
 
Ndb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_memNdb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_mem
mikaelronstrom
 

What's hot (19)

Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
 
Whats new in Columnstore Indexes for SQL Server 2017
Whats new in Columnstore Indexes for SQL Server 2017Whats new in Columnstore Indexes for SQL Server 2017
Whats new in Columnstore Indexes for SQL Server 2017
 
Mongo db admin_20110329
Mongo db admin_20110329Mongo db admin_20110329
Mongo db admin_20110329
 
Redis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button gamesRedis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button games
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpande
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
 
ETL with Clustered Columnstore - PASS Summit 2014
ETL with Clustered Columnstore - PASS Summit 2014ETL with Clustered Columnstore - PASS Summit 2014
ETL with Clustered Columnstore - PASS Summit 2014
 
Introduction to DL platform
Introduction to DL platformIntroduction to DL platform
Introduction to DL platform
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the Scenes
 
SQL Azure for ISUG(SQL Server Israeli User Group)
SQL Azure for ISUG(SQL Server Israeli User Group)SQL Azure for ISUG(SQL Server Israeli User Group)
SQL Azure for ISUG(SQL Server Israeli User Group)
 
Continuous Delivery at Wix
Continuous Delivery at WixContinuous Delivery at Wix
Continuous Delivery at Wix
 
Handling scale on AWS
Handling scale on AWSHandling scale on AWS
Handling scale on AWS
 
Deploying OpenNebula in an HPC environment
Deploying OpenNebula in an HPC environmentDeploying OpenNebula in an HPC environment
Deploying OpenNebula in an HPC environment
 
Infrastructure Around Hadoop
Infrastructure Around HadoopInfrastructure Around Hadoop
Infrastructure Around Hadoop
 
ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012
 
Agile Blackboard
Agile BlackboardAgile Blackboard
Agile Blackboard
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
 
Ndb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_memNdb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_mem
 

Similar to FFFast Drupal backend No kidding!

Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Microservices - Is it time to breakup?
Microservices - Is it time to breakup?
Dave Nielsen
 
Teradata Partners Conference Oct 2014 Big Data Anti-Patterns
Teradata Partners Conference Oct 2014   Big Data Anti-PatternsTeradata Partners Conference Oct 2014   Big Data Anti-Patterns
Teradata Partners Conference Oct 2014 Big Data Anti-Patterns
Douglas Moore
 
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
MySQL Brasil
 
Rakuten Ichiba_Rakuten Technology Conference 2016
Rakuten Ichiba_Rakuten Technology Conference 2016Rakuten Ichiba_Rakuten Technology Conference 2016
Rakuten Ichiba_Rakuten Technology Conference 2016
Rakuten Group, Inc.
 
New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...
New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...
New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...
Rittman Analytics
 
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
Ontico
 
MySQL overview
MySQL overviewMySQL overview
MySQL overview
Mark Swarbrick
 
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
Teamstudio
 
DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an Afterthought
Nick Santamaria
 
MongoDB Administration 20110922
MongoDB Administration 20110922MongoDB Administration 20110922
MongoDB Administration 20110922
radiocats
 
NoSQL on the move
NoSQL on the moveNoSQL on the move
NoSQL on the move
Codemotion
 
Self-Tuning MySQL - a Hosting Provider's Unfair Advantage
Self-Tuning MySQL - a Hosting Provider's Unfair AdvantageSelf-Tuning MySQL - a Hosting Provider's Unfair Advantage
Self-Tuning MySQL - a Hosting Provider's Unfair Advantage
Deep Information Sciences
 
Enterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a ServiceEnterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a Service
MongoDB
 
سکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابرسکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابر
datastack
 
The Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and Spark
The Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and SparkThe Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and Spark
The Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and Spark
Akshay Rai
 
Data Science Day New York: Data Science: A Personal History
Data Science Day New York: Data Science: A Personal HistoryData Science Day New York: Data Science: A Personal History
Data Science Day New York: Data Science: A Personal History
Cloudera, Inc.
 
Discover MongoDB - Israel
Discover MongoDB - IsraelDiscover MongoDB - Israel
Discover MongoDB - Israel
Michael Fiedler
 
The Evolution of Open Source Databases
The Evolution of Open Source DatabasesThe Evolution of Open Source Databases
The Evolution of Open Source Databases
Ivan Zoratti
 
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemThings Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Zohar Elkayam
 
eHarmony in the Cloud
eHarmony in the CloudeHarmony in the Cloud
eHarmony in the Cloud
Craig Dickson
 

Similar to FFFast Drupal backend No kidding! (20)

Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Microservices - Is it time to breakup?
Microservices - Is it time to breakup?
 
Teradata Partners Conference Oct 2014 Big Data Anti-Patterns
Teradata Partners Conference Oct 2014   Big Data Anti-PatternsTeradata Partners Conference Oct 2014   Big Data Anti-Patterns
Teradata Partners Conference Oct 2014 Big Data Anti-Patterns
 
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
 
Rakuten Ichiba_Rakuten Technology Conference 2016
Rakuten Ichiba_Rakuten Technology Conference 2016Rakuten Ichiba_Rakuten Technology Conference 2016
Rakuten Ichiba_Rakuten Technology Conference 2016
 
New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...
New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...
New World Hadoop Architectures (& What Problems They Really Solve) for Oracle...
 
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
 
MySQL overview
MySQL overviewMySQL overview
MySQL overview
 
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
 
DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an Afterthought
 
MongoDB Administration 20110922
MongoDB Administration 20110922MongoDB Administration 20110922
MongoDB Administration 20110922
 
NoSQL on the move
NoSQL on the moveNoSQL on the move
NoSQL on the move
 
Self-Tuning MySQL - a Hosting Provider's Unfair Advantage
Self-Tuning MySQL - a Hosting Provider's Unfair AdvantageSelf-Tuning MySQL - a Hosting Provider's Unfair Advantage
Self-Tuning MySQL - a Hosting Provider's Unfair Advantage
 
Enterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a ServiceEnterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a Service
 
سکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابرسکوهای ابری و مدل های برنامه نویسی در ابر
سکوهای ابری و مدل های برنامه نویسی در ابر
 
The Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and Spark
The Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and SparkThe Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and Spark
The Fifth Elephant 2016: Self-Serve Performance Tuning for Hadoop and Spark
 
Data Science Day New York: Data Science: A Personal History
Data Science Day New York: Data Science: A Personal HistoryData Science Day New York: Data Science: A Personal History
Data Science Day New York: Data Science: A Personal History
 
Discover MongoDB - Israel
Discover MongoDB - IsraelDiscover MongoDB - Israel
Discover MongoDB - Israel
 
The Evolution of Open Source Databases
The Evolution of Open Source DatabasesThe Evolution of Open Source Databases
The Evolution of Open Source Databases
 
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemThings Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
 
eHarmony in the Cloud
eHarmony in the CloudeHarmony in the Cloud
eHarmony in the Cloud
 

More from i20 Group

Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal market
i20 Group
 
Журавлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продажЖуравлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продаж
i20 Group
 
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегментеРогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
i20 Group
 
Александр Войнов. Digital охота
Александр Войнов. Digital охотаАлександр Войнов. Digital охота
Александр Войнов. Digital охота
i20 Group
 
Осипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынкеОсипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынке
i20 Group
 
Горина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсииГорина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсии
i20 Group
 
Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool? Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool?
i20 Group
 
Anton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platformAnton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platform
i20 Group
 
Виджет amoCRM. Инструкция
Виджет amoCRM. ИнструкцияВиджет amoCRM. Инструкция
Виджет amoCRM. Инструкция
i20 Group
 
Pavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interfacePavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interface
i20 Group
 
Grigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First stepsGrigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First steps
i20 Group
 
Scrum lego game instructuons
Scrum lego game instructuonsScrum lego game instructuons
Scrum lego game instructuons
i20 Group
 
Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8
i20 Group
 
Pavel Prischepa. Wodby
Pavel Prischepa. WodbyPavel Prischepa. Wodby
Pavel Prischepa. Wodby
i20 Group
 
Sergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal DistributionsSergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal Distributions
i20 Group
 
Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.
i20 Group
 
Sergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakesSergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakes
i20 Group
 
Olesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicingOlesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicing
i20 Group
 
Chingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualizationChingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualization
i20 Group
 
Artem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a codeArtem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a code
i20 Group
 

More from i20 Group (20)

Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal market
 
Журавлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продажЖуравлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продаж
 
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегментеРогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
 
Александр Войнов. Digital охота
Александр Войнов. Digital охотаАлександр Войнов. Digital охота
Александр Войнов. Digital охота
 
Осипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынкеОсипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынке
 
Горина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсииГорина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсии
 
Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool? Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool?
 
Anton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platformAnton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platform
 
Виджет amoCRM. Инструкция
Виджет amoCRM. ИнструкцияВиджет amoCRM. Инструкция
Виджет amoCRM. Инструкция
 
Pavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interfacePavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interface
 
Grigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First stepsGrigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First steps
 
Scrum lego game instructuons
Scrum lego game instructuonsScrum lego game instructuons
Scrum lego game instructuons
 
Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8
 
Pavel Prischepa. Wodby
Pavel Prischepa. WodbyPavel Prischepa. Wodby
Pavel Prischepa. Wodby
 
Sergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal DistributionsSergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal Distributions
 
Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.
 
Sergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakesSergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakes
 
Olesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicingOlesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicing
 
Chingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualizationChingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualization
 
Artem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a codeArtem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a code
 

Recently uploaded

成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
cuobya
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
ukwwuq
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
zoowe
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 

Recently uploaded (20)

成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 

FFFast Drupal backend No kidding!

  • 1. FFFast Drupal backend No kidding! Pavel Prischepa 1
  • 2. Pavel Prischepa Partner at i20 Group CEO at DrupalJedi 5 years of work with Drupal (and Drupal only) on an international level • Development • Project management • Drupal PR, promotion • Drupal audit • Consulting 2
  • 3. Is Drupal fast? Browser Cache layer Drupal 3
  • 4. Real project • 5 000 000 nodes • 1 000 000 unique visitors per day • 0,4 seconds per page • Cache: MongoDB, Redis, NginX, Varnish • Dynamic blocks: ESI, AJAX 4
  • 5. Drupal as backend Drupal Mobile application Single-page application Web sites 5
  • 6. Drupal as backend • DRUPAL_BOOTSTRAP_FULL for each request • 30-100 database queries per request • Slow server response 6
  • 7. Silk Paints: mobile application for drawing 7
  • 8. Silk Paints • Users draw paintings, save them to server • Backend on Drupal (Services) • 500 000 users • 5-20 requests per second 8
  • 9. 9
  • 10. Silk Paints: launch of iOS version • Likes • Friend lists • Pictures moderation • 50-100 requests per second 10
  • 11. 11
  • 12. Looking for an alternative to Drupal • Node.js • Python • Zend 12
  • 13. One does not simply use a new framework • Change production process • Train / hire people • “Nabit’ shishki” • Meanwhile...project is uncontrollable 13
  • 15. Back to Drupal • Coding standards • Config • DB integration • Cache • Modules • Design, Develop, Testing, Deploy processes 15
  • 16. Tasks are processed Запрос Back to Drupal in background Drupal Worker Queue Worker Quick response Worker 16
  • 17. Запрос Back to Drupal Drupal Module JS Drush Daemon API Drupal Queue API Drush Daemon API Drush Daemon API 17
  • 18. Silk Paints: result • 50 requests per second • 5-10 requests to MySQL per request • Response time less than 1 second • Savings on development and support • Predictability of development 18
  • 19. Drupal as backend Best practice 19
  • 20. Application architecture • Service Oriented Architecture (SOA) • Queue service (middleware) 20
  • 21. Queue service Drupal Core, Contrib modules Module 1 Module 2 21
  • 22. Queue service Service (based on Module 1) Drupal Node.js Python Drupal Module 2 Redis as a Lock storage Core, Contrib modules External services 22
  • 23. Queue Worker 1 Producer Worker 2 Worker 3 Work queues (worker per task) 23
  • 24. Queue Subscriber 1 Publisher Subscriber 2 Subscriber 3 Publish / subscribe (one message for all subscribers) 24
  • 25. Producer Worker Queue Task Create task Producer RPC Worker Producer Queue Result Worker Receive result 25
  • 26. Best practice What else? 26
  • 27. Degradation of functionality • If load increases, non-critical functionality could be disabled • Several cases for disabling • Approach allows pass the peak load successfully 27
  • 28. Cache • Application should work perfectly without cache • Cache invalidation scheme • “Cold cache” problem • Efficient of cache using (hit/miss correlation) 28
  • 29. Database • Take care of database • Denormalize it! • Check indexes • Do not add other databases beforehand (like MongoDB) • Migrate to Postgres? (…, NoSQL, memory storage) 29
  • 30. Database replica, partition, sharding CAP Theorem: Consistency Availability Partition tolerance 30
  • 31. The most important • The main causes of low performance - “krivie ruki” • Use technologies that you know well • Remember about business • Optimize only what prevents sells 31
  • 32. Thank you! Pavel Prischepa CEO at DrupalJedi pprischepa@drupaljedi.com 32