Василий Осадчий
01.tech
...но так, чтобы никто не заметил. Расскажу о миграции сервиса, которую мы провернули, и поделюсь лайфхаком, позволяющим не делать лишнюю работу. В ходе нее мы поменяли всё в системе:
— БД: MariaDB -> YugabyteDB.
— Язык: TypeScript -> Kotlin.
— Фреймворк: NodeJS -> Spring Boot.
— Схему данных.
— API.
И всё это получилось сделать без downtime и доработок на стороне клиентов и с нулевой терпимостью к потере данных. Получился интересный хрестоматийный пример, который вобрал в себя практически всё, что может встретиться при миграции сервиса. Упор будет не на специфику конкретных БД, а на общие принципы и примеры реализации конкретных моментов и приемы, позволяющие упростить себе жизнь. Расскажу, как обеспечили параллельную работу старой и новой системы, как сделали переключение незаметным для клиентов и откатывались на старую систему в случае проблем в новой, а также с какими проблемами столкнулись при параллельной записи и как их решили.
01.tech