вторник, 1 августа 2017 г.

Российская отрасль СУБД продвигается на «слонах»

          Отечественные разработки в сфере программного обеспечения привлекли к себе особое внимание три года назад, когда страна взяла курс на импортозамещение. В поддержку отечественного ПО вышел целый ряд законодательных инициатив. Что происходит на рынке российских СУБД? Достижимы ли цели программы развития отечественного программного обеспечения? С какими трудностями сталкиваются российские разработчики? Каким требованиям должна отвечать СУБД для обеспечения технологической независимости России?

Реестр и другие законодательные инициативы

          Среди законодательных инициатив прежде всего следует отметить Федеральный закон № 188-ФЗ от 29 июня 2015 г. «О предоставлении преференций российским разработчикам ПО при госзакупках». Во исполнение закона подписано постановление Правительства № 1236 от 16 ноября 2015 г. «Об установлении запрета на допуск программного обеспечения, происходящего из иностранных государств, для целей осуществления закупок для обеспечения государственных и муниципальных нужд».

          С января 2016 г. при Минкомсвязи ведется Единый реестр отечественного ПО, куда в настоящее время входит свыше 3300 программных продуктов. Все это позволяет надеяться на позитивные изменения, по крайней мере на увеличение доли отечественного ПО в государственных информационных системах.

          Между тем необходимость обеспечения технологической независимости страны в сфере информационно-коммуникационных технологий возникла гораздо раньше, чем обстоятельства подтолкнули к стратегии импортозамещения. В первую очередь это касается таких ключевых сегментов, как системы управления базами данных, операционные системы, системы автоматизированного проектирования. В период становления в нашей стране рыночной экономики зарубежные продукты без труда обосновались на российском рынке ПО. Сильные позиции удалось сохранить в области информационной безопасности, информационно-поисковых систем, социальных сетей и систем машинного обучения. Однако другие важные направления просели, несмотря на хороший задел, оставленный советской инженерной школой. Так, в 1991 г. состоялась последняя научная конференция по технологиям баз данных, при СССР проходившая ежегодно. На ней было сделано более 200 докладов. Спустя несколько лет почти никого из специалистов не удалось собрать снова.

          В апреле 2011 г. Правительственная комиссия по высоким технологиям и инновациям утвердила перечень технологических платформ, в который вошла и национальная программная платформа. Предполагалось, что результатом программы станет разработка стека отечественных технологий по десяти категориям, включая операционные системы, СУБД, САПР и пр. Объем финансирования должен был составить 490 млн руб. до конца 2012 г. Применение разработки должны были найти в первую очередь в государственных системах для обеспечения независимости государства от западных поставщиков проприетарных решений и безопасности критически важных систем.

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

          В то время лидирующие позиции на российском рынке СУБД занимали продукты западных корпораций – Oracle Database, MS SQL Server и IBM DB2. Из конкурентоспособных продуктов с открытым кодом, развиваемых международным сообществом, наибольшую популярность получили PostgreSQL, MySQL и Firebird. В следующие два года появились такие российские СУБД, как «Линтер 6.0 Бастион» (2011 г., РЕЛЭКС) и «Заря» (2012 г., ФГУП ЦНИИ ЭИСУ). В основу СУБД «Заря», а также СУБД, поставляемой в российских ОС Alt Linux СПТ 6.0 (2011 г., ALT Linux) и Astra Linux Special Edition (2012 г., НПО «РусБИТех»), положены различные версии системы с открытым кодом PostgreSQL. В 2015 г. компания Postgres Professional, российский вендор PostgreSQL, выпустила свободную, сертифицированную и коммерческую версии СУБД Postgres Pro. На основе открытой СУБД Firebird компания «Ред Софт» создала СУБД «Ред База Данных», последний релиз которой состоялся в 2016 г. Популярная СУБД MySQL с открытым кодом, как и ее ответвление MariaDB, не представлены на рынке российским производителями.

          По данным на май 2017 г. в Единый реестр российских программ для электронных вычислительных машин и баз данных входят СУБД «Ред База Данных», «Линтер Бастион», Postgres Pro, а также несколько значительно уступающих по популярности систем (Odant, «Синтез», «Циркон», HyTech, ARL, М10) и платформ. Из недавних, но уже нашумевших российских разработок СУБД, пока не включенных в реестр, стоит упомянуть NoSQL Tarantool от группы компаний Mail.ru и ClickHouse от «Яндекса». Они рассчитаны на решение отдельных вопросов, но заменить СУБД общего назначения пока не могут.

