ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Комплексная разработка решения для автоматического сбора информации

Бизнес составляющая проекта

Заказчику необходимо разработать решение для мониторинга и сбора информации на различных ресурсах с целью наращивания объёма продаж. Разработанная система должна значительно ускорить и автоматизировать рутинные действия по поиску и сбору контактов потенциальных клиентов.

Технологические особенности проекта

Система предназначена для сбора и отображения данных из таких источников, как Crunchbase, Angel.co и др., магазинов приложений Google Play и App Store. Вся полученная информация интегрируется с CRM заказчика.

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

Полученные данных хранятся в облачной базе данных. Реализована возможность фильтрации по различным полям, а также экспорт данных в CSV. Проект развёрнут на инфраструктуре Google Cloud.

Парсеры запускаются по планировщику, что позволяет избежать слишком высокой нагрузки на производительные мощности заказчика. Помимо основных краулеров и парсеров, предусмотрена очередь для парсера-апдейтера, который позволяет обновить информацию по уже собранным данным. Также подготовлен специальный сервис, отображающий «здоровье» парсеров. Это позволяет своевременно предупреждать возникновение серьёзных ошибок в работе системы и вовремя вносить необходимые изменения, позволяющие восстанавливать работоспособность.

Подходы и решения

  1. Улучшение и рефакторинг парсеров заказчика. В подготовленных командой заказчика парсерах, реализованных на Node.js, не были выделены важнейшие слои. В том числе фронтенд и доступы к базе данных из парсеров хранились в одном месте. Для реализации микросервисной архитектуры были предприняты следующие шаги:
    • Выделение отдельного сервиса на Kotlin для доступа к базе данных Google Cloud SQL. В качестве внешнего интерфейса был использован gRPC.
    • Рефакторинг и стабилизация парсеров.
    • Очистка компонента парсеров от неиспользуемого кода.
  2. Реализация функциональности для подписки контактов на рассылку компании. Для нужд отдела маркетинга реализована функциональность, позволяющая быстро и удобно принимать решения по подписке/отписке контактов, собранных из CRM, на рекламную рассылку компании в SendGrid.
  3. Подготовка специального парсера для Twitter. Команда ДжазТим подготовила отдельный парсер для обработки информации из нового источника. Это позволило собрать новую аудиторию для показа таргетированной рекламы об услугах компании. В аудиторию вносятся подписчики определённых аккаунтов, полученные данные экспортируются в отдельный CSV файл. В дальнейшем эта информация автоматически отправляется в рекламную кампанию, и необходимые контакты видят таргетированную рекламу об услугах заказчика.

Особенности проекта

  • На момент начала работы нашей команды на проекте уже были реализованы парсеры Google Play, App Store, Angel.co и Crunchbase. Необходимо было доработать и улучшить имеющиеся решения.
  • Выполнение всего комплекса разработки специалистами ДжазТим: подготовка как фронтенд-, так и бэкенд-части системы.
  • Моментальная поставка разработанной функциональности заказчику. По желанию заказчика на проекте отсутствовала стадия тестирования, stage-версии системы. Поставки новой функциональности осуществлялись сразу же на продакшен версию. Это требовало от команды особой аккуратности и большого акцента на автотестировании.
  • Высокая степень зависимости от нововведений и защитных механизмов сайтов и магазинов, с которых осуществляется сбор информации. Для поддержки работы парсеров было необходимо отслеживать изменения условий и оперативно адаптироваться под них.

Используемые технологии

  • Парсер:
  • Google Cloud: App Engine, Cloud Tasks, Cloud Scheduler, Cloud Storage.
  • Node.js, JavaScript, ES6, gRPC, Sentry.
  • Библиотеки: express, axios, cheerio, close.io, google-play-scraper, @sendgrid/eventwebhook и др.
  • Сервисы:
  • Google Cloud: Cloud Run, Cloud SQL, Cloud Tasks.
  • Kotlin, Armeria, Flyway, MySQL, jOOQ, gRPC, SendGrid.

Достижения компании на проекте

  • Создано несколько новых парсеров для разных площадок (Twitter, Gmail).
  • Успешно проведены исследования по методам выгрузки данных, в результате чего найдено оптимальное и удобное для работы решение.
  • Оптимизирована скорость работы с облачной базой данных.
  • Особое внимание было уделено оптимизации запросов для отображения данных из Google Play.

Свяжитесь с нами, чтобы обсудить Ваш IT-проект

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * – Обязательные поля для заполнения