Система сравнения инстансов
Задача системы - дать пользователям место на каждом инстансе, где они могут понять состояние сети Pepeunit
Единый сервис парсер
- Сервис опражшивает все инстансы которые он знает о их состоянии
- Сервис обходит все досупные инстансы за 1 час, равномерно распределяя запросы
- При отдаче данных, нужно отдавать инкремент за 3 часа, а если отдавать всё целиком, то как минимум с большим лимитом на 1 ip
- По ip определяется примерная геолокация, ping, и тд
- Элементы добавляются вручную
- Данные из сервиса парсера, кэшируются 1 раз в час
Генерация данных для парсера
- Ручка domain.com/pepeunit: Отдача состояния системы с настройками, происходит через REST и GQL запрос с кешом и обновлением раз в 1 час
- Ручка gql и rest отдающая список доменов, которые есть у инстанса с пагинацией конечно же
Данные включают:
- Базовые фича флаги инстанса
- Базовые настройки инстанса
- Когда в последний раз прошли интеграционники и результат
- Статистики инстанса
- Контакты владельца инстанса
- Убрать автора, стало избыточной информацией
Админ сможет
- Вызов интеграционных тестов с фронтенда, пароли все при этом генерируются уже рандомно, в целом тесты перестроены, чтобы вызываться без проверки функционала приватных репозиториев, через спец флаг, тесты должны учитывать фича флаги
- Кнопка принудительного сканирования внешних инстансов, проходит по всем доменам отдельно и уточняет информацию
- Кнопка принудительного сканирования конкретного инстанса
- Кнопка узнающая у других инстансов, о их списке доменов, позволяет синхронизировать списки доменов у разных инстансов
- В целом все рутинные задачи, должны отчитываться о своём выполнении более качествено, думаю можно изобрести таблицу в бд, где будет статус последнего исполнения всех основных рутинных задачек
- Вести Чёрные/Белые списки
Реализация
Нужна таблица instances для хранения всех доступных инстансов:
- Домен инстанса
- ip адрес инстансов
- ping
- информация о геолокации
- Время сбора информации
- Накопительный каунтер, числа положительных сборов данных
- Статус последнего сбора информации
- Ошибка сбора если есть
- хранение json ответов целиком, работать будем по версии схем, чтобы добиться универсальности между разными инстансами. Каждая последующая версия, будет знать о нюансах предыдущих
- Потребуется полностью перестроить концепцию интеграционных тестов
- Нужно сделать факт чекинг конфига при запуске, по некоторым переменным, например контактам owner
Фронтенд или графана, надо подумать
- Указывается карта с геолокациями серверов
- Таблица с сортировками по всем параметрам