Требования к СУБД в контексте технологической независимости

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

Высокая функциональность и расширяемость СУБД

          Этот критерий выявляет преимущества открытых систем перед проприетарными разработками СУБД с нуля. История показывает, что создание полнофункциональной системы управления базами данных может занять десятки лет и требует привлечения большой команды квалифицированных разработчиков. Попытка равняться на возможности таких ИТ-гигантов, как Oracle, Microsoft и IBM, занимающихся разработкой СУБД более 30 лет и имеющих бюджеты, сравнимые с ВВП некоторых государств, означает не только неизбежные огромные финансовые и трудовые инвестиции, но и заранее ставит российскую отрасль СУБД в догоняющую позицию.

          Если оценивать наличие в России достаточного количества квалифицированных кадров для разработки функциональной СУБД, то ситуация выглядит неутешительно. Многие компетенции для страны были потеряны в 1990-е гг. вместе с разработчиками старой школы. А анализ образовательных программ ведущих вузов показывает, что сейчас они ориентированы на подготовку администраторов СУБД, но не разработчиков. В первую очередь администраторов для Oracle Database, MS SQL Server и IBM DB2, которые вкладывают немалые ресурсы в поддержку профильных специальностей. Но без глубокого понимания языка SQL и технологий баз данных невозможно научиться самостоятельной разработке алгоритмов, расширяющих возможности СУБД и создающих ее функциональность.

          По этой причине системы с открытым кодом и свободной лицензией, поддерживаемые международным сообществом, открывают шанс сделать ход конем: взять за основу готовую СУБД, добавить национальные компетенции и адаптировать продукт для российских условий. По такому пути идут и многие другие страны. В частности, с 2009 г. Франция решила использовать открытый PostgreSQL в государственных информационных системах, таких как Национальный фонд семейных пособий и Национальная метеослужба. Из открытых систем СУБД PostgreSQL обладает преимуществом самого развитого международного сообщества разработчиков. В России оно составляет примерно полторы тысячи человек. Это напрямую коррелирует с частотой выхода обновлений и расширений системы. Сообщество разработчиков открытой СУБД Firebird на порядок меньше. Впрочем, вернемся к сравнению основных функциональных возможностей российских СУБД.

