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

С 28 июня по 2 июля на киевском ВДНГ прошёл третий фестиваль Atlas Weekend. На восьми разноформатных сценах выступили две сотни артистов, а 80 гектаров фестивальной территории вместили 30 развлекательных локаций и около 300 тыс. человек за все дни. Как заявляют организаторы, их главная цель — развитие фестивальной культуры в Украине, привлечение туристов и популяризация нашей музыки. Но в этом году Atlas Weekend посодействовал ещё одному положительному процессу — развитию технологии (и культуры) электронных платежей на масштабном фестивале.

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

12346437_1094255377251684_6010172946516092867_n

Макс Фрай

Как создавалась «браслетная» технология

Всё началось с наших вечеринок в аквапарке, где расплачиваться бумажными деньгами неудобно, а использовать внутреннюю систему для своих целей было нельзя. Тогда я впервые занялся написанием подобной системы, которая работает на 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 с жёлто-синими браслетами для входа и оплаты

Посетители Atlas Weekend с жёлто-синими браслетами для входа и оплаты

Работа над ошибками

То, что радует больше всего — масштабней уже не будет. Наша команда была на фестивале Tomorrowland в Бельгии, так они там просто протянули кабель и установили моноблок на каждой точке продажи. Вот только штука в том, что у них этих точек очень мало. В наших же реалиях все фудкорты завозились отдельно, у всех свои товары, все они — разнообразные. По сути, получилось около 400 точек продажи. Представьте, что у вас есть 400 сотрудников, которых вы в глаза не видели и которым нужно объяснить как пользоваться всей этой системой. Также мы осознали, что Wi-Fi — очень нестабильная штука, особенно на таких масштабах. Либо делаешь стационарно с кабелем, либо 3G/4G, который на большом количестве людей в обычных условиях тоже нестабильно будет себя вести.

О недоверии и преимуществах электронных платежей

Да, изначально люди на фестивале с недоверием относились к этой системе. Они подходили в пункт пополнения денег, давали купюры, а через 10 секунд эта сумма уже была на их виртуальном кошельке. Ещё интересней было наблюдать за очередью на покупку чего-либо и частый вопрос «И всё?». Когда система была полностью настроена и адаптирована, весь процесс проходил очень быстро и удобно. Продавцам и покупателям не нужно отсчитывать купюры, давать сдачу, доставать кошелёк и т.д. В большинстве случаев экран планшета было видно посетителю и он мог проверить, какую сумму ему зачисляют и сколько осталось денег на балансе.

«Плюсы» для организаторов — полная статистика в реальном времени всего, вплоть до конкретного человека/кассира. Здесь можно долго описывать, какие преимущества это даёт, но каждый и так может себе представить.

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

Фото — Facebook-страница Макса Фрая, Facebook-страница Atlas Weekend

Читайте также:

Від Facebook до Tesla — менш відомі співзасновники найбільших технологічних компаній у світі

Що таке Zero Waste та як змінити свої звички, щоб зменшити кількість відходів

Інтер’єр космічного корабля для комерційних польотів VSS Unity від Virgin Galactic

Як буде виглядати наша планета через 250 мільйонів років. Відео