Cloudflare интегрирует Node.js HTTP серверы в Cloudflare Workers

Компания Cloudflare сделала важный шаг вперед для разработчиков Node.js, внедрив node:http клиент и серверные API в платформу Cloudflare Workers. Это нововведение позволяет разработчикам переносить существующие приложения Node.js на безсерверную вычислительную платформу.

С внедрением этих HTTP API популярные Node.js фреймворки, такие как Express.js и Koa.js, теперь могут работать на Workers. Ягиз Низипли и Джеймс М. Снелл, ведущие системные инженеры Cloudflare, объясняют, что поддержка HTTP клиентских API была реализована посредством использования стандартного API fetch(), который Workers используют изначально. Это позволяет сохранить совместимость с Node.js без значительных потерь производительности.

Несмотря на множество преимуществ, подход компании Cloudflare имеет некоторые ограничения. Агентское API поддерживается, но действует как no-op, а такие возможности, как трейлеры, ранние подсказки и 1xx ответы, отсутствуют. Отсутствие поддержки определенных функций связано с тем, что оберточный подход не позволяет реализовать их в полном объеме. Также, так как TLS обрабатывается автоматически, опции, связанные с TLS, не поддерживаются.

Сообщество положительно оценило это обновление, хотя некоторые пользователи выразили мнение, что такие функции следовало бы ввести раньше. Пользователь Химаншу Кумар на платформе X отметил, что в связи с безсерверной природой Cloudflare Workers, прямые TCP соединения недоступны, и все сетевые операции управляются внешними сервисами.

При создании HTTP сервера и вызове listen(port) сервер регистрируется во внутренней таблице Workers, что позволяет ему действовать как мост между вызовами http.createServer и входящими запросами fetch, используя номер порта как идентификатор. Это позволяет множеству серверов сосуществовать в одном Worker.

Важно отметить, что Cloudflare не единственный гиперскейлер, предлагающий Node.js на безсерверных платформах: такие возможности также есть у AWS Lambda, Google Cloud Run и Azure Functions.

Фото аватара

Олег Козлов

Разработчик.
Веб-фреймворки: Symfony, Strapi, Django
Также увлекаюсь NoCode & AI решениями.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *