chitranshi kulkarni Ответов: 1

Как управлять нулевым временем простоя в приложении MVC, не влияя на подключенных пользователей


Я хочу решение, предположим, что у меня есть 3 модуля в приложении MVC, работающем на производстве, которые доступны через общее меню. Были обновления по 1-му модулю. Я хочу опубликовать только 1-й модуль, чтобы остальные 2 модуля пользователей не затронули. В принципе, я не хочу спускать свое приложение для пользователей, которые не используют 1-й модуль.
Можно ли таким образом минимизировать время простоя?
Как только обновленный модуль будет подключен, он откроется для всех пользователей
Задняя часть-oracle19c

Или любой другой способ минимизировать время простоя приложения?

Действительно ли существует нечто, называемое нулевым временем простоя? Если да, то как это можно сделать?

Что я уже пробовал:

В настоящее время ничего не предпринимал. Знаю о CI/CD, но никогда не пробовал

1 Ответов

Рейтинг:
1

Afzaal Ahmad Zeeshan

Цитата:
Были обновления по 1-му модулю. Я хочу опубликовать только 1-й модуль, чтобы остальные 2 модуля пользователей не затронули.
Здесь вы смотрите на требования к архитектуре микросервисов. Каждая служба представляет собой отдельный проект, отдельный процесс и размещается отдельно; обновление в одной службе не требует перераспределения для других служб.
Цитата:
Можно ли таким образом минимизировать время простоя?
Зависит от того, если каждая служба независима, то, по крайней мере, вы локализовали время простоя для каждой службы самостоятельно. Как каждая служба управляет временем простоя, это совсем другая история. Если вы обновите сервис, то, скорее всего, произойдет простой; процесс должен быть остановлен, обновлен и перезапущен.
Цитата:
Или любой другой способ минимизировать время простоя приложения?
Вы можете попробовать использовать сине-зеленые развертывания, где вы начинаете постепенно развертывать обновления для пользователей. Таким образом, обновление не повлияет на всех пользователей. Некоторые пользователи продолжают подключаться к более старой версии вашего сервиса и получать к ней доступ. Обновленные экземпляры развертываются, а затем трафик постепенно начинает достигать этих модулей; Ссылка на Kubernetes[^].
Цитата:
Действительно ли существует нечто, называемое нулевым временем простоя?
Да, существует "логическое" объяснение нулевого простоя.
Цитата:
Если да, то как это можно сделать?
Он работает с помощью оркестратора, поэтому логически ваш сервис всегда работает, но модули (процессы) создаются, обновляются и уничтожаются в фоновом режиме без ведома ваших пользователей. Я думаю, что это результат "нетворкинга", сделанного правильно!

Опять же, это зависит от вашей инфраструктуры или платформы и от того, где вы размещаете свой сервис. Если платформа поддерживает это, то хорошо, в противном случае вам может потребоваться ввести другие оркестраторы (например, Kubernetes), чтобы обеспечить нулевое время простоя.

Помните, что для хорошего нулевого простоя вам нужно использовать:

1. Услуг без гражданства
2. Out-proc database/session information (чтобы пользователи не терялись при обновлении службы)
3. Хороший сервис оркестровки (Kubernetes?)

Удачи вам!