С вами директор Мегаплана Сергей Козлов.
Несмотря на то что гаражная версия нашей CRM была рождена с использованием MySQL, первые пользователи пришли в систему, когда она работала на PostgreSQL. Самое ценное, что у нас есть, — это данные, и мы не можем хранить их в чем‑то ненадежном, молодежно‑хипстерском, с коротким сроком жизни или раздираемом бюрократическими склоками. Мы выбрали PostgreSQL и ни разу ему не изменили. Как и он нам.
Мы были очень рады, когда генеральный директор Postgres Professional, ведущий разработчик PostgreSQL Олег Бартунов согласился поговорить с нами об открытом ПО и новых вызовах, которые сейчас стоят перед разработчиками и пользователями, а еще о том, как большие данные помогают науке и в космических одиссеях.
Слово Олегу Бартунову.
Как устроен Postgres (спойлер: по законам рынка)
Наша компания Postgres Professional работает сразу в двух направлениях. Уже 8 лет мы одновременно развиваем коммерческую СУБД Postgres Pro и open source СУБД PostgreSQL, или просто Postgres с открытым исходным кодом. Когда‑то нас в этом упрекали, но история Postgres доказала, что это единственный правильный способ развивать open source решения.
Вплоть до 1994 года Postgres был академическим проектом, разработанным студентами и выпускниками университета Berkley под руководством Майкла Стоунбрейкера. В 1994 году Стоунбрейкер открыл исходные коды системы. С этого момента вокруг Postgres стало активно формироваться международное сообщество разработчиков. Сначала сообщество было совсем небольшим и состояло из энтузиастов, которые использовали систему для решения собственных задач, чаще всего научных — например, для изучения сверхновых звезд, как я. Если какой‑то функциональности не хватало, любой участник сообщества мог добавить ее самостоятельно, как принято в open source культуре. Именно так и развивалось сообщество, при этом участники не получали за эту работу ни копейки.
В 2000-х годах, по мере того как сообщество росло, вокруг Postgres стали появляться postgres‑центричные компании, которые начали предлагать свои услуги и продукты на базе этой СУБД. Они были заинтересованы в развитии системы, поэтому начали нанимать контрибьюторов open source. Появление первых крупных заказчиков в 2010-х годах сильно стимулировало этот процесс.
В итоге уже к 2015 году большинство главных разработчиков сообщества работали на крупных коммерческих игроков. С этого момента именно компании стали определять развитие Postgres: они разрабатывают новые патчи, тестируют их, внедряют в свои коммерческие решения, а затем возвращают их в open source. Сообщество, в свою очередь, поддерживает код, оценивает и принимает (или не принимает) предлагаемые компаниями патчи. Благодаря такой трансформации Postgres стал профессиональной СУБД — системой, форки которой используются для решения задач коммерческих клиентов.
Теперь Postgres развивается по законам рынка и за счет большого экспертного open source сообщества является одной из самых популярных и эффективных СУБД в мире. Что ждет Postgres дальше? Это большая интересная тема для отдельного разговора.
Не все так просто с open source
Многие считают, что open source — панацея от любых проблем, однако на деле это не так. Такое ПО действительно имеет ряд серьезных плюсов. Например, отлично подходит для образовательных целей: позволяет людям заглянуть под капот больших систем. Open source также хорош, чтобы запустить проект, протестировать его и показать миру, на что ты способен. Однако с использованием в коммерческом секторе не все так просто. Как показывает практика, open source решения опасно использовать без наличия поддержки на уровне ядра в критических системах. Серьезный энтерпрайз требует серьезного подхода: обеспечения повышенной безопасности, сертификации продукта, дополнительных фич, доработки в области производительности. Именно за это крупные коммерческие заказчики выбирают enterprise‑версии.
Демократичность сообщества — тоже палка о двух концах. С одной стороны, каждый пользователь может предложить любую доработку, получить обратную связь, подискутировать и даже прийти после обсуждений к новым интересным идеям. С другой стороны, каждый коммит требует согласия членов сообщества, а сообщество консервативно и не всегда охотно принимает новые фичи. Часто, чтобы отстоять свою позицию, требуется потратить большое количество сил и, главное, времени. При этом скорость — критичный показатель для коммерческих компаний, клиентам которых нужен быстрый результат.
Живой пример — востребованный у заказчиков Postgres Pro Enterprise патч 64-битных счетчиков транзакций, он нужен компаниям, которые совершают сотни миллионов транзакций в день. Мы успешно внедрили его и используем в enterprise‑версии, при этом в open source сообщество мы стараемся его отдать вот уже несколько лет. Все из‑за того, что каждый человек может в любой момент поднять руку и сказать: «мне не нравится эта реализация», «не думаю, что эта фича будет востребована», — и запускается новый виток дискуссий. Такие ограничения и мотивируют коммерческие компании активно развивать свои версии.
И все же сотрудничество сообщества с коммерческими компаниями — взаимовыгодный процесс, где каждый отдает и каждый приобретает. Например, сообщество замечает какие‑то баги, мы исправляем их, и наши клиенты получают более стабильную версию коммерческого продукта. В то же время сообщество получает ряд объективных улучшений, которые делают работу с продуктом еще быстрее, проще и легче.
Как будет развиваться СУБД
PostgreSQL — это мировой тренд. Как показывают графики, популярность этой СУБД растет гораздо быстрее, чем популярность Oracle, Microsoft или MySQL. Чтобы Postgres продолжил и дальше укреплять свои позиции, важно постоянно его совершенствовать. Есть два базовых направления развития, которые будут актуальны всегда: горизонтальное и вертикальное масштабирование. Горизонтальное — возможность сервера работать при увеличении количества данных. Вертикальное — стабильная работа сервера при все большем количестве запросов.
Наряду с этим очень важно упрощать систему в использовании — делать ее доступней для обывателя. Почему это важно? Информационные технологии давно стали частью жизни любого из нас, при этом количество ИТ‑экспертов (настоящих профессионалов, которые могут разобраться в «кишках» решения) снижается, и этот тренд будет все более выражен, в том числе и в СУБД. Сейчас, чтобы работать с базой данных, пользователю нужно знать массу всего. Например, Мегаплан производит продукт, который является интерфейсом между пользователем и информацией. Разработчики системы должны писать заумные многоэтажные SQL‑запросы, уметь оптимизировать их, думать о том, как сделать работу системы более устойчивой, как масштабировать сервер с ростом запросов и решать другие задачи.
В свете растущей популярности low code / no code разработки, база данных должна предъявлять минимальные требования к разработчикам приложений. В будущем СУБД должна стать такой же простой, как и телефон: управляться голосом, предугадывать дальнейшие шаги пользователя и давать подсказки.
Другая важная задача для всех СУБД — сочетать производительность и масштабируемость базы c высокой степенью защиты от компрометирования и несанкционированного доступа. Реляционные базы данных уже сейчас могут обеспечить очень высокий уровень безопасности. В частности, Postgres Pro Enterprise включает функции, обеспечивающие максимальную надежность системы и безопасность данных, благодаря чему ее активно используют даже в объектах критической инфраструктуры федеральных информационных систем. Безопасность и надежность СУБД — то, за что нас ценят наши заказчики, и мы стремимся постоянно повышать этот уровень.
Есть и перспективные направления разработки. Ими важно заниматься, чтобы компания видела новые горизонты для развития, мыслила реалиями не только сегодняшнего, но и завтрашнего дня. Для таких направлений у нас в Postgres Pro есть целая лаборатория. Многими из таких разработок мы делимся с сообществом. Например, эффективными способами работы с неструктурированными данными (JSON, JSONB), TOAST, умными методы индексирования (smart индексы) и другими.
Последнее, но не менее важное направление — создание возобновляемого кадрового резерва системных разработчиков. Развитие любой СУБД возможно только при условии достаточного количества квалифицированных специалистов. Чтобы создать такую кадровую базу, мы активно занимаемся отбором и выращиванием студентов: сотрудничаем с вузами, запускаем конкурсы, организуем стажировки, разработали программу роста молодых специалистов внутри компании. Системные разработчики — это особый тип людей, умеющих работать на перспективу и фокусировать внимание на долгосрочных задачах, результат которых может быть виден через месяцы, а то и годы. Найти или вырастить таких — непростая задача. Мы гордимся тем, что справляемся с ней, и планируем активно увеличивать штат и дальше.
Как IT-рынок пережил 2022 год
Один из постулатов open source сообщества — равные возможности для всех участников, независимо от страны проживания, политических взглядов, религии и других факторов. Конечно, определенные дискуссии были, однако PostgreSQL сообщество признает огромный вклад россиян в СУБД, поэтому санкций против нас не ввели. Мы остаемся частью международного сообщества и продолжаем работать вместе на благо open source.
В России уже появилось около десяти российских СУБД на базе PostgreSQL, поэтому нас и правда можно назвать «родиной слонов». С одной стороны, такая конкуренция — большой плюс: она полезна для рынка, поскольку помогает развивать качество продукта, а нам как ведущей СУБД на рынке — не бронзоветь. Проблема в том, что в последнее время появились «вендоры», которые создают не новые качественные форки, а лишь модификацию ОСПО с незначительными доработками, клеят на продукт свой шильдик и пытаются продать.
Работа настоящего вендора, напротив, подразумевает серьезные изменения ядра продукта. Вдобавок она выходит далеко за рамки продажи решения. Как минимум нужно тестировать ПО на всех железных и софтверных платформах, под разные процессоры и кучу информационных систем. На нашей ферме, например, тесты запускаются каждые пять минут. Тесты и релизы под разные архитектуры позволяют найти баги. А в нашем деле они могут быть очень серьезными вплоть до утечки данных. Всего же за 2022 год мы выпустили свыше 49 000 пакетов релизов СУБД и расширений. Обладает ли всем этим набором функций новоиспеченный «вендор» — сложный вопрос. В любом случае важно десять раз подумать, прежде чем использовать малоизвестную СУБД в коммерческой компании.
Сейчас не время снимать пенки, плодить клоны и распылять силы на соперничество. Важно объединять усилия, развивать компетенции и продукт, растить качественные полезные проекты, делиться опытом и знаниями. Хорошим решением могла бы стать конференция, где разработчики смогли бы сравнить решения по гамбургскому счету: открыто рассказать про свои «ядерные» патчи, показывать тесты, бенчмарки и другое.
А какие прогнозы?
Мы пережили прошлый год довольно хорошо: с выручкой, прибылью и оборотами все в порядке, мы продолжаем активно расти. Отдельная гордость — расширение штата. За 2022-й мы набрали около 60 человек, к нам пришла группа технических специалистов из Oracle во главе с Марком Ривкиным. Это знак рынку, что наша компания — лидер, которому доверяют. Конечно, не обошлось и без потерь: некоторые сотрудники покинули Россию, но их можно пересчитать по пальцам одной руки.
Сейчас у нас важная миссия — обеспечивать технологическую состоятельность России. Если страна считает себя независимой, то у нее должен быть собственный софт, по крайней мере системное ПО. Последние 7 или 8 лет санкций — особенно недавние события — выдвинули российский Postgres в мировые лидеры по использованию в системах федерального масштаба. Больше ни в одной стране Postgres не применяется так активно, так широко и в таких больших нагрузочных системах. Среди наших клиентов — крупнейшие системы федерального уровня, которые работают 24/7.
Кроме того, сегодня российское сообщество является самым большим сообществом Postgres в мире, а мы — одна из ключевых компаний, развивающих его. Каждый год Postgres Professional отправляет в PostgreSQL больше 100 патчей — например, в выпуске PostgreSQL 15 приняло участие 27 наших сотрудников.
В будущее я смотрю с оптимизмом. Перед нами открылось окно возможностей, которое важно использовать для развития — не просто заместить ушедших конкурентов, а стать лучше. И если не будет серьезных внешних потрясений, мы с этой задачей обязательно справимся.
Как технологии помогают науке
Астрономия — наука данных, и когда их стало много (а это случилось гораздо раньше, чем в промышленности или любой другой отрасли, поскольку звезд на небе больше, чем вообще всего), мы писали свои маленькие программки по обработке и поиску данных. Тогда я обнаружил, что существует целый мир баз данных, который поможет мне в работе.
Раньше я занимался изучением сверхновых — это звезды, которые взрываются в других галактиках. Сейчас несколько раз в неделю я хожу в ГАИШ (Государственный астрономический институт им. П. К. Штернберга при МГУ), общаюсь с коллегами, помогаю, чем могу. Кстати, сотни терабайт данных хранятся у нас именно на Postgres. А некоторые постгресовые индексы небесных тел, над которыми мы работали для эффективного поиска астрономических данных, используются в астрономических проектах по всему миру.
Иногда с грустью вспоминаю, как ночами сидел с телескопом, вставлял в него огромные фотопластинки, наводил вручную, делал снимки, а затем проявлял изображения. Это была романтика. Привычка смотреть на небо у меня осталась и сейчас, но в телескоп я уже давно просто так не смотрю, разве что детей удивить. Я, например, перед Новым годом внукам и детям показывал звезду на шпиле университета. Дети кричали: «Вау, какая она, оказывается, ледяная и заснеженная» — и тут же фотографировали на телефон, чтобы рассказать об этом в каком‑нибудь блоге.
Астрономы все еще ездят в обсерватории, но многие наблюдения происходят удаленно. Например, у ГАИШ по всему миру развернута сеть телескопов‑роботов «Мастер». Она автоматически сканирует небо для обнаружения новых объектов. Все это происходит прямо в базе данных в Postgres. Эдакая машина по открытию новых объектов.
Для работы астрономы пользуются Linux и Postgres. Еще нужны сервисы по обработке изображений, их сегодня разрабатывает много любителей. А научные статьи пишут в LaTeX — это популярная во всем научном мире программа, там удобно строить графики и писать формулы.
Какими бывают большие данные
Если раньше мы писали формулы и теории, а потом при помощи их объясняли открытия, то теперь наоборот: мы ищем закономерности в больших данных, идем от информации. Поэтому серьезные научные открытия сегодня происходят на стыке наук. Например, открытие тех же самых гравитационных волн было сделано при помощи больших данных.
Большие данные — вещь относительная. Никакой конкретной цифры не существует. В целом под ними можно понимать любые данные, систематизировать и обработать которые вы не можете с помощью обычных инструментов. Посмотрите на любого блогера: он генерирует кучу данных, в его телефоне десятки, а то и сотни гигабайтов изображений и видео. Если он не может обработать их с помощью подручных средств, их вполне можно считать большими данными.
Опять же все относительно. Например, оцифрованная Библиотека конгресса в США совсем маленькая, хранить ее у себя дома может любой. Телескопы, на которых работают в Америке, могут производить несколько десятков терабайт за одну ночь. А радиотелескоп, размер которого квадратный километр, будет производить петабайты.
О космическом настоящем и будущем
На мой взгляд, одно из важнейших недавних открытий — то, что Вселенная расширяется с ускорением, этот факт имеет большое значение для судьбы Вселенной. Возможно, люди еще недопоняли значимость этого открытия, но оно действительно колоссальное.
Многие открытия ученые давно предсказывали и писали формулы на кончике пера, но совершить их удалось только сейчас. Это, например, награжденное Нобелевской премией открытие гравитационных волн и полученное учеными изображение тени черной дыры. Еще хотелось бы отметить прогресс в поиске экзопланет, то есть планет, находящихся вне Солнечной системы. Раньше мы и мечтать не могли о том, что увидим планеты у других звезд. А теперь это реальность.
Мечты о космосе и внеземные цивилизации
Когда я вижу, что очередной миллионер полетел в космос, я за него радуюсь. Ведь он заработал столько денег, чтобы исполнить свою детскую мечту. Я бы и сам туда хотел попасть, чтобы посмотреть на Землю со стороны. Мне кажется, такое желание есть у каждого человека. Очень хочется взглянуть на черный космос своими глазами, потому красивые снимки — во многом результат обработки искусственным интеллектом. Из науки мы знаем, что там очень темно и блистают звезды. Когда я хожу в горы, ощущаю схожий эффект: если поднимаешься выше и выше, небо становится все темнее.
А еще человечеству всегда хочется быть уверенным в том, что мы не одиноки во Вселенной. В детстве я мечтал увидеть кого‑то, познакомиться, получить какие‑то халявные знания. Сейчас астрономы бьются в поисках экзопланет, которые по размеру, массе и близости к своей звезде похожи на Землю. Мы интуитивно ищем на других планетах внеземную жизнь в виде нас, похожих на нас. Нам кажется, что в таких же условиях появятся такие же люди, как мы. Хотя кто его знает.
Думаю, что мы еще не доросли до того уровня, чтобы нас вообще замечали. Какой смысл какой‑то внеземной цивилизации, которая прошла все эти «болезни роста», с нами контактировать? Даже если они дадут нам какое‑то важное знание, то мы не поймем, как его применить. Или, может, они будут нас учить, как надо жить? Но ведь мы не верим даже самим себе. Так что мы сами должны пройти тот путь развития, чтобы с нами стали общаться «по‑человечески».
OBIEESupport
Поправьте, пожалуйста, несколько опечаток.
И, общий вопрос по тексту, - где здесь open source продукт, где торговая марка и где общеупотребительное название базы данных. От этого текст сильно выиграет!
Спасибо Олегу и всей компании Postgres Professional за отличный продукт!
MegaplanCEO Автор
А вам спасибо за внимательность. Добавили несколько уточнений