Шесть заметных и важных опенсорс-проектов из России
Справедливо ли говорить о существовании российского опенсорса? Единого мнения не существует — в конце концов, выделение локального сегмента противоречит самому определению ПО с открытым кодом. Тем не менее можно отметить инициативы и разработки, которые появились в России и получают наибольшую поддержку именно от российских разработчиков. Мы хотим рассказать о шести таких проектах — некоторые из них примечательны вкладом в международный опенсорс, тогда как другие концентрируются на социально важных проблемах и помогают развивать сообщество.
Этим материалом мы продолжаем проект «Исходный код», посвященный опенсорсу: его истории, философии, ключевым принципам, самым известным и важным разработкам, а также законодательству и лицензированию. Проект подготовлен при поддержке высокопроизводительного и масштабируемого российского веб-сервера Angie.
В материале об истории опенсорса в России мы упоминали некоторые отечественные проекты с открытым кодом. Многие из них появились еще до ухода зарубежных вендоров ПО, но с недавних пор интерес к ним усилился. Например, как в России, так и в других странах мира растет спрос на разработку и поддержку СУБДСистемы управления базами данных.. Одна из наиболее выдающихся компаний в этой сфере — это Postgres Pro.
В 1997 году патч Олега Бартунова, который обеспечил поддержку восьмибитной кодировки символов, приняли в СУБД с открытым исходным кодом Postgres. Это событие не только позволило использовать ее с данными на любых языках, но также стало первым шагом к созданию российского сообщества Postgres. В начале нулевых, когда новостной портал «Рамблер» посещали сотни тысяч пользователей в день, он выдерживал такие нагрузки именно благодаря Postgres.
Работа над этим проектом свела вместе трех разработчиков: Олега Бартунова, Федора Сигаева и Ивана Панченко. В 2014 году они основали компанию Postgres Pro. К тому времени в России сформировалось активное сообщество людей, которые коммитили в ядро Postgres. А среди российских компаний существовала потребность в собственных продуктах СУБД.
Однако сделать форк ядра проекта и добавить туда несколько требуемых функций — это, как правило, путь в никуда: ядро всегда опередит форк. Над ядром опенсорс-проекта зачастую трудится большое число энтузиастов и профессионалов, в то время как над форком — только команда разработчиков конкретного проекта. Поэтому скорость изменения ядра значительно быстрее, чем форка, и команда может не успевать синхронизироваться с ядром, если сама не вносит в него изменения. Команда Postgres Pro учитывает это, на протяжении всего существования вносит свои дополнения в Postgres и сейчас занимает второеПервое место у компании EnterpriseDB. место в мировом списке контрибьюторов.
Помимо создания решений для различных заказчиков, в том числе крупных корпораций, таких как Сбербанк и «Газпром нефть», и вклада в основное ядро, Postgres Pro развивает сообщество разработчиков. Компания проводит учебные курсы для студентов, участвует в программе «Код для всех», которая дает студентам возможность внести вклад в крупнейшие открытые библиотеки, а также выкладывает в открытый доступ обучающие курсы как по Postgres, так и по основам работы с СУБД в целом.
По похожему пути двигалась Arenadata. Компания взяла за основу MPP-систему с открытым исходным кодом Greenplum и не только разрабатывает на ней коммерческий продукт Arenadata DB, но и вносит изменения в ядра других важных проектов. Уже несколько лет подряд Arenadata, по данным аналитиков компании, занимает первое место в мировом топе контрибьюторов ядра Greenplum среди сообщества разработчиков.
Сегодня Arenadata — один из ведущих разработчиков платформы сбора, хранения и анализа данных в России. Она предлагает линейку программных продуктов с открытым исходным кодом, интегрированных в единую платформу Arenadata Enterprise Data Platform (EDP). Для Arenadata важно не только вносить свой вклад в развитие продуктов на базе открытого исходного кода, но и помогать изучать их. Поэтому компания проводит собственные учебные курсы, организует митапы и хакатоны, сотрудничает с вузами.
Уже на старте существования Arenadata мы понимали, как работать с сообществом и ядром проекта. Поэтому избежали ошибки многих российских компаний, загнавших себя в «ловушку форков», когда нужно вести параллельную разработку нескольких веток, не внося изменений в ядро. Подобные истории, как правило, плохо заканчиваются. Для нас же важно не только создавать собственные продукты, но и вносить вклад в развитие опенсорс-технологий.
До Arenadata многие наши сотрудники работали в крупных западных компаниях, которые в числе первых начали строить бизнес на базе открытого кода. Мы до сих пор поддерживаем с ними тесный контакт, а также перенимаем практики: наши разработчики неоднократно проходили стажировки в Калифорнии и Китае. Мы активно участвуем в развитии нескольких проектов Apache Software Foundation — Hadoop, Kafka, NiFi, а также помогаем в развитии проектов Greenplum, ClickHouse, Tarantool, Postgres.
По количеству коммитов в ядро Greenplum в 2022 году мы заняли первое место в мире среди международного комьюнити, обойдя такого гиганта, как Alibaba. По количеству коммитов в ClickHouse в 2022 году мы вошли в пятерку главных контрибьюторов.
Сергей Золотарёв, основатель и директор по стратегическому развитию Arenadata
Для многих опенсорс-проектов коммерциализация не является конечной целью. К их числу можно отнести различные научные библиотеки (например, scikit-learn), социально значимые фреймворки, разработанные внутри больших корпораций (скажем, Slovo), а также проекты, которые помогают решать важные социальные проблемы. Последние нередко создаются силами заинтересованных разработчиков и сообщества.
В России каждый год пропадает около 100 тысяч человек. Метод их поиска обычно выглядит следующим образом: одна часть поисковой группы прочесывает предполагаемые локации пешком, пока другая вручную просматривает снимки местности, сделанные беспилотниками.
Изучение снимков потенциально эффективнее, чем прямой поиск, но съемка ведется с большой высоты, и пропавший человек на фотографии занимает крайне мало места — меньше 1 процента. Между тем снимков может быть несколько тысяч, а уже спустя несколько сотен фотографий искать людей на изображении становится все труднее — повышается риск ошибиться и не заметить пропавшего.
Однако процесс можно автоматизировать: анализировать снимки при помощи модели компьютерного зрения и выделять предполагаемые фигуры людей. Решением этой задачи занимается проект Lacmus, который стал результатом взаимодействия разработчиков и заинтересованного сообщества людей.
Команда проекта столкнулась с несколькими трудностями: фотографии с беспилотника нужно приводить в пригодный для обучения нейросети вид и размечать, а кроме того, сделать софт независимым от интернета, нетребовательным к ресурсам ноутбуков, которые используют поисковые отряды, а также создать интуитивно понятный графический интерфейс. Сейчас в Lacmus входят: десктоп-приложение, Web API, модель и датасеты. Приложением пользуются поисковые группы в России и Беларуси.
В сравнении с аналоговым поиском результативность повышается радикально. Все зависит от местности и количества коптеров. Если в отряде 4 коптера, они могут за час прочесать всю область поиска, и пропавшего возможно даже найти в день начала операции. Применение коптеров повышает результативность процентов на 70, еще примерно 50 процентов добавляется, если использовать Lacmus. Оперативность была бы еще выше, если бы поисковики более точно следовали методике полетов.
Олег Северов, сооснователь Lacmus
Развитие машинного обучения и увеличение количества публикаций в научных журналах привело сообщество MLMachine learning — машинное обучение.-разработчиков к проблеме воспроизводимости: далеко не ко всем статьям прилагается открытый код, но, даже если он есть, запустить и использовать его может быть непросто.
Эта проблема стоит не так остро, если тема исследования популярна (например, научная статья посвящена LLMsLarge language models — большие языковые модели.), а над проектами трудятся большие команды, состоящие не только из исследователей, но и из разработчиков. Однако если область исследований не так актуальна, то превратить проект в продукт, которым будут пользоваться ученые по всему миру, — для многих непосильная задача.
Фреймворк автоматического машинного обучения FEDOT появился в 2020 году и с самого начала был задуман как опенсорс-проект, которым смогут воспользоваться как исследователи, так и инженеры ML. В 2022 году его ядро — алгоритмы структурной и параметрической оптимизации направленных графов — выделилось в отдельный фреймворк GOLEM, а специализированные инструменты для работы с промышленными временными рядами — в FEDOT.Industrial.
Такой подход уже принес плоды: GOLEM помог другим командами ИТМО — например, робототехникам-разработчикам проекта rostok и химикам из Центра искусственного интеллекта в химии института SCAMT. А FEDOT.Industrial нашел возможности для коммерческого применения.
Спустя три года развития проекта FEDOT превратился из одиночного инструмента в экосистему взаимосвязанных открытых решений (FEDOT.Industrial, GOLEM и других), которые позволяют упростить создание методов и моделей ИИ для различных задач. В отличие от чисто коммерческих продуктов, разработчики FEDOT могли позволить себе не только работать над прикладными аспектами автоматического машинного обучения, но и проверять различные гипотезы, вызывающие интерес у исследовательского сообщества. Это привело к проявлению у фреймворка уникальной среди аналогов функциональности — например, автоматизации решения задачи классификации временных рядов.
Сообщество научного открытого кода ITMO.OpenSource, объединяющее порядка 600 участников, выросло в том числе из команды разработчиков FEDOT, а также команд проектов EPDE и BAMT. Мы активно продвигаем идею, что вклад в науку достигается не только публикациями, но и удобными фреймворками, с помощью которых можно решать различные наукоемкие задачи. Также мы проводим митапы «Научный опенсорс», где разработчики открытых библиотек могут рассказать о них коллегам. Само опенсорс-сообщество ИТМО является, по нашим сведениям, крупнейшим среди университетских: у нас около 30 проектов с более чем 1300 «звездами» и 300 000 скачиваниями.
Николай Никитин, руководитель лаборатории автоматического машинного обучения, Университет ИТМО
В 2022 году, после того как компания F5 ушла из России, опытные инженеры, которые занимались поддержкой и разработкой веб-сервера Nginx на протяжении последних 10 лет, основали компанию «Веб-Сервер».
Они решили создать ответвление от Nginx в России, чтобы вдохнуть новую жизнь в уже существующий веб-сервер и добавить новые функции, такие как отслеживание статистики через API, поддержка http/3 в сторону клиента и проксируемых серверов, а также режим привязки сессий и расширение поддержки протокола mqtt. Так появился веб-сервер с открытым исходным кодом Angie и его коммерческая версия Angie PRO.
Когда мы появились на рынке, то начали работать с форком версии Nginx с открытым кодом. Однако некоторые компании подумали, что «Веб-Сервер» является дистрибьютором или занимается параллельным импортом Nginx plus — платного решения от F5 с дополнительным функционалом. Но это не так. Любой пользователь может взять исходный код опенсорс-версии и дальше его модифицировать. Так и появились разные решения вроде OpenResty или tengine.
Заур Абасмирзоев, генеральный директор Angie
Angie имеет сертификацию совместимости с отечественными операционными системами: Ред ОС, Astra Linux Special Edition, РОСА Хром 12 Сервер, Альт и его ФСТЭК-версия Альт СП. В апреле 2023 года «Веб-Сервер» выпустила проприетарную версию Angie PRO, которая вошла в реестр отечественного программного обеспечения (№ 17604).
Опенсорс принципиально демократичен, потому что внести свой вклад может любой, если предложенное решение — от коммита до библиотеки — будет достаточно качественным. Поэтому для студентов и школьников участие в проектах с открытым кодом — это отличный способ начать свой путь в IT. В свою очередь, IT-компании могут найти квалифицированных сотрудников, которым интересен их продукт.
В том числе по этой причине Кружковое движение НТИ организовало конкурс проектов с открытым кодом для студентов и школьников. Участвовать в нем можно как в качестве контрибьютора — в таком случае оцениваются коммиты в различные публичные репозитории, — так и с собственными разработками. Впервые конкурс прошел в 2021 году, а в прошлом сезоне участие в нем приняло более 600 школьников и студентов. Основная задача конкурса — развитие в России опенсорса и сообщества вокруг него.
Для нас было важно поддержать разные способы работы с опенсорсом, поэтому в конкурсе есть два трека: создатели и контрибьюторы. Первый трек рассчитан в основном на начинающих разработчиков. Многие школьники и студенты пишут курсовые и прочие проекты в стол. Но если выложат их под открытой лицензией, могут принести пользу сообществу открытого кода. Иногда встречаются очень яркие проекты. Вторая номинация более серьезная, ведь для участия в ней надо, чтобы пул-реквест участника приняли в крупный опенсорс-проект, но в итоге изменения, которые внес участник, действительно послужат людям. Самое ценное — что вклад всех участников конкурса лежит на GitHub или GitLab и виден всем, кому это интересно.
Алексей Федосеев, руководитель Кружкового движения НТИ
Среди лауреатов конкурса нередко встречаются примеры проектов, которые выросли в нечто большее. Например, команда физфака МГУ создавала мобильное опенсорс-приложение для составления расписания и помощи студентам в учебе. Изначально проект позиционировался как учебная работа, однако теперь им пользуются студенты и сотрудники МГУ. Разработчики получили грант от Росмолодежи и организовали цикл лекций, посвященный открытой разработке. Другая участница конкурса, будучи школьницей, стала младшим DevOps-инженером в Яндексе.
Организаторы также проводят мастер-классы, вебинары, квизы и конференции. Логическим продолжением конкурса является программа оплачиваемых стажировок «Код для всех». Подать заявку туда могут не только школьники и студенты, но и молодые разработчики.
Реклама: ООО «Веб-Сервер», ИНН 9704151517, erid: 2SDnjdYXtHN