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

Рекомендуется ли запускать обновления Ubuntu Server на живом сервере?

Когда я подключаюсь по ssh к серверу Ubuntu, на котором запущен действующий веб-сайт, я вижу следующие сообщения:

2 packages can be updated.
2 updates are security updates.

В этот момент я могу обновить и обновить с помощью следующей команды:

sudo apt-get update
sudo apt-get upgrade

Рекомендуется ли запускать вышеуказанное на реальном сервере с критически важными приложениями?

Короткий ответ - нет.

Лучше тщательно выбирать и тестировать обновления, прежде чем применять их в производственной среде. Перед запуском и обновлением на производственных машинах они сначала применяются в среде контроля качества и проходят через набор тестов, чтобы убедиться, что они работают должным образом.

Если ты бежишь apt-get --just-print upgrade и apt-get --just-print update он покажет вам пакеты.
Я вижу, вы используете 10.04. Все, что они вкладывают в эти репо, тщательно проверяется, поэтому вы должны быть в безопасности.

По моему опыту, ни одна из моих служб никогда не была прервана из-за apt-get update/apt-get upgrade. Однако, если это критически важно, вы должны принять меры предосторожности и предупредить пользователей о предстоящем техническом обслуживании и запланировать его на время наименьших сбоев. Вряд ли что-нибудь пойдет не так, но сделайте это, если хотите быть в безопасности.

Также послушайте шраймер внизу (или вверху), если он действительно критически важно, сначала обязательно протестируйте его на непроизводственной системе.

Вот почему у нас есть тестовый сервер с той же средой и теми же приложениями, чтобы мы могли видеть, что происходит при обновлении, и убедиться, что все по-прежнему работает.

Без этого вам нужно будет сказать, какие пакеты нужно обновить, и посмотреть, используются ли эти пакеты вашими критически важными приложениями. Если это веб-сервер, и он хочет обновить apache, вам нужно ожидать в лучшем случае минуту или две простоя, пока он останавливает сервер, обновляет файлы, а затем запускает его снова. Некоторые библиотеки требуют перезапуска некоторых серверов, другие - нет.

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

Отсутствие тестовой среды: запуск apt-get --just-print upgrade должен показать вам список. Обновляйте только те пакеты, которые вы не ожидаете коснуться вашего приложения.

У меня были проблемы с выполнением aptitude safe-upgrade на живом (некритичном) сервере. Иногда, когда пакеты обновляются, например postgesql, mysql или другие службы, они перезапускаются. Если приложения, использующие эти службы, плохо реагируют на исчезновение базы данных из-под них, могут возникнуть проблемы.

В частности, я обнаружил, что мои приложения rails 3, использующие сиквел в качестве ORM и postgresql в качестве базы данных, зависают, когда postgresql перезапускается без предварительной остановки rails. Это ошибка, но бывает.