В плане изначально заложенной гибкости PostgreSQL может дать фору коммерческим решениям.

          Расширяемость СУБД зависит от того, насколько сама архитектура СУБД позволяет добавлять новые возможности, не переписывая огромных объемов кода. В плане изначально заложенной гибкости PostgreSQL может дать фору коммерческим решениям: СУБД позволяет дописывать свои расширения и функции, даже проводить доработку ядра, которая, в случае принятия сообществом, сможет войти в стандартную версию. Последнее относится и к СУБД Firebird. С другой стороны, для закрытой сертифицированной системы расширяемость не столь полезна: при внесении любых изменений необходима дополнительная сертификация. Поэтому для СУБД «Линтер Бастион», «Заря», Astra Linux Special Edition, которые ориентированы на нишу специальных и закрытых применений, расширяемость и следование последним достижениям технологий баз данных не столь приоритетны. В дистрибутив СУБД «Заря» и «Астра Линукс» входят версии СУБД PostgreSQL, доработанные с точки зрения безопасности, но практически не влияющие на расширение функционала по сравнению с открытой версией, за исключением проверки контрольных сумм для контроля целостности.

          СУБД Postgres Pro основана на последней версии PostgreSQL 9.6.3. Доработки функциональности в Postgres Pro значительны. В Postgres Pro Standard доступны физическая и логическая синхронная и асинхронные репликации. В коммерческой версии Postgres Pro Enterprise присутствуют логическая синхронная репликация с изоляцией транзакции на уровне кластера серверов, адаптивное планирование запросов, компрессия данных на уровне блоков, 64-битный счетчик транзакций и эффективное секционирование таблиц.

          В текущей версии «Линтер Бастион 6.0» реализована только асинхронная репликация. По сравнению с PostgreSQL он уступает в максимальном размере записи (64 кБ против 1,6 ТБ), размере поля (4 кБ против 1Гб) и количестве ключей в таблице (250 против 1600). Поддерживается меньшее разнообразие типов индексов, что влияет на скорость поиска данных. Как и в PostgreSQL, в «Линтер Бастион 6.0» доступен пространственный тип данных, реализован полнотекстовый поиск, поддерживается формат данных JSON.

          В «Ред База Данных» есть логическая синхронная и асинхронная репликация на уровне ядра. От Firebird унаследовано, пожалуй, главное преимущество – консистентное состояние базы данных на диске в любой момент времени. Благодаря этому система получила распространение как СУБД для встраиваемых систем, кассовых аппаратов и пр. По базовому функционалу «Ред База Данных» уступает PostgreSQL и его производным: ниже уровень поддержки стандартов SQL, нет пространственного типа данных и пр.

          СУБД ClickHouse предназначена прежде всего для эффективной аналитики больших данных (OLAP). Архитектура изначально ориентирована на распределенные вычисления и обеспечивает быстроту обработки больших объемов информации (петабайты данных). Однако при этом ClickHouse не гарантирует таких важных для транзакционных СУБД свойств, как ACID (atomicity, consistency, isolation, durability – атомарность, согласованность, изоляция, долговечность хранения). В ClickHouse поддерживается подмножество языка SQL, которое далеко от полноты универсальных реляционных СУБД. Таким образом, ClickHouse хороша и может рассчитывать на успех только в той области применения, для которой она создана.

Tarantool быстро развивается, приобретая черты универсальной СУБД.

          Нереляционная СУБД Tarantool ориентирована на обработку в памяти больших объемов таблиц ключ-значение, без транзакций и ACID. Однако поверх Tarantool работает сервер приложений, с помощью которого можно эмулировать реляционность, поддержку SQL и обеспечить ACID. В Tarantool появились дисковое хранение, журнал упреждающей записи, асинхронная репликация в режимах master-slave и muster-master. Таким образом, Tarantool быстро развивается, приобретая черты универсальной СУБД. В то же время широкому распространению будут препятствовать экзотичность процедурного языка Lua и отсутствие значимой истории эксплуатации на реальных проектах в качестве универсальной СУБД. А главное, переход от нишевой NoSQL СУБД к полнофункциональной реляционной системе с ее механизмами контроля целостности неминуемо скажется на основном преимуществе Tarantool – высочайшей производительности.

Наличие пула отечественных разработчиков, владеющих исходным кодом СУБД, способных развивать и сопровождать систему

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

          Российские системы на основе открытой СУБД PostgreSQL являют собой яркий пример. Вклад отечественных разработчиков в развитие PostgreSQL с самого начала был значимым и сейчас оценивается до одной трети кода проекта. Вадим Михеев из Красноярска – один из первых разработчиков PostgreSQL, автор таких ключевых частей СУБД, как многоверсионное управление одновременным доступом, на которой базируются управление транзакциями и поддержка целостности данных, система очистки, журнал транзакций, вложенные запросы и триггеры. Среди основателей компании Postgres Professional, российского вендора PostgreSQL, три ведущих разработчика проекта в международном статусе major contributor – Олег Бартунов, Федор Сигаев и Александр Коротков. В списке их заслуг: локализация PostgreSQL, создание системы полнотекстового поиска и работы со слабоструктурированными данными (hstore, json, jsonb), а также новые методы индексации (GiST, GIN, SP-GiST). О масштабе российского сообщества можно судить и по размаху технической конференции PgConf Russia, ежегодно собирающей в Москве более 500 участников и ставшей одной из крупнейших в мире по тематике PostgreSQL. Ни одна другая российская СУБД пока не может сравниться по степени вовлеченности в разработку.

