Cloudflare запустила сервис Worker Previews для предоставления независимой среды выполнения для каждой ветки Git. Это позволяет тестировать изменения кода в условиях, более близких к производственным, не влияя на трафик, настройки или состояние рабочей версии. Сервис уже доступен пользователям Workers.
Каждый предварительный просмотр получает постоянный URL ветки, который обновляется при каждом новом отправленном изменении, а также отдельные настройки, переменные, секреты и привязки. Разработчики могут отправлять запросы к предварительному просмотру из терминала, систем непрерывной интеграции или браузера, а затем изучать журналы, ошибки, метрики и трассировки выполнения с помощью инструментов Workers Observability.
Независимая среда, а не просто ссылка на версию
Cloudflare поясняет, что Worker Previews отличаются от прежних Version URLs. Последние указывают на конкретную загруженную версию и могут использовать производственные ресурсы, тогда как Worker Previews создают изолированную среду для каждой ветки с возможностью параллельного запуска сотен предварительных просмотров в рамках одной панели управления. Это позволяет тестировать API-эндпоинты, изменения пользовательского интерфейса и процессы входа в контексте реального выполнения, а не ограничиваться проверкой кода или общей staging-средой.
При выполнении команды npx wrangler preview Cloudflare создаёт версию предварительного просмотра на основе базовой конфигурации, которую разработчик указывает в файле Wrangler. Настройки конкретного предварительного просмотра можно изменить, например направить его к базе данных или тестовому API-ключу, не меняя настройки производства или других предварительных просмотров. URL предварительных просмотров также можно предоставлять через собственный домен, используя Cloudflare Access для их защиты и ограничения доступа.
Изоляция состояния и чувствительных ресурсов
Изоляция распространяется и на ресурсы с состоянием. Каждый предварительный просмотр получает отдельное пространство Durable Objects и независимые приложения Containers, что не позволяет изменениям состояния, сеансам, операциям миграции или неудачным изменениям схемы затронуть производственную среду или другие ветки. Cloudflare связывает это поведение с программным контекстом ветки: ctx.exports разрешается в производственное пространство при выполнении в производственной среде и в соответствующее пространство предварительного просмотра при выполнении внутри экспериментальной ветки.
На практике это позволяет сравнивать разные настройки одного и того же приложения, например тестировать производительность холодного и тёплого запуска, сохраняя результаты каждого эксперимента в пределах его среды. Browser Run также можно использовать для открытия URL предварительного просмотра в безголовом браузере, выполнения процессов входа и создания снимков или сеансов, доступных для повторного воспроизведения, а затем связывать увиденное пользователем с зарегистрированными трассировками выполнения и ошибками.
Что меняется на практике?
Worker Previews создают для каждой ветки цикл обратной связи до выхода в производство: развернуть изменение, запустить его, отследить работу, исправить ошибку, а затем повторно протестировать перед слиянием. Cloudflare считает, что это поддерживает то, что компания называет жизненным циклом разработки агентов, когда программный агент может выполнить изменение, проверить его и изучить результаты в пределах той же ветки, при этом рецензент-человек может вмешаться при необходимости.
Cloudflare использовала сервис внутри компании для тестирования CloudflareOS и Gatekeepers, особенно процессов, объединяющих OAuth, разрешения, согласия и состояние приложения. Компания также привела опыт Supermemory и Ramp по тестированию изменений Workers и проверке запросов на слияние с мобильных устройств.
Заявленные ограничения и следующие шаги
В настоящее время предварительные просмотры не изолируют полностью всю цепочку запросов в приложениях с несколькими Workers: привязка сервиса из предварительного просмотра может вызвать производственную версию связанного Worker. Кроме того, предварительные просмотры могут отправлять сообщения в Queues, но пока не могут их потреблять, а для изоляции выполнения Workflows требуется отдельная настройка. Cloudflare работает над поддержкой этих сценариев, а также над предоставлением долгосрочных предварительных просмотров для staging-, QA- и постоянных сред разработчиков.
Чтение certi.news: основная ценность объявления заключается не в создании новой ссылки для тестирования, а в переносе изоляции на уровень настроек, состояния и мониторинга. Это снижает риски при тестировании изменений, затрагивающих ресурсы с состоянием, но не отменяет необходимости тщательно проектировать тестовую среду, особенно когда сервис зависит от нескольких Workers, очередей, сообщений и долгосрочных процессов. Поэтому Worker Previews выглядит более полноценным решением, чем предварительный просмотр отдельной версии, хотя некоторые части приложения в текущем выпуске остаются за пределами полной модели изоляции.