12 августа Cloudflare завершила перенос своего блога на EmDash — систему управления контентом, созданную для работы с Astro и Cloudflare, в рамках проекта, который не ограничивался редизайном интерфейса. Компания использовала свой блог в качестве «нулевого клиента» для тестирования новой платформы на реальном производственном трафике, уделяя особое внимание масштабируемости, скорости отклика и безопасности перехода со старой системы.
По словам Cloudflare, процесс миграции выявил потребности, связанные с размером и сложностью блога, а также позволил команде улучшить EmDash перед его более широким внедрением. Поскольку результаты и измерения предоставлены самой компанией, они представляют собой опубликованный операционный опыт одной стороны, а не независимое тестирование платформы.
Тестирование платформы до проверки производительности
Команда начала с практического вопроса: действительно ли EmDash соответствует потребностям Cloudflare? Поэтому она протестировала основные сценарии, включая создание, публикацию, снятие с публикации и планирование публикаций, добавление медиафайлов, а также поиск сущностей контента и управление именами авторов.
Наиболее существенные пробелы проявились при работе с большим объемом медиафайлов и контента, а также в деталях перевода, поисковой оптимизации и политик безопасности контента (CSP). Панель администрирования также потребовала улучшений для поиска пользовательских HTML-блоков, обработки ошибок внутри редактора контента и сохранения панели форматирования видимой во время редактирования длинных публикаций.
Самой заметной обнаруженной проблемой стали запланированные публикации: они не работали вплоть до выпуска EmDash 0.19.0. Этот момент демонстрирует ценность тестирования полных операционных сценариев до перехода на новую систему, поскольку ошибка не обязательно проявилась бы при проверке создания или немедленной публикации контента.
Нагрузочные тесты, имитирующие переменчивый трафик
Обычный трафик Cloudflare Blog составлял около 75 запросов в секунду, однако мог превышать 5 000 запросов в секунду — как одновременно с распространением новой публикации, так и из-за всплесков, не связанных с конкретным временем публикации. Поэтому команда разработала тесты с использованием инструмента с открытым исходным кодом k6: постепенное увеличение нагрузки до трехкратного базового уровня, тест с ростом от нуля до 100 запросов в секунду в течение десяти минут и мгновенный всплеск до 7 000 запросов в секунду продолжительностью одну минуту.
Критерии отказа основывались на трех показателях: доля HTTP-ошибок класса 5xx не должна была превышать 0,01%, время отклика 95% запросов не должно было превышать 500 миллисекунд, а время отклика 99% запросов — одной секунды. Эти ограничения превратили вопрос «быстра ли платформа?» в измеримые операционные условия.
Многоуровневая архитектура и четкий путь возврата
Cloudflare решила запустить EmDash на Cloudflare Worker за Workers Cache, используя новое объектное хранилище EmDash на базе Workers KV, а также интеграцию Hyperdrive с PlanetScale. По данным компании, уровни кэширования позволили отдавать из кэша 99,5% статических файлов и около 70% всех запросов, что снизило нагрузку на базу данных.
Чтобы предотвратить остановку сервиса во время перехода, команда создала Proxy Worker, распределявший запросы между старым блогом и новым сайтом. Версия тестирования определялась с помощью cookie, а при появлении ошибок 500 на новом сайте запросы можно было вернуть в старую систему. Команда также использовала прямое соединение между Workers через привязку сервиса NEW_BLOG, чтобы избежать обращения к общедоступному доменному имени, операций DNS и TLS, а также внешнего HTTP-соединения.
Поэтапное развертывание началось с 1% трафика, затем доля выросла до 5% и 15%, после чего в конце дня достигла 100%. Это позволило отслеживать реальную нагрузку и выявлять пограничные случаи, не подвергая большинство читателей нестабильным изменениям.
Что изменилось на практике?
Cloudflare заявляет, что новая архитектура обеспечила более стабильное время отклика по сравнению с предыдущей платформой, а также прирост производительности при ограниченном количестве ошибок во время обработки до 850 запросов в секунду. Во время Agents Week за девять дней были опубликованы 18 записей, собравших около 3 миллионов просмотров, а новый Worker обслуживал до 450 запросов в секунду без заметных проблем. По данным компании, встроенная защита от DDoS-атак также поглотила атаку мощностью 28 000 запросов в секунду 10 августа.
Изменения затронули и интерфейс: его перестроили в соответствии с паттернами дизайн-системы Kumo, добавив встроенную поддержку светлой и темной тем на основе системных предпочтений и ручного переключателя. Призыв подписаться по электронной почте перенесли в конец статьи, а для улучшения навигации и обмена добавили оглавление «На этой странице» и вариант «Обсудить онлайн».
Новые API EmDash и точки поиска на базе искусственного интеллекта позволили за несколько часов создать MCP-сервер для блога Cloudflare с инструментами для поиска, перечисления и получения публикаций, а также перечисления тегов. Согласно источнику, собственный MCP-сервер EmDash также позволяет авторам просматривать, создавать, редактировать, публиковать и планировать контент, а также удалять файлы без дополнительных затрат.
Сам процесс редактирования остается незавершенным: Cloudflare продолжала фиксировать небольшие проблемы и ошибки, связанные с запланированными публикациями, и сообщила, что передала их команде EmDash, ожидая исправления до Birthday Week. Поэтому этот пример не доказывает, что платформа лишена ограничений, но демонстрирует применимую практику: тестировать сценарии работы с контентом до проверки производительности, заранее определять четкие пороги отказа, создавать путь возврата, а затем постепенно расширять развертывание вместо единовременного полного перехода.