В процессе развития проекта возникла логичная необходимость обновления облачного сервиса. Но пока что схема выглядит довольно тяжелой в виду того, что нужно без остановки и с минимальной посадкой по производительности выполнить обновление всех компонентов.
В целом процесс обновления в общих чертах подразумевает итерационное обновление, но основная сложность в том, что метаданные в базе одни для всех серверов. Таким образом, получается, что все сервисы, как старые (до обновления) так и новые (после обновления), должны уметь корректно работать, как с новыми, так и со старыми объектами в базе данных.
Может быть есть какие-то лучшие практики и шаблоны для подобного обновления или кто-то из пользователей уже сталкивался с подобной задачей, тогда я буду благодарен, если вы поделитесь своим опытом решения.
В таких случаях обычно есть 2 варианта (само собой, вы люди опытные, живете на десятке серверов, у вас нет проблем с мастером БД, нет statefull фронтов и так далее).
1) делаем такое обновление (промежуточное), которое умеет работать с обеими схемами базы.
2) разворачиваем второй mysql(например), пишем прослойку, которая в realtime перегоняет данные из старой базы в новую. После обновления всех компонентов - вырубаем старую базу. Как вариант - научить старый проект писать в новую базу.