Типичные бутылочные горлышки в проектах на PHP Лучшие практики
Мы любим чудо-штуки и поиск серебряной пули. Мы накручиваем десятки инженерных систем, сотни компонентов и тысячи вендорных зависимостей, формируя големоподобные системы для решения повседневных задач по борьбе с высокими нагрузками. Как только это происходит, есть 2 пути.
Первый: пойти вперед и начать делить систему, выделяя под каждую задачу вполне целевые инструменты. У нас появляются кафки, кубы, колоночные бд, шардирование, балансировщики и т.д. и т.п.
Второй: пойти назад. Посмотреть в зеркало заднего вида, разобрать свою систему, пристально посмотреть на практики, которые могут негативно влиять на производительность проекта, и расширить инженерный фундамент прежде, чем строить на нём сложные конфигурации для решения простых задач.
Пройдемся по основным точкам появления бутылочных горлышек на примере PHP.
Бэкенд-разработчик в ManyChat. До этого работал ведущим разработчиком core-компонента в ECommpay и руководил веб-разработкой в Berg Holding. Строил высоконагруженные проекты в условиях лимитированного количества железа, занимался снижением нагрузки в монолитных и распределенных системах. Специализируется на Performance engineering в PHP, Golang, MySQL и PostgreSQL.