Починяем банкоматы: чиним железо и софт

image

Ошибки софта — частый случай, почему банкомат может встать. Софт постоянно дорабатывается и развивается. Например, много всего мы узнали после обновления для работы с NFC, когда вместо карт стали использоваться телефоны. Очень интересно было при биометрических апдейтах, когда деньги снимали не с карты, а с лица. Например, там накатывали хотфикс по измерению расстояния (клиент выбрал снятие денег, наклонился завязать шнурок, деньги сняли со счёта следующего в очереди).

Вторая причина — у всякого железа есть наработка на отказ. Сейчас мы одними из первых на рынке начали заниматься превентивным обслуживанием, стараемся предугадать, когда что-то сломается и заранее пролечить, чтобы не доводить до неожиданной поломки.

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

Банкомат постоянно усовершенствуется на предмет того, чтобы отсеивать лишний мусор. Стоят датчики металла, чтобы скрепки отсеивались. У некоторых моделей лоток устроен таким образом, что деньги сначала условно перетряхиваются, и всё, что между ними могло застрять, падает ниже в лоток, где собирается мусор, и купюры уходят в пересчёт внутрь банкомата.

Если получилось избавиться от этого мусора и пересчитать деньги, банкомат проводит валидацию купюр на соответствие всем параметрам ЦБ, что это настоящие денежные средства.

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

Расскажу, как мы справляемся со всеми этими вызовами и обслуживаем наш парк банкоматов.

Прошлый пост с основными понятиями вот тут. Коротко напомню:

  • банкомат состоит из системного блока с ОС Linux или Windows;
  • монитора;
  • принтера для печати чеков;
  • картридера, который принимает и выдаёт карточку обратно;
  • модуля для операций с наличными: выдачи и приёма;
  • клавиатуры;
  • внутренностей, где лежат деньги, краска и много интересного ещё.


С точки зрения архитектуры это почти обычный ПК, за исключением деталей, которые принимают и выдают деньги и карты. Поверх ОС — уровень драйверов подключённых устройств и уровень базового ПО. Последнее объединяет все «внутренности» банкомата. Над базовым программным обеспечением есть прикладной софт, который работает на передачу отображения информации из браузера на экран монитора и обеспечивает удалённое управление.

Дольше!


Задача № 1 — обеспечить предельно долгую безошибочную работу банкомата. Иными словами, доступность банкомата для клиента. Для этого основываемся на двух принципах. Первый — это увеличение возможного аптайма между падениями системы. Второй — это быстрое реагирование на ошибки.

Ошибка может устраняться:

  • перезагрузкой;
  • операциями с софтом (например, почистить здоровенный лог), их может делать робот или удалённый оператор;
  • на выезде — инженером, работающим с железом.


Выезд — сложная история, потому что там деньги и часто нужно ехать с инкассаторами. Вряд ли вы захотите работать отвёрткой, обложившись 8 миллионами рублей. Профилактический ремонт тоже сложная часть, потому что это всё нужно согласовать и сделать.

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

Робот Джарвис — наш помощник


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

Но в идеале идти надо не к максимально оперативному устранению реактивных ошибок, а к проактивному обслуживанию:

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


Цель — предотвратить фатальный сбой, когда функция полностью деградирует.

И вот как раз для такого проактивного обслуживания мы прибегаем к помощи роботов.

Созданный нами умный робот под названием Джарвис следит за событиями, которые происходят в работающей сети, и формирует проактивные инциденты с устройствами. И даже если возникает сбой, то он не фатальный и устранить его можно в плановом режиме и в удобное время. Тем самым ситуации, когда в зарплатный день установленный в офисе банкомат у кого-то съел карту, не выдал деньги, исключаются.

Nero Burning ROM


Сейчас банкомат — это уже не только машина по приёму и выдаче денег. Оплата ЖКХ, телефонной связи стали уже привычным его функционалом. С появлением биометрической системы появилась возможность идентифицировать клиента по лицу, а внедрение QR-кодов позволяет совершать финансовые операции без пластиковой банковской карты. Например, topless-банкомат, где установлен большой монитор вместо привычной верхней части аппарата, вовсе не предназначен для того, чтобы в него вставляли карту. Клиент просто сканирует QR-код на таком банкомате и через мобильное приложение снимает наличные.

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

Самые распространённые ошибки


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

image
Частотные ошибки, разбивка по факторам

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

Всем этим занимается аппаратный механизм банкомата. И его ремонт, замена каких-либо частей в случае поломки — долгий и дорогой процесс. А к стоимости запчастей, убыткам из-за простоя банкомата нужно ещё добавить стоимость привлечения инкассаторов для полной выгрузки банкомата, стоимость выезда сервисной службы на место, чтобы всё починили.

Вторая по частоте категория ошибок — карты, забытые клиентом или гнутые. Забытая карта банкомат не остановит в работе — забыли карту, отошли, карта ушла в лоток, клиент дальше обращается в банк. А если клиент гнутую карту каким-то образом запихнул в банкомат, а назад она уже не вышла, зацепилась за модуль — банкомат из-за этого перестаёт работать.

