обновление фреймворков
Обновление на .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
Обновление за 30 дней
- 01дни 1–3
Сканируем и планируем
Каждая зависимость, устаревший API и удалённое пространство имён по всей кодовой базе, и к ним привязаны ваши находки безопасности. Вы получаете порядок обновления и фиксированную цену.
- 02дни 3–15
Обновляем ядро
Первыми переезжают рантайм, сборка и фреймворк: javax на jakarta, System.Web на ASP.NET Core, Struts и EJB на Spring Boot. Массовую переписку делает платформа, каждый пул-реквест смотрят инженеры.
- 03дни 10–24
Заменяем умершее
Библиотеки без поддерживаемой версии заменяем или переписываем, экраны AngularJS пересобираем на React по одному маршруту за раз. После каждого слияния parity harness проигрывает продовый трафик.
- 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 дней прод работает на поддерживаемом рантайме, и старый удалён.
Чтобы назвать цену, хватит номеров версий и примерного размера репозитория.