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

Я хотел бы прояснить, что я ни в коем случае не профессиональный системный администратор, и, возможно, на мой вопрос уже дан ответ, но пока я искал в google / serverfault / SO, я ничего не нашел похожий.

Допустим, у нас есть 2 отдельных файла, которые мы хотим обновить на одном рабочем сервере. Мы можем сделать это с помощью ssh - git . Файлы AFAIK загружаются один за другим. Теперь предположим, что мы хотим, чтобы эти два файла были загружены одновременно , и ни в коем случае не хотим, чтобы пользователь столкнулся с неудачной ситуацией с file1UpdatedVersion и file2OldVersion .

Итак, я предполагаю, что нам нужно выключить сервер, загрузить файлы, провести несколько тестов, чтобы убедиться, что все работает правильно, и снова открыть сервер.

Есть ли какое-либо программное обеспечение для автоматизации, в которое мы можем отправить список файлов, предназначенных для загрузки, снабдить его некоторыми тестовыми примерами, в которых наше обновление будет считаться успешным, а затем сервер выключения-обновления-запуска , обеспечивающий нам таким образом минимальное время простоя сервера ?

Спасибо за ваше время!

1
задан 31 October 2015 в 01:43
1 ответ

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

Допустим, вы начали со своего приложения v1 , расположенного в / var / www / app / v1 , затем у вас есть символическая ссылка с именем / var / www / app. / current , указывающий на папку v1 .Вы настраиваете свой веб-сервер на использование текущей папки в качестве корня документа. Когда вы собираетесь выпустить v2 , вы загружаете его в / var / www / app / v2 , а затем изменяете свою текущую символическую ссылку на ] v2 . Используя этот метод, вы получите минимальное время простоя (если оно вообще есть), и пользователи не окажутся в состоянии, в котором одновременно обслуживаются разные версии.

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

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

1
ответ дан 3 December 2019 в 23:57

Теги

Похожие вопросы