Назад | Перейти на главную страницу

Обновите производственный сервер и автоматизацию

Я хотел бы прояснить, что я ни в коем случае не являюсь системным администратором, и, возможно, на мой вопрос уже дан ответ, но пока я искал в 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. Используя этот метод, вы получите минимальное время простоя (если оно вообще есть), и пользователи не окажутся в состоянии, в котором одновременно обслуживаются разные версии.

Чтобы избежать этого вручную, существуют инструменты, которые делают это за вас. Здесь несколько примеров:

Если вы хотите продвинуться дальше в процессе развертывания, я бы порекомендовал заглянуть в неизменный сервер концепция или инструменты, такие как Докер