Выдать периферию, батарейки и другую оргтехнику — для этого мы установили вендинговый автомат в офисе

Привет, Хабр! В прошлый раз мы показали, как переоборудовали переговорную комнату для совещаний. Сегодня хотим поделиться своей историей разработки автоматизированной системы выдачи ИТ-оборудования — IT-Point.

С чего всё начиналось

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

Всё началось в 2018 году, когда мы решили установить специальные шкафчики, из которых коллеги могли самостоятельно брать необходимое оборудование без участия техподдержки. Изначально это были обычные тумбочки с наклейкой IT-Point, которые мы разместили в каждом офисе. Когда специалист забирал периферию из ящика, он сканировал QR-код с листочка и формировал запрос в Jira для отчетности и пополнения запасов.

Выдать периферию, батарейки и другую оргтехнику — для этого мы установили вендинговый автомат в офисе
Архивная фотография 2019 года с инструкцией и тумбой с ИТ-оборудованием

Конечно, мы понимали, что наша схема выдачи неидеальна, но такой подход должен был помочь вести учет техники. Однако коллеги забывали отмечать позиции или вносили в Jira неправильные данные — в таких условиях вести статистику было практически нереально.

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

  • Автоматизировать выдачу ИТ-оборудования;

  • Ввести контроль и логирование наполнения/выдачи;

  • Реализовать сбор статистики по выданному оборудованию и построить аналитику для дальнейшего выдвижения гипотез;

  • Минимизировать личное взаимодействие со специалистами техподдержки (на тот момент действовали строгие ограничения из-за коронавируса);

  • Получать уведомления об остатках в IT-Point в онлайн-режиме.

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

От идеи к реализации

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

Но на практике все оказалось значительно сложнее — под такой продукт на рынке просто не было готовой ниши. Тогда мы решили закупить торговые вендинговые машины и провели тендер, что тоже было непросто — в разгар пандемии вендоматы были «на вес золота», а в России их производит не так много компаний.

Изначально вендомат выглядел вот так ы
Изначально вендомат выглядел вот так ы

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

Как мы доработали вендомат

Для новой версии IT-Point мы использовали следующий стек технологий:

  • СУБД — PostgreSQL;

  • Сайт — JS, JQuery, Chart JS, PHP;

  • Окружение — Kubernetes;

  • Вендомат + пик-поинт — JAVA.

В проекте мы используем два типа окружений в Kubernetes: Dev и Prod. Решили отказаться от среды Test, так как проект и команда относительно небольшие. Весь код мы храним в GitLab, а для автоматизации его сборки и поставки применяем GitLab CI/CD.

Что касается приложения, то мы собираем два docker-образа. Первый — непосредственно для приложения на php-fpm, второй — для автоматизации управления миграциями БД на Liquibase 4.5.0. На базе последнего также развертывается init-контейнер при каждом запуске пода.

В окружении Prod два контейнера — непосредственно приложение и веб-сервер nginx. Переменные мы храним в переменных окружения GitLab и поставляем в виде секретов или конфигмапов. Также есть две cron-задачи. Одна запускается ежедневно в 8:30 и обновляет список сотрудников из JSON-выгрузки. Вторая взаимодействует с Jira Service Management и позволяет менять статус задач, писать комментарии, назначать исполнителей и прочее.

Для обеспечения бесперебойного взаимодействия с сервером мы установили Raspberry Pi 4. На каждой из них развернут свой socket-сервер и настроен обмен по TCP — примерно так мы реализовали REST API для общения с платой вендомата. Все запросы передаются в зашифрованном виде по AES-128-CBC, и IT-Point не примет команды, которые не может расшифровать.

Также на вендомате настроен автозапуск, все ошибки отрабатываются внутри самого решения. Пользователи работают не с десктопным приложением, а с его веб-версией через киоск-браузер. Сам Raspberry Pi 4 подключен к дисплею Raspberry Pi Waveshare [RA335] 10.1, который отображает всю необходимую информацию через браузер.

Как это работает с точки зрения сотрудника

Структура IT-Point поделена на две части: вендомат и пик-поинт. Вендомат — основной модуль, который выдает сотрудникам мышки, клавиатуры, гарнитуры, батарейки и прочие мелочи. Пик-поинт — это дополнительный модуль для нетипового и габаритного оборудования (ноутбуков, ПК, смартфонов). В общем случае процесс получения периферии выглядит следующим образом:

Авторизация. Сотрудник подходит к IT-Point, прикладывает пропуск к считывателю, система отправляет запрос на проверку данных — ФИО, должность, отдел, категория сотрудника (для определения лимитов), статус (уволен или работает).

Выбор оборудования (пик-поинт). После авторизации планшет выдает сообщение о необходимости забрать оборудование из пик-поинта (если оно там есть). Сотрудник может забрать гаджет сразу или отложить на потом. Во втором случае выдается уведомление о сроке хранения оборудования. Когда сотрудник взял предназначенное ему устройство, он закрывает ячейку и подтверждает операцию с помощью соответствующей кнопки.

