Конспект подкаста с Олегом Бартуновым «Современное OSS через призму развития Postgres»

схема эволюции опенсорса по мотивам подкаста

Тема опенсорса всегда была сложной. Слишком много как слепых фанатиков, так и откровенных хейтеров этой идеологии. Поэтому, авторы подкаста «Linkmeup» решили обсудить текущее положение дел в мире открытого софта с Олегом Бартуновым из Postgres Professional. Он видел, как зарождается опенсорс в России, он тридцать лет занимается разработкой постгреса и сумел построить на этом успешную компанию.

Подкаст вышел 13 октября 2023, продолжительность 1 час 32 мин.

Комментарий от себя

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

Postgres Pro как раз входит в этот список. И ранее уже приходилось читать интервью с Олегом Бартуновым. Часть тезисов из них повторяются в данном подкасте и мне знакомы. Но печатные интервью — это все-таки выхолощенный информационный продукт. Они не передают живость и весь контекст разговора, да и просто более ограниченные по размеру.

А здесь получилась хорошая и обширная беседа, затрагивающая многие неизвестные мне ранее детали современного опенсорса. Поэтому заморочился не просто расстановкой тайминга у подкаста, но и подробным транскриптом-конспектом. Предпочитаю в личной Базе хранить подобные материалы в полном виде со всем контекстом.

———

00:30. Самопредставление Олега. Исторический экскурс: с чего начинал в OSS, ситуация с базами данных в СССР, причины создания компании.

  • Рассказывает про своё вхождение в сферу Баз данных в начале 90-х. Свою первую «open source» программу написал примерно в 78-м году.
  • Про дикую эпоху опенсорса ➜ Все по сути публиковалось как public domain. ПК в то время поставлялись в основном в университеты и совсем без прикладного ПО. Приходилось писать целиком всё своё, обменивались этими программами.
  • Зарождение массового коммерческого софта в 70-х годах. Появились первые потребительские ПК. Можно сказать, что началось всё с Microsoft (упоминают про открытое письмо от Билла Гейтса ➜ хотим деньги за софт).
  • Интересный момент: в СССР было порядка 17 своих баз данных и были свои научные школы, академики, проводились большие конференции.
  • Собственно, когда вместе с партнерами создавал компанию, то начал декларировать, что в стране надо создавать заново отрасль СУБД-строения. Но так как школы больше нет, а выращивать её надо десятилетиями, то возник хитрый план: взять сильный опенсорс-проект, внедриться в него, в хорошем смысле слова, и с его помощью сформировать рынок разработчиков в стране. А там и отечественные базы данных со временем сформируются.

09:45. Первая волна обсуждения текущей ситуации в OSS и войны лицензий.

  • Кейсы перевода OSS в закрытые продукты (корпорации массово покупают открытые проекты), покупка Red Hat — один из самых громких примеров.
  • Олег считает, что это закономерно. Законы бизнеса ведь о чем говорят: надо подмять под себя все что можно и диктовать свои правила. Бизнес понял, что основной драйвер развития технологий — это опенсорс, вот и подминает его под себя.
  • Почему Linux остаётся независимым ➜ Всем игрокам на рынке это выгодно, никто не хочет, чтобы его кто-то один подмял (это помимо GNU лицензии, нечего и не у кого покупать :0). Сам по себе он стал противопоставлением монополии Microsoft, как минимум, на рынке серверных ОС.
  • Влияние «облаков» и корпораций на индустрию ➜ Смена проектами открытой лицензии на вариант с ограниченным использованием, чтобы корпорации не могли на них зарабатывать.
  • К OSS пропало доверие, «мы всегда будем открытыми» — это стало теперь заманухой, а не данностью. Типична ситуация «open source одной компании»: чтобы привлечь людей, создать сообщество. Но все решения по проекту принимаются только внутри компании, и с какого-то момента эта компания меняет лицензию, чтобы начать зарабатывать деньги.
  • Опенсорс-сообщество покричит, но ничего сделать не может. Максимум, делают форк и грустно потом на него смотрят, потому что никто в него не приходит разговаривать и коммитить.

