Назад |
Перейти на главную страницу
Порядок перезагрузки сервера / службы
У меня есть пара серверов, на которых работает несколько сервисов. Эти услуги зависят от доступности услуг на других серверах.
пример
ServerA / webservice зависит от ServerB / sqlservice и ServerC / blobservice
При планировании обновлений / перезагрузок я хочу убедиться, что серверы и службы запускаются в правильном порядке.
В этом примере
Серверы A, B и C могут перезагружаться одновременно, но службы должны запускаться в следующем порядке:
- ServerC / blobservice
- ServerB / sqlservice
- ServerA / веб-сервис
Я знаю, что службы могут зависеть от других локальных служб, что гарантирует их запуск в правильном порядке. Как этого добиться на нескольких серверах?
Для этого нет готовых инструментов. Все, кого я знаю, кто это делает, делают свои собственные. В Stack Overflow у нас есть собственное программное обеспечение, называемое (очень креативно) «патчером», которое заботится об этом за нас.
Причина, по которой вы вряд ли найдете универсальное решение «под ключ», заключается в том, что потребности у всех очень разные. Например:
- Вам нужно проверить работоспособность службы перед перезагрузкой компьютера?
- Что, если вы удалите последний компьютер в кластере?
- Что делать, если служба была неисправна до того, как вы ее перезагрузили. Когда он вернется, вы можете не знать, сломан ли он из-за недавних исправлений или уже был сломан
- Что делать, если у вас есть хосты, которые отключены, но автоматически снова включаются после перезагрузки из-за сценариев запуска?
- Как вы проверяете работоспособность службы и сервера после перезагрузки?
- Есть ли какие-то особые действия, которые необходимо предпринять перед перезагрузкой?
- Что делать, если нужно настроить балансировщик нагрузки?
- Вам нужно перед перезагрузкой перевернуть виртуальный IP на другой хост?
- Есть ли особый процесс безопасного удаления сервера из кластера?
- Что делать, если вы исправляете одну машину в кластере, и она не работает нормально?
- Вы вслепую продолжаете патчить и скрещиваете пальцы, это не патч его сломал?
- Вы останавливаете все исправления, даже если это был единичный инцидент?
- Вы делаете исключение и запрашиваете информацию?
- С какими операционными системами вы работаете?
- Вам нужно делать гетерогенные графики исправлений?
- Какой выпуск патча вы делаете? Вы патчите, как только патчи поступят в продажу? Вы ждете, чтобы увидеть, будут ли они отозваны?
- Вам нужно исключить определенные пакеты / программное обеспечение из исправления?
- Что произойдет, если серверу исправлений потребуется установка исправлений и перезагрузка?
- Вы перестаете исправлять все сразу, если сервер патчера перестает работать?
- Как вы проводите самотестирование?
- Какие машины принадлежат каким кластерам / кадрам / когортам?
- Некоторые машины можно патчить параллельно. Некоторые должны быть серийными
- Некоторые из них могут быть исправлены вскоре после других.
- Для балансировки других сервисов может потребоваться несколько часов (elasticsearch), поэтому исправляйте меньше машин в день.
Это просто короткая список проблем, над решением которых мы работали с помощью нашего решения для исправления / перезагрузки, и список других будет выглядеть совершенно иначе.