И третья ошибка — сбои, связанные с проблемами связи, в том числе из-за отключения электропитания — например, некто выключил банкомат из розетки, чтобы зарядить свой телефон.

Банкомат связан с центральным хостом за счёт радиосвязи. Во время её потери он не может предоставлять услуги клиентам.

Виды ошибок связи:

  • DOWN — ошибка связи;
  • RSRV — ошибка резервного канала связи;
  • CHNL — ошибка первичного канала связи.


Если при RSRV и CHNL банкомат остаётся на связи и инциденты разрешаются в спокойном режиме, то при DOWN проводить какие-либо операции невозможно. Простой в таком случае может быть даже дольше, чем при сбое модуля приёма купюр. Но при этом проблемы со связью решаются практически без привлечения инженеров, инкассаторов — всё можно починить путём удалённой диагностики, с помощью роботов, без участия операторов. В среднем, 80–90% банкоматов сети восстанавливается после таких сбоев в течение нескольких минут. И даже если приходится вызывать сервисную службу, то это низкоквалифицированные недорогие специалисты. Поэтому такая категория ошибок намного дешевле, чем сбои из-за неправильных действий клиентов.

Проще говоря, всё, где требуется разбирать и собирать технику, — это дорогостоящие ошибки.

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

Я выше уже упоминал про такое понятие как наработка на отказ. У каждого модуля есть свой объём наработки на отказ — это то количество купюр, которые в лабораторных условиях этот модуль позволяет через себя пропустить без ошибки. Вот этот параметр нужно оценить для каждой конкретной линейки, для конкретного региона, чтобы с наиболее точной вероятностью предугадать, какой уровень наработки на отказ у того или иного банкомата будет нормальным.

Этот показатель позволит определить, когда ждать сбой. Но мы, конечно, не будем ждать и в панике бежать чинить. Мы приступаем к превентивным работам в тот момент, когда это для нас дешевле, например, во время плановой инкассации, когда нет зарплатного периода.

Ещё один способ предсказания — диагностика банкомата. В журнале событий (логов) мы отмечаем, когда, допустим, бывают сообщения, предупреждающие о том, что картридер не читал карты. Это даёт нам понимание, что если событие повторяется, то, вероятно, есть проблема в картридере и он скоро может сломаться, например, с комментарием, чиповая станция не работает. А пока она или загрязнена или работает с периодическими замечаниями.

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

Весьма непредсказуемым источником проблем для банкоматов стали маленькие наклейки из супермаркетов, те самые, про которые кассир в магазине спрашивает: «Наклейки собираете?».

Вот эти маленькие-маленькие наклеечки теряются у клиентов между купюрами, попадают в банкомат и рушат всю систему. Когда банкомат начинает пересчитывать купюры, эти прилипшие наклейки отклеиваются от денег и приклеиваются к механизмам. Это приводит к фатальному сбою и последующему разбору всего оборудования. Наклейки — маленькие, сложные в обнаружении, попадают между датчиками и банкомат их просто не видит.

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

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

Мы удалённо отследили ошибку, потому что автоматизировали процесс возврата средств клиенту за счёт разбора логов. Мы идём по пути роботизации всех этих процессов. На текущий момент у нас почти все инциденты разрешаются роботами, за исключением тех, где решение принимается на основании отчётов, передаваемых инкассаторами, инженерами, когда они закрывают свои заявки. Поясню, что отчёт — это текст. Его пишут люди: сокращённо, с ошибками. Робот не всегда может правильно распознать этот текст. Но и здесь мы уже поработали над тем, чтобы разбираться в этом тексте без людей. Мы его преобразуем за счёт машинного обучения в формализованный для роботов. На основании этого происходят автоматизированные сценарии разрешения инцидентов. Пока эта зона покрыта частично — 10–15%, приходится подключать операторов. Но в целом 85–87% инцидентов, в зависимости от месяца, решаются в автоматическом режиме. Есть ряд практических историй, когда команда даже не знает о техническом моменте возникновения ошибки — всё устраняется автоматически.

Плюсы роботизации


Роботы уже позволили:

  • Удешевить процессы — если количество дефектов со стороны робота такое же или ниже, как число дефектов от человеческого фактора, то мы полностью переводим процесс на автоматизированные рельсы.
  • Увеличить объёмы покрытия — робот решает больше задач, чем человек, мы не тратим ресурсы операторов.


Главное — доступность для клиентов


В 2012 году мы стали заниматься автоматизацией, интеллектуальным выстраиванием бизнес-процесса, обучением наших партнёров, инженерных служб. С переходом на автоматические рельсы доступность наших банкоматов — то количество времени, когда весь функционал работает исправно, — выросла по сравнению с 2012 годом в три раза. Сейчас она составляет более 97%.

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

В перспективе банкоматы должны обслуживаться как автомобили: раз в год автомобиль отправляется на техобслуживание, чтоб заменить фильтры, масла и прочие вещи, а всё остальное время он исправно везёт своего хозяина туда, куда ему нужно. Вот так и банкомат — раз в год на ТО, а всё остальное время работает. Об этом пока можно только мечтать, но надо к этому стремиться.

© Habrahabr.ru