Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

В данном руководстве рассматриваются вопросы эксплуатации приложений, входящих в состав АСР «Гидра». С полной схемой их взаимодействия можно ознакомиться на странице с описанием взаимодействия приложений.


Веб-приложения

  • Офис оператора связи (hoper или arm_isp)
  • Личный кабинет абонента (hupo или arm_private_office)
  • «Миграция» (arm_migration)
  • Платежный портал (arm_payments)
  • Портал авторизации (huas)
Веб-приложения, работающие с АСР «Гидра», написаны на фреймворке Ruby On Rails (язык Ruby). Они функционируют под пользователем ОС rails с помощью веб-сервера nginx в связке с модулем passenger. Версии веб-приложений устанавливаются и обновляются на сервере сотрудниками компании Латера с помощью собственных средств.

Каждое приложение устанавливаются на сервере в отдельную директорию (например, в /opt/hydra/rails/arm_isp), которая имеет следующее содержимое:

  • releases - директория с релизами (версиями) приложений. В данной директории хранятся все устанавливаемые на сервер версии заданного приложения для возможности отката к предыдущей версии в случае неудачного обновления.

  • current - символическая ссылка на директорию с текущей используемой версией приложения. На данную ссылку устанавливается путь до приложения в настройках виртуального хоста в настройках веб-сервера.

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

Вопросы эксплуатации

  1. Ротация и архивация лога 

    В процессе своей работы веб-проложения генерируют лог выполнения запросов в файл shared/log/production.log, размеры которого со временем эксплуатации системы могут достигать нескольких гигобайт. Чтобы избежать угрозы нехватки свободного дискового пространства, рекомендуется регулярно производить ротацию и архивацию данного лога, например, с помощью logrotate.

  2. Удаление старых релизов

    Со времением эксплуатации системы в директории releases может накопиться большое количество устаревших версий приложения, которые уже не совместимы с текущей установленной версией. Чтобы избежать засорения дискового пространства, рекомендуется производить регулярное удаление старых релизов, например, спустя месяц с момента их последнего использования.

  3. Сброс кэша

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

    rails@server:~/arm_isp$ touch current/tmp/restart.txt
  4. Перезапуск
     
    Полный перезапуск веб-приложений в общем случае возможен только за счет перезапуска веб-сервера nginx с помощью инит-скрипта:
     
    root@server:~# /etc/init.d/nginx restart 

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

Менеджер соединений с БД

  • connection_manager или hcmd
     















  • No labels