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.