Сила в сообществе

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

Как для вас начался путь к PostgreSQL?

После окончания астрономического отделения физфака МГУ я поступил на работу в Государственный астрономический институт им. П. К. Штернберга МГУ (ГАИШ), сотрудником которого являюсь до сих пор. Я занимался исследованиями сверхновых звезд, каталог которых в то время существовал на бумажных карточках, и мне пришла идея создания каталога в машинном виде, на БЭСМ-4М, для проведения статистических исследований. Такой каталог был сделан и отправлен на магнитных лентах в международный центр астрономических данных в Страсбурге. Затем была командировка в Италию, где астрономы уже работали с дисплеями и на более мощных машинах, но задача каталогизации осталась прежней. В 1993 году я уехал в Санта-Круз, рядом с Беркли, для исследований сверхновых звезд, которых на тот момент было известно около тысячи. Требовалось каким-то образом не только хранить информацию о них, но и проводить различные выборки. Вручную это было делать трудно, возникла идея использовать базу данных. На сайте университета Беркли в открытом доступе обнаружился дистрибутив СУБД Ingres и публиковались статьи Майкла Стоунбрейкера, открывшие для меня мир реляционных СУБД. Следующей была уже СУБД Postgres95, разрабатываемая в Беркли, — еще в Санта-Круз я присоединился к сообществу пользователей этой системы. Через некоторое время Postgres95 была передана из Беркли мировому сообществу и начался новый этап развития СУБД, которая впоследствии стала называться PostgreSQL.

В 1990-х годах многие где-то подрабатывали помимо основной работы. Одной из таких моих подработок была работа над электронным архивом «Учительской газеты» с возможностью поиска по номерам. Вполне естественно, что для этого проекта была выбрана СУБД PostgreSQL, однако выяснилось, что в ней поддерживается только кодировка ASCII, а значит, нет возможности работы с русским языком. Пришлось разбираться с кодом и, используя опыт работы по интернационализации языка Perl, сделать поддержку locale в PostgreSQL. Соответствующий патч был передан сообществу разработчиков, и этой СУБД стали пользоваться в Европе, а через некоторое время моя работа была расширена до поддержки многобайтовых кодировок, в частности Unicode, в результате чего PostgreSQL нашла применение и в Японии, где сейчас одно из самых многочисленных сообществ пользователей этой системы, поддерживаемой такими компаниями, как NTT и Fujitsu.

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

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

В целом можно сказать, что PostgreSQL повезло в России: изначально были серьезные проекты, на которых эта СУБД смогла продемонстрировать свои преимущества; наличие свободной атмосферы в ГАИШ открывало простор для творческого развития системы; открытость академической среды и возможность выхода на международное сообщество создавали условия для интеграции в него российских разработчиков, взаимодействия и обмена идеями.

Каково место российского сообщества PostgreSQL в мировой табели о рангах?

Первый российский коммит (фиксация изменений в репозитории кода) появился в 1995 году уже через две недели после старта проекта и еще до переименования в PostgreSQL. Сделал его Вадим Михеев из Красноярска, который был членом ядра разработчиков PostgreSQL и работал над ключевыми функциями СУБД: MVCC (Multiversion Concurrency Control, «управление параллельным доступом»), WAL (Write-Ahead Logging, «журнал опережающей записи»), подзапросами, триггерами, транзакциями, B-деревьями. Я послал первый патч в апреле 1997 года и десять лет работал с PostgreSQL, не общаясь лично с зарубежными разработчиками, и только в 2006 году активные участники проекта со всего мира встретились в Торонто. Это была первая конференция PostgreSQL Anniversary Summit, которая впоследствии стала проводиться в Оттаве, — сегодня PGCon стал главным ежегодным форумом сообщества.

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

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

Как решаются вопросы правообладания на СУБД PostgreSQL?

Согласно принципам международного сообщества, СУБД PostgreSQL принадлежит сообществу, а не конкретному физическому или юридическому лицу. Кроме того, СУБД PostgreSQL распространяется по BSD-подобной лицензии, что дает возможность создавать на ее основе производные продукты с другими названиями и другими схемами лицензирования, поэтому любой разработчик имеет право использовать исходные коды PostgreSQL для создания своего коммерческого или некоммерческого продукта. Эта возможность неоднократно использовалась для создания нескольких десятков вариантов СУБД: Greenplum Database, Teradata Aster Data, IBM Netezza, HP Vertica, Amazon Redshift и т. д. В целом все это способствовало росту популярности и технологическому совершенствованию PostgreSQL. Любопытно, что сейчас наблюдается обратный процесс (unforking): код и технологии, разработанные в этих проектах, выходят под открытыми лицензиями и снова возвращаются в PostgreSQL — например, за последний год были открыты Greenplum, CitusDB и PipelineDB.

Что касается вероятности приватизации PostgreSQL какой-либо компанией или попадания под санкции, то в силу описанных причин это невозможно. Немногие даже свободно распространяемые продукты обладают такой высокой степенью независимости. Скажем, Red Hat — американская компания, и, если ей порекомендуют не обслуживать отдельных российских заказчиков, она, скорее всего, подчинится. Конечно, как законопослушные граждане некоторые западные разработчики при наихудшем варианте развития событий теоретически могут отказаться от прямой работы с патчами российских разработчиков, однако есть сильные сообщества PostgreSQL и в других странах, а среди российских разработчиков есть свой коммитер. У сообщества разработчиков Open Source нет «кнопки» — его нельзя отключить по чьей-либо воле.

Cообщество разработчиков PostgreSQL насчитывает по всему миру около тысячи человек, большинство из которых работают время от времени. Как им соперничать с командами, занятыми созданием коммерческих СУБД?

Ресурсов у компании «Постгрес Профессиональный» меньше, чем у грандов ИТ-индустрии, но и нет необходимости тратить на маркетинг средства, соизмеримые с ВВП целых государств. Главное — модель Open Source позволяет развиваться, а монстры обычно неповоротливы и по понятным причинам цепляются за отжившие технологии. Однако и сообщество открытого ПО не сразу стало эффективным: до 2001 года проект PostgreSQL развивался как классический Open Source — «делаю только то, что интересно». Однако растущая популярность PostgreSQL и ее использование в корпоративных решениях привели к появлению компаний, ориентированных на PostgreSQL, — в первую очередь это 2ndQuadrant в Европе и EnterpriseDB в США, которые стали продвигать задачи, необходимые для их клиентов. Эти компании не только обслуживают своих заказчиков, но и содержат в штате большое количество разработчиков, что позволяет им непосредственно влиять на развитие проекта.

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

Олег Бартунов: «Никто не придет и не сделает — если есть задача, то надо ее делать  самим, даже если в данный момент нет удобных инструментов»
Олег Бартунов: «Никто не придет и не сделает — если есть задача, то надо ее делать
самим, даже если в данный момент нет удобных инструментов»

 

Что позволило СУБД PostgreSQL стать в России реальной альтернативой коммерческим решениям?

В России, по-сути, сегодня нет СУБД-строения как такового, нет коллективов, которые были бы в состоянии с нуля создать не нишевую, а универсальную СУБД, нет отрасли, которая могла бы развиваться и выдавать разработки, способные конкурировать с известными продуктами в этой сфере.

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

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

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

Нам часто говорят, что PostgreSQL никогда не станет Oracle и не сможет заменить эту СУБД в критических для страны приложениях, но задача не в том, чтобы совсем отказаться от той или иной зарубежной системы, а в том, чтобы развивать собственную индустрию СУБД-строения. Только в этом случае можно будет говорить о технологической независимости или диверсификации. Нам нужно не отгораживаться от остального мира, а быть способными быстро выводить на внутренний и зарубежный рынок востребованные продукты, опираясь на сообщество. Кстати, в EnterpiseDB пошли по пути копирования: они делают PostgreSQL как Oracle, акцентируя внимание на легкой миграции, а это означает роль постоянно догоняющего. В масштабах страны такой подход не решает задачи технологической независимости — то, что делается, например, для США, так и останется американским. Конечно, риски при миграции есть и всегда будут, надо только уметь их оценивать, взвешивая все за и против. Примеры успешной миграции крупных проектов на PostgreSQL показывают, что все возможно, и одна из задач нашей компании — развитие этой СУБД для облегчения процесса миграции.

Следует отметить, что разговоры про технологическую независимость начала не Россия. В Евросоюзе уже давно принята программа EU Horizon 2020. Правительство Франции, например, рекомендует своим ведомствам и компаниям применять продукты либо местных разработчиков, либо открытые. Там и без санкций поняли, что нужна альтернатива заокеанским решениям.

Как решается проблема нехватки специалистов?

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

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

Я целый год ездил по стране в поисках «живых» рабочих групп — людей нет, и они не родятся завтра, но мы активно работаем с университетами над учебными программами по технологиям СУБД и с компаниями. Мы подготовили несколько курсов по PostgreSQL, и наши специалисты уже прочитали их во многих городах России, материалы курсов свободно доступны для всех желающих. На сайтах кадровых агентств только по Москве открыто более 500 вакансий по PostgreSQL — вслед за «Яндексом», НИИ «Восход», «Роснефтью» и Avito многие компании начинают осознавать потребность в соответствующих специалистах.

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

Однако в одиночку с проблемой нехватки кадров для индустрии ИТ не справиться — такая задача должна решаться на федеральном уровне. Например, необходима магистерская программа по созданию СУБД. Жизнь быстро меняется, нужны новые СУБД, и их надо научиться делать самим, а для этого требуется соответствующее образование, правильно форматирующее мозги. Пока же качество выпускников очень низкое: они неспособны мыслить самостоятельно как разработчики, часто пытаются решать задачи путем поиска аналогов в Сети, разучились концентрироваться на чтении и бегают по ссылкам — но таким образом новое знание не появится. Можно было бы, конечно, приглашать зрелых специалистов, поработавших с зарубежными коммерческими СУБД, однако такие люди зачастую отождествляют себя с той или иной «крутой» СУБД и не всегда готовы перейти с удобного, теплого места в молодую компанию.

Какой имеется опыт миграции на PostgreSQL?

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

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

Что сегодня происходит в мире СУБД в целом?

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

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