Модернизация

Как модернизировать живую контентную платформу, не выключая её

Миграции, которые выживают, скучные: публичный URL зелёный, редакторы публикуют, риск уезжает в пайплайн, который можно измерить. Миграции, которые становятся фольклором, — пятничные cut-over. Я работал первым видом — Sitecore на XM Cloud с headless Next.js, Umbraco и Magento в сторону Contentful и Vercel. Это метод, не питч вендора.

Инвентаризуйте истины, не шаблоны

Начните с того, что должно остаться верным в день любого публичного переключения: карта URL, метаданные, каноникалы, превью, доступ к закрытому контенту и интеграции, которые стреляют при публикации. Шаблоны — наименее важный артефакт. Их перерисуют. URL и связи контента — дорогие.

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

Спроектируйте целевую модель до импортёра

Редакторы будут жить в новой модели годы. Если импортёру проще, когда каждое поле становится rich text, импортёр врёт. Назначьте хозяина каждого типа. Бесхозные поля становятся свалками.

Превью и локализация — часть модели, не сюрприз второй фазы. Headless в продакшене ломается, когда превью — «разберёмся потом».

Автоматизируйте перенос, затем измерьте потери

Одноразовый скрипт, который «в целом сработал на staging», — не миграция. Нужен пайплайн, который можно прогнать снова, с отчётом: сколько вошло, сколько вышло, какие поля потеряны, какие ссылки сломаны. Повторный прогон — как пережить то, что редакторы будут публиковать в старой системе до последнего дня.

Целостность — продуктовое требование. Бывали назначения, где ничего эффектнее, чем убедиться: в новую CMS приехали те данные, которые бизнес считает опубликованными.

Удавка, а не переключатель

Поставьте новый фронт на подмножество путей или трафика. Старая система отвечает за всё, что вы ещё не доказали. Редиректы — артефакт первого класса, не таблица, которую «добавят потом».

Откат должен быть сменой маршрутизации. Если откат — «восстановить базу и молиться, что кэш CDN истечёт», плана нет.

Не назначайте полный cut-over потому, что в плане программы красный milestone. Назначайте, потому что отчёт о расхождениях пуст настолько, что остаток — редакционный, не структурный.

Когда модернизировать не надо

Если ограничение — процесс поставки, отсутствие тестов или нет владельца продукта, новая CMS — очень дорогой способ оставить эти ограничения. Оставайтесь, сдерживайте, чините настоящее узкое место. Возраст стека — чувство. Срок поставки и частота инцидентов — нет.

Коротко

  • Сначала URL, связи и процесс редактора, потом «хром».
  • Повторяемые пайплайны с отчётом о потерях лучше героических одноразовых скриптов.
  • Новый фронт в тени; откат — маршрутизация.
  • Не клонируйте старое дерево в новую CMS из страха.
  • Откажитесь от рерайта, если стек — не ограничение.

Связанные услуги

Связанные заметки