Перенесення (rehost)
Переносимо застосунок у хмару чи на нові сервери з мінімальними змінами коду. Швидко й з малим ризиком, але стара архітектура лишається, тож це часто перший крок, а не мета.
Ваша основна система досі тримає бізнес, але її повільно змінювати, дорого обслуговувати й важко знайти під неї людей. Ми модернізуємо застарілі застосунки етапами: спершу аудит, потім рефакторинг, зміна архітектури чи перенесення в хмару — модуль за модулем. Стара система працює, доки нова частина не доведе, що готова її замінити.
Система, яка працює десять років, тримає правила, яких ніхто не записав: нічний експорт, на який розраховує партнер, цінове виключення для одного клієнта, звіт, який фінвідділ звіряє щомісяця. Переписування, що починається з екранів, зазвичай їх губить, і вони повертаються інцидентами після запуску.
Модернізація працює, коли починається з того, що система робить насправді. Ми читаємо код, базу даних і логи, складаємо список усіх інтеграцій і запланованих задач і лише потім вирішуємо для кожного модуля, що залишити, відрефакторити, перебудувати чи замінити.
Зазвичай система отримує поєднання підходів. Аудит визначає, що підходить кожному модулю, з огляду на цінність для бізнесу, ризик і вартість.
Переносимо застосунок у хмару чи на нові сервери з мінімальними змінами коду. Швидко й з малим ризиком, але стара архітектура лишається, тож це часто перший крок, а не мета.
Покращуємо структуру коду, оновлюємо фреймворки й додаємо тести, не змінюючи поведінки модуля. Підходить, коли логіка правильна, але код важко змінювати.
Розділяємо моноліт на сервіси, додаємо API чи інтеграції на подіях. Підходить, коли масштабування чи нові функції блокує архітектура, а не код.
Переписуємо модуль на сучасному стеку, зберігаючи його функції й дані. Підходить для невеликих зрозумілих частин, де рефакторинг коштує дорожче, ніж почати заново.
Замінюємо модуль готовим продуктом чи SaaS і інтегруємо його. Підходить для типових функцій: білінгу, розсилок, зберігання документів.
Кожен крок дає результат, яким можна користуватися, навіть якщо на ньому зупинитися.
Якість коду, архітектура, інфраструктура, безпека, модель даних та інтеграції — з огляду на те, як бізнес користується системою сьогодні. Ви отримуєте звіт про ризики й рекомендований підхід для кожного модуля.
Оновлення фреймворків і середовища виконання, видалення мертвого коду, автотести навколо частин, що змінюються, і рефакторинг, після якого наступна функція коштує дешевше.
API перед старим ядром, сервіси, виділені з моноліту, і перехід на AWS, Azure чи Google Cloud з інфраструктурою як кодом і CI/CD.
Зіставлення схем, очищення даних, повторювані скрипти міграції та звіти звірки, щоб довести, що нова система показує ті самі цифри, що й стара.
Стара й нова системи працюють паралельно. Навантаження переходить на нові модулі поступово, і кожен крок можна відкотити.
Код, база даних, інфраструктура, заплановані задачі й інтеграції, а також розмови з людьми, які користуються системою й підтримують її.
Результат Карта системи та звіт про ризики
Підхід до кожного модуля, порядок робіт і оцінка кожного етапу.
Результат Дорожня карта модернізації, яку можна закласти в бюджет
Один модуль модернізуємо й запускаємо в продакшн за наявним інтерфейсом, щоб перевірити підхід на реальному навантаженні.
Результат Перший сучасний модуль у продакшні
Модуль за модулем, з тестами, моніторингом і звіркою даних на кожному кроці. Користувачі весь час працюють.
Результат Релізи без простоїв
Старі компоненти вимикаємо, щойно від них ніщо не залежить, і продовжуємо розробку на новій платформі.
Результат Нижчі витрати й код, який ваша команда може змінювати
Пакети з фіксованою ціною або команда за $25–50 на годину залежно від рівня інженерів і стеку. Кожна оцінка починається з короткої розмови про обсяг робіт.
| Пакет | Аудит | Пілотний модуль | Поетапна модернізація | Enterprise |
|---|---|---|---|---|
| Ціна | від $1 200 | від $4 800 | від $19 200 | від $57 600 |
| Мінімальний обсяг | 80 год | 320 год | 1 280 год | 3 840 год |
| Типовий строк | 2–3 тижні | 1–3 місяці | 4–9 місяців | 9+ місяців |
| Що ви отримуєте | Огляд коду, архітектури, інфраструктури й даних зі звітом про ризики та планом модернізації для кожного модуля | Один модуль після рефакторингу чи перебудови працює в продакшні поруч зі старою системою | Міграція модуль за модулем, перенесення даних, CI/CD, тести й хмарна інфраструктура — система весь час працює | Повна зміна архітектури великої системи, кілька команд чи інтеграцій, відповідність вимогам і довгострокова підтримка |
Ціни — стартова точка для мінімального обсягу кожного пакета. Остаточна вартість залежить від функцій, інтеграцій і стану наявного коду.
Більшість невдалих модернізацій ламаються на даних, інтеграціях чи простоях, а не на коді.
| Ризик | Що зазвичай іде не так | Що робимо ми |
|---|---|---|
| Дані | Записи губляться чи змінюються під час міграції, і це помічають за кілька місяців | Повторювані скрипти міграції, тестові прогони на копії продакшн-даних і звіти звірки |
| Інтеграції | Перестає працювати партнерський фід чи нічна задача, про яку ніхто не знав | Кожна інтеграція й запланована задача є в аудиті й покрита тестами до перемикання |
| Простої | Перемикання на вихідних, яке затягується до понеділка | Старі й нові модулі працюють паралельно, навантаження переходить поступово, відкат готовий на кожному кроці |
| Бізнес-правила | Незадокументована логіка губиться під час переписування | Поточну поведінку фіксуємо в тестах до зміни коду |
| Бюджет | Одна велика оцінка, що росте під час проєкту | Аудит і пілот за фіксованою ціною, далі кожен етап погоджуємо окремо |
Працюємо з вашим поточним стеком і переводимо його на такий, під який легко знайти людей.
Аудит — від $1 200, пілотний модуль — від $4 800. Поетапна модернізація системи середнього розміру — від $19 200. Ціна залежить від обсягу коду, кількості інтеграцій, стану даних і того, скільки модулів потребують більшого, ніж рефакторинг. Ставка нашої команди — $25–50 на годину.
Аудит займає 2–3 тижні, пілотний модуль — 1–3 місяці. Повна поетапна модернізація зазвичай триває 4–9 місяців, для великих систем — довше. Робота виходить у продакшн модуль за модулем, тож результат видно задовго до кінця.
Так, і це правильно. Нові модулі працюють поруч зі старими, навантаження переходить на них поступово, і кожен крок можна відкотити. Старі частини вимикаємо лише тоді, коли від них ніщо не залежить.
Рідко. Зазвичай частині модулів вистачає рефакторингу чи перенесення, частину перебудовуємо, а частину замінюємо готовими продуктами. Аудит показує, що саме кому підходить.
Так. Інструменти ШІ допомагають швидше читати великі кодові бази: підсумовувати модулі, відстежувати залежності, готувати тести навколо наявної поведінки й пропонувати рефакторинг. Кожну зміну перевіряють інженери, і код не залишає погодженого з вами середовища.
Так. Якщо архітектура нормальна і вам треба лише очистити, оновити код і покрити його тестами, рефакторинг можна виконати окремим проєктом.