Система администрирования контрольно-кассовых машин «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.