ПР. Сбой приложения

Кратко:

  • Сбой приложения: ситуация, когда ВМ работоспособна, но произошла ошибка в приложении.
  • Проверка состояния ВМ: активация проверки состояний в консоли управления и проверка доступности сервера в браузере.
  • Остановка процессов nginx на виртуальной машине для имитации сбоя приложения.
  • Переключение трафика на другую виртуальную машину при обнаружении сбоя приложения.
  • Подтверждение недоступности сервера после остановки NGINX.
  • Наблюдение за изменением состояния виртуальной машины при сбое приложения.
  • Автоматическая работа Yandex Cloud над восстановлением работоспособности группы виртуальных машин.

Практическая работа. Сбой приложения

Последний сценарий, который мы рассмотрим, это сбой приложения. Ситуация, когда сама ВМ работоспособна, но по каким-то причинам произошла ошибка в приложении. Это может быть потеря соединения с базой данных или какой-то баг в запущенном приложении (например утечка памяти). Давайте сымитируем такой сценарий. На наших виртуальных машинах запущен только веб-сервер NGINX, давайте остановим его. Но сначала включим проверку состояния ВМ.
  1. В консоли управления откройте вкладку Обзор для вашей группы виртуальных машин, нажмите кнопку Изменить и активируйте проверку состояний. Сохраните изменения.
image
  1. В браузере откройте страницу с внешним IP-адресом балансировщика, привязанного к вашей группе, и посмотрите, на какую из машин выводится трафик. Узнайте внешний IP-адрес этой машины.
  2. В новой вкладке браузера откройте IP-адрес этой виртуальной машины и убедитесь, что выводится приветственная страница, т. е. сервер доступен.
  3. Помните, когда вы меняли файл конфигурации для группы машин, вы добавили в него пользователя my-user? Теперь он вам пригодится — из консоли зайдите на ВМ от его имени:
    ssh my-user@<внешний_IP-адрес_ВМ>
     
     
  4. Посмотрите список запущенных процессов:
    ps aux
     
    Убедитесь, что в списке есть процессы nginx:
image
  1. Теперь остановите эти процессы, чтобы сделать сервер недоступным:
    sudo killall nginx
     
     
  2. В браузере обновите страницу балансировщика. Вы увидите, что теперь трафик направляется на другую виртуальную машину группы. Это означает, что Instance Group обнаружил сбой приложения и переключил трафик.
  3. Теперь обновите страницу виртуальной машины, на которой вы остановили NGINX. Убедитесь, что сервер теперь недоступен.
  4. Откройте список машин вашей группы и проследите, как меняется состояние одной из машин.
    Сначала будет закрыт трафик (статус Closing traffic), затем виртуальная машина будет остановлена (статус Stopping instance), а затем перезапущена (статус Running actual).
  5. Убедитесь, что веб-сервер на этой ВМ снова доступен.
Мы проверили четыре основных сценария сбоев и убедились, что Yandex Cloud автоматически отрабатывает их и восстанавливает работоспособность группы.