Рейтинг@Mail.ru

Ураган на заднем дворе: что делать, если нужно обрабатывать миллиард хаотичных задач в сутки на PHPАрхитектуры, масштабируемость

Доклад принят в программу конференции
Антон Горин
ManyChat

Любит строить велосипеды, нагруженные системы и команды разработки.
CTO/co-founder в ManyChat.

antony@manychat.com
Тезисы

С помощью ManyChat более 400,000 бизнесов коммуницирует с сотнями миллионов людей через Facebook Messenger. 
В случае наступления одного из десятков типов событий для любого из этих клиентов мы должны мгновенно начать обрабатывать определенный кусок бизнес-логики.

* Всё бы ничего, но каждая из этих задач выполняется плохо предсказуемое время: от почти 0 до десятков секунд.
* Всё бы ничего, но в нашей системе резкие всплески нагрузки 2х, 10х, 100х+ (от моды распределения) - не Black Friday, а крайне регулярное событие.
* Всё бы ничего, но такая нагрузка может прилететь практически на любой из тысяч экземпляров сервисов нескольких десятков разных типов. 

* Всё бы ничего, но через пару месяцев текущая нагрузка удвоится, как и внутренняя сложность бизнес-логики.
* 
Всё бы ничего, но необходимая бизнес-логика, чаще всего, уже используется где-то внутри основного практически монолитного приложения. 
И всё это на PHP.



Расскажу о том, какие подходы мы пробовали, что получилось, на каких вариантах остановились. 
Расскажу про нашу архитектуру и наши инструменты, которые позволяют справляться (почти всегда!) с процессингом миллиарда событий в сутки с помощью довольно скромных ресурсов. 

Порекомендую, как стоит двигаться, если вдруг понадобится за пару вечеров сделать аналогичную production-ready систему для своего проекта. И расскажу, когда с ней начнутся проблемы.

PHP
,
Оптимизация производительности
,
Методы и техника разработки ПО
,
Масштабирование с нуля

Другие доклады секции Архитектуры, масштабируемость

Rambler's Top100