З 2013
Безперервний продакшен
Працює й оплачується без перерв — понад десять років змін ринку, змін джерел даних і розширень платформи.
Кейс · Ринкова аналітика · Агротовари
AgroChart — підписковий продукт для ринків зерна, олійних і кормів: ф'ючерси, спот-ціни, прогнози попиту й пропозиції USDA, результати тендерів і ринкові новини, оновлені щоранку. Ми — інженерна сторона цієї платформи, і вже понад десять років.
Контекст
Трейдери, переробники, брокери й експортери на світових ринках зерна та олійних беруть на себе реальні гроші під цифри, які змінюються щодня. Партія, оцінена за вчорашнім базисом або за неправильно прочитаним прогнозом USDA, — це не похибка округлення, а маржа на угоді.
Тому таким людям не потрібне сховище даних. Їм потрібне одне місце, яке можна відкрити до початку дня, якому можна вірити без перехресної перевірки й до якого хочеться повертатися. Інженерно це складніше, ніж звучить: щойно дані запізнюються, неповні або тихо неправильні — продукт провалив єдину свою роботу.
Виклик
Те, що потрібно аналітику, розкидане по біржах, державних агенціях і регіональних спот-ринках. Ф'ючерси та валюти приходять одним типом стрічки, звіти USDA про попит і пропозицію — за календарем публікацій, спот-ціни — з регіональних джерел, у кожного з яких свій формат, свої особливості й своє уявлення про те, коли вони готові.
Зібрати це один раз — проєкт. Збирати щоранку роками, поки джерела без попередження змінюють формати, а нові ринкові напрями продовжують додаватися, — задача іншого порядку, і саме її треба було розв'язати. До того ж платформа мала обслуговувати ринок, який читає більш ніж однією мовою, і бути комерційним продуктом із передплатниками, а не внутрішнім дашбордом.
Рішення
Ми побудували платформу ринкової аналітики, центр ваги якої — конвеєр даних. Заплановані воркери забирають ф'ючерси, валюти, спот-ціни та дані USDA за їхніми власними графіками, нормалізують їх і зводять у єдину модель, що охоплює близько п'ятнадцяти ринкових напрямів — серед них ф'ючерси, спот-ціни, врожай і виробництво, експорт, торгівля, фрахт, результати тендерів, компанії, новини та ринкові огляди.
Згори лежить та частина, якої торкається клієнт: інтерактивні графіки й ринковий огляд для поточних та історичних цін, аналіз попиту й пропозиції по країнах на основі звітів USDA, повнотекстовий пошук по архіву, а також експорт у PDF та Excel для тих, хто забирає цифри у власні моделі. Для клієнтів, які взагалі не хочуть виходити зі своїх систем, є API ринкових даних із тими самими показниками.
Оскільки це комерційний продукт, непоказна половина важить не менше: підписки й доступ за пейволом, багатомовний інтерфейс, адмін-інструменти, щоб редакція завантажувала й виправляла дані без інженера, і моніторинг, який показує зламане джерело раніше, ніж передплатник помітить пропуск. Працює на Django і PostgreSQL зі збором даних через Celery — це супровідна деталь, а не суть.
Результат
Платформа безперервно в продакшені з 2013 року. Це платний продукт із передплатниками, а його ринкові звіти охоплюють 10 000+ компаній у світі — цю цифру охоплення публікує сам AgroChart, і ми наводимо її саме як їхню, а не як власний вимір.
Результат, за який ми відповідаємо самі, — довговічність. Джерела даних змінювали формати, ринкові напрями додавалися, платформу неодноразово розширювали — і вона щоранку продовжувала публікувати. Більшість систем такого віку замінюють або тихо кидають; ця досі є продуктом.
Маєте дані, які приходять щодня і ніде не сходяться разом?
Саме такий тип задач розв'язує ця платформа. Розкажіть, звідки приходять ваші дані і що вони мають видавати, — а ми скажемо, чого насправді вимагає надійний конвеєр для них.
Результати
Чотири речі, на які можна показати, із прямо зазначеним джерелом кожної. Якщо цифра належить продукту, а не нашому виміру, ми про це кажемо.
З 2013
Працює й оплачується без перерв — понад десять років змін ринку, змін джерел даних і розширень платформи.
10 000+
Ринкові звіти платформи охоплюють понад 10 000 компаній у світі. Це власна опублікована заява AgroChart про свій продукт, а не виміряна нами цифра.
~15
Ф'ючерси, спот-ціни, врожай і виробництво, експорт, торгівля, фрахт, тендери, компанії, новини та інше — зведені в єдиний продукт, а не в набір окремих інструментів.
Щодня
Заплановані конвеєри збирають і очищають зовнішні ринкові дані за їхнім власним графіком публікацій, тож ранкова картина актуальна без ручного складання.
Ми не публікуємо для цієї платформи відсотки аптайму, кількість передплатників чи трафік. Ми їх не вимірювали — тож і не заявляємо.
Наша роль
Наша роль тут — інженерна, і про це варто сказати точно. AgroChart не наш продукт: ринкова експертиза, редакційні рішення, стосунки з клієнтами й бренд належать компанії, яка його веде. Наш внесок — система під ним: побудувати її, а далі продовжувати будувати рік за роком.
Це водночас найяснiший приклад того, як ми воліємо працювати з довгограючими продуктами. Не здача, що закінчується на передаванні, а постійна інженерна співпраця, де ті самі люди, які написали конвеєр збору даних, досі його й розширюють. Саме тому система з 2013 року змогла й далі вбирати нові джерела та нові ринкові напрями, а не закам'яніти в щось, чого ніхто не наважується торкатися.
Побудовано на: Django · PostgreSQL · Celery для планового збору даних · Redis · повнотекстовий пошук · експорт у PDF та Excel · підписки · багатомовний інтерфейс · продакшен-моніторинг.
Назвіть задачу з даними, документами або процесом, яка найбільше з'їдає час вашої команди. Ми повернемося з тим, що реально можна побудувати, — і з тим, що не соромно опублікувати про результат.