Различные аспекты перехода на отечественное программное обеспечение при разработке информационных систем

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

Аннотация статьи
импортозамещение
операционные системы
отечественное программное обеспечение
системы управления баз данных
Ключевые слова

В сложившейся на сегодняшний день ситуации, когда Россия отрезана от доступа к программным продуктам ведущих мировых разработчиков, как никогда остро встаёт вопрос технического и технологического суверенитета. На важность данного вопроса обращал внимание Владимир Владимирович Путин, что в свою очередь зафиксировано в Указе Президента Российской Федерации от 14.04.2022 № 203 «О Межведомственной комиссии Совета Безопасности Российской Федерации по вопросам обеспечения технологического суверенитета государства в сфере развития критической информационной инфраструктуры Российской Федерации».

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

В качестве замены для операционных систем семейства Debian и Ubuntu, использующих deb-пакеты, выступает отечественная операционная система Astra Linux, а в качестве замены для операционных систем семейства Red Hat Enterprise Linux, CentOS и Fedora, использующих rpm-пакеты, предлагается использовать РЕД ОС и ALT Linux.

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

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

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

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

С целью выбора оптимального решения для магистерской работы был проведен сравнительный анализ программных продуктов для оценки производительности. В роли тестового стенда выступила виртуальная машина на базе РЕД ОС со следующим аппаратным обеспечением: процессор Intel Xeon Bronze 3204, 6 ГБ оперативной памяти и 50 ГБ дискового пространства.

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

Для сравнения использовались следующие открытые СУБД. – MySQL и PostgreSQL. Основные различия этих продуктов приведены в таблице 1.

Таблица 1

Сравнение СУБД

 

PostgreSQL

MySQL

Типы данных

Широкий спектр современных типов данных, включая массивы, hstore (хранилище типа «ключ-значение») и JSONB (бинарный JSON)

Ограниченный набор типов данных и ориентирован на более простые веб-приложения

Поддержка геопространственных данных

Полная поддержка

Ограниченная поддержка

Индексирование

Используется тип индекса B-tree

Поддержка индексов B-tree, GiST (Generalized Search Tree – обобщенное поисковое дерево) и GIN (Generalized Inverted Index – Обобщенный обратный индекс)

Репликация

Мульти-мастер репликация

Репликация master-slave (ведущий-ведомый)

Транзакции

Multi-Version Concurrency Control – многоверсионный контроль параллелизма)

Multi-Version Concurrency Control (Многоверсионный контроль параллелизма)

Хранимые процедуры

Процедуры, написанные на различных языках, включая PL/pgSQL, PL/Tcl, PL/Perl

В основном поддерживает хранимые процедуры, написанные на языке SQL

Расширения

Более широкие возможности

Менее широкие возможности

Производительность

Высокая производительность операций записи, ниже производительность операций чтения

Высокая производительность операций чтения, ниже производительность операций записи

Масштабируемость

Вертикальная масштабируемость

Горизонтальная масштрабируемость

Стоимость

Полностью бесплатна

Более сложная модель лицензирования

Это иностранные разработки (хоть и открытые), но хотелось бы отметить важный момент – при необходимости можно практически без проблем и смены бизнес-процессов мигрировать с Postgres на отечественную Postgres Pro (внесена в Единый реестр российских программ для ЭВМ и БД). Для сравнения быстродействия выполнено тестирование продуктов «из коробки», как есть, без каких-либо специальных настроек, база данных содержала 500 тыс. записей. Сравнение быстродействия приводится на рисунке.

Рис. Сравнение быстродействия СУБД

PostgreSQL и MySQL – это надежные реляционные системы управления базами данных с уникальными возможностями и ограничениями. Решение об использовании какой‑либо из них должно основываться на конкретных требованиях проекта, таких как характер и объем данных, сложность запросов, а также потребности в производительности и масштабируемости.

Также необходимо сравнить открытые веб-серверы – Apache и nginx, результаты приводятся в таблице 2.

Таблица 2

Сравнение веб-серверов

 

Apache

Nginx

Метод обработки соединений

Один клиент – один процесс (или поток)

Master-процесс и несколько дочерних процессов

Отдаваемый контент

Статический и динамический

По умолчанию только статический

Индексирование

Используется тип индекса B-tree

Поддержка индексов B-tree, GiST (Generalized Search Tree – обобщенное поисковое дерево) и GIN (Generalized Inverted Index – Обобщенный обратный индекс)

Работа с модулями

Модули подключаются динамически

Требуют сборки и не могут динамически загружаться

Интерпретация запросов

Интерпретирует запрос как физический ресурс в файловой системе или как URI

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

Работа с языками

Все хосты вынуждены работать с одной и той же версией php

Может использовать Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java

Скорость работы

Отдает динамический контент немного быстрее

Отдает статический контент быстрее

Производительность

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

Низкий расход ресурсов при большом количестве запросов

Это также иностранные разработки (хоть и открытые), но и в данном случае при необходимости можно без особых затруднений мигрировать с веб-сервера nginx (а ещё лучше сразу использовать при разработке) на отечественную Angie (также внесен в Единый реестр российских программ для ЭВМ и БД) – эффективный, мощный и масштабируемый веб-сервер, реализованный как форк nginx).

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

Текст статьи
  1. Документация PostgreSQL и Postgres Pro: Компания Postgres Professional [Электронный ресурс]. URL: https://postgrespro.ru/docs (дата обращения: 20.11.2023).
  2. Ред ОС – Российская операционная система [Электронный ресурс]. URL: https://redos.red-soft.ru/ (дата обращения: 22.11.2023).
  3. MySQL 8.0. Полное руководство [Электронный ресурс]. URL: http://www.rldp.ru/mysql/mysql80/index.htm (дата обращения: 23.11.2023).
  4. Документы Astra Linux [Электронный ресурс]. URL: https:// astralinux.ru/info/documents/ (дата обращения: 27.11.2023).
  5. Сравнение MySQL и PostgreSQL в 2023 году / Хабр [Электронный ресурс]. URL: https://habr.com/ru/companies/otus/articles/722304/ (дата обращения: 28.11.2023).
  6. О проекте – документация Angie PRO 1.3.2 [Электронный ресурс]. URL: https://wbsrv.ru/angie-pro/docs/ (дата обращения: 30.11.2023).
  7. nginx: документация [Электронный ресурс]. URL: https://nginx.org/ru/docs/ (дата обращения: 30.11.2023).
  8. Documentation: Apache HTTP Server – The Apache HTTP Server Project [Электронный ресурс]. URL: https://httpd.apache.org/docs/ (дата обращения: 01.12.2023).
Список литературы