Инженерная практика Сертификация и соответствие

Сопровождение B2B-платформы по абонементу: 4,5 года непрерывной работы, парсер как основа сервиса

Один абонемент держит внутренний продукт живым: бесперебойный парсинг внешних реестров, поток мелких доработок в счёт аванса, реакция на инциденты за минуты, бэкапы и серверная защита.

Выполнено
Сопровождение B2B-платформы по абонементу: 4,5 года, парсер как основа сервиса

Платформа «Аналитика сертификатов» живёт за счёт чужих данных: она собирает сведения из государственных реестров России, Киргизии, Казахстана, Беларуси. Реестры регулярно меняют структуру, вводят лимиты, блокируют сбор, переезжают на новую инфраструктуру. Стоит парсингу встать — и через неделю аналитика устаревает, а вместе с ней дешевеет весь продукт. Заказчик сформулировал приоритет рано и коротко: «парсер — основа». Абонемент построен вокруг того, чтобы эта основа не падала. С первого ТЗ в октябре 2021-го и до сегодняшнего дня платформа ни разу не оставалась без присмотра.

Сводка

Отрасль Сертификация продукции, B2B-аналитика рынка
Конечный клиент «Аналитика сертификатов»
Формат сотрудничества Регулярное сопровождение по абонементу: бесперебойный парсинг, мелкие доработки, реакция на инциденты, серверная защита, бэкапы
Тип проекта Непрерывная поддержка внутренней B2B-платформы
Длительность отношений октябрь 2021 — июнь 2026 (4,5 года без перерыва)
Что покрывает абонемент Работоспособность парсинга, накопленная мелочёвка, инцидент-реакция, мониторинг, серверный абонемент защиты, бэкапы
Документированный поток мелких пакетов около 90 часов по 6 ТЗ-допзадач (2022–2023), плюс поток отдельных мини-правок
Команда Антон Херсун (руководитель), разработчик аналитической панели, разработчик виджетов и парсеров, инфраструктурная команда
Технологический стек Laravel + Horizon, ClickHouse, MySQL/MariaDB, ротация прокси, перебор номеров, Grafana-мониторинг, бэкапы в S3

Постановка задачи

Большие ТЗ в этом проекте оформляются отдельно: платформа, отчёты, шаблоны, виджеты, архитектура базы. Но рядом с крупными задачами всегда течёт мелочь, из которой ТЗ не собрать. Реестр-источник сменил формат — парсер нужно подправить за ночь. Пользователь просит кнопку или новую сортировку: час работы. Внешний администратор портала по ошибке стёр интеграцию, и виджет надо поднимать немедленно. Сервер под нагрузкой, диск заполняется, пора апгрейдить тариф.

Если каждую такую мелочь оформлять отдельным заказом, накладные расходы на документы и счета съедят больше, чем сама работа. Если копить молча и в конце месяца выставить «было всякое разное на много часов», заказчик перестанет доверять смете. Абонемент закрывает обе крайности: предсказуемая ежемесячная подписка покрывает фон, а всё, что выходит за неё, фиксируется явными часами.

Главное, что заказчик покупает по абонементу, — уверенность. Парсинг работает каждый день, а любой сбой будет закрыт быстро, без отдельных переговоров на каждый случай.

Как мы это сделали

1. Парсинг под постоянным присмотром. За четыре с половиной года источники ломались десятки раз, и почти каждый случай закрывался в рамках абонемента, без отдельного ТЗ. Европейские прокси перестали пускать к российским реестрам — собрали мини-ферму российских серверов. Киргизия закрыла публичный реестр — перешли на сбор перебором номеров от последних известных. Федеральная служба сменила инфраструктуру и забанила парсер-машины: систему переписали на несколько машин в два потока с ротацией прокси. Переезд Казахстана на новый реестр обернулся сбором из 46 источников, а новогодние блокировки в Беларуси обошли через рабочий прокси с последующим досбором. Платформа всего этого почти не замечает: заделка успевает раньше, чем устаревают данные.

2. Мелочёвка копится и закрывается пакетом. Договорённость по абонементу простая: одиночный час не превращается в отдельный счёт. В ноябре 2025-го заказчик попросил мелкую кнопку на час работы, и решение было такое: «подождём ещё немного, чего-нибудь появится на неделе, можно к концу периода всё саккумулировать или сделать в счёт аванса». Так уходит лишняя бюрократия. При этом часть мелких ролей и правок закрывается в день обращения: мини-роль «Сотрудник ТО+» была готова через несколько часов после запроса, а пакет июньских допзадач закрыли за день.

3. Дисциплина явной сметы там, где объём растёт. Когда мелочи в 2022–2023 годах стали стабильным потоком, мы оформили его как ежемесячные пакеты допзадач: один документ тзNN_допзадачи_<месяц>_<год> с пронумерованными пунктами и общей оценкой. Суффикс _согласован в имени файла означает, что версия прошла обсуждение и зафиксирована; новые запросы идут уже в следующий пакет. Шесть таких пакетов дали около 90 согласованных часов — и ни одного спора по смете. Побочный эффект оказался полезным: повторяющийся тип запроса виден сразу и вырастает в отдельное крупное направление. Так случилось с парсингом иностранных реестров.

4. Реакция на инциденты за минуты и за ночь. Скорость ответа и есть то, ради чего держат абонемент. Внешний администратор портала случайно стёр интеграцию виджета, заказчик потерял доступ в админку — на восстановление всей работоспособности ушло около двадцати минут от первого сообщения. Когда база «самоубилась и чудом восстановилась» посередине ночного сбора, парсер был поднят к утру, а сам инцидент стал поводом переехать на более мощный сервер. Бывало и тяжелее: после заражения сервера троян-майнером работы по очистке заняли втрое больше планового времени, и заказчик получил по итогам письменный отчёт об инциденте с разбором причин.

5. Защита нагрузки и уборка за пользователями. Аналитики выгружали отчёты на миллионы строк и этим клали сервер. Ответ остался в продукте навсегда: ежедневная автоочистка экспортов старше 3 месяцев плюс лимит на размер выгрузки. Сюда же входят серверная защита и обслуживание отдельным абонементом со счётом поквартально, внешний мониторинг с алертами прямо в рабочий чат и бэкапы, которые за время проекта выросли от еженедельной выгрузки базы на FTP до ежедневного дампа всей базы в объектное хранилище.

Результаты

Метрика Значение
Длительность непрерывного сопровождения 4,5 года (октябрь 2021 — июнь 2026)
Бесперебойность парсинга Десятки смен формата и блокировок источников закрыты в рамках абонемента, без длительных простоев продукта
Скорость инцидент-реакции Восстановление виджета за ~20 минут; подъём базы за ночь; письменный отчёт по инцидентам
Документированный поток мелких пакетов ~90 часов по 6 ТЗ-допзадач, без споров по смете
Защита и сохранность Серверный абонемент защиты, автоочистка экспортов и лимиты, бэкапы от еженедельных до ежедневных в S3
Продукт жив на 5-м году 66–79 активных пользователей еженедельно (статистика входов, весна 2026), нагрузка ровная, без признаков затухания

Главный результат одной цифрой не выражается. За четыре с половиной года продукт ни разу не остался без поддержки, парсинг пережил каждую смену правил у источников, а заказчик ни разу не получил счёт-сюрприз: фон закрывает абонемент, всё сверх него идёт явными согласованными часами.

Процесс и хронология

Период Что закрывал абонемент
2021–2022 Старт сопровождения; еженедельные бэкапы базы; мини-ферма российских серверов после блокировки европейских прокси
2022–2023 Шесть ежемесячных пакетов допзадач (~90 ч); апгрейды сервера под рост нагрузки
2023 Бан парсер-машин источника — переписанная многопоточная система, 100% актуальность периода
2024 Переход реестров на сбор перебором; автоочистка экспортов и лимиты после перегрузки сервера; адаптация под смену инфраструктуры источников
2025 Серверный абонемент защиты (поквартально); внешний мониторинг с алертами; восстановление виджета за 20 минут; подъём базы за ночь; новый реестр Казахстана
2025–2026 Ежедневные бэкапы в S3; миграция на более мощный тариф; обход новогодних блокировок; перестройка сбора под новые лимиты реестра РФ

Команда

  • Антон Херсун, Xaver Pro, руководитель проекта, постановка сметы по абонементу, инцидент-координация, инфраструктура.
  • Разработчик аналитической панели ведёт это направление с первого дня и до сегодня; любой модуль, написанный несколько лет назад, дорабатывается тем же человеком.
  • Разработчик виджетов и парсеров закрывает мелкие правки по своим зонам; часть последних работ по парсингу подхватил именно он.
  • Инфраструктурная команда: серверы, защита, мониторинг и бэкапы под руководством Антона.

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

Скриншоты и материалы

Для этого кейса не критично: его суть в модели сопровождения и непрерывности, а не в визуальной составляющей.

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

Обсудить абонемент →


Прокрутить вверх