Как обновить облачный сервис?

В процессе развития проекта возникла логичная необходимость обновления облачного сервиса. Но пока что схема выглядит довольно тяжелой в виду того, что нужно без остановки и с минимальной посадкой по производительности выполнить обновление всех компонентов.
В целом процесс обновления в общих чертах подразумевает итерационное обновление, но основная сложность в том, что метаданные в базе одни для всех серверов. Таким образом, получается, что все сервисы, как старые (до обновления) так и новые (после обновления), должны уметь корректно работать, как с новыми, так и со старыми объектами в базе данных.
Может быть есть какие-то лучшие практики и шаблоны для подобного обновления или кто-то из пользователей уже сталкивался с подобной задачей, тогда я буду благодарен, если вы поделитесь своим опытом решения.
  • Вопрос задан
  • 2393 просмотра
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
выкатка кода редко занимает 1 час
а предупредить пользователей что сервис будет не доступен 1 час не проблема
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
В таких случаях обычно есть 2 варианта (само собой, вы люди опытные, живете на десятке серверов, у вас нет проблем с мастером БД, нет statefull фронтов и так далее).

1) делаем такое обновление (промежуточное), которое умеет работать с обеими схемами базы.
2) разворачиваем второй mysql(например), пишем прослойку, которая в realtime перегоняет данные из старой базы в новую. После обновления всех компонентов - вырубаем старую базу. Как вариант - научить старый проект писать в новую базу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы