На конференции Samsung Open Source Conference Russia 2021 выступили многие значимые игроки российского рынка, и мы с гордостью делимся с вами результатами. За один день мы увидели различные успешные примеры развития открытых проектов из самых разных областей – контейнеризация, диалоговые системы, машинное зрение, робототехника, большие данные, безопасность, мобильная разработка, и многое другое. Темой софта разговор не ограничился, было и про хардвер с RISC-V. На круглом столе вспоминали Ричарда Столлмана и его знаменитое «free as in free speech, not free beer» (сколько лет прошло, а до сих пор актуально). И здесь мы легко переходим к юридической стороне вопроса, к теме лицензий и прав (copyright и copyleft). Итак, читайте обзор докладов ниже.
Немного о самой конференции
Samsung Open Source Conference Russia 2021 (SOSCON Russia 2021) состоялась 15 сентября 2021 года в Москве. Это масштабное мероприятие для разработчиков ПО с открытым исходным кодом (OSS) ежегодно проводится компанией Samsung Research с 2014 года. В этом году мероприятие впервые прошло в России при поддержке московского Исследовательского центра Samsung в России (SRR).
Конференция транслировалась на сайте SOSCON Russia 2021 и YouTube на трех языках: русском, английском и корейском. В SOSCON Russia 2021 приняли участие как представители Samsung, так и других компаний, участвующих в известных проектах открытого ПО. Мероприятие модерировал Тимур Биячуев, к.т.н., руководитель группы системного программного обеспечения Исследовательского центра Samsung в Москве.
Программа состояла из пленарной части, панельной дискуссии и сессионной части; последняя включала в себя интерактивные вопросы и ответы для каждого доклада.
Ниже приводится краткий обзор очень насыщенного и яркого дня SOSCON Russia 2021.
Записи всех докладов на русском языке доступны на Youtube-канале IT Академии Samsung в виде отдельного плейлиста.
Пленарная часть
Президент Себастьян Сынг, глава Samsung Research: «Россия славится своими инженерными талантами и сообществами по открытому программному обеспечению в таких областях наук, как компьютерное зрение, системное программное обеспечение, базы данных и многие другие. Опираясь на сильную фундаментальную базу российской науки, Samsung твердо намерен продолжать расширять осведомленность и участие разработчиков в движении открытого ПО. Это крайне важно для строительства передовых технологий будущего, а также решения текущих и новых глобальных задач на основе сотрудничества, открытости и доверия».
Вице-президент Джингук Чон, генеральный директор Исследовательского центра Samsung в России (SRR), заявил, что инженеры SRR уже много лет активно участвуют в проектах открытого ПО, таких как компиляторы GCC и LLVM или виртуальный сетевой коммутатор Open vSwitch-DPDK. Кроме того, в SRR было инициировано несколько собственных проектов с открытым исходным кодом. Например, облегченный движок JavaScript для устройств с ограниченными ресурсами JerryScript, или распределенная платформа машинного обучения VELES. Недавняя деятельность SRR с открытым ПО включает разработку расширенных функций для стека Navigation2 для операционной системы Robot Operating System (ROS) 2.0. Вице-президент Чон заявил, что вклад и поддержка проектов и российских коммьюнити открытого ПО будет продолжаться как один из приоритетов исследовательского центра.
Академик Арутюн Аветисян, директор Института системного программирования РАН (ИСП РАН), действительный член РАН и вице-президент РАН по цифровой трансформации, сказал, что проекты с открытым исходным кодом исторически начинались с системного программного обеспечения (Linux, компиляторы GCC, LLVM, эмуляторы и т. д.). Но теперь среди них появляются такие сложные системы, как программные пакеты математического моделирования (OpenFOAM) и открытые аппаратные платформы (RISC-V). Это показывает, что открытые решения постепенно начинают обеспечивать полный технологический стек для разработки комплексных проектов. По мнению академика Аветисяна, этот факт очень важен как для индустрии, так и для академического сообщества, поскольку открытое ПО открывает большие возможности, создавая единый язык между наукой, образованием и промышленностью. За свою историю ИСП РАН успешно участвовал в различных инициативах открытого ПО. Так, в ИСП РАН был разработан один из крупнейших проектов сообщества GCC – планировщик для VLIW.
Кевин Сю, старший директор по стратегии международного развития GitHub, прогнозирует, что количество разработчиков на платформе GitHub удвоится к 2025 году и достигнет 100 миллионов человек. При этом, важно не только то, что на GitHub появится много разработчиков, а то, что более 80% из них будут не из США. К 2030 году они будут равномерно распределены по всему миру, при этом такие страны, как Бразилия, Нигерия, Индия, Китай и, конечно же, Россия будут вверху списка контрибьюторов. Кевин заявил, что уже сейчас Россия вносит значительный вклад в GitHub, имея множество всемирно известных проектов, таких как ClickHouse от Яндекса.
Вадим Писаревский, ведущий архитектор проекта OpenCV, поделился историей и текущим статусом проекта. OpenCV, разработка которого началась в 2000 году внутри корпорации Intel, остается одной из самых популярных сред компьютерного зрения с более чем 20 миллионами загрузок и входит в пятерку самых популярных C++ проектов на GitHub. На данный момент OpenCV разрабатывается в 3 основных центрах: 1) Open Source Vision Foundation (США), владеющим товарным знаком OpenCV и сотрудничающим как с Intel, так и с Google, 2) объединённой команды в Нижнем Новгороде, в состав которой входят инженеры российского центра разработки Intel, а также стартапов OpenVINO и Experience AI; 3) OpenCV China, новом R&D центре, открытом в 2019 году при поддержке Шэньчжэньского исследовательского института искусственного интеллекта и робототехники (AIRS). Однако, поскольку OpenCV – это открытый проект, примерно половина вклада в его репозиторий на GitHub поступает от сообщества. 5 лет назад, на заре революции искусственного интеллекта, в OpenCV был добавлен модуль Deep Learning, являющийся теперь флагманом проекта. Его цель – не замена PyTorch или TensorFlow, а создание удобного инструмента в OpenCV для запуска предварительно обученных нейронных сетей.
В своем вдохновляющем выступлении Федор Седов, студент Университета МИРЭА, финалист Samsung IT School и разработчик проекта WaveNote OSS, рассказал, как активное участие в проектах с открытым исходным кодом помогает в образовании и прокладывает путь к профессиональной разработке ПО. Разработанное Федором приложение WaveNote – это блокнот для музыкантов, сочетающий в себе набор утилит на основе текстового редактора для создания, изучения и воспроизведения музыки. Это приложение создано на базе известного проекта с открытым исходным кодом – Simplenote. Федор не только использовал Simplenote для разработки своего собственного решения, но и внес в этот проект недостающую функцию импорта/экспорта заметок. Как разработчик WaveNote, Федор стал победителем Международного конкурса научно-исследовательских и инженерно-технических проектных работ «Учёные будущего», проводимого МГУ, и всероссийского конкурса исследовательских и проектных работ «Высший пилотаж» от университета ВШЭ, а также призером Международной конференции молодых ученых ISYC и конкурса проектов «IT-школа Samsung выбирает сильнейших». Федор подчеркнул, что для участия в проекте открытого ПО, вам не нужно обладать большими знаниями или огромным опытом. Поэтому такие проекты дают прекрасную возможность учиться.
Панельная дискуссия «Бизнес и открытое ПО – заклятые друзья?»
Для обсуждения заявленной темы панельной дискуссии были приглашены представители компаний, использующих и разрабатывающих проекты с открытым исходным кодом. Целью дискуссии было понять, почему компании выбирают концепцию открытого ПО для разработки продукта, каковы очевидные преимущества модели с открытым исходным кодом и какие угрозы могут возникнуть при использовании парадигмы открытого ПО.
Модератором панельной сессии выступил Евгений Зуев, профессор Университета Иннополис, эксперт и автор нескольких учебников в области информационных технологий, с большим опытом участия в различных проектах по компиляторам и языкам программирования. Начиная дискуссию, профессор Зуев высказал сомнение в очевидных преимуществах открытого ПО: «Лично я отношусь к открытому ПО, и Free Software, и Open Source Software с некоторой долей скепсиса. И вот если эта дискуссия позволит мне и всем слушателям развеять этот скепсис, я буду считать что, наша дискуссия была очень плодотворной». Алексей Миловидов, разработчик ClickHouse в Яндексе, выступал за выбор открытого ПО для бизнеса из-за его высокой степени готовности и гибкости в использовании и модификации: «можно будет если что подхватить при необходимости, какие-то вещи доделать, может быть. Если даже этот продукт перестанет развиваться в рамках той компании, из которой он вышел». Алексей Смирнов, председатель совета директоров Базальт СПО (BaseALT), поддержал эту позицию и подчеркнул, что это очень сильная мотивация для программистов, разрабатывающих открытое ПО, – показывать написанный код сообществу. В то же время он отметил, что «дистрибутивы, которые мы выпускаем, это составные произведения, на которые исключительные права принадлежат фирме». Это позволяет сочетать идеалистические мотивации разработчиков и бизнес-цели компании. Роман Аляутдин, руководитель департамента разработки ОС и сервисов компании Открытая Мобильная Платформа, разрабатывающей мобильную операционную систему «Аврора», возразил и показал возможность другого сценария - создания «квази-открытого ПО»: «Если мы откроем этот код, в который мы вкладывались, мы потратили ресурсы, деньги, и так далее. И другие также присоединятся к нам, то, наверное, это будет достаточно хорошей мотивацией разделить «косты», которые тратит компания на других, если это не какая-то принципиальная технология, которая дается в продукте. Если мы открываем продукт, а кроме нас никто туда больше ничего не вкладывает, не коммитит, не контрибьютит, то, наверное, это будет квази open source проект». Такой проект будет зависеть только от поддержки материнской компании и, следовательно, будет ограничен в потенциале развития.
Обсуждение не было глянцевым, профессор Зуев хотел раскрыть скрытые угрозы открытого ПО: «ваши технологические находки могут быть использованы вашими конкурентами» и «если в вашем коде есть какие-то проблемы, какие-то уязвимости, то, скажем так, недобросовестные конкуренты могут ими воспользоваться вам во вред». На этот вопрос ответил Алексей Смирнов: «Свободный софт отличается одной интересной особенностью: здесь важно не кто дальше всех убежал, потому что мой результат достигнут и может быть повторен. А выигрывает тот, кто быстрее всех умеет бегать. То есть у кого есть лучшие кадры и у кого есть хорошая инфраструктура разработки». Это выявило неожиданное преимущество открытого ПО для компаний – необходимость постоянно быть гибкой и готовой к конкуренции.
Важнейшее преимущество открытого ПО отметил Вячеслав Гарбузов, Начальник управления систем на кристалле Исследовательского Центра Samsung в России: «[Открытый код] кросс-платформенный и его можно пересобрать под любой таргет. Бинарный код – он привязан [к архитектуре]». Важность такой гибкости становится ключевой, особенно в связи с недавней тенденцией распространения открытых процессорных архитектур, таких как RISC-V.
В завершение дискуссии Алексей Смирнов сослался на известное высказывание Ричарда Столманна: «free as in free speech not free beer». Участники поддержали тезис, что открытое ПО не означает его бесплатность, и есть много областей, в которые можно инвестировать время, усилия и внести свой вклад в проект на открытом исходном коде. Только в этом случае можно будет поддерживать устойчивый, прибыльный и предсказуемый бизнес, используя код открытого ПО.
Профессор Зуев завершил сессию заявлением: «И финальный ответ, связанный с исходной темой нашей дискуссии относительно заклятых друзей. В общем, я бы взял на себя смелость, говоря о бизнесе и об открытом ПО, снять эпитет «заклятый». Все таки, наверное, это даже не друзья, а просто партнёры. Бизнес и открытое ПО – это реальные партнёры, со всеми нюансами. А партнеры не обязательно должны любить друг друга».
Сессионная часть
Проекты в области ИИ
Ольга Перепелкина, менеджер продуктов в области глубокого обучения и искусственного интеллекта российского центра исследований и разработок Intel, провела обзор проекта OpenFL, библиотеки с открытым исходным кодом для федеративного обучения. Парадигма федеративного обучения предлагает разрешить противоречие между потребностью в больших объемах персональных данных, необходимых для разработки моделей нейронных сетей для различных приложений, таких как медицинская визуализация, и трудностью или даже невозможностью перенести эти данные в централизованное хранилище для обучения в связи с законодательными ограничениями и требованиями конфиденциальности. В подходе федеративного обучения модели обучаются прямо на конечных устройствах, а затем отправляются в облако для усреднения. Библиотека OpenFL, поддерживаемая командой Ольги, позволяет каждому свободно внедрять федеративное обучение в свои академические или индустриальные проекты.
Данила Корнев, заместитель руководителя по прикладным решениям лаборатории нейронных систем и глубокого обучения МФТИ и CPO проекта DeepPavlov.ai, объяснил, как его команда пришла к созданию стека с открытым исходным кодом для разговорного искусственного интеллекта. Команда решила сосредоточить свои усилия на разработке решения для разговорного ИИ, способного принять участие и победить в Amazon Alexa Prize, ведущем академическом конкурсе в этой области. DeepPavlov принял стратегическое решение сделать код своего разговорного чат-бота открытым. Это решение позволило им получить многие скилы, разработанные сообществом, и сильно помогло продвинуться по дорожной карте к победе в Amazon Alexa Prize.
Дмитрий Петров, генеральный директор и со-основатель стартапа Iterative.ai, объяснил, какие трудности преодолели он и его команда при разработке проекта Data Version Control (DVC). Целью DVC является предоставление аналитикам данных инструмента, аналогичного GitHub, который будет позволять легко обмениваться моделями нейронных сетей и работать с ними в облаке. Однако DVC не является заменой GitHub, поскольку он построен на его основе и дополняет GitHub облачными хранилищами, такими как AWS, Azure и т.д. DVC вырос из проекта-хобби с открытым исходным кодом в успешный стартап из Кремниевой долины с 35 сотрудниками и 25 миллионами долларов инвестиций. Сейчас проектом DVC пользуются сотни компаний по всему миру. Чтобы достичь этого, на старте проекта DVC Дмитрий потратил значительные ресурсы на поддержку сообщества открытого ПО, которое выросло вокруг проекта.
Станислав Кириллов, руководитель группы ML-систем в Яндексе, рассказал о библиотеке CatBoost для построения моделей машинного обучения с использованием деревьев решений с градиентным усилением. CatBoost, появившийся в ходе разработки Яндекс.Поиска, включает эффективные алгоритмы для реализации на GPU, что обеспечивает 40-50-кратное превосходство над основными конкурентами, такими как LightGBM и XGBoost. Библиотека CatBoost открыта с 2017 года, в настоящее время ее используют Netflix, Сбербанк, Тинькофф, Careem Taxi Service, CloudFlare, X5 Retail Group и многие другие компании, решая широкий спектр задач – от классификации до ранжирования.
Алексей Бочковский, инженер-исследователь лаборатории Intelligent Systems Lab компании Intel в Мюнхене, рассказал о YOLOv4, открытом фреймворке ИИ с оптимальной скоростью и точностью для реальных задач. YOLOv4 очень популярен и используется многими организациями, такими как правительство Тайваня для мониторинга транспортного потока с помощью видеонаблюдения, компанией Amazon для мониторинга социальной дистанции во время пандемии COVID-19 и т.д. Алексей перечислил ключевые критерии успеха проекта на открытом исходном коде: быть оптимальным по прибыли и стоимости, быть полезным для решения реальной задачи, иметь лицензию без каких-либо ограничений.
Системное и прикладное ПО
Алексей Мерзляков из Исследовательского центра Samsung в России и Стив Масенски из Samsung Research America выступили с докладом о стеке Navigation2, или просто Nav2 – индустриальном навигационном решении для операционной системы Robot Operating System (ROS) 2.0. Nav2 – очень гибкое и продвинутое решение, включающее множество полезных функций, таких как зоны запрета, поддержка Visual SLAM, динамическое отслеживание препятствий и т. д. Команда в Samsung является активным участником стека Nav2: Стив – ключевой мейнтейнер проекта и член технического комитета ROS, а Алексей возглавляет проект ROS в российском центре Samsung.
Денис Силаков, старший архитектор ПО компании Virtuozzo, рассказал о контейнерах Virtuozzo. Эти контейнеры реализуют так называемую облегченную виртуализацию, создающую изолированные виртуальные среды, которые полностью независимы, но используют одно и то же ядро операционной системы хоста. Хотя эта технология является ядром коммерческого продукта Virtuozzo, почти 95% его кода доступно в рамках открытого проекта OpenVZ. Решение компании сделать код своего основного продукта открытым привело к упрощению поддержки продукта и снижению затрат на разработку. Понимая роль открытого ПО для бизнес-модели компании, Virtuozzo продолжает вносить свой вклад и поддерживать различные проекты ядра Linux.
Глеб Балыков из Исследовательского центра Samsung в России поделился подходом своей команды, который был применен в .NET 6 для сокращения времени запуска приложений. Предварительная компиляция кода приложения (Ahead-of-Time, AOT) выполняется во время первого запуска приложения, затем скомпилированный код сохраняется для будущего использования, а при последующих запусках приложение использует этот скомпилированный профиль. Динамическая компиляция (Just-in-Time, JIT) выполняется в фоновом режиме, что значительно сокращает время запуска приложения. Используя этот подход, команде Глеба удалось на 22% сократить время запуска Xamarin-приложений для ОС Tizen. Разработанный подход также может быть использован на других платформах, где время запуска приложения является критичным.
Юрий Мякочин, исполнительный директор компании Миландр, рассказал об успехах своей компании в разработке микроконтроллеров и микропроцессоров на базе архитектуры RISC-V. В настоящее время Миландр разрабатывает два решения на основе RISC-V. Первое – это микроконтроллер, который планируется использовать в основном для рынка счетчиков электроэнергии. В России этот рынок – быстрорастущий с огромным потенциалом. Второе направление – микропроцессоры промышленного назначения для построения систем автоматического управления. По сравнению с микроконтроллерами, требования к этим микропроцессорам шире: возможность запускать операционные системы, такие как Linux или QNX, и управлять всеми видами систем автоматического управления.
Стандарты, лицензии и безопасность
Тарас Иващенко, руководитель группы продуктовой безопасности OZON и глава московского отделения Open Web Application Security Project (OWASP), рассказал, как OWASP помогает обеспечить индустриальный уровень безопасности в проектах на открытом исходном коде. Для этого OWASP разрабатывает подробные инструкции по информационной безопасности для разработчиков и интеграторов программного обеспечения. В одном из таких руководств, Top 10, перечислены наиболее важные риски безопасности, которые следует учитывать при разработке любого программного проекта. Другие руководства и инструменты OWASP нацелены на практическую реализацию передового опыта в области информационной безопасности, создание структуры или цикла разработки для высокозащищенных приложений и т.д.
Алексей Батаев, старший инженер ПО компании Intel в США, рассказал о прошлом, настоящем и будущем стандарта Open Multi-Processing (OpenMP). OpenMP – это открытая спецификация, определяющая набор директив компилятора, библиотечных функций и переменных среды для ускорения вычислительных задач за счет явного распараллеливания, векторизации и преобразования кода, использования аппаратных ускорителей и т.д. Этот стандарт был предложен Intel в 1997 году, развившись из расширения языка Fortran. На данный момент OpenMP поддерживается множеством компиляторов, таких как Clang LLVM, Flang и GCC. Однако в некоторых индустриальных приложениях OpenMP дает худшую производительность по сравнению с высокооптимизированными решениями NVidia CUDA, и в настоящее время этот стандарт дорабатывается для оптимизации его производительности без потери функциональности.
Паша Финкельштейн, технический эксперт в компании JetBrains, объяснил, почему они решили добавить поддержку Kotlin в Apache SPARK, аналитический фреймворк с открытым исходным кодом для обработки больших данных. В настоящее время Apache SPARK поддерживает только 4 языка: Python, Scala, R и Java. Однако все эти языки имеют определенные проблемы при использовании в SPARK: нетипизированный API и сложная архитектура компиляции (Python), нетривиальный код и многие языковые функции, которыми легко злоупотребить (Scala), многословие (Java) или обозначения, специфичные для языка (R). Kotlin API для Apache SPARK предназначен для решения всех вышеперечисленных проблем.
Надежда Кащенко, генеральный директор, LL.M. и патентный поверенный ESPE Legal Consultancy рассказала о свободе и правах в лицензиях открытого ПО. При создании продукта, который использует компоненты на открытом исходном коде или разработке проекта открытого ПО, владелец продукта всегда должен помнить о разрешениях и ограничениях различных типов лицензий. Надежда дала рекомендации для типичного проекта: составить список всего стороннего кода и всех сторонних объектов, которые предполагается использовать в проекте; найти все лицензии, по которым распространяется этот сторонний код; выполнять требования всех лицензий для определенного типа использования для каждого используемого фрагмента кода, включая инструменты; проверить объем патентных прав; проверить, не нарушены ли патентные права по проекту в целом; выбрать или разработать модель лицензирования для проекта.
Коммьюнити и бизнес
Дина Сафина, разработчик команды DWH (хранилища данных) в Mail.Ru Group, объяснила, как создать сообщество вокруг проектов открытого ПО, на примере российского сообщества Apache Airflow. Проект Airflow был разработан в компании AirBnB, где было решено, что с самого начала это будет проект на открытом исходном коде. В 2016 году AirBnB передал проект сообществу Apache для дальнейшей разработки. Дина и ее коллеги из Mail.Ru Group начали активно использовать Airflow в проектах по разработке игр. В какой-то момент они решили, что им нужен чат, где разработчики могли бы обсудить проблемы, связанные с Airflow, и проводить мозговые штурмы для решения различных задач. Для этого они создали чат в Telegram. В настоящее время более 1500 разработчиков активно общаются и делятся своим опытом в сообществе, построенном вокруг этого чата.
Алексей Чернокур, владелец продукта в компании Arenadata, рассказал историю о препятствиях, с которыми столкнулась его компания при создании корпоративного решения для больших данных на основе компонентов Elastic и открытого ПО. Неожиданно, в середине разработки этого решения, проект Elastic изменил лицензию своего основного продукта, Elasticsearch, с открытой (Apache 2.0) на двойную проприетарную SSPL + Elastic License, что вынудило всех, кто использовал этот продукт для облачных решений, получить коммерческую лицензию от Elastic. Поэтому Arenadata обратилась к альтернативному решению от AWS – OpenSearch. В настоящее время Arenadata является партнером OpenSearch и создает на его основе собственное решение с открытым исходным кодом, Arenadata LogSearch.
Артем Кейдунов, генеральный директор и основатель стартапа CubeDev, поделился мнением о том, как построить устойчивый бизнес на открытом ПО. Артем разделил все существующие бизнес-модели открытого ПО на 3 категории: поддержка и обслуживание, открытое ядро и облако. По словам Артема, модель поддержки и обслуживания, будучи приемлемой для многих стартапов, не может привести к созданию компании уровня единорога. Модель с открытым ядром ограничена необходимостью соблюдать баланс между функциями открытого исходного кода и проприетарными функциями продукта. Нарушение баланса может привести к созданию сообществом форков. На данный момент облачная модель становится предпочтительной для построения устойчивого бизнеса многими компаниями, использующими открытое ПО. По утверждению Артема, все компании, строящие бизнес на открытом ПО и основанные после 2015 года, выбрали облачную бизнес-модель в качестве основной.
Петр Савченко, основатель студенческого сообщества CodeX, рассказал о взаимодействии студентов и проектов открытого ПО. Планка входа в CodeX очень высока: ежегодно к команде присоединяются всего 1-2 студента из 100-200 претендентов. За свою историю команда CodeX разработала несколько продуктов с открытым исходным кодом, таких как визуальный редактор Editor.js, сервис отслеживания ошибок Hawk, облачный сервис Capella для хранения, обработки и доставки изображений и многие другие. Всего на GitHub у команды более 150 репозиториев. Создавая эти проекты, студенты научились создавать сложные продукты, проходя путь от идеи до выпуска на глобальный рынок. CodeX организует множество мероприятий, таких как митапы Code X, хакатоны Code Marathons и буткэмпы Code Camps.
Автор:
Владимир Пичугин
Ведущий инженер управления развития технологических проектов
Исследовательский центр Samsung в Москве