PHP-FPM, (g)unicorn, Puma и uWSGI — будут больше не нужны Архитектура
Профессиональную деятельность начал в 2003 году в роли разработчика веб-сайтов. C 2011 по 2022 трудился в компании NGINX, Inc (c 2019 часть F5 Networks). За это время успел поработать практически над всеми подсистемами одноименного веб-сервера и его коммерческой версии. Разрабатывал модули протоколов SPDY и HTTP/2, а также механизм пулов потоков для асинхронного исполнения блокирующих и ресурсоемких операций. Принимал участие в работе над JavaScript-интерпретатором njs. Помимо реализации различной функциональности, немало времени посвятил оптимизации кода под Linux. Был одним из ключевых авторов сервера нового поколения NGINX Unit, разработку которого и возглавлял последние годы.
С 2022 года возглавляет отдел разработки компании ООО Веб-Сервер.
Тезисы
Одним из наиболее распространенных способов запуска веб-приложений на языках PHP, Python и Ruby является связка nginx и сервера приложений, которыми чаще всего выступают php-fpm, gunicorn, unicorn, uwsgi, puma и подобные или даже Apache в этой роли.
У такого способа есть ряд существенных недостатков:
* необходимость правильно настраивать и поддерживать работоспособность ещё одного компонента в инфраструктуре, а то и нескольких;
* ошибки сопряжения и отсутствие мониторинга со стороны nginx рабочих процессов приложения напрямую, что приводит в итоге к 502-504-ошибкам при возрастании нагрузки, которые частенько видят посетители;
* дополнительные накладные расходы на обмен данными между nginx и приложениями снижают производительность и масштабируемость.
Мы занимаемся внедрением возможности запуска процессов приложений непосредственно в nginx в рамках Angie — его главного обратно совместимого форка, разрабатываемого бывшей командой разработчиков nginx. При этом это будет простая и полноценная замена упомянутых выше связок с простой конфигурацией и без необходимости вносить какие-либо изменения в код приложений.
Поговорим про преимущества такого подхода и посмотрим на результаты бенчмарков, которые обещают быть интригующими.