19:50. Почему Postgres остаётся независимым и в чём коммерческий смысл для таких компаний как Postgres Pro.

  • Рассказывает про принципы сообщества, которые соблюдаются уже более 20 лет: жёстко опенсорс и независимость. Большинство ключевых разработчиков, Core Team, в нём ещё с 2000-х годов. Можно сказать, что это сообщество упёртых хардкорных опенсорсников. Новое поколение разработчиков, пришедших в community, придерживается схожих взглядов.
  • Разобрали один из последних конфликтов в сообществе вокруг торговой марки Postgres в США (скорее недоразумение). Но мы живем в реальном мире и работаем с реальными людьми, так что это обычная суета жизни.
  • Компаниям, которые сформировались вокруг Postgres, очень выгодна его независимость. Это проект, у которого нет реального владельца (лоббиста), который мог бы продавливать свои интересы в ущерб другим. Там просто нечего покупать :0)
  • В целом считает, что такие проекты как Linux и PostgreSQL ➜ идеальная модель будущего Open-source. Когда всем взаимовыгодно. Путь, по которому опенсорс может выжить, в хорошем таком виде.
  • Опенсорс софт сейчас на столько сложный, что его ни одна компания в одиночку развивать не в состоянии. Postgres-centric компаниям выгодно свои наработки возвращать обратно в сообщество и важно, что они возвращают их под лицензией PostgreSQL. Они отдают свои наработки (фичи), а в ответ получают такие же наработки других компаний и поддержку сообщества (если попробовать перевести это в «время | деньги», то получим огромные цифры).
  • В чём коммерческий смысл, на примере самой Postgres Pro:
    • У них свой закрытый форк, который они продают своим клиентам. С большим количеством доработок ванильного Postgres.
    • Общедоступный вариант этих доработок появляется в ядре Postgres с запозданием ➜ Сложный регламент согласования патчей, зафиксированный в Кодексе сообщества. Зачастую проходит несколько лет (приводит пример с 64-битными транзакциями). А своим клиентам в закрытом форке всё это время поставка и исправления идут.
    • Это замедляет разработку ванильной версии Postgres, но это замедление является тем самым необходимым условием для развития компании и для развития самого опенсорса ➜ «Необходимая цена опенсорса» (29:15).
  • Если кто-то из мажорных компаний-контрибьюторов попытается перетянуть одеяло на себя и в обход правил что-то коммитить — это приведёт к разрушению всего сообщества. Так что, статус «major contributor» в этом плане особых привилегий не даёт.

30:25. В общих чертах рассказывает как выстроена работа в сообществе Postgres.

  • Ежегодные девелоперские совещания мажорных разработчиков ➜ Определяют основные направления разработки, обсуждение патчей.
  • Регулярный общий Commitfest (обсуждение) ➜ Эх, приходится слушать мнения каждого условного «Васи». По статистики этих коммитфестов можно посмотреть как Патчи (новые фичи) переносятся из одного в другой (выпуск затягивается).
  • Сообщество Postgres стало сейчас похоже на большую корпорацию. Это объективно необходимый процесс. В конце 90-х ещё работали по принципу «базара», когда кто угодно и как угодно мог закоммитить свое исправление. Но с 2004 года пошла формализация, так как появились коммерческие интеграторы ➜ Появились обязательства перед клиентами. Тогда и появились все эти совещания, Commitfest, выделенные ревьюверы патчей и т.д.

34:30. Типичные проблемы более мелких open source проектов.

  • Классика: разработчик очень популярного проекта, который массово используют, в том числе, компании, не может собрать вообще никакого финансирования.
  • Для маленьких проектов, которые очень легко форкнуть, так как кодовая база маленькая, такая ситуация была и будет типичной. Только с определенного масштаба проекта начинают действовать другие закономерности.
  • Чёткая позиция Олега: опенсорс — это, в первую очередь, всё-таки не про деньги. Это про «ты удовлетворяешь свои собственные интересы». Это про самореализацию. А когда твои интересы начинают совпадать с интересами других людей, тогда появляется какая-то поддержка.
  • Есть и обратные ситуации: разработчик становится заложником своего проекта, ему крупные компании даже платят за его поддержку деньги, но он в золотой клетке. В качестве примера приводят Curl. Основатель знает, что он теперь до конца жизни будет вынужден заниматься этим проектом. И он теперь «всем на свете должен» 🤣
  • Здесь на самом деле «синдром вахтера». Он сам такой выбор сделал. Либо надо принять и успокоиться, либо самому что-то менять. Ты не воспитал себе замену, ты не воспитал сообщество, которое помогало бы. Это нельзя считать полноценным опенсорсем, не должно быть жёстких завязок на одного человека.
  • Есть несколько инициатив (проектов), которые пытаются автоматизировать оценку «меры твоего вклада в разработку». Чтобы потом из каких-то общих фондов можно было автоматом распределять деньги среди мейнтейнеров. Во что это выльется — пока непонятно.

41:50. Как резюме предыдущего пункта. Есть мелкие и большие проекты. Если у тебя мелкий ➜ Человек должен иметь основное место работы.

  • В идеале ты должен устроиться в компанию, которая разделяет принципы опенсорса и помогает.
  • Есть десятки способов как компания, зарабатывающая на опенсорсе, может поддерживать сообщество. Есть своего рода заветы: помогать сообществу, стимулировать своих сотрудников к этому, заниматься образованием, поддерживать важные для сообщества разработки и т.д.
  • Например, как устроена типичная postgres‑центричная компания: она выполняет свои коммерческие задачи, обслуживает клиентов, но несколько человек Full-time заняты полностью open source.

47:00. Россия — это полигон для тестирования Postgres на экстремальных нагрузках.

  • По проникновению цифровых сервисов Россия один из явных лидеров в мире: социальные сервисы, банки и т.д. Вся эта нагрузка в конце концов ложиться на базы данных. У нас в стране реализованы наиболее масштабные проекты с использованием Postgres, которые сложно представить в какой-то другой стране: в Казначействе РФ, Центробанке, ИФНС.
  • Поэтому Postgres Pro приходится идти немного впереди всего остального сообщества. Люди часто спрашивают: «Откуда вы взяли такое гигантское количество процессоров, транзакций? Зачем вам это нужно?». Но проходят годы и предложенные компанией патчи становятся повсеместно востребованными.
  • Олег считает это одной из миссий своей компании. Они идут немного впереди, но и сообщество вслед за ними немного подрастает. Типичное использование Postgres в остальном мире — это какие-то интернет-сервисы, магазины, то есть, небольшие проекты. А реально большие проекты, в которых заложена большая ответственность — это Россия.
  • Мы доказали всему миру, что сфера применения данной базы данных гораздо шире. И мы показали, что есть жизнь без Oracle (хотя никто в мире в это не верил).

50:25. Обсудили специфику «тяжелых» решений типа Oracle в сравнении с Postgres. Здесь хватает мифов и привычек.

  • Типичный фидбэк от пользователей, что Oracle и аналоги так дорого стоят как раз из-за того, что из под коробки оптимизированы под highload. А Postgres надо самостоятельно под те же задачи настраивать (платить экспертам).

  • Хороший ответ от Бартунова: «Если быть совсем циничным, коммерческой компании, такой как Postgres Pro, не выгодно сделать идеальный Postgres, который вообще не будет требовать поддержки» 😆

  • А если серьезно, то все зарабатывают на поддержке и своей экспертизе:

    • Тот же Oracle, как компания, основные деньги получает с поддержки, не такая уж у него и «коробка».
    • Первый совет, который дают любому Open source проекту — зарабатывайте на поддержке.
  • Привел пример с Московской областью, которая уже 8 лет как заменила Oracle в своей системе документооборота (500к пользователей). Разработчики системы при старте как раз убеждали, что это невозможно сделать, но в итоге за 3 месяца документооборот был переписан :0) А проблемы и вопросы, которые при этом возникли у разработчика, были совсем дурацкие.

  • Со своей стороны, Postgres Pro готовит сейчас решения, которые как раз позволят снять основные возражения (например, неубиваемый кластер).

55:30. Система с положительной обратной связью ➜ Про требования сообщества и взаимную пользу от взаимодействия postgres-компаний с ним.

  • Требования сообщества очень высокие. Просто так, даже если это очень крутая фича, сообщество её не возьмет. Потому что надо будет потом выпускать багфиксы, поддерживать документацию и т.д. Это большая работа.
  • Но в ходе обсуждения и совместной работы над фичей, по опыту Бартунова, она практически всегда становится лучше.
  • Компании выполняют роль своеобразного тарана и лабораторной площадки. Как раз за счет того, что по развитию они чуть впереди сообщества. Но потом их наработки отдаются в сообщество для обкатки.
  • Интересный момент, что vanilla — это, с одной стороны, главный конкурент postgres-компаний, а с другой, стимулятор продаж. Компаниям постоянно приходится показывать клиентам, что их форк лучше ванилы.
  • Опять повторился про идеальную модель опенсорса (Linux и PostgreSQL). Что касается мелких проектов, они, к сожалению, так и останутся мелкими. Если только не найдут компаний-спонсоров. Должны все-таки опенсорс-компании в один момент подписать что-то вроде хартии. Обязательство поддерживать опенсорс, чтобы он оставался опенсорсом.

59:30. Война лицензий. И все хотят кушать (отсюда псевдо-опенсорс).

  • Сейчас при создании опенсорс-проекта просто не реально разобраться какая у него будет конечная лицензия, для этого нужен специализированный юрист.
  • Разработчик просто хочет использовать те или иные готовые сторонние библиотеки и писать удобно программы. Но когда начинаешь собирать проект, у тебя десяток библиотек в нём: у каждой своя лицензия, есть кросс-лицензии (сторонние компоненты в этих библиотеках), есть несовместимые лицензии. В итоге, получается настоящий клубок. И это реально тормозит работу проекта.
  • Эта ситуация уже критическая. В конце концов, должен произойти какой-то качественный скачок, иначе все погибнет.
  • Массовое использование BSL-лицензий крупными проектами — вершина современного опенсорса. Об этом уже говорили в начале беседы, что доверять опенсорс-проекту, в котором только одна компания, уже тяжело. В обществе пропало доверие. Люди прямо говорят, что опенсорс практически перестал отличаться от закрытого софта. И по многим параметрам это так.

01:03:40. Рассказывает про эссе Эрика Рэймонда «Собор и базар» (один из авторов open source инициативы). И во что она трансформировалась.

  • Эссе лучше самому прочитать. В нём сравниваются модели разработки закрытого ПО и опенсорса. В таких проектах как Postgres, это теперь трансформировалось в «соборный базар».
  • И такая модель единственно работоспособная. Иначе, это превращается в BSL. Когда у тебя под полным контролем продукты с миллионами пользователей, то очень трудно удержаться от соблазна заработать с каждого хотя бы по доллару (тем более, если это делают другие на твоих же продуктах).
  • Как итог. Людям теперь проще сразу выбрать закрытый аналог, где все будет без сюрпризов, чем непонятный опенсорс. Либо они ищут продукты, аналогичные по модели развития и уровню Postgres (но таких мало).

01:06:50. Аналогия с зарождением интернета 30 лет назад, текущая ситуация с опенсорс очень похожа.

  • Когда интернет только зарождался — были очень радужные настроения среди разработчиков. Что в отличии от мира оффлайна, где царят рынок, корпорации и деньги, в онлайне будет свобода и общение без границ. А потом пришли корпорации, бизнес. И интернет подмялся, превратился в «место, где мы тратим деньги». И мы уже привыкли к этому. Что-то подобное сейчас происходит с open source.
  • Надежда на что. Все крупные коммерческие разработчики сейчас критично зависят от опенсорс проектов (ОС, библиотеки, компиляторы и т.д.). И в их интересах, чтобы такой опенсорс оставался независимым, а не контролировался какой-то одной компанией. Иначе всегда может прийти конкурент и перекрыть тебе кислород. По этой причине они станут сами лоббировать развитие опенсорс-сообществ по модели Postgres и Linux.

