Я хотел бы прояснить, что я ни в коем случае не являюсь системным администратором, и, возможно, на мой вопрос уже дан ответ, но пока я искал в google / serverfault / SO, я не нашел ничего похожего.
Допустим, у нас есть 2 отдельных файла, которые мы хотим обновить. один производственный сервер. Мы можем сделать это с ssh
-git
. Файлы AFAIK загружаются один за другим. Предположим теперь, что мы хотим, чтобы эти два файла были загружены at once
и ни в коем случае мы не хотим, чтобы пользователь столкнулся с неудачной ситуацией file1UpdatedVersion
и file2OldVersion
.
Поэтому я предполагаю, что нам нужно выключить сервер, загрузить файлы, провести несколько тестов, чтобы убедиться, что все работает правильно, и снова открыть сервер.
Есть ли какое-либо программное обеспечение для автоматизации, в которое мы можем отправить список файлов для загрузки, снабдить его некоторыми тестовыми примерами, когда наше обновление будет считаться успешным, а затем shutdown-update-start server
, предоставляя нам таким образом минимум server downtime
?
Спасибо за ваше время !
Есть много способов автоматизировать развертывание с минимальным временем простоя. В зависимости от ваших текущих настроек могут применяться разные методы. Хорошим началом может быть превращение вашего фактического этапа выпуска в изменение символической ссылки.
Допустим, вы начинаете со своего app v1
находится в /var/www/app/v1
, тогда у вас есть символическая ссылка с именем /var/www/app/current
указывая на v1
папка. Вы настраиваете свой веб-сервер для использования current
папка как корень документа. Когда ты собираешься выпустить v2
, вы загружаете его в /var/www/app/v2
а затем измените свой current
символическая ссылка, указывающая на v2
. Используя этот метод, вы получите минимальное время простоя (если оно вообще есть), и пользователи не окажутся в состоянии, в котором одновременно обслуживаются разные версии.
Чтобы избежать этого вручную, существуют инструменты, которые делают это за вас. Здесь несколько примеров:
Если вы хотите продвинуться дальше в процессе развертывания, я бы порекомендовал заглянуть в неизменный сервер концепция или инструменты, такие как Докер