Skip to content

Instantly share code, notes, and snippets.

@vmrfriz
Last active January 12, 2021 15:16
Show Gist options
  • Save vmrfriz/fd30f71984061355b55f74873ead384a to your computer and use it in GitHub Desktop.
Save vmrfriz/fd30f71984061355b55f74873ead384a to your computer and use it in GitHub Desktop.
Support application

Оглавление




Принцип работы

Настройка сервера клиента:

  1. Установить наш ssh-ключ как доверенный
  2. Развернуть наше приложение с общедоступным url
  3. Добавить в исключения robots.txt url с нашим приложением
  4. Через интерфейс приложения установить параметры поддержки:
    • Инициализация git
    • .gitignore для исключения файлов ядра
    • Авторизацию с сервером поддержки
    • Привязать (дополнительный) remote для git
  5. Настроить периодический запуск:
    • Битрикс: убедиться, что запуск на агентах работает
    • Другие CMS: настроить crontab на запуск скрипта диагностики
  6. Инициализировать аутентификацию на сервере поддержки
  7. Принять запрос аутентификации со стороны сервера поддержки

Наглядные сценарии обмена информацией на coggle.it




Клиентский сервер

Общий функционал

  • чтение состояния git (git status, git remote, git branch, git stash)
  • проверка наличия и валидности robots.txt, sitemap.xml
  • Rest API для удаленного запуска функционала приложения
  • аутентификация для защиты приложения от стороннего вмешательства
  • интерфейс разворота скрипта поддержки для интерактивного создания .gitignore, настройки аутентификации
  • сохранение результатов диагностики локально в случае, если сервер поддержки недоступен; отправка всех результатов диагностики, как только сервер поддержки снова станет доступен. Предусмотреть лимит хранимых логов
  • чтение оставшегося места на диске
  • удаленное создание коммитов на сервере

Доп. функционал для 1С-Битрикс

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

Доп. функционал для других CMS

  • резервное копирование базы данных




Наш сервер

Предварительный выбор инструментов:

Функционал

  • Rest API для приёма результатов диагностики сайтов
  • периодический пинг сайтов для проверка ответа HTTP 200
  • хранение принятых результатов в БД
  • ведение истории изменений по сайтам
  • веб-интерфейс администратора для просмотра результатов диагностики поддерживаемых сайтов
  • возможность через интерфейс послать запрос диагностики: как отдельных функций, так и полного тестирования
  • удаленное изменение сервера поддержки на поддерживаемых сайтах (в случае переезда)
  • уведомление в Telegram, если на сайте произошло что-то тревожное

Структура БД

Описание таблиц

Название Описание Связи
clients Список клиентов
domains Список доменов клиента clients
diagnostic_tags Возможные ключи диагностики
client_diagnostic_values Значения ключей диагностики для сайта clients
diagnostic_tags

Структура таблиц

clients

Столбец Тип Описание
id primary unsigned bigInt Primary key
name string(32) Наименование клиента (для понимания)

domains

Столбец Тип Описание
id primary unsigned bigInt Primary key
client_id unsigned bigInt Ссылка на supp_clients.id
domain unique string(32) Уникальный домен

diagnostic_tags

Столбец Тип Описание
id primary unsigned bigInt Primary key
tag string(64) Название ключа диагностики
type enum Тип данных: integer, string, boolean, timestamp

clients_diagnostic_values

Столбец Тип Описание
client_id unsigned bigInt Ссылка на supp_clients.id
tag_id unsigned bigInt HTTP 200 - true; иначе false
value string(256) Значение диагностического параметра
create_at timestamp Время добавления отчёта
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment