Статьи

«Масштабні вже не буде» - Макс Фрай про платіжній системі на Atlas Weekend

  1. Як створювалася «браслетна» технологія
  2. Про безпеку даних і кібератаці
  3. 60 днів на власний міні-банк
  4. Про проблеми зі зв'язком
  5. Робота над помилками
  6. Про недовіру і переваги електронних платежів

З 28 червня по 2 липня на київському ВДНГ пройшов третій фестиваль Atlas Weekend. На восьми різноформатних сценах виступили дві сотні артистів, а 80 гектарів фестивальної території вмістили 30 розважальних локацій і близько 300 тис. Чоловік за всі дні. Як заявляють організатори, їх головна мета - розвиток фестивального культури в Україні, залучення туристів і популяризація нашої музики. Але в цьому році Atlas Weekend посприяв ще одного позитивного процесу - розвитку технології (і культури) електронних платежів на масштабному фестивалі.

Контрольні браслети, які відвідувач отримував замість купленого квитка можна було поповнювати у касирів і використовувати для розрахунку на території заходу. Київський програміст Макс Фрай відповідав за написання системи, яка зберігала дані про куплені квитки, пов'язувала квиток з браслетом, керувала віртуальними гаманцями, транзакціями оплати і поповненнями, збирала статистику кожного касира та інше. Інформація про пристрій системи, захисту від багів і особливості роботи «в полі» Макс розповів нашій редакції:

Інформація про пристрій системи, захисту від багів і особливості роботи «в полі» Макс розповів нашій редакції:

Макс Фрай

Як створювалася «браслетна» технологія

Все почалося з наших вечірок в аквапарку, де розплачуватися паперовими грошима незручно, а використовувати внутрішню систему для своїх цілей було не можна. Тоді я вперше зайнявся написанням подібної системи, яка працює на rfid-браслетах. Під Atlas Weekend розробку довелося істотно переписати і доробити, але база та ж.

По суті, мені дали повний список штрихкодів проданих квитків, а далі фестиваль повністю обслуговувала моя система. Коли людина приходила з купленим квитком, він уже значився в локальній базі, зв'язувався з «чистим» rfid-браслетом, який пізніше видавався відвідувачеві. З цього моменту у нього з'являвся свій віртуальний гаманець і своя історія дій: поповнення рахунку, покупки, вхід на територію. Все це обробляв один великий «шматок» логіки, який відповідав і за прохід, і за покупки, і за повну статистику фестивалю. Завдяки тому, що система працює не в офлайн, у нас в будь-який момент часу була повна і точна статистика абсолютно по всьому - від кількості людей, які пройшли, до того, скільки вони вже поповнили і купили товарів.

Точки обміну квитків на браслети, ВДНГ

Про безпеку даних і кібератаці

На території фестивалю була піднята локальна мережа, сервер стояв у закритому павільйоні. Весь розділ жорсткого диска був зашифрований, тому навіть маючи фізичний доступ, неможливо було б добратися до бази і якось змінити її. Весь трафік від кожного касира і людини, який міняв квитки на браслети, шифрувався. Плюс, в самій логіці системи існує певний набір перевірок від різного роду махінацій. Наприклад, у кожного касира / працівника створювався свій робочий токен. За допомогою цього токена можна виконувати тільки вказаний набір операцій, наприклад: активатор браслетів може тільки активувати, і все це відбувається від його імені; касир вміє тільки продавати і т.д. У будь-який момент можна було відстежити шахрая, заблокувати його токен і скасувати «шкідливі» транзакції. По суті, це ж людський фактор.

Ядро системи написано на системному мовою програмування Rust, який поєднує в собі швидкість і надійність, і в ньому є вбудований захист від проблем з пам'яттю. Завдяки цьому основний сервер ні разу не впав і цілодобово працював. Інтерфейс написаний на веб-стеку (чистий javascript і html-розмітка), все це запускається на Java-додатку під Android, яке може виступати в режимі кіоск-мода і блокувати доступ до системи.

За часом Atlas Weekend збігся з кібератакою (вірус Petya.A, через якого не працювали онлайн-системи багатьох компаній - прим. Ред.), Але на щастя, це абсолютно не відобразилося на стабільності системи. Вся інфраструктура побудована на linux-дистрибутивах і Android на планшетах касирів. Мені не раз писали друзі за день до фестивалю з питанням: «У вас все добре?», Тільки пізніше я зрозумів, що навантаження і кількість роботи було настільки великим, що вся наша команда банально випала з інформаційного простору і ми дізналися про цю глобальної атаці вже набагато пізніше.

60 днів на власний міні-банк

Найскладнішим виявилися терміни. По суті, за два місяці була написана повна інфраструктура: логіка міні-банку, заснована на транзакціях, багаторівнева система доступу користувачів (у кожного свої права), продумана вся захист. Загалом, вся система була відтестувати тільки на самих банальних речах. Наскільки ми вже знаємо, потік людей був приблизно 300 тис. За всі дні, в самій системі пройшло близько мільйона різних транзакцій. Так, нічого не впало 🙂

Щоб спростити дебаг під час фестивалю був написаний алгоритм, який аналізував транзакції і перевіряв загальну інфраструктуру на цілісність. Тобто якщо людина поповнила свій браслет на 200 грн, а потім купив щось на 150 грн, то у нього має залишитися 50 грн. З боку це здається простим і банальним, але на ділі - паралельно відбувається ще купа транзакцій, які можуть зламати логіку. Чим більше потік, тим більша ймовірність, що навіть найдрібніший баг хоч раз так проявить себе.

Про проблеми зі зв'язком

Найбільша проблема, яка вибила нас в перший день - це локальна мережа і Wi-Fi. За логікою, ми повинні були покрити всі точки касирів Wi-Fi. Планшети б приєднувалися, групувалися і просто обмінювалися з локальним сервером потрібною інформацією. У теорії, все було добре. На практиці ж ми отримали величезний потік людей, у кожного був свій телефон, у багатьох - включений режим модему для роздачі інтернету. Ще у деяких виявилися свої мобільні роутери, в результаті, частоти були просто зашумлені всім цим. Як результат, планшети касирів часто втрачали зв'язок з точками доступу.

На щастя, ми досить швидко зібралися і знайшли рішення: SIM-карти від Kyivstar. Плюсом було те, що вони ще «підігнали» пару станцій посилення сигналу. Де можна було, ми розвантажили Wi-Fi використанням SIM-карт. В останні три дні система «літала» і працювала досить стабільно.

Відвідувачі Atlas Weekend з жовто-синіми браслетами для входу і оплати

Робота над помилками

Те, що радує найбільше - масштабніші вже не буде. Наша команда була на фестивалі Tomorrowland в Бельгії, так вони там просто протягнули кабель і встановили моноблок на кожній точці продажу. Ось тільки штука в тому, що у них цих точок дуже мало. У наших же реаліях все фудкорти завозилися окремо, у всіх свої товари, всі вони - різноманітні. По суті, вийшло близько 400 точок продажу. Уявіть, що у вас є 400 співробітників, яких ви в очі не бачили і яким потрібно пояснити як користуватися всією цією системою. Також ми усвідомили, що Wi-Fi - дуже нестабільна штука, особливо на таких масштабах. Або робиш стаціонарно з кабелем, або 3G / 4G, який на великій кількості людей в звичайних умовах теж нестабільно буде себе вести.

Про недовіру і переваги електронних платежів

Так, спочатку люди на фестивалі з недовірою ставилися до цієї системи. Вони підходили до пункту поповнення грошей, давали купюри, а через 10 секунд ця сума вже була на їх віртуальному гаманці. Ще цікавіше було спостерігати за чергою на покупку чого-небудь і частий питання «І все?». Коли система була повністю налаштована і адаптована, весь процес проходив дуже швидко і зручно. Продавцям і покупцям не потрібно відраховувати купюри, давати здачу, діставати гаманець і т.д. У більшості випадків екран планшета було видно відвідувачу і він міг перевірити, яку суму йому зараховують і скільки залишилося грошей на балансі.

«Плюси» для організаторів - повна статистика в реальному часі за все, аж до конкретної людини / касира. Тут можна довго описувати, які переваги це дає, але кожен і так може собі уявити.

ЧИТАЙТЕ ТАКОЖ:

Фото - Facebook-сторінка Макса Фрая , Facebook-сторінка Atlas Weekend

Мені не раз писали друзі за день до фестивалю з питанням: «У вас все добре?
Ще цікавіше було спостерігати за чергою на покупку чого-небудь і частий питання «І все?

Новости