Выбор оборудования (вендомат). Сотрудник выбирает устройство из списка, и оно падает в специальный лоток с полки выдачи. Процесс фиксирует датчик падения. Чтобы устройства не разбились, все они находятся в заводских упаковках, а тяжелые гаджеты размещены внизу. В то же время лоток выдачи обклеен мягким поролоном.

Завершение сеанса. Если сотрудник в течение минуты не подтверждает получение (например, он забрал клавиатуру и ушел), мы автоматически завершаем сессию и считаем, что оборудование выдано. Если в пик-поинте нет необходимого девайса, то мы сразу переходим к модулю вендомата. Перед сотрудником открывается каталог доступных гаджетов в зависимости от его должности, категории и отдела.

Шаг 1. Авторизация
Шаг 2. Выбор оборудования
Шаг 1. Авторизация
Шаг 2. Выбор оборудования

Пополнение запасов

Мы связали IT-Point с Jira и научили его создавать и комментировать задачи, изменять статусы, закрывать и устанавливать приоритеты. Например, когда объем той или иной позиции падает ниже 30%, вендинговый аппарат подключатся по API к Jira и формирует задачу на пополнение.

Если наполненность упала до 10%, а ИТ-специалисты до сих пор не доложили устройства в вендомат, он отправляет комментарий об остатке в 10% и повышает приоритет задачи. Как только техподдержка пополнит запасы, IT-Point самостоятельно её закроет.

Если оборудование лежит в пик-поинте, то в Jira есть комментарии о необходимости его забрать, данные о сроках хранения и успешной выдаче. Также мы можем автоматически закрывать и отменять задачи в Jira Service Management.

Как выглядит веб-сервис

Начальная страница веб-сервиса последней версии IT-Point выглядит следующим образом:

На главном экране мы видим окно статуса вендомата — его IP-адрес, категории товаров, наполненность. Здесь мы можем установить лимиты, при достижении которых будут формироваться задачи в Jira Service Desk. Также мы можем смотреть логи выдачи оборудования: сбои, пополнения, ошибки при сканировании пропусков сотрудников.

На странице графиков и отчетов мы видим статистику по каждому вендомату IT-Point. Есть фильтры по каталогу выдаваемого оборудования и периоду (день, месяц, квартал, год, произвольный отрезок), а также возможность выбирать различные форматы отображения графиков.

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

Запрещающие группы обозначены как Block List
Запрещающие группы обозначены как Block List

В «Оборудование» мы добавляем новые устройства, редактируем и удаляем неиспользуемые. Еще мы можем настраивать периоды, в которые будут срабатывать сформированные группы доступа. Ну и, конечно же, стандартная функциональность — поиск по всем ключевым полям.

Что в итоге

В течение года над проектом работала небольшая команда из четырех человек. За это время мы внесли структурные изменения в конфигурацию купленного торгового вендомата:

  • Выровняли лицевую панель (выполнили газоэлектросварку);

  • Изменили количество полок, двигателей и разделителей под наши потребности. Часть двигателей перепаяли, чтобы они могли работать с тяжелой техникой;

  • Убрали приемник купюр и стандартный экран — вместо них поставили Raspberry Pi Waveshare [RA335] 10.1;

  • Убрали антивандальный замок с лицевой панели и поставили более простой замок с верхней части вендомата;

  • Создали уникальный дизайн-макет под корпоративный стиль компании. Обклеили вендомат и пик-поинт. Затонировали белой непрозрачной пленкой ячейки пик-поинта.

 Вот так выглядят наши установки после всех изменений:

Таким образом, в финальной версии IT-Point мы:

  • Автоматизировали выдачу ИТ-оборудования разных габаритов с минимальным привлечением специалистов техподдержки;

  • Создали веб-сервис, который позволяет вести учет выданной техники, собирать логи, определять наполненность IT-Point’ов;

  • Начали получать уведомления об остатках в вендоматах с интеграцией с Jira Service Management;

  • Создали гибкую систему настройки, выдачи, запрета групп в зависимости от различных атрибутов сотрудников.

В целом внедрение новой системы положительно отразилось на рабочих процессах. Мы «разгрузили» специалистов ИТ и уменьшили срок выдачи оборудования с нескольких часов до минут. За полгода через IT-Point мы распределили 1028 единиц техники и сэкономили больше 167 рабочих часов. И еще немного статистики:

  • Каждый вендомат вмещает в себя 206 единиц оборудования;

  • Самый популярный товар у сотрудников — беспроводная мышь;

  • В среднем каждый IT-Point выдает от 30 до 50 мышек ежемесячно — приблизительно 80% от общей выдачи мышек в компании;

  • Чаще всего вендоматом пользуются по понедельникам, так как выходят новые сотрудники;

  • Мы пополняем IT-Point раз в неделю (преимущественно в среду).

В будущем мы планируем масштабировать проект на все офисы компании в России и адаптировать формат под международные представительства. Над проектом работала команда Департамента инфраструктурных решений BIOCAD. Статью для вас готовил Денис Ситников, Head of IT-Support BIOCAD..

Больше о проектах BIOCAD в нашем блоге на Хабре:

 

Источник

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