Футбольный стадион «Зенит-Арена» является одним из лучших в России. Он стал местом проведения чемпионата мира по футболу (2018), а в 2021 году там проходили матчи чемпионата Европы. На стадионе проводятся встречи российских команд и концерты звезд.
За состоянием значимого объекта следят сотни людей. На стадионе работает порядка 500 человек: технический персонал (охранники, уборщицы, слесари, осветители), административный персонал (HR-менеджеры, руководство), маркетологи, волонтеры.
HR-отдел решил разработать с нуля портал, упрощающий взаимодействие с сотрудниками. Это существенно сократит трудозатраты HR-менеджеров, а техническому персоналу позволит просматривать документы и получать помощь.
«Зенит-Арена» важно использовать максимально защищенные с точки зрения кибербезопасности IT-продукты. Бюджет на проведение мероприятий на стадионе исчисляется миллионами долларов. Нежелательный инцидент (например, получение хакерами доступа к экранам) или срыв работы может привести к крупным экономическим, политическим и репутационным рискам.
Для обеспечения безопасности на стадионе внимательно относятся к проверке сотрудников и болельщиков. Компания отказалась от использования коробочных решений и облачных сервисов. «Осьминожке» поручили разработать с нуля кастомную систему для персонала. Чувствительные данные будут храниться на внутренних серверах компании.
Цель проекта
Заменить стандартные решения новой, защищенной от внешних воздействий системой. Онлайн-платформа, доступная с компьютеров и смартфонов, позволит пользователям быстро обмениваться информацией и использовать внутренние сервисы.
Задачи проекта:
разработать удобный веб-портал на 1С-Bitrix с реализацией микросервисов на Node.js и PWA-приложение для Android и iOS,
обеспечить возможность для пользователей с разным уровнем доступа работать с документами и обращениями в системе,
сделать решение, помогающее быстрой безопасной работе стадиона.
Команда решила выбрать подход МСА и обеспечить такие преимущества, как:
повышение независимости и автономности портала,
гибкую масштабируемость,
поддержку концепции о децентрализации управления данными.
В схеме работы портала выделены такие крупные блоки, как задачи и обращения. МСА подход позволяет поддерживать актуальность данных при работе с задачами и обращениями, а также отказоустойчивость в период пиковой нагрузки.
На схеме вы можете увидеть сервисную архитектуру системы, в которой показана интеграция сайта с серверами клиента, а часть функционала реализована через микросервисы:
1С Bitrix
Клиент пришел к нам с запросом сделать сайт на 1С Bitrix. Такой выбор был связан с требованиями к защищенности портала. Работая с техническим заданием, мы поняли, что платформа не закроет часть функций. Не получится корректно настроить работу с обращениями и личным кабинетом. Для реализации планов клиента решение не подходило.
В итоге на Bitrix мы сделали только информационную часть. Сотрудники компании смогут удобно работать с контентом портала. Они будут подгружать документы, материалы по структуре, датам рождения и фотографии из базы данных компании. Для связи с БД мы сделали интеграцию.
В системе предполагаются разные роли и доступы к информации. Для администраторов разработан интерфейс, позволяющий публиковать обращения к сотрудникам от лица руководства. Отдельная админка позволит размещать контент другим менеджерам компании.
Микросервисы, особенности и задачи
«Мы реализовали несколько микросервисов, работающих отдельно от системы на 1С Bitrix. Это оптимизирует нагрузку на систему и позволит обрабатывать данные независимо от общего взаимодействия сайта. Сотрудники смогут одновременно работать в системе с обращениями без сбоев.
Обмен информацией будет происходить мгновенно, позволяя быстро обновлять список задач. Параллельное сохранение данных защитит от дублирования данных и возникновения различных ошибок.
Наше решение позволит гибко работать с расширением функционала по задачам и обращениям. Система станет более отказоустойчивой».
Денис Нагаев, технический директор «Осьминожки»
В разработке микросервисов мы реализовали:
Структуру хранения данных
Методы REST API для связи с внешними системами
Микросервисы разработали на Node.js + Nuxt.js + mongodb. Подобная архитектура защитит API портала от взлома.
Реализация PWA и push-уведомления
Изначально возникали сложности с реализацией уведомлений в системе и их отслеживанием. Мы искали решение, чтобы исполнители точно видели поставленные задачи, а менеджеры — реакцию на них.
Для Android и iOS команде нужно было разработать PWA приложение, прежде всего, для отправки push уведомлений. Если в Android подобный функционал реализован давно, для iOS это стало возможным с выходом Safari 16.4. (После обновления удалось корректно реализовать уведомления на iOS).
Мы создали функционал отправки уведомлений по задачам и обращениям на Express.js. Для этого использовали библиотеку для Node.js под названием web-push. Она хорошо сочетается с Firebase Cloud Messaging (системой от Google).
Для фонового отслеживания уведомлений в приложении использовали две технологии: скрипт сервис-воркер и Push API. Сервис-воркер работает независимо от основного потока веб-приложения. Он обрабатывает сетевые запросы, кэширует данные и прослушивает входящие push.
Push API позволяет серверам отправлять данные напрямую к браузеру пользователя. На схеме цветом выделены части, отвечающие за работу push:
Приложение позволит создавать оповещения для пользователей о поступлении обращений в системе. Они будут поступать с сайта на смартфон.
Мы разработали веб-портал и PWA-приложение, удобное для команды «Зенит-Арена». Оно облегчит жизнь HR-отдела — позволит уйти от разрозненности данных и автоматизировать документооборот. Теперь каждый HR-менеджер успевает взаимодействовать с большим числом сотрудников, обрабатывая на 30% больше документов. Топ-менеджменту это позволяет сократить ФОТ на HR-отдел.
Теперь сотрудникам стадиона проще узнать новости компании, получать справки, ознакомиться с документами. Они могут реже обращаться за информацией к менеджерам. Осведомленность персонала о задачах, процессах внутри компании и карьерных возможностях стала выше, а текучка начала сокращаться. В свою очередь, ELTV (пожизненная ценность) и продуктивность сотрудников повысилась.
Клиенту понравилось, как была реализована система. Она позволяет решать стоящие бизнес-задачи. Сейчас обсуждается вопрос о развитии и дальнейшем внедрении продукта в футбольных клубах.