1. Общие сведения
1.1. Обозначение и наименование программы
Полное наименование: Типовое тиражируемое программное обеспечение витрин данных конфигурации «Стандарт».
Условное обозначение: ПО «Витрина данных НСУД».
1.2. Назначение программы
Национальная система управления данными (далее – НСУД) представляет собой систему, состоящую из взаимосвязанных элементов информационно-технологического, организационного, методологического, кадрового и нормативно-правового характера и обеспечивающую достижение целей и выполнение задач, обозначенных в Концепции Национальной системы управления данными, утвержденной распоряжением Правительства Российской Федерации от 3 июня 2019 года № 1189-р.
НСУД предназначена для управления информацией, содержащейся в информационных системах органов и организаций государственного сектора, а также в информационных ресурсах, созданных в целях реализации полномочий органов и организаций государственного сектора (далее – государственные данные) и для осуществления информационного обмена между Поставщиками и Получателями данных, присоединившимися к НСУД (далее – Участники НСУД).
Управление процессами информационного обмена между Участниками НСУД осуществляется средствами федеральной государственной информационной системы «Единая информационная платформа Национальной системы управления данными» (далее – ФГИС «ЕИП НСУД»).
Для передачи данных между Участниками НСУД используется среда взаимодействия НСУД, состоящая из Системы межведомственного электронного взаимодействия 3.0 (далее – СМЭВ) и (или) подсистемы обеспечения доступа к данным СМЭВ (далее – ПОДД СМЭВ) (СМЭВ 4.0), обеспечивающих транспорт и процессинг данных, а также агентов ПОДД СМЭВ, устанавливаемых на стороне Участников НСУД.
Для формирования и (или) для получения данных с использованием среды взаимодействия НСУД необходим комплекс программных и технических средств в составе информационно-телекоммуникационной инфраструктуры участника НСУД, описываемое в данном документе «Витрина данных НСУД», но возможно и применение «Витрина данных НСУД». Данный документ описывает применение именно ПО среды взаимодействия НСУД.
Программа «Витрина данных НСУД» является частью НСУД и предназначена для загрузки публикуемых данных в отдельную БД на стороне Поставщика данных. Программа представляет собой типовое программное обеспечение, устанавливаемое на стороне поставщиков/потребителей данных.
1.3. Возможности программы
Программа обеспечивает выполнение следующих задач:
описание логической модели данных;
настройка программы и структуры таблиц в ее БД для хранения публикуемых данных;
загрузка и хранение публикуемых данных в БД программы;
извлечение данных из внешних систем (внешних ИС по отношению к Витрине данных НСУД);
выполнение запросов в соответствии с протоколом ПОДД через механизмы ПОДД СМЭВ:
поддержка протокола коммуникации Агента СМЭВ4;
предоставление публикуемых данных (в т. ч. BLOB-объектов и/или с использованием табличных параметров);
генерация формируемых документов на основании публикуемых данных;
репликация публикуемых данных (в качестве витрины-поставщика);
получение реплицируемых данных (в качестве витрины-получателя).
обмен в соответствии с протоколом СМЭВ3:
подключение к СМЭВ3 как информационной системы участника взаимодействия;
обработку запросов на предоставление публикуемых данных (видов сведений), в т.ч. BLOB-объектов;
инициативная рассылка оповещений об обновлении публикуемых данных.
публикация конечных точек API для обработки запросов с использованием спецификации OpenAPI версии 3;
предоставление публикуемых данных информационным системам с использованием интерфейса REST-запросов;
восстановление данных в непротиворечивое состояние после сбоев;
поддержка языка SQL;
журналирование событий функциональных блоков;
мониторинг информации о работоспособности экземпляра Программы.
1.4. Основные характеристики программы
Наименования и значения параметров, характеризующих показатели назначения программы, приведены в таблице:
№ |
Показатель |
Значение |
|---|---|---|
1 |
Хранение данных, доступных для запроса, включая исторические |
Не менее 10 ТБ или 1 млрд. записей |
2 |
Загрузка данных в ПО «Витрина данных НСУД» |
Не менее 3 ТБ / час или 300 млн. записей / час |
3 |
Выборка данных из ПО «Витрина данных НСУД» в рамках одного критерия поиска |
Не менее 3 ТБ / час или 300 млн. записей / час |
4 |
Время от отправки одной записи в витрину до появления данных в результатах запросов |
Не более 5 сек для 95% записей |
5 |
Поиск одной записи по предопределённому критерию поиска (предполагается предварительная индексация) |
Не более 0,1 сек в 95% запросов при не менее 3 млн. запросов / час |
6 |
Поиск одной записи по произвольному критерию (предполагается сканирование всего объёма записей) |
Не более 5 сек в 95% запросов при не менее 50 тыс. запросов / час |
Требования к техническим средствам, при которых достигаются указанные показатели назначения описаны в Таблица 1.6.
Количественные значения показателей надежности для ПО «Витрина данных НСУД» представлены в таблице ниже.
№ |
Показатель |
Значение |
|---|---|---|
1 |
Безотказность |
10000 часов |
2 |
Коэффициент готовности |
0,9995 |
3 |
Доступность |
99,95% |
4 |
Допустимая потеря данных |
1 час |
Требования к техническим средствам, при которых достигаются указанные показатели надежности описаны в Таблица 1.6.
Тестирование программы на соответствие показателям назначения и надежности проводилось на тестовом стенде с указанными в Таблица 1.6, требованиям к техническим средствам: серверному и телекоммуникационному оборудованию.
1.5. Рекомендуемые технические и программные средства
В разделе приведены рекомендации по аппаратному и программному обеспечению, а также необходимая конфигурация сети для оптимального баланса между производительностью и стабильностью работы всех компонентов программы. Рекомендация основана на использовании программы в режиме стандартной рабочей нагрузки на тестовом стенде.
Примечание
Следует учитывать, что невозможно дать универсальной рекомендации для развертывания программы т.к. вариантов конфигурации оборудования, характера нагрузки и других факторов может быть очень много. Предварительный расчет параметров оборудования на этапе внедрения для каждой организации должен быть рассчитан индивидуально. Советуем установить программу с приведенными ниже рекомендациями на тестовом стенде для того чтобы определить оптимальную конфигурацию для ваших сценариев работы.
Рекомендуем выполнить следующее:
продумайте сценарии работы с программой необходимые для достижения ваших целей;
установите программу (см. Руководство по установке) на тестовом стенде с рекомендуемыми техническими характеристиками (Таблица 1.6);
создайте структуру Витрины;
подготовьте тестовые данные для загрузки и определите количество загружаемых данных;
в процессе загрузки данных проведите измерение ключевых параметров нагрузки серверного оборудования;
линейно экстраполируйте эти данные на целевую систему, получив таким образом загруженность целевого оборудования;
выберете оборудование, которое будет соответствовать нагрузке для ваших задач.
Ниже приведены параметры тестового стенда, на котором проверялась работоспособность программы.
1.5.1. Серверное оборудование
Рекомендованные требования к серверному оборудования приведены в Таблица 1.6.
Сервер |
Назначение |
CPU |
RAM, ГБ |
HDD |
NetGbit |
Количество |
|---|---|---|---|---|---|---|
Arenadata Cluster Manager (ADCM) |
4 |
16 |
200 |
30 |
1 |
|
Prostore |
||||||
Сервис исполнения запросов |
4 |
8 |
10 |
30 |
1 |
|
Сервис мониторинга статусов Kafka |
4 |
8 |
10 |
30 |
1 |
|
Arenadata Streaming (ADS) |
||||||
Apache ZooKeeper |
4 |
4 |
5 |
30 |
1 |
|
Apache Kafka |
4 |
4 |
5 |
30 |
2 |
|
СМЭВ3-адаптер |
СМЭВ3-адаптер |
4 |
8 |
8 |
30 |
1 |
ПОДД-адаптер - Модуль исполнения запросов |
4 |
8 |
20 |
30 |
2 |
|
ПОДД-адаптер - Модуль MPPR |
4 |
8 |
20 |
30 |
2 |
|
ПОДД-адаптер - Модуль MPPW |
4 |
16 |
20 |
30 |
2 |
|
ПОДД-адаптер - Модуль импорта ТП |
2 |
4 |
20 |
30 |
2 |
|
ПОДД-адаптер - Модуль Группировки данных ТП |
2 |
4 |
20 |
30 |
2 |
|
ПОДД-адаптер - Модуль Группировки репликаций |
2 |
4 |
20 |
30 |
2 |
|
ПОДД-адаптер - Модуль репликаций |
2 |
4 |
20 |
30 |
2 |
|
ПОДД-адаптер - Wrapper |
4 |
32 |
200 |
30 |
2 |
|
BLOB- адаптер |
BLOB- адаптер |
4 |
16 |
20 |
30 |
2 |
Сервис формирования документов |
2 |
8 |
20 |
30 |
2 |
|
REST-адаптер |
REST-адаптер |
2 |
4 |
20 |
30 |
1 |
ETL |
||||||
Apache Hadoop |
16 |
32 |
1000 |
30 |
1 |
|
Apache Spark (master) |
16 |
32 |
50 |
30 |
1 |
|
Apache Spark (worker) |
16 |
32 |
50 |
30 |
2 |
|
Apache Airflow (master) |
4 |
16 |
100 |
30 |
1 |
|
Apache Airflow (worker) |
4 |
16 |
100 |
30 |
1 |
|
Vinyl Tarantool СУБД ETL |
16 |
32 |
1000 |
30 |
1 |
|
Мониторинг и администрирование (установка опциональна) |
||||||
Grafana |
8 |
16 |
1000 |
30 |
1 |
|
Prometheus |
8 |
16 |
1000 |
30 |
1 |
|
Graylog |
8 |
16 |
1000 |
30 |
1 |
|
МongoDB |
||||||
Elasticsearch (master) |
24 |
24 |
1000 |
30 |
3 |
|
Elasticsearch (data) |
32 |
32 |
1000 |
30 |
3 |
|
Filebeat |
32 |
32 |
1000 |
30 |
3 |
|
Node Exporter |
32 |
32 |
1000 |
30 |
3 |
1.5.2. Программное обеспечение
Название |
Описание |
Версия |
|---|---|---|
Операционная система |
CentOS Astra Linux (уровень защищенности «Воронеж») Альт Сервер 8 СП РЕД ОС |
7.9 1.7 8 7.2 |
Docker |
Программное обеспечение для автоматизации развёртывания и управления приложениями |
20.10.2 |
Java SE 17 |
Среда разработки для создания приложений с использованием языка программирования Java |
17.0.7 |
1.5.3. Требования к каналам связи
Требования к каналам связи сервера, на котором будет установлена программа:
пропускная способность 100 Гбит/сек с протоколами TCP/IP и UDP;
отсутствие ПО, блокирующего или замедляющего трафик.
Требования к каналам связи, используемым для взаимодействия с клиентскими сетями Ведомства:
пропускная способность 10 Гбит/сек с протоколами TCP/IP и UDP.
Необходимо учитывать процент свободных ресурсов оборудования и пиковые нагрузки.
1.6. Режим работы программы
Программа предназначена для круглосуточного функционирования, 24 часа в сутки, 7 дней в неделю, с перерывами на плановое техническое обслуживание, восстановление работоспособности.
Программа поддерживает функционирование в следующих режимах:
штатный;
сервисный;
аварийный;
остановка.
1.6.1. Штатный режим
Штатный режим является основным режимом функционирования Программы. В этом режиме функционирования обеспечивается круглосуточная работа Программы без потери функциональности и работоспособности ее программно-технических средств.
1.6.2. Сервисный режим
Режим функционирования, при котором Программа выполняет часть основных функций, но параллельно с этим проводятся работы по техническому обслуживанию, накладывающие ограничения на функциональность Программы. В сервисном режиме функционирования обеспечивается возможность круглосуточного функционирования Программы.
1.6.3. Аварийный режим
Режим функционирования, при котором в Программе доступны только базовые функциональные возможности, необходимые для восстановления работоспособности.
1.6.4. Остановка
Режим работы, когда Программа не выполняет ни одну из своих функций.
1.7. Используемые языки программирования
Название |
Версия |
Описание |
|---|---|---|
Kotlin |
1.6.20 |
Язык программирования |
Java |
1.8.0_352 |
Язык программирования |
SQL |
SQL:2016 |
Язык программирования, применяемый для создания модификации и управления данными в реляционной базе данных |
Html |
5 |
Язык разметки |
CSS |
3 |
Язык разметки. Описание внешнего вида документов |
Python |
3.0 |
Язык программирования |
JavaScript |
ES2017 (ES8) |
Язык программирования |
1.8. Требования к персоналу
1.8.1. Требования к системному администратору
Системный администратор обеспечивает штатную работу программы. Выполняет установку, настройку и мониторинг работоспособности программного и аппаратного обеспечения.
В основные обязанности системного администратора входит:
установка и настройка программы;
установка обновлений;
резервное копирование;
настройка логирования;
настройка системы мониторинга программы, аппаратного обеспечения и др.
Необходимые навыки для работы:
знание TCP/IP;
знание Docker (развертывание, установка библиотек, администрирование);
знание Ansible;
умение работать с веб-серверами (Apache);
знание SSH;
резервное копирование;
логирование;
обновление программы;
понимание модели баз данных;
знание операционных систем CentOS на уровне администрирования;
опыт работы по управлению и администрированию баз данных;
навык проводить диагностику и анализ проблемных мест;
умение распознать следствие/причины некорректной работы ПО или техники;
умение анализировать сетевой трафик.
1.8.2. Требования к программисту
Программист решает задачи связанные непосредственно с сопровождением и доработкой программы под требования пользователей. Определяет схемы и алгоритмы обработки данных программой.
Программист должен обладать знаниями следующих языков программирования:
Java;
Кotlin;
Javascript.
Программист должен уметь использовать в своей работе следующее программное обеспечение и технологии:
Apache Zookeeper;
Apache Kafka;
Docker;
Vertx;
Spring (Spring-boot);
Web (http, настройка SSH).
В перечень задач, выполняемых программистом, входят:
поддержание работоспособности программы;
доработка программы под требованиям пользователей системы.