1. Общие сведения

1.1. Обозначение и наименование программы

Полное наименование: Типовое тиражируемое программное обеспечение витрин данных конфигурации «Стандарт».

Условное обозначение: ПО «Витрина данных НСУД».

1.2. Назначение программы

Национальная система управления данными (далее – НСУД) представляет собой систему, состоящую из взаимосвязанных элементов информационно-технологического, организационного, методологического, кадрового и нормативно-правового характера и обеспечивающую достижение целей и выполнение задач, обозначенных в Концепции Национальной системы управления данными, утвержденной распоряжением Правительства Российской Федерации от 3 июня 2019 года № 1189-р.

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

Управление процессами информационного обмена между Участниками НСУД осуществляется средствами федеральной государственной информационной системы «Единая информационная платформа Национальной системы управления данными» (далее – ФГИС «ЕИП НСУД»).

Для передачи данных между Участниками НСУД используется среда взаимодействия НСУД, состоящая из Системы межведомственного электронного взаимодействия 3.0 (далее – СМЭВ) и (или) подсистемы обеспечения доступа к данным СМЭВ (далее – ПОДД СМЭВ) (СМЭВ 4.0), обеспечивающих транспорт и процессинг данных, а также агентов ПОДД СМЭВ, устанавливаемых на стороне Участников НСУД.

Для формирования и (или) для получения данных с использованием среды взаимодействия НСУД необходим комплекс программных и технических средств в составе информационно-телекоммуникационной инфраструктуры участника НСУД, описываемое в данном документе «Витрина данных НСУД», но возможно и применение «Витрина данных НСУД»). Данный документ описывает применение именно ПО среды взаимодействия НСУД.

Программа «Витрина данных НСУД» является частью НСУД и предназначена для загрузки публикуемых данных в отдельную БД на стороне Поставщика данных. Программа представляет собой типовое программное обеспечение, устанавливаемое на стороне поставщиков/потребителей данных.

1.3. Возможности программы

Программа обеспечивает выполнение следующих задач:

  • описание логической модели данных;

  • настройка программы и структуры таблиц в ее БД для хранения публикуемых данных;

  • загрузка и хранение публикуемых данных в БД программы;

  • извлечение данных из внешних систем (внешних ИС по отношению к Витрине данных НСУД);

  • выполнение запросов в соответствии с протоколом ПОДД через механизмы ПОДД СМЭВ:

    • поддержка протокола коммуникации агента ПОДД.

    • предоставление публикуемых данных (в т. ч. BLOB-объектов и/или с использованием табличных параметров);

    • генерацию формируемых документов на основании публикуемых данных;

    • репликацию публикуемых данных (в качестве витрины-источника);

    • получение реплицируемых данных (в качестве витрины-получателя).

  • обмен в соответствии с протоколом СМЭВ3:

    • подключение к СМЭВ3 как информационной системы участника взаимодействия;

    • обработку запросов на предоставление публикуемых данных (видов сведений), в т. ч. BLOB-объектов;

    • инициативная рассылка оповещений об обновлении публикуемых данных.

  • обработка запросов с использованием стандарта JDBC;

  • публикация конечных точек API для обработки запросов с использованием спецификации OpenAPI версии 3;

  • предоставление публикуемых данных информационным системам с использованием интерфейса JDBC и/или REST-запросов;

  • восстановление данных в непротиворечивое состояние после сбоев;

  • поддержка языка SQL;

  • журналирование событий функциональных блоков;

  • мониторинг информации о работоспособности экземпляра Программы.

1.4. Основные характеристики программы

Наименования и значения параметров, характеризующих показатели назначения программы, приведены в таблице:

Таблица 1.4 Показатели назначения

Показатель

Значение

1

Хранение данных, доступных для запроса, включая исторические

Не менее 10 ТБ или 1 млрд. записей

2

Загрузка данных в ПО «Витрина данных НСУД»

Не менее 3 ТБ / час или 300 млн. записей / час

3

Выборка данных из ПО «Витрина данных НСУД» в рамках одного критерия поиска

Не менее 3 ТБ / час или 300 млн. записей / час

4

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

Не более 5 сек для 95% записей

5

Поиск одной записи по предопределённому критерию поиска (предполагается предварительная индексация)

Не более 0,1 сек в 95% запросов при не менее 3 млн. запросов / час

6

Поиск одной записи по произвольному критерию (предполагается сканирование всего объёма записей)

Не более 5 сек в 95% запросов при не менее 50 тыс. запросов / час

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

Количественные значения показателей надежности для ПО «Витрина данных НСУД» представлены в таблице ниже.

Таблица 1.5 Значения показателей надежности

Показатель

Значение

1

Безотказность

10000 часов

2

Коэффициент готовности

0,9995

3

Доступность

99,95%

4

Допустимая потеря данных

1 час

Требования к техническим средствам, при которых достигаются указанные показатели надежности описаны в разделе: table_server_requirements_full_version.

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

1.5. Рекомендуемые технические и программные средства

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

Примечание

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

Рекомендуем выполнить следующее:

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

  • установите программу (см. Руководство по установке) на тестовом стенде с рекомендуемыми техническими характеристиками (table_server_requirements_full_version);

  • создайте структуру Витрины;

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

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

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

  • выберете оборудование, которое будет соответствовать нагрузке для ваших задач.

Ниже приведены параметры тестового стенда, на котором проверялась работоспособность программы.

1.5.1. Серверное оборудование

Рекомендованные требования к серверному оборудования приведены в table_server_requirements_full_version.

Сервер

Назначение

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. Программное обеспечение

Таблица 1.6 Минимальный состав программных средств

Название

Описание

Версия

Операционная система

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. Используемые языки программирования

Таблица 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).

В перечень задач, выполняемых программистом, входит:

  • поддержание работоспособности программы;

  • доработка программы под требованиям пользователей системы.