Документация "Кадровый резерв"
2026-08-12 19:51
Описание технической архитектуры программного обеспечения «Кадровый резерв»
1. Общие сведения
«Кадровый резерв» представляет собой серверное программное обеспечение для поиска, фильтрации и ранжирования кандидатов.
Система предназначена для локального развертывания в инфраструктуре заказчика и взаимодействует с внешними информационными системами через API.
2. Архитектурный подход
Программное обеспечение построено как контейнеризированный серверный сервис.
Основные архитектурные принципы:
развертывание внутри информационного контура заказчика;
отсутствие необходимости в собственном пользовательском интерфейсе;
взаимодействие через HTTP API;
обмен данными в формате JSON;
единое хранилище структурированных данных и поисковых индексов в PostgreSQL;
отделение входных информационных систем заказчика от внутренней логики поиска и ранжирования;
возможность автономной работы без обязательного обращения к внешним сервисам.
3. Основные компоненты
3.1. Информационные системы заказчика
Внешние системы являются источником:
профилей кандидатов;
исходных данных резюме;
поисковых запросов;
структурированных критериев;
идентификаторов вакансий, работодателей и других тегов.
Они же получают результаты поиска и сведения о кандидатах.
3.2. API-сервис «Кадровый резерв»
API-сервис реализован на Go.
Он выполняет:
прием HTTP-запросов;
проверку и обработку входных данных;
сохранение и обновление профилей кандидатов;
получение справочников;
запуск поиска и фильтрации;
формирование ответа в формате JSON.
3.3. Модуль обработки и нормализации
Модуль подготавливает данные кандидатов к хранению и поиску.
Основные задачи:
приведение входных данных к внутренней структуре;
подготовка текстовых представлений кандидата;
обработка сведений о навыках, опыте и работодателях;
подготовка длинных текстовых данных к индексированию;
формирование поисковых структур.
3.4. PostgreSQL
PostgreSQL является основным средством хранения данных системы.
В PostgreSQL размещаются:
структурированные профили кандидатов;
справочники;
исходные JSON-объекты резюме;
текстовые представления кандидатов;
поисковые индексы;
служебные данные приложения.
Для полнотекстового поиска используются возможности PostgreSQL и поисковые расширения поставки, реализующие поиск по алгоритму BM25.
3.5. Модуль поиска и фильтрации
Модуль выполняет:
поиск по свободному тексту;
расчет текстовой релевантности;
применение структурированных критериев;
ограничение области поиска по тегам;
расчет показателей соответствия фильтрам;
подготовку данных для ранжирования.
3.6. Модуль ранжирования
Модуль формирует итоговый порядок кандидатов и рассчитывает метрики, возвращаемые внешней системе.
В зависимости от конфигурации может применяться дополнительная нормализация оценки относительно эталонных результатов.
4. Поток данных
Типовая последовательность обработки:
5. Развертывание
Программное обеспечение разворачивается локально в инфраструктуре заказчика.
Используемое окружение:
Alpine Linux 3.22 или аналог;
Docker;
Docker Compose;
PostgreSQL;
Go 1.25.
Система виртуализации, балансировщик нагрузки и облачное хранилище не являются обязательными компонентами программного обеспечения.
6. Сетевое взаимодействие
Внешнее взаимодействие осуществляется через HTTP API.
Конкретные сетевые адреса и порты определяются при развертывании программного обеспечения в инфраструктуре заказчика.
В промышленном окружении доступ к API рекомендуется ограничивать средствами сетевой инфраструктуры заказчика.
7. Хранение данных
Все основные данные программного обеспечения размещаются внутри инфраструктуры заказчика.
К ним относятся:
данные кандидатов;
исходные резюме;
справочники;
поисковые структуры;
служебная информация.
Применение внешнего облачного хранилища для основной работы системы не требуется.
8. Автономность
Основные функции поиска, фильтрации, хранения и ранжирования выполняются внутри инфраструктуры заказчика.
Для выполнения этих функций не требуется постоянный доступ к внешним поисковым сервисам.
9. Масштабирование
Производительность зависит от:
количества кандидатов;
объема текстовых данных;
количества одновременных поисковых запросов;
характеристик сервера PostgreSQL;
выделенных вычислительных ресурсов.
Масштабирование выполняется средствами инфраструктуры заказчика путем изменения ресурсов серверов и параметров развертывания.
10. Итоговая структура
Архитектура «Кадрового резерва» включает пять основных логических частей:
информационные системы заказчика;
API-сервис на Go;
модуль обработки и нормализации;
PostgreSQL как единое хранилище данных и поисковых индексов;
модули поиска, фильтрации и ранжирования.