Доклад

Миграция на максималках: как поменять вообще все

...но так чтобы никто не заметил.

Расскажу о миграции сервиса, которую мы провернули.

В ходе нее мы поменяли все в системе:

  • БД: MariaDB -> YugabyteDB.
  • Язык: TypeScript -> Kotlin.
  • Фреймворк: NodeJS -> Spring Boot.
  • Схему данных.
  • API.

И все это получилось провернуть без downtime и доработок на стороне клиентов и с нулевой терпимостью к потере данных. Получился интересный хрестоматийный пример, который вобрал в себя практически все, что может встретиться при миграции сервиса.

Упор будет не на специфику конкретных БД, а на общие принципы и примеры реализации конкретных моментов на Kotlin. Расскажу, как обеспечили параллельную работу старой и новой системы, как сделали переключение незаметным для клиентов и откатывались на старую систему в случае проблем в новой, а также с какими проблемами столкнулись при параллельной записи и как их решили.

Спикеры

Доклады