Реализация в России полного цикла поддержки СУБД, включая разработку, техническую поддержку и обучение пользователей

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

          Вопрос вендорской поддержки часто становится камнем преткновения при выборе свободного ПО, в частности, для разработчиков прикладных систем на основе open source, которые в таком случае вынуждены брать на себя функцию поддержки ПО, которое они не создавали. Для PostgreSQL эта проблема решена в 2015 г. созданием компании Postgres Professional, взявшей на себя миссию российского вендора СУБД PostgreSQL. Теперь пользователям доступны техническая поддержка в режиме 24×7, документация на русском языке, обучающие курсы, профессиональные консультации по вопросам миграции на PostgreSQL, разработка расширений и дополнений.

          Подробная документация на русском языке имеется также у «Линтер Бастион», «Астра Ли- нукс», Alt Linux и «Ред База Данных». СУБД ClickHouse и Tarantool документацией на русском языке пока не обзавелись. Перечисленные СУБД лишь частично решили вопрос с организацией обучения пользователей и технической поддержкой в формате 24×7.

Министерство обороны РФ является и основным пользователем СУБД «Заря».

Возможность сертификации по требованиям ФСТЭК России

          Для государственных информационных систем, информационных систем персональных данных, АСУТП и критически важных систем необходимы защищенные системы управления базами данных, сертифицированные по требованиям ФСТЭК России. СУБД, претендующая на роль гаранта технологической независимости, должна обладать сертификатом соответствия и входить в Единый реестр российских программ для электронных вычислительных машин и баз данных. На практике треугольник «функциональность – безопасность – производительность» не позволяет без сверхзатрат создать систему, отвечающую всем трем критериям, и раз работчикам приходится идти на компромиссы. Для специальных систем этот компромисс обычно выглядит как «функциональность + безопасность». Операционная система специального назначения Astra Linux Special Edition изначально была разработана с прицелом на защищенность. Она получила сертификаты Министерства обороны, ФСБ и ФСТЭК России на соответствие третьему классу защищенности от несанкционированного доступа (НСД) и второму уровню контроля отсутствия недекларированных возможностей (НДВ). В состав сертифицированного дистрибутива входит СУБД PostgreSQL 9.3.3 с дополнительными средствами защиты информации, обеспечивающими мандатное разграничение доступа и регистрацию событий безопасности.

          СУБД «Линтер Бастион 6.0» прошла сертификацию в Министерстве обороны (по третьему классу защищенности от НСД и второму уровню контроля отсутствия НДВ) и ФСТЭК России (по второму классу защищенности от НСД и второму уровню контроля отсутствия НДВ). Многоуровневая защита позволяет строить информационные системы, в частности, предназначенные для обработки и хранения секретной информации. Отсюда и основные заказчики системы – подразделения Министерства обороны РФ, Министерства внутренних дел РФ, силовые структуры.

          СУБД «Заря» обладает сертификатом Министерства обороны и предназначена для обработки и хранения информации, составляющей государственную тайну не выше уровня «совершенно секретно». Министерство обороны РФ является и основным пользователем данной СУБД. Дистрибутив «Альт Линукс» СПТ 7.0 сертифицирован ФСТЭК России (по четвертому классу защищенности от НСД и третьему уровню контроля отсутствия НДВ).

          СУБД Postgres Pro Certified сертифицирована по требованиям ФСТЭК России (по пятому классу защищенности от НСД и четвертому уровню контроля отсутствия НДВ) и может применяться для защиты информации, не составляющей государственную тайну, в государственных информационных системах и автоматизированных системах управления до первого класса защищенности, а также для обеспечения до первого уровня защищенности персональных данных в информационных системах, для которых к актуальным отнесены угрозы 1-го, 2-го или 3-го типа. В дополнение к штатному механизму поддержки безопасности на уровне строк, имеющемуся в СУБД Postgres Pro, в сертифицированной версии реализованы встроенные средства защиты от несанкционированного доступа к информации, включая очистку оперативной и дисковой памяти, встроенный контроль целостности исполняемых файлов, конфигурационных файлов и таблиц системного каталога.

          СУБД «Ред База Данных» также дорабатывалась с учетом требований безопасности: реализован мандатный доступ, который на уровне операционной системы поддерживается доработками в подсистемах безопасности SELinux и SELinux Reference Policy. «Ред База Данных» сертифицирована ФСТЭК России и может использоваться при создании информационных систем до класса защищенности 1Г включительно и при создании информационных систем персональных данных до 1-го класса включительно. Исходный код этой системы открыт в отличие от других сертифицированных СУБД.

