SlideShare a Scribd company logo
БББыстрый бэкенд
на Друпале
Да, ладно!
Павел Прищепа
CEO DrupalJedi
Есть мнение, что
Друпал не очень быстрый
• Громоздкий и неповоротливый
• Куча модулей, которые поднимаются каждый раз
• Он “ненавидит” БД
• Работает только с кешем
• Быстрые бэкенды
Плата за функциональность
и расширяемость
Я расскажу
• Как мы использовали Друпал
• Как мы отказались от Друпала как бэкенда
• Как открыли его с новой стороны :)
• И вернулись к Друпалу
Внутренний проект
• SilkPaints - приложение для рисования
• Бэкенд на Друпале (Services)
• Юзеры рисуют, шарят рисунки
• Юзеров +400 000, изображений +500 000
• 5-20 запросов в секунду
• Процессор загружен на 40-70%
Запросы растут:
запуск iOS версии
• Лайки
• Фолловеры
• Френдленты
• Забанить, удалить трек
• Списки: популярные рисунки, выбор редакции …
Планируемая нагрузка
• 5 000-10 000 новых пользователей ежедневно
• 50-100 запросов в секунду
• Время генерации ответа не более 0.4-0.8 секунды
• Размер БД (уже сейчас > 12 Гб)
Что делать, шеф?
Ищем альтернативу
Друпалу
• Node.js
• Python
• MongoDB
• Redis
Все не то :(
Нельзя просто взять и начать
использовать новый фреймворк
• Изменение производственного процесса
• Обучение/найм людей
• “Набить шишки”
• Проект неуправляем
А время поджимает…
Бизнес требует …
Back to Drupal
• Redis
• Module EntityCache
• Module JS
• Module DrushD
• Drupal Queues API
Запрос
Worker
Worker
1. Минимальная обработка
2. Постановка Задачи в очередь
3. Быстрый ответ
Queue
Drupal
api.phpindex.php
Database
(MySQL)
Worker 1
(DrushD)
Worker 2
(DrushD)
API Environment
Queue
(Drupal based)
Ограничения
API Environment
• Не использовать node_save() и node_load()
• Кастомный session.inc хендлер без user_load()
• Аккуратно подключать контрибные модули
• Использовать “легкие” таблицы и кэш
• Минимизировать JOINы в запросах
Queue
Внутренний
сервис
Lock server
(Redis)
Друпал
модуль 1
Внешний
сервис
Друпал
модуль 2
Сервисно-ориентированный
подход (SOA)
Лайки
Добавление
рисунка в
ленты
фолловеров
Пересчет
статистики
Очереди с разными приоритетами
Результаты
• В 10 раз снизилась нагрузка на БД
• Время отклика не более 1 секунды
• Загрузка процессора 10-30%
• “Простор” для масштабирования приложения
• SOA
Как еще ускорить?
• Деградация функциональности
• Масштабирование
• Репликация
• Денормализация
• Асинхронная обработка
• Горизонтальный шардинг
• Выносить функционал в сервисы
На будущее
• Основная причина тормозов - “кривые руки”
• Используйте то, что хорошо знаете
• Не более 1 новой технологии на проекте
• Оптимизировать только то что мешает
“продавать”
• Помнить о “бизнесе”
Ваши вопросы
Павел Прищепа
CEO DrupalJedi
pavel@drupaljedi.com

More Related Content

PDF
Ровная балансировка нагрузки на фронтенд-кластере
Badoo Development
 
PDF
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Ontico
 
PDF
Дмитрий Дегтярев, "Хабикаса"
Ontico
 
PDF
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
Ontico
 
PDF
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Ontico
 
PPTX
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Ontico
 
PDF
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Ontico
 
PPTX
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Dmitry Degtyarev
 
Ровная балансировка нагрузки на фронтенд-кластере
Badoo Development
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Ontico
 
Дмитрий Дегтярев, "Хабикаса"
Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
Ontico
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Ontico
 
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Ontico
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Ontico
 
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Dmitry Degtyarev
 

What's hot (20)

PDF
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
Ontico
 
PDF
Асинхронность и параллелизм в Node.js
GeeksLab Odessa
 
PDF
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
PDF
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Dev2Dev
 
PPTX
Как мы готовим MySQL / Николай Королёв (Badoo)
Ontico
 
PPTX
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД
Anatoly Popov
 
PPT
Потоковая репликация PostgreSQL
DevOWL Meetup
 
PPTX
MongoDB. Как готовить, с чем едят?
Tim Mironov
 
PDF
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
GeeksLab Odessa
 
PPTX
Масштабирование баз данных. (Database Scalability)
Andrew Avdeev
 
PDF
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
Ontico
 
PPT
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Ontico
 
PPTX
Database reverse engineering
DevOWL Meetup
 
PPTX
опыт построения и эксплуатации большого файлового хранилища
Daniel Podolsky
 
ODP
ClickHouse
Alexey Milovidov
 
PDF
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Ontico
 
PPTX
NoSQL - взрыв возможностей
Aleksey Solntsev
 
PDF
FrontDays #1. Илья Кучмин, Оптимизация загрузки тяжелых страниц
FrontDays
 
PDF
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
Ontico
 
PDF
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
Ontico
 
Асинхронность и параллелизм в Node.js
GeeksLab Odessa
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Dev2Dev
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Ontico
 
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД
Anatoly Popov
 
Потоковая репликация PostgreSQL
DevOWL Meetup
 
MongoDB. Как готовить, с чем едят?
Tim Mironov
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
GeeksLab Odessa
 
Масштабирование баз данных. (Database Scalability)
Andrew Avdeev
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
Ontico
 
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Ontico
 
Database reverse engineering
DevOWL Meetup
 
опыт построения и эксплуатации большого файлового хранилища
Daniel Podolsky
 
ClickHouse
Alexey Milovidov
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Ontico
 
NoSQL - взрыв возможностей
Aleksey Solntsev
 
FrontDays #1. Илья Кучмин, Оптимизация загрузки тяжелых страниц
FrontDays
 
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
Ontico
 
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp
 
Ad

Viewers also liked (17)

PPTX
Club penguin
brunoleja301
 
PPS
德国专业照片
LINWEIYUAN
 
PPS
100225\正月里来送元宵.pps
LINWEIYUAN
 
PDF
Lomareal
Robi Net
 
PDF
MG Drink MH1015
Buntu Ngcuka
 
PDF
YALI_Certificate
Chiemeziem J. Anyadike
 
PPT
Presentation1
hadaf1
 
PDF
East Side_Aug16 (6)
Keith Mathews
 
PPT
Does getting down an’ dirty with sexually adventurous men (SAM) work?
Australian Federation of AIDS Organisations
 
PDF
USO DE OPEN SOURCE PARA MESA DE AYUDA EN EL ÁREA DE SOPORTE TECNICO DE LA EMP...
Hector Grandez
 
PPTX
Homocystinuria copy
fatima shah
 
PPTX
Brightspace South Carolina Connection Opening Session
D2L Barry
 
PPS
華東之美
Yvonne 99
 
PPTX
Resonancia Magnética Nuclear de Mama
Jose Juan López Valera
 
PPTX
RMD Trade Limited
Grafic.guru
 
PDF
Dibuixos arribada a l'illa activitat 2
5esantnicolau
 
DOC
Josefa ramos cv
Pepi Ramos
 
Club penguin
brunoleja301
 
德国专业照片
LINWEIYUAN
 
100225\正月里来送元宵.pps
LINWEIYUAN
 
Lomareal
Robi Net
 
MG Drink MH1015
Buntu Ngcuka
 
YALI_Certificate
Chiemeziem J. Anyadike
 
Presentation1
hadaf1
 
East Side_Aug16 (6)
Keith Mathews
 
Does getting down an’ dirty with sexually adventurous men (SAM) work?
Australian Federation of AIDS Organisations
 
USO DE OPEN SOURCE PARA MESA DE AYUDA EN EL ÁREA DE SOPORTE TECNICO DE LA EMP...
Hector Grandez
 
Homocystinuria copy
fatima shah
 
Brightspace South Carolina Connection Opening Session
D2L Barry
 
華東之美
Yvonne 99
 
Resonancia Magnética Nuclear de Mama
Jose Juan López Valera
 
RMD Trade Limited
Grafic.guru
 
Dibuixos arribada a l'illa activitat 2
5esantnicolau
 
Josefa ramos cv
Pepi Ramos
 
Ad

Similar to Павел Прищепа. Бббыстрый бэкенд на базе друпал (20)

PPTX
Drupal: система для быстрой и комфортной разработки web-сайтов
Alex Barkov
 
PPTX
Создаем Drupal дистрибутив: от идеи до сопровождения.
DrupalForumZP2012
 
PPT
Drupal и возможности его применения
Media Gorod
 
PDF
Чингис Саднанов. Drupal как платформа
i20 Group
 
PPT
Drupal Highload - Klera Vilenskaya
Alex Ilyin
 
PDF
сравнение Drupal и 1с битрикс
Andrii Podanenko
 
PPTX
Опыт эксплуатации большого проекта на Ruby
Alex Chistyakov
 
PDF
Экскурс в мир WEB разработки
IT-Доминанта
 
PPTX
Современная разработка сайтов на CMF Drupal.
phpdevby
 
PDF
Александр Воинов - Тренды Web
DrupalSib
 
PDF
Артур Чеканов «Microframeworks» (Python Meetup)
DataArt
 
PDF
Drupal 8: Теперь со вкусом Symfony
Kate Marshalkina
 
PPT
Использование Symfony
Media Gorod
 
PPT
Drupal Vs Other
Andrii Lundiak
 
PDF
Рынок Drupal (Александр Воинов)
DrupalYug
 
PDF
Александр Воинов. Power of Drupal market
i20 Group
 
PDF
Алексей Иванкин: Highload + PHP
Oleg Poludnenko
 
PDF
Александр Воинов - Тренды Веб
DrupalSib
 
PPT
Drupal Perfomance issues, tips & tricks. Антон Иванов.
DrupalCampDN
 
PPT
Drupal 6 performance
Anton Ivanov
 
Drupal: система для быстрой и комфортной разработки web-сайтов
Alex Barkov
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
DrupalForumZP2012
 
Drupal и возможности его применения
Media Gorod
 
Чингис Саднанов. Drupal как платформа
i20 Group
 
Drupal Highload - Klera Vilenskaya
Alex Ilyin
 
сравнение Drupal и 1с битрикс
Andrii Podanenko
 
Опыт эксплуатации большого проекта на Ruby
Alex Chistyakov
 
Экскурс в мир WEB разработки
IT-Доминанта
 
Современная разработка сайтов на CMF Drupal.
phpdevby
 
Александр Воинов - Тренды Web
DrupalSib
 
Артур Чеканов «Microframeworks» (Python Meetup)
DataArt
 
Drupal 8: Теперь со вкусом Symfony
Kate Marshalkina
 
Использование Symfony
Media Gorod
 
Drupal Vs Other
Andrii Lundiak
 
Рынок Drupal (Александр Воинов)
DrupalYug
 
Александр Воинов. Power of Drupal market
i20 Group
 
Алексей Иванкин: Highload + PHP
Oleg Poludnenko
 
Александр Воинов - Тренды Веб
DrupalSib
 
Drupal Perfomance issues, tips & tricks. Антон Иванов.
DrupalCampDN
 
Drupal 6 performance
Anton Ivanov
 

Павел Прищепа. Бббыстрый бэкенд на базе друпал