Cloudflare открыла код Pingora — своей альтернативы Nginx на Rust

Cloudflare давно известна не только как CDN и защита от DDoS, но и как компания, которая не стесняется переписывать инфраструктуру под себя, когда готовые решения перестают справляться с нагрузкой. Именно так родился Pingora — HTTP-прокси-сервер, которым компания заменила часть своей инфраструктуры на Nginx. Теперь его исходный код открыт для всех.

Зачем понадобилась замена Nginx

О разработке собственного прокси Cloudflare объявила ещё в сентябре 2022 года. Причина была прозаичной: по мере роста компании в Nginx начали проявляться заметные ограничения, и понадобилась современная, быстрая и безопасная по памяти альтернатива. Готового решения на рынке не нашлось, поэтому Cloudflare начала писать своё — так появился Pingora.

Ранее сервис работал на Nginx с множеством собственных патчей и обходных решений. Когда Pingora представили публике, компания показала, что новый прокси превосходит эту связку по всем ключевым параметрам.

Что представляет собой Pingora

Pingora — это асинхронный многопоточный фреймворк на Rust, распространяемый по лицензии Apache 2.0. Он позволяет строить HTTP-прокси-сервисы, работающие на больших масштабах. По словам Cloudflare, на её глобальной сети Pingora уже обработал почти квадриллион интернет-запросов.

Ключевое архитектурное отличие от Nginx — модель обработки соединений. Nginx использует многопроцессный подход, тогда как Pingora построен на многопоточности, что даёт ей преимущество в производительности.

На реальных производственных нагрузках Pingora потреблял на 70% меньше CPU и на 67% меньше памяти по сравнению со старой связкой на Nginx при аналогичном трафике, а HTTP-запросы обрабатывались быстрее. Помимо этого, Rust обеспечивает безопасность работы с памятью, а в состав Pingora входят библиотеки, устойчивые к постквантовым атакам.

Зачем открывать код

Cloudflare объясняет решение желанием сделать интернет более безопасным — не только в рамках собственной инфраструктуры, но и шире. Для продвижения Pingora компания сотрудничает с Internet Security Research Group (ISRG) и проектом Prossimo, чтобы фреймворк смогли использовать и другие критически важные элементы интернет-инфраструктуры.

Стоит ли пробовать прямо сейчас

Здесь стоит немного остудить энтузиазм. Pingora — это библиотека и набор инструментов, а не готовый веб-сервер «из коробки». Сама Cloudflare признаёт, что проект находится на ранней стадии разработки и до релиза версии 1.0 ещё далеко. Стабильность API не гарантируется — изменения будут вноситься постоянно, а поддержка операционных систем, отличных от Unix-подобных, пока не планируется.

Тем, кто ищет готовое решение для замены веб-сервера в существующей инфраструктуре без доработок напильником, придётся подождать: результаты сотрудничества ISRG и Cloudflare появятся не сразу.

Исходный код Pingora доступен на GitHub — там же можно найти руководство для контрибьюторов и трекер задач. В составе репозитория — библиотеки и API для построения сервисов поверх HTTP/1, HTTP/2, TLS и TCP/UDP.

Источник: It's FOSS.