Косвенный ответ
Ответ Алексея Исаченкова - это правильное прямое решение.
Одна альтернатива - поместить версионность в hostname
вместо пути.Если у вас есть «version1» ваших значений Route
в source-control, вы можете пометить эту регистрацию как «version1», развернуть ее в рабочей среде и затем использовать записи DNS, чтобы установить имя службы на version1.myservice.com
.
Затем, как только появятся новые функции, вы обновите свой код и пометите его в source-control как "version2".Выпустите эту обновленную сборку и используйте DNS, чтобы установить имя version2.myservice.com
, сохраняя при этом работающий экземпляр version1.Это приведет к тому, что две активные службы будут работать независимо друг от друга.
Преимущества этого метода:
- Ваш код не будет непрерывно увеличиваться по мере выпуска новых версий.
- Вы можете использовать ведение журнала, чтобы выяснить, не использовалась ли версия в течение длительного времени, а затем просто убить этот запущенный экземпляр службы, чтобы завершить версию версии.
- Вы можете использовать DNS дляопределите свою текущую «рабочую» версию, указав
production.myservice.com
любую версию службы, которую вы хотите.Например: как только вы выпустили version24.myservice.com
и протестировали его некоторое время, вы можете обновить указатель production.myservice.com
, чтобы перейти к 24 из 23. Старая версия может оставаться работоспособной для любых пользователей, которые не хотят обновляться, ноЛюбой, кто хочет последнюю версию, всегда может использовать «производство».