Система администрирования контрольно-кассовых машин «Sales Tax Online»

Система администрирования контрольно-кассовых машин «Sales Tax Online»

Клиент

Налоговая служба страны СНГ.

Проект

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

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

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

Задача

Целями пилотного проекта являлись:

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

Для торговых организаций решались задачи автоматизации следующих процессов:

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

Для населения предполагалось создать дополнительные возможности эффективной защиты своих прав благодаря:

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

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

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

Решение

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

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

Старт пилотного проекта состоялся в августе 2021 года. Участникам выдавалось контрольно-кассовое оборудование, производилась регистрация налогоплательщиков, осуществлялась техническая поддержка системы и оборудования на всех этапах жизненного цикла.

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

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

DevOps

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

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

Со стороны «Формата Кода» работа была выполнена силами двух инженеров в максимально короткие сроки – менее двух недель на полное развертывание работоспособного стенда с учётом подсистем мониторинга, логирования и резервного копирования.

Установка инфраструктуры и обеспечение отказоустойчивости

Установка инфраструктуры проекта полностью автоматизирована благодаря ansible-плейбукам и ролям, которые были заблаговременно написаны инженерами «Формата Кода» под данный проект. Благодаря ролям, продуктовая система, обеспечивающая базовую работоспособность приложений, может быть подготовлена менее чем за один день с минимальным ручным вмешательством DevOps-инженера.

В распоряжении отдела DevOps есть роли, как для кластерных реализаций различных задействованных инструментов, так и их standalone-вариантов, что позволяет в минимальное время и с привлечением минимальных вычислительных ресурсов развернуть тестовые окружения.

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

Мониторинг и резервное копирование

Построение системы включает в себя мониторинг всех ее компонент, а также резервное копирование наиболее критических элементов.

Мониторинг осуществляется посредством Prometheus + Grafana + Alert Manager с уведомлениями в Telegram канал и email. Внешние проверки выполняет Zabbix, позволяющий оперативно отследить не только проблемы внутри стенда, но и проблемы внешней доступности приложений.

Резервное копирование осуществляется такими средствами как velero, wal-g, clickhouse-backup, hbase snapshots, и самописные скрипты на Python. Резервное копирование осуществляется на S3 совместимое хранилище Minio.

Сбор логов приложений осуществляется посредством Loki – открытого программного обеспечения для аккумуляции и обработки логов.

Статистика проекта

  • Размер команды: 9 специалистов.
  • Доступность системы: выше 99%.
  • В системе зарегистрировано более 35 тыс. касс и ежедневно онлайн обрабатывается около 30 тыс. чеков.

Технологии

  • Code: Java, Spring MVC, Javascript, C++, Kotlin.
  • Tools/Product: Ansible, Apache Hbase, Apache Kafka, ArgoCD + Helm charts, ClickHouse DB, GitLab, Grafana, HAProxy, Harbor, HDFS, Jenkins, Jasper, Kubernetes, KVM, Loki, Minio, Nexus, Nginx, PostgreSQL, Prometheus, Redis, Traefik, Zabbix, Zookeeper.