Как развивается open source в Яндексе — рассказывает Сергей Бережной, devrel-директор и евангелист открытой разработки

от автора

На связи «Open source в России» [серия «бигтехи»], и мы продолжаем говорить о развитии организаций на базе открытой разработки. На днях я написал @veged с предложением обсудить open source-проекты Яндекса и все, что с ними связано в компании. Сергей поделился историческими подробностями, рассказал о работе с сообществом и в целом об отношении к open source в Яндексе. В итоге у нас получился один из наиболее подробных материалов из всей серии интервью.

Таймлайн с некоторыми open source-проектами Яндекса (скриншот)

Таймлайн с некоторыми open source-проектами Яндекса (скриншот)

История развития открытых технологий в Яндексе начиналась 15 лет назад с методологии веб‑разработки БЭМ (блок-элемент-модификатор). Возможно, в компании еще осталась информация о том, как и зачем ее вывели в опенсорс? Ставили ли перед собой тогда конкретные цели или просто экспериментировали?

Опенсорса у нас так много, что я могу не знать абсолютно всего. Даже с учетом 19 лет работы в компании и фокусировке на опенсорсе в настоящее время. Но к БЭМ я как раз имею отношение, потому что являюсь одним из двух соавторов методологии.

Было бы несерьезно говорить о метриках результативности на момент запуска БЭМ. Потому что в то время Яндекс был другим, в том числе с точки зрения того, как далеко проникают такие метрики в те или иные сферы деятельности компании.

Хотя и в других организациях тогда плохо понимали, как адекватно измерять эффективность опенсорс-начинаний. Поэтому метрики мы тогда не внедряли.

Однако общее понимание того, что лучше делать вещи в опенсорсе, у нас уже было. Дело в том, что до появления БЭМ у нас был внутренний фронтендерский фреймворк y5, который мы в опернсорс так и не отдали. Мы долго обдумывали, делать это или нет, но все закончилось тем, что через некоторое время нам пришлось мигрировать на jQuery, который тогда стал более распространенным.

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

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

БЭМ в то время стала для нас способом унификации проектов внутри Яндекса. Мой коллега Виталий Харисов одновременно работал над многими проектами, аналогичная история была и у меня. Нам приходилось переключаться между разным наполнением и организацией проектов. Это было сложно и неудобно.

Новая методология (БЭМ) позволила смотреть на интерфейсы не через призму разных веб-технологий (HTML, CSS, JS), а через призму семантических блоков и компонентов. А уже внутри каждого такого компонента лежали соответствующие HTML, CSS и JS-фрагменты. Так вовлеченные в проект специалисты, которые редактируют такие фрагменты, могли лучше понимать, где и что лежит. И этот подход был универсальным.

Мы посчитали, что методология будет применима и вне компании. С учетом истории с фреймворком y5, мы решили отдать БЭМ в опенсорс, в том числе и для того, чтобы шире использовать БЭМ внутри Яндекса. Параллельно мы выпускали различные поддерживающие инструменты, чтобы раскрыть пользу БЭМ.


Справедливо ли говорить, что до середины 2010-х опенсорс-активности Яндекса были экспериментальными? Или их учитывали в стратегии компании?

На таймлайн не попало абсолютно все, что у нас есть. У нас есть несколько уровней опенсорс-проектов. Например, не только флагманские (ClickHouse, CatBoost, YDB и похожие по калибру), но и средние — с небольшими командами, но при этом востребованные в отдельных нишах. Есть и третий уровень, представленный side-проектами отдельных специалистов. Начинаний второго и третьего уровня у нас много.

Даже ClickHouse и CatBoost на старте были небольшими и сопоставимыми с проектами второго и третьего уровня, если брать по числу задействованных специалистов и ресурсов. А вот YDB был уже более развитыми и проработанным проектом, если смотреть на объем выложенного, еще до выхода в опенсорс. Его делала команда из нескольких человек и занималась этим несколько лет.

Хотя контрибьютерская активность (вклад в ядро Linux) у нас присутствовала еще при Илье Сегаловиче, можно сказать, что ClickHouse действительно стал первым большим опенсорс-проектом. Его также обсуждали на уровне CTO — тогда Михаил Парахин дал добро на выход в опенсорс. Были и другие небольшие проекты, но условно можно сказать, что начиная с ClickHouse мы активнее пошли в опенсорс.

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