01:08:40. Про зрелость community. И как это влияет на дискриминацию по политическим и иным мотивам.

  • В 2022 году действительно были массовые громкие случаи дискриминации российских разработчиков и пользователей со стороны опенсорс-проектов. В самых разных вариантах.
  • В Postgres подобные вещи регулируются на уровне кодекса (правил поведения сообщества), поэтому и в 2014, и в 2022 году никаких эксцессов не возникло. Шумиху отдельные личности пытались поднять, но сообщество их быстро заткнуло. Олег рассказал как это происходило.
  • Если же сообщество незрелое, либо контролируются одной компанией, тогда возможно все что угодно. Здесь большую роль играет вес самих контрибьюторов, какой вклад они вносят в работу сообщества.

01:13:20. Эволюция опенсорс-проектов. Социальная ответственность мейнтейнеров.

  • Дело не только в таланте разработчика, что один раз написал программу и теперь сидишь и ее поддерживаешь, важны и социальные качества, чувство ответственности. Ты должен думать о будущем проекта, как минимум, воспитать себе замену.
  • Множество хороших проектов загнулись как раз из-за безответственности их мейнтейнеров. Но это стандартный процесс эволюции. Что-то появляется, что-то умирает.

01:16:10. Десятина ➜ Такие компании, как Postgres Pro, зарабатывающие на OSS-проектах, должны вкладываться в развитие опенсорс.

  • И Postgres Pro всегда готов помочь. В том числе, и через этот подкаст доносит эту мысль. Понятно, что предварительно оценят проект: какую пользу он может принести и на сколько мейнтейнеры в состоянии его развивать. Но это логично, про разбрасывание денег никто и не говорит.

01:18:20. Размышления о будущее Open-source в целом и в России, в частности.

  • Индивидуальный опенсорс точно не умрёт (пришла идея, пошел пилить проект). Но сейчас очень не хватает инструментов, которые позволят отбирать перспективные проекты. Чтобы, например, опенсорс-центричные компании могли быстро найти те проекты, которые им стоит поддержать (по интересному им профилю).
  • Проектов миллионы и каждый день тысячами появляются новые, вручную их отслеживать и отбирать не реально. Для этого и нужны инструменты.
  • В будущем возможно появятся специализированные фонды, которые будут работать именно с классическими опенсорс-проектами (в противовес венчурным фондам).
  • В России в целом есть негативный тренд, что мы больше являемся потребителями, а не создателями в данной сфере. Опенсорса мы используем очень много, но сами известных на весь мир опенсорс-проектов создали несопоставимо мало. Те проекты, что известны, созданы в основном корпорациями.
  • Не хватает чисто организационных вещей. Например, у нас зачем-то занялись написанием собственной лицензии (Государственная Опенсорс Лицензия :0) Что явно не приоритетная задача, в мире и так хватает хороших вариантов лицензий.
  • А приоритетная задача — это прививка опенсорса молодежи. Например, в Бельгии проводят для европейской молодежи гигантскую бесплатную конференцию FOSDEM. Бартунов в ней много раз участвовал и всегда дико завидовал, что у нас такого нет. У нас есть только коммерческие конференции, где берут по 20–60 тысяч за участие, что сложно назвать опенсорсом.
  • Государство может простимулировать деятельность в данной сфере, но скорее опосредовано (опенсорс — это все-таки больше про людей). Как вариант, через те же налоговые послабления для компаний, которые могут скидываться в общий негосударственный фонд опенсорса. А тот уже занимался бы проведением конференции по примеру FOSDEM, устраивал смотрины для опенсорс-проектов, практиковал опенсорс в университетах и т.д.

01:25:10. Подбиваем итоги.

  • Будущее OSS ➜ Возможна очень сильная трансформация рынка (если народ прозреет). Опенсорс не умрет, просто ждем его взросления.
  • Linux Core и Postgres ➜ Как образцовая модель развития опенсорс-сообществ в формате «соборного базара». Когда нет явного лидера или единого владельца у проекта, а сформированным вокруг него коммерческие компаниям выгодно поддерживать независимость сообщества.
  • Бартунов надеется, что начнут появляться фонды, которые будут помогать обычным мейнтейнерам в небольших проектах жить и развиваться.