Наибольшим потенциалом среди СУБД общего назначения обладает PostgreSQL.

          Вопросы безопасности систем с открытым кодом можно трактовать по-разному. С одной стороны, разработки с закрытым кодом менее уязвимы с точки зрения изучения злоумышленниками их слабых мест. С другой стороны, СУБД на основе открытого кода регулярно исправляют все найденные ошибки и уязвимости и выпускают необходимые обновления гораздо более оперативно – в PostgreSQL это происходит практически ежеквартально. Возможность внести «закладку» в открытую систему с развитым сообществом также маловероятна – все дополнения проходят независимую многоступенчатую проверку, перед тем как будут приняты в основную ветку. Поэтому безопасность открытых СУБД на уровне универсального применения не является камнем преткновения, а для специальных применений решается выпуском сертифицированных версий.

Поддержка спектра аппаратных платформ и операционных систем

          СУБД «Линтер Бастион» обладает широкой базой операционных систем, на которые она может быть установлена: семейство Unix/Linux (в том числе «Эльбрус», защищенные Astra Linux, «РОСА» и «МСВС»); 32-битные Windows и 64-битные WindowsNT, WinCE; Android; z/OS для мейнфреймов; ряд ОС реального времени (QNX, VxWorks) и др. «Астра Линукс» функционирует на платформе x86-64 и предназначена для одноименной ОС Astra Linux Special Edition. СУБД «Заря» работает под управлением операционных систем ОС «Заря» и ОС «Заря-ЦОД» на аппаратных платформах x86-64, POWER7, IBM System z. «Ред База Данных» работает на основных версиях Windows, семействе Linux, BSD Unix, IBM AIX, HP-UX, Sun Solaris, 32-битных и 64-битных аппаратных платформах. Postgres Pro имеет сборки под различные платформы, в том числе Windows, Linux, CentOS, ROSA, Alt Linux, МСВС, Alt Linux, Debian, Ubuntu, SUSE Linux Enterprise Server. Поддерживается ARM.

          Таким образом, по совокупности критериев можно сделать следующие выводы о российской отрасли СУБД. Наибольшим потенциалом среди СУБД общего назначения обладает PostgreSQL, которая способна обеспечить высокую функциональность и расширяемость системы, профессиональную поддержку пользователей и безопасность. Остальные разработки занимают хорошие позиции в собственных нишах – защищенных СУБД специального назначения, системах реального времени, встроенных приложениях. В 2015 г. консорциум во главе с Postgres Professional победил на конкурсе проектов по импортозамещению инфраструктурного программного обеспечения Минкомсвязи России в номинации «Системы управления базами данных». И хотя по результатам финансирование не было выделено и реальная поддержка данного направления пока невелика, все больше государственных структур (правительство Москвы и Московской области, ФНС, «Росаккредитация») и крупных российских компаний (Сбербанк, «Яндекс», «Ростех») выбирают именно эту СУБД, мигрируя с зарубежных решений. Это лучшее свидетельство того, что у отечественной отрасли СУБД есть будущее, и «слоны»* в его приближении играют заметную роль своей поступью.  

Благодарим за помощь
в подготовке материала
компанию Postgres Professional

* Логотипом СУБД PostgreSQL является слон. Считается, что слоны обладают хорошей памятью и на протяжении жизни помнят все.

CONNECT | № 5–6, 2017
www.connect-wit.ru


скачать статью  


Поделись этим