Наиболее яркая фаза открытой разработки в Яндексе началась около десяти лет назад. Ты отметил ClickHouse и CatBoost. Как ты говоришь, это было началом своего рода более осознанной работы в опенсорсе. Как на тот момент компания видела развитие в этой области? Какие цели она ставила?

Эта история стала более видимой для руководства. Хотя явной стратегии не было. Было желание влиться в опенсорс-сообщество, а также тянуться к более высокому уровню качества за счет открытости. Кроме того, если в ядро Linux контрибьютило не так и много специалистов, другие очень хотели отдать свои решения в опенсорс.

Это было важно для большого числа разработчиков в Яндексе. Как в том комиксе про ученого и антиматерию, мы начали это делать, «потому что это круто». От руководства ощущалась скорее мягкая поддержка, не было жестких планов, а определяющей была и во многом остается активность самих специалистов.

Сергей Бережной, директор по взаимодействию с разработчиками и open source-евангелист в Яндексе (из архива компании)

Сергей Бережной, директор по взаимодействию с разработчиками и open source-евангелист в Яндексе (из архива компании)

На современном этапе ваших опенсорс-активностей (начиная с 2022-го года) появились специализированные программы поддержки и гранты, а спектр открытых технологий стал в разы шире и разнообразнее. Является ли это планомерным движением по ранее намеченной траектории?

Мы действительно в районе 2022–2023 года сдули пыль с нашей внутренней странички про опенсорс (появилась в районе 2010-го). Лейсан Зигангирова стала отвечать за эту историю со стороны маркетинга, а я — со стороны взаимодействия с разработчиками. Мы прописали, что и как у нас устроено в этой области, как может происходить выход разработок компании в опенсорс, какие для этого нужно собрать согласования и так далее. Тогда же появился сайт и программа грантов.


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

Работаете ли вы над повышением «видимости» открытых проектов среди такой аудитории? Если да, то как вы это делаете (используете ли для этого какие-то подходы, не связанные с рекламой в ее классическом понимании)?

Насколько важно потенциальным сотрудникам и тем, кто уже работает в Яндексе, видеть, что компания вкладывается в опенсорс?

Отвечу последовательно. Одной из областей моей ответственности являются взаимоотношения с разработчиками. Мы видим преимущества опеносорсинга с точки зрения органичного технологического PR за счет самих технологий. Кроме того, это — преимущества в поиске талантов. Когда мы показываем, на что способны специалисты в Яндексе, и за счет этого привлекаем единомышленников.

Открытая разработка позволяет реализовать все это.

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

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

Для разработчиков эта история значима. Если полагаться на мое восприятие настроений в компании, опенсорс-активности положительно воспринимает сильно больше половины специалистов. Они считают, что это показатель технологической компетентности компании.

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

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


Потребности контрибьютеров и сообщества могут отличаться от того, что необходимо вам самим для использования открытых технологий во множестве разработок и продуктов компании. Как вы подходите к изучению критичных для аудитории «хотелок»? Как адаптируетесь к меняющимся требованиям разнородных групп аудитории и балансируете их с тем, что необходимо делать в интересах развития технологий и бизнеса самого Яндекса?

Мы являемся коммерческой организацией и живем с выручки от различных бизнесов Яндекса. Поэтому, конечно же, для нас важно развивать свои технологии так, чтобы они помогали нам. Однако если говорить об открытой разработке, делая для себя, мы во многом опережаем и предвосхищаем «хотелки» сообщества.

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

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

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

Если говорить о других стейкхолдерах (например, партнерах и контрагентах компании), как они воспринимают опенсорс-проекты Яндекса?

Тут нужно разделить разные типы партнёров и их интересы, через которые они воспринимают наш опенсорс. Большинство «классических» бизнесов, которые у нас, например, покупают рекламу, не очень интересуются опенсорсом и это не входит в периметр наших деловых отношений. Но, например, для облачного бизнеса открытость технологий важна и является ожидаемой, т.к. она влияет на доверие и спокойствие клиентов, дает им защиту от вендор-лока. Кроме этого, легко представить себе компании, которые одновременно и сотрудничают с нами в «классических» направлениях, и используют внутри у себя наш опенсорс.


Принимают ли формальное участие в развитии открытых проектов Яндекса другие организации? Как организовано такое сотрудничество?

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

Но есть и удачные примеры. Например, недавно команда Yandex Research совместно с исследователями ISTA и KAUST разработала и опубликовала в свободном доступе новые методы сжатия больших языковых моделей. Они позволяют бизнесу сократить расходы на вычислительные ресурсы до восьми раз. Решение полезно корпорациям, стартапам и исследователям, которые запускают нейросети на своём оборудовании.


У вас распространено обучение аудитории. Вы выпускаете исследования, развиваете курсы и делитесь опытом на Хабре и других площадках. Как со всем этим связаны опенсорс-проекты? Как выглядят такие активности?

Мы учим с применением наших опенсорс-технологий, в том числе в рамках летних школ, когда делаем проекты в контексте открытых репозиториев Яндекса. Так мы используем опенсорс-проекты как своего рода тренировочную площадку.

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

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

Сергей Бережной (справа) на Yandex Open Source Jam с коллегами по открытой разработке (из архива компании)

Сергей Бережной (справа) на Yandex Open Source Jam с коллегами по открытой разработке (из архива компании)

За последние несколько лет опенсорс стал более динамичным с точки зрения лицензионной политики. Изменения лицензий повлияли на развитие многих крупных проектов. Как у вас обстоят дела с выбором лицензий?

У нас есть юристы, которые помогают нам с этими моментами. Но в целом мы воспринимаем опенсорс как максимально открытую для аудитории историю. Используем пермиссивные лицензии. Хотя на фоне кейсов со сменой лицензий (компаниями вроде MongoDB) для некоторых команд наших опенсорс-проектов выбор лицензии был критичен, и они потратили какое-то время на эти вопросы.

Нам важно, чтобы лицензии не сдерживали развитие аудитории проектов.

Отдаете ли вы в опенсорс исключительно зрелые проекты? Возможно, какие-то открытые технологии удается легче коммерциализировать?

В большинстве случаев мы не коммерциализируем открытые проекты напрямую.

Мы стараемся отдавать в опенсорс зрелые проекты, но есть и небольшие начинания. Это может быть проект одного специалиста, на который он тратил не так много своего времени. Также мы можем открыть проект отдела, над которым работали несколько лет.

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


Как развивается поддержка опенсорса в Яндексе на уровне организационных структур? Есть ли у вас open source program-офис?

Формально у нас нет open source program-офиса, нет выделенной структуры, но есть отдельные специалисты. Есть поддержка со стороны маркетинга, есть я со стороны разработки и экспертизы.

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

Могут ли опенсорс-евангелисты влиять на бизнес-модели и стратегию развития опенсорс-проектов?

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

Если смотреть на распределение ресурсов команд, многие ли сотрудники погружены в опенсорс-специфику и вовлечены в развитие открытых решений?

В целом сильно меньше 50%, но оценивать сложно. Все зависит от конкретных проектов. Например, если это — команда DataLens, то она практически вся так или иначе вовлечена в опенсорс. И так далее. Если это — пет-проект третьего уровня, где команда небольшая, то само собой вся она в курсе опенсорс-специфики. Но чем проект крупнее, тем активнее помогают менеджеры, которые читают фидбек от сообщества и ставят задачи.


Одно из ваших начинаний — это программы поддержки и гранты. Расскажите, как устроена работа над ними? Какие цели вы перед собой ставите?

Мы даем гранты по трем направлениям. По каждому у нас есть эксперты, которые оценивают заявки (минимум два эксперта). В итоге — отдаем облачные ресурсы.

Ставим целью поддержку опенсорс-сообщества. Нам это интересно, чтобы искать талантливых специалистов и способствовать формированию индустрии в целом.

«Ночь опенсорс библиотек», мероприятие Яндекса (из архива компании)

«Ночь опенсорс библиотек», мероприятие Яндекса (из архива компании)

Какие еще цели вы ставите перед собой в плоскости опенсорс-активностей?

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

Что уже дает опенсорс-подход Яндексу? Какими результатами вы гордитесь?

Мне кажется, наш технологический бренд на первых позициях в сообществе разработчиков с точки зрения привлекательности работодателя. Кроме того, по оценкам вклада компаний в опенсорс, нас также воспринимают в качестве лидера (см. например исследование от ИТМО, где Яндекс — лидер среди российских разработчиков опенсорс-решений). Кстати, эти моменты вполне можно отнести к своего рода измеримым целям, о которых ты спросил выше. Это образ компании-работодателя и компании, поддерживающей и принимающей участие в опенсорсе.

Готовитесь ли вы открывать новые проекты и технологии?

Есть знаменитая присказка о том, что Яндекс не раскрывает планы. Бывают исключения, но все-таки не хочется обещать, а потом не сделать.


ссылка на оригинал статьи https://habr.com/ru/articles/899376/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *