КЕЙС ONSITER VMS ELASTICSEARCH

Разработка поисковой системы для VMS платформы

Right People Group помогает компаниям нанимать технических консультантов и разработчиков, которые готовы работать в офисе. В базе данных клиента хранятся резюме 20 000 IT-специалистов из 11 европейских стран.

2019 - н.в.

ЗАДАЧА

Крупные корпорации нанимают большое число специалистов на проектную работу по контракту. При этом менеджерам по персоналу важно иметь возможность управлять наймом таких специалистов: подбирать и приглашать на работу новых сотрудников, заключать с ними договоры, хранить отчеты и платежные документы. Это удобно делать с помощью специализированной системы управления поставщиками (Vendor management system или VMS).

В 2019 году Right People Group начала расширять бизнес, в том числе продвигать услугу онлайн-подбора специалистов в офис. Для удобства корпоративных клиентов было решено создать собственную VMS, которая сделает процесс поиска по базе резюме проще и удобнее.

Клиенту нужна была система, которая позволит быстро находить экспертов с нужной специализацией в базе данных из десятков тысяч сайтов-партнеров Right People Group. При этом важной особенностью должен был стать поиск с учетом местоположения компании, так как клиент занимается подбором технических специалистов, готовых работать в офисе.

За разработкой Onsiter VMS Right People Group обратились в Resolventa.

РЕШЕНИЕ

Информация о специалистах и их компетенциях хранится на десятках тысяч сайтов-партнеров Right People Group. Для поиска конкретного специалиста по заданным критериям отбора, клиенту нужна была поисковая система. Эксперты Resolventa начали работу с поиска готовых решений, однако оказалось, что они не подходят для задач клиента: проиндексировать нужно было больше 10 000 сайтов. Существующие системы либо не позволяли загрузить такой большой список, либо оказывались слишком дорогими.

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

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

Проанализировав все требования, Resolventa разработала архитектуру модуля, который ищет данные на сайтах-партнерах:

6 специалистов

В проекте задействованы 4 fullstack-разработчика, frontend-разработчик и DevOps.

Центром VMS стали поисковые «пауки» (Spider pod), число которых регулируется в зависимости от количества сайтов и необходимой скорости индексации. В системе могут работать десятки «пауков», но несколько «пауков» никогда не подключаются одномоментно к разным страницам одного сайта, чтобы избежать бана или ненамеренной перегрузки сканируемого сайта. Индексация одной страницы в среднем занимает около 5 секунд.

Список сайтов, которые нужно индексировать, загружают сотрудники Right People Group через специальный интерфейс. Если у компании появятся новые партнеры, ссылки на их сайты можно будет загрузить таким же образом. На основе списка формируется база данных, где хранятся URL сайтов, физические адреса компаний-партнеров и контактная информация.

Каждую минуту начинается новый цикл работы поискового «паука»: генератор задач на сканирование(Website Spider Scanning Producer) выбирает из базы страницы, которые нужно проиндексировать, и отправляет ссылки на них в очередь сообщений Rabbitmq. «Паук» забирает ссылку из очереди и отправляет в Chromium, чтобы выполнить код Java Script. Это нужно, чтобы прогрузить все данные, которые есть на странице и получить наиболее полную информацию о ее содержимом.

Поисковые «пауки» сохраняют данные в три источника:

  • В ElasticSearch загружается текстовые данные со страницы, а также информация, которая необходима для ранжирования. Например, заголовки страниц, ключевые слова, выделенные предложения. Эта информация позволяет выполнять точный и релевантный поиск по сайтам-партнерам. Например, находить подходящих сотрудников по компетенциям или специализации. Также можно указать локацию — адрес офиса и радиус поиска до 250 км.
  • В базу данных загружается ссылка с новой датой индексации. Если на странице есть ссылки на другие разделы сайта, которые еще не проиндексированы, они тоже добавляются в базу.
  • В облачное хранилище (Cloud Storage) сохраняется копия загруженной страницы.

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

Кроме того, Onsiter VMS интегрирована с Onsiter Marketplace. Пользователь получает доступ ко всем возможностям маркетплейса из интерфейса VMS и может заключать контракты с работниками, обмениваться договорами и отчетностью, хранить платежную информацию.

РЕЗУЛЬТАТ

Resolventa развивает и поддерживает Onsiter VMS в течение 4 лет. За это время архитектура поисковой системы подтвердила свою надежность и устойчивость: она работает стабильно, без сбоев и внешнего вмешательства. Сейчас поиск доступен на 7 языках для 11 стран Европы.

Модули системы можно масштабировать с помощью контейнеров Kubernetes. То есть, при увеличении числа сайтов-партнеров или другом росте системы, в ней будет легко добавить больше «пауков», генераторов задач на сканирование, парсеров Chromium или очередей. Это дает возможность индексировать практически неограниченное количество сайтов.

Платформой пользуются представители крупных компаний, для которых важен высокий уровень информационной безопасности. Поэтому Resolventa применяет подходы и инструменты безопасной разработки в соответствии со стандартом OWASP и поддерживает актуальные версии всего технологического стека.

RUS

ENG

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

Dmitry and his team are hard-working and very skilled developers — probably some of the best you can find here on Upwork. If you need a communicative full-stack developer that knows his way around PHP, then look no further — Dmitry is your guy.

Andreas Pettersson

CTO. Right People Group. Onsiter

ТЕХНОЛОГИИ

PHP, Symfony, MySQL, ElasticSearch, Vue.js, GCP, Kubernetes, Docker, CircleCi, PHPUnit

ИНТЕГРАЦИИ

Mailtrap, Fixer.io, Sentry

Нужно решить похожую задачу?

Напишите нам, чтобы обсудить подробности или свяжитесь другим удобным способом.

Мы отвечаем быстро и по делу!

КОНТАКТЫ / 

Свяжитесь с нами любым удобным способом и получите консультацию у Дмитрия - нашего руководителя.

зайти в офис /

Россия, Новосибирск, ул. Семьи Шамшиных, 12

позвонить /

+7 913 921 7200

написать /

наши вакансии /

Если вы хотите, чтобы мы заранее подготовились к разговору по вашему проекту, заполните форму обратной связи. Мы изучим всю информацию и договоримся на удобное для вас время общения.

Ваше имя
Ваш e-mail *
Файл
Прикрепить файл...
Сообщение *

© 2024 Resolventa