К содержимому
CodeHero

обновление фреймворков

Обновление на .NET 8, Java 21 и React за 30 дней

Дата окончания поддержки вашего фреймворка уже прошла или стоит в календаре, и каждый скан безопасности выдаёт те же находки. Инженеры с продакшен-стажем больше 25 лет переводят вас на поддерживаемую версию за 30 дней и доказывают это на вашем же трафике.

В течение 48 часов у вас фиксированная цена за фазу, порядок обновления и дата, когда старого рантайма не станет.

Конец поддержки

Java 8, .NET Framework 4.x или AngularJS 1.x, патчей больше нет, а отчёт сканера с каждым кварталом длиннее.

  • Java 8Spring 4
  • .NET Framework 4.xWindows only
  • AngularJS 1.xend of life
  • Python 2.7end of life

30 дней, паритет проверен на записанном продовом трафике

На поддержке

Java 21 со Spring Boot 3, .NET 8, React или Python 3, зависимости свежие, находки закрыты.

  • Java 21Spring Boot 3
  • .NET 8Linux containers
  • ReactTypeScript
  • Python 3.12typed
Устаревшие API, удалённые пространства имён и брошенные библиотеки заменены, а всё, на что опираются ваши пользователи, проигрывается против новой версии до выкатки.

Обновление за 30 дней

Ваша команда продолжает выпускать фичи на старой версии, пока мы собираем новую. Трафик переезжает, когда parity harness показывает одинаковый вывод на обеих.
  1. 01дни 1–3

    Сканируем и планируем

    Каждая зависимость, устаревший API и удалённое пространство имён по всей кодовой базе, и к ним привязаны ваши находки безопасности. Вы получаете порядок обновления и фиксированную цену.

  2. 02дни 3–15

    Обновляем ядро

    Первыми переезжают рантайм, сборка и фреймворк: javax на jakarta, System.Web на ASP.NET Core, Struts и EJB на Spring Boot. Массовую переписку делает платформа, каждый пул-реквест смотрят инженеры.

  3. 03дни 10–24

    Заменяем умершее

    Библиотеки без поддерживаемой версии заменяем или переписываем, экраны AngularJS пересобираем на React по одному маршруту за раз. После каждого слияния parity harness проигрывает продовый трафик.

  4. 04дни 22–30

    Выкатываем и списываем старое

    Новая сборка принимает трафик за переключателем, старый рантайм держим запасным, пока вы не подпишете. Потом он удаляется со всех серверов и из всех образов.

Кто что делает при обновлении

Механические правки проходят через платформу за часы. Каждое решение о поведении, безопасности и скорости принимает старший инженер.
  • Поиск каждого устаревшего и удалённого API

    Платформа

    По всем модулям и транзитивным зависимостям, включая рефлексию и XML-конфиги, которых компилятор не видит.

  • Массовые правки кода

    Платформа

    Переезд пространств имён, замена API и обновление синтаксиса по всей кодовой базе в виде пул-реквестов, которые можно отревьюить.

  • Замена мёртвых библиотек

    Инженер

    Какая библиотека заменит ту, что застряла на Java 8 или .NET Framework, или надёжнее будут несколько строк вашего собственного кода.

  • Закрытие находок безопасности

    Вместе

    Платформа сопоставляет отчёт сканера с исправлениями. Инженеры проверяют, что каждая находка закрыта и ничего нового не открылось.

  • Паритет поведения

    Вместе

    Проигрывание записанного трафика автоматизировано. Ваша сторона подтверждает, какие расхождения исправления, а какие были бы регрессией.

  • Скорость на новом рантайме

    Инженер

    Сборщик мусора, пулы потоков и старт настроены на новом рантайме и измерены под продовой нагрузкой до переключения.

Автоматический codemod закрывает лёгкую половину обновления. Здесь каждая правка вдобавок проходит старшего инженера и parity harness до продакшена.

Кто делает ваше обновление

Наши инженеры пишут продакшен на Java, .NET, Python и PHP больше 25 лет и выпускали код на тех самых версиях, с которых вы уходите. Они знают, какой XML-конфиг Spring молча перестаёт грузиться, где .NET 8 сериализует дату иначе и как digest-цикл AngularJS годами прятал гонку. Для обновления, которое меняет рантайм и сохраняет каждый ответ, лучше людей не найти.

Фиксированная цена за фазу, дата списания старого рантайма в договоре. Фаза принимается по чистому отчёту паритета, и каждый коммит ваш с момента, как он попал в репозиторий.

О чём спрашивают тимлиды

Сможет наша команда выпускать фичи во время обновления?

Да. Мы работаем в ветке, которая каждый день ребейзится на ваш main, и платформа заново применяет механические правки ко всему, что вы влили. Ваш роадмап движется, а обновление ложится под него. Запросите оценку, и в плане будет видно, как идут слияния с первого дня.

Тестов у нас почти нет. Как вы докажете, что ничего не сломалось?

Parity harness проигрывает записанный продовый трафик против старой и новой версии и сравнивает каждый ответ, так что пути ваших пользователей покрыты, есть тесты или нет. По каждой фазе вы получаете отчёт о расхождениях и подписываете его до переключения. Запросите оценку, стенд паритета в ней уже заложен.

AngularJS на React звучит как полная переписка. Так и есть?

Это переписка фронтенда, маршрут за маршрутом внутри работающего приложения, поэтому экраны у пользователей меняются по одному и большого релиза-взрыва нет. Платформа переносит шаблоны и контроллеры в компоненты, инженеры смотрят каждый. Весь фронтенд переезжает на React в пределах 30 дней. Укажите число маршрутов, и цена вернётся через 48 часов.

Поддержка нашего фреймворка скоро кончается. Время ещё есть?

Есть. Обновление занимает 30 дней, так что старт сейчас ставит вас на поддерживаемую версию с большим запасом до срока, и следующий аудит безопасности встретит актуальный рантайм. Запросите оценку сегодня, и дата войдёт в договор.

Почему бы не поручить обновление нашей команде?

Можно, и на всё это время она выпадет из роадмапа. Мы приносим платформу, которая делает механические правки сразу по всей кодовой базе, и инженеров, которые уже делали ровно такое обновление. Ваши люди остаются на фичах. Запросите оценку и положите её рядом с тем, что потерял бы роадмап.

Уйдите с рантайма без поддержки

Назовите сегодня фреймворк, версию и крайний срок. В течение 48 часов у вас фиксированная цена и порядок обновления, а через 30 дней прод работает на поддерживаемом рантайме, и старый удалён.

Получить оценку

Чтобы назвать цену, хватит номеров версий и примерного размера репозитория.