Сегодня в развитии Open Source в России заинтересованы и бизнес, и государство. Основная мотивация выбора открытого кода для разработки программного обеспечения – импортозамещение, тем более, что в текущий момент на Open Source приходится 68% эксплуатируемого корпоративного ПО. О том, насколько важно использовать и развивать открытый код в современном мире, поговорили с Антоном Созонтовым — ведущим инженер-программистом в компании «Hello Bar», архитектором программного обеспечения в ООО «Апартмент Системс», контрибьютора Open Source Software с 17-летним опытом в IT-отрасли, который участвовал в создании Госуслуг, Toptal.com, HelloBar.com, Subscribers.com и является старшим членом IEEE Computer Society.
Насколько Open Source необходим для разработки программных продуктов? Имеет ли смысл использовать Open Source в коммерческих проектах?
Хотя большинство людей не осознают этого, значительная часть технологий, которыми мы пользуемся ежедневно, работает на бесплатном программном обеспечении с открытым исходным кодом (FOSS — free and open source software). Телефоны, автомобили, самолеты и даже многие передовые программы искусственного интеллекта используют ПО на open source, например, операционная система ядра Linux, веб-серверы Apache и Nginx, которые управляют более чем 60% веб-сайтов мира, и Kubernetes, который обеспечивает облачные вычисления. Устойчивость, стабильность и безопасность этих программных пакетов являются серьезной проблемой для каждой компании, которая их использует (по сути — любой организации). Но, в отличие от традиционного программного обеспечения с закрытым исходным кодом, которое компании создают внутри бизнеса и продают, FOSS разрабатывается не воспетой армией обычно неоплачиваемых разработчиков и, как правило, раздается бесплатно.
Исследование Black Duck Software от 2009 года предполагает, что, хотя ПО с open source обычно бесплатно, оно в общей сложности оценивается в 387 миллиардов долларов. Соответственно, компании могут сэкономить эту сумму на разработку с помощью открытого кода.
По оценкам, 10% расходов на разработку ИТ-приложений — избыточны при наличии open source проектов, соответственно, компании могут сэкономить более 22 миллиардов долларов ежегодно за счет повторного использования программного обеспечения на базе открытого кода при разработке приложений.
В чем плюсы Open Source? Может ли Open Source считаться безопасным, ведь доступ к коду имеют все желающие?
Мы привыкли считать, что бесплатный сыр в мышеловке и если что-то дается безвозмездно, то не будет качественным и безопасным. Но с Open Source это абсолютно не так. Армия энтузиастов и настоящих профессионалов работают над таким ПО. Хитрость в том, что они это делают параллельно, маленькими итерациями и на чистом энтузиазме. Представьте: у вас нет начальника, обязательств, инвесторов, вас никто не торопит и не говорит, что надо сделать. Такими людьми движет желание реализовать свой творческий потенциал.
У каждого проекта с открытым кодом есть так называемые сопровождающие (maintainers). Это человек или группа людей, которые имеют полный доступ к коду и принимают корректировки и улучшения кода от всех желающих. При этом open source не означает того, что любой желающий имеет полный доступ к основной версии проекта, скажем, к той версии, которая распространяется глобально.
Масштабирование открытого кода устроено следующим образом: он открыт для чтения и любой желающий может его скачать к себе на компьютер, изменить его как угодно и эксплуатировать в своих целях. Вы даже свои изменения можете выложить в открытый доступ, но это будет уже ваша версия этого проекта. У вас нет доступа к основной ветке проекта и вы не можете просто взять и изменить общедоступный код в ней. Для того, чтобы это сделать, нужно пройти несколько этапов. Во-первых, нужна учетная запись на той площадке, где расположен код проекта. Далее, делается так называемый Pull Request — запрос на изменение кода. Это ваша версия тех файлов, которые вы хотите изменить. Pull Request открыт для всех, и каждый пользователь может просмотреть внесенные коррективы, оставить комментарии и подсказать, как можно что-то улучшить или указать на ошибку. Этот этап называется code review — проверка кода. После нее код может попасть в основную базу и ваши изменения станут доступными всем. Но может и не попасть, если сопровождающие не согласны с вашими изменениями. Таким образом, маленькими шагами ПО становится качественней, безопасней и эффективней.
Пожалуй, одно из самых главных преимуществ открытого кода в том, что он аудируемый: в нем проще найти и исправить ошибки. Качество кода существенно выше, чем у любого проприетарного ПО, которое под контролем бизнеса или ограниченного количества разработчиков. В open source тоже бывают серьезные ошибки в уязвимости, но каждый раз, когда это обнаруживается в критически важных проектах, вытекает в публичные скандалы, судебные разбирательства и устранение ошибок. Все быстро об этом узнают и могут обеспечить безопасность своих систем. В то же время, наличие закладок в проприетарном зарубежном ПО – это распространенная практика, с которой, кажется, все смирились. Что скрывает такая программа – всегда загадка. Одно из исследований безопасности операционных систем семейства Windows и nix-подобных ОС было проведено Николасом Петрели (Nicholas Petreley) в 2004 г. В качестве критериев оценки были выбраны следующие:
- серьезность уязвимостей в системе безопасности;
- количество уязвимостей, серьезность которых определяется как «критическая».
В результате было выявлено 38% критических уязвимостей Windows Server 2003 по сравнению с 10% у Red Hat Linux.
Почему такие компании, как Microsoft не используют Open Source при создании своих больших продуктов, таких как Windows?
Сама операционная система Windows является закрытой. Но Microsoft делает большой вклад в развитие открытого кода. Например dotNET — это универсальная среда разработки Microsoft с открытым исходным кодом для создания кроссплатформенных приложений. PowerShell — кроссплатформенная среда автоматизации задач и управления конфигурацией, состоящая из оболочки командной строки и языка сценариев. Терминал Windows, язык программирования Type Script, многие другие проекты на базе open source — “под крылом” Microsoft.
Даже внутри самой Windows огромное количество компонентов, которые основаны на открытом коде. В современном мире просто невозможно что-то создать без опоры на него, так как на это понадобятся большие объемы ресурсов. Открытое ПО в современном мире — как строительные блоки для программ и ИТ-систем. Вы, конечно, можете построить эффективный, технологичный и современный город где-то в Тайге или чистом поле, используя только только материалы, такие как песок, вода и руда. Но сколько уйдет времени и сил на это? Гораздо проще использовать готовые компоненты — бетонные блоки, технику, трубы, стальные балки провода, правда?
Вот и с FOSS также. Это — готовые компоненты, используя которые можно создать что-то новое и потрясающее. Одни проекты — как кирпичи, другие — как панели для панельного дома, третьи — готовые дома, где вам останется сделать только отделку и расставить мебель. Все зависит от ваших целей и потребностей. Выбор инструментов огромен.
Насколько развито создание Open Source решений в России?
В России сильное ИТ-сообщество в целом и open source в частности. Огромное количество людей вкладывают свое время в развитие таких проектов. Это относится как к энтузиастам, так и к компаниям, таким как Yandex, Mail.ru Group, которая активно работает в сфере FOSS. Один из проектов, который компания подарила миру, ClickHouse — база данных, ориентированная на столбцы и позволяющая пользователям создавать мощную аналитику с помощью SQL-запросов в режиме реального времени.
Другой пример российской разработки — ОС на базе линукса — ALT Linux. Успешный коммерческий продукт на базе open source базы данных PostgreSQL — Postgres Pro, включенный в реестр отечественного ПО и сертифицированный ФСТЭК.
Изменился ли доступ разработчиков к зарубежному Open Source софту из-за последних событий?
Open Source — не про географию и политику. Напомню, что FOSS — это free and open source software. Где слово “free” говорит не про деньги, а про свободу. Свободу от всего. Я лично считаю, что это достижение всего человечества, и проекты не должны принадлежать какой-то стране или группе стран. Люди из совершенно разных государств и различных взглядов работали над этими проектами на благо всего ИТ-сообщества.
К счастью, такого же мнения придерживается и руководство компании GitHub (дочерняя компания Microsoft), на площадке которой хранится и разрабатывается большая часть таких проектов. Их цитата: “GitHub — это мощный инструмент для коммуникаций, гуманитарной работы и организации перемен, а также для невероятного технологического прогресса. Мы искренне верим в силу открытого исходного кода, поэтому мы будем продолжать усердно работать, чтобы наша платформа была доступна и безопасна для всех разработчиков по всему миру. Параллельно с нашими усилиями по обеспечению доступности GiitHub для разработчиков во всех странах, мы продолжаем обеспечивать доступность бесплатных услуг с открытым исходным кодом для всех, включая разработчиков в России”.
Возможно ли создать аналоги GitHub в России и наполнить его Open Source решениями и инструментами?
Чисто технически, конечно, это возможно. Можно взять за основу проект GitLab — открытый аналог GitHub, и скопировать весь необходимый код. Но сложность в том, что проекты — живые организмы. Огромное количество людей ежедневно работают над ними. Исправляют уязвимости, улучшают производительность и оптимизируют код. Также нужно постоянно идти в ногу со временем и обновлять совместимость с новыми технологиями, версиями операционных систем, с другими проектами и зависимостями. Это очень сложный взаимосвязанный процесс. Без тех людей, которые работают над проектами, сейчас ничего не получится. Мало просто взять и скопировать то, что есть на данный момент. Нужно это продолжать развивать и поддерживать. Иначе технологический рост просто остановится.
К тому же я считаю, что в этом просто нет необходимости. Как я сказал выше, открытое ПО было всегда свободно и останется таковым во чтобы то не стало. По крайней мере, я в это верю.
Еще один аргумент — интернет сегодня достаточно децентрализованная история. По сути, такова природа интернета и, если что-то в сети находится в свободном доступе, просто нет возможности на 100% ограничить доступ по географическим или каким-то другим признакам. При желании вы всегда найдете способ добраться до таких открытых продуктов в сети.
Будет ли Open Source развиваться дальше, какие тренды Вы бы выделили в этом развитии на 2023 год?
Безусловно. Open Source — достаточно зрелый живой организм, который будет только расти и развиваться. Все больше компаний и даже правительств разных стран осознают важность поддержки этого направления. Создаются фонды, гранты, различные программы финансирования таких проектов. Это позволит добиться еще более качественного и устойчивого развития.
Например, у GitHub объявила о создании GitHub Accelerator — стипендии для разработчиков, готовых посвятить все свое время для работы над open source проектами. Они готовы предложить им новые способы простой и устойчивой работы с открытым исходным кодом на постоянной основе. Компания готова платить стипендию по 20 000 долларов на человека за 10 недель.
Еще один пример — The Rails Foundation — некоммерческая организация, помогающая экосистеме Ruby и Ruby On Rails процветать. Восемь основных членов фонда — Cookpad, Doximity, Fleetio, GitHub, Intercom, Procore, Shopify и 37signals — вместе щедро предоставили фонду 1 000 000 долларов США в виде начального финансирования, чтобы добиться реальных изменений во всех вышеописанных областях. В будущем эти участники будут вносить по 400 000 долларов в год.
Ваш код попал в программу GitHub для сохранения программного обеспечения с открытым исходным кодом для будущих поколений. Что включает в себя этот проект?
Программа GitHub Archive — инициатива GitHub, призванная обеспечить сохранение программного обеспечения с открытым исходным кодом для будущих поколений. Она включает в себя как долговременное хранилище, такое как GitHub Arctic Code Vault, так и постоянное резервное копирование общедоступных репозиториев некоммерческими организациями, такими как Software Heritage и Internet Archive.
Самый значимые проекты были отобраны в архив «Величайшие хиты» — это архивы из 17 000 самых популярных и наиболее значимых репозиториев на GitHub, записанные на закаленной пленке, рассчитанной на 1000 лет, заключенные в красивые футляры музейного качества и переданные в дар трем великим библиотекам мира, на трех разных континентах: Стэнфордской библиотеке в Калифорнии, Бодлианской библиотеке в Оксфорде и Александрийской библиотеке в Египте.
Arctic Code Vault — это снимок всех активных общедоступных репозиториев на GitHub. Эти миллионы репозиториев были записаны на ту же пленку, что и «Лучшие хиты», и хранятся в Арктическом мировом архиве — месте очень долговременного хранения в выведенной из эксплуатации угольной шахте в Шпицбергене, Норвегия.
Один из самых известных российских проектов, который попал в архив «Величайшие хиты», – веб-сервер Nginx нашего соотечественника Игоря Сысоева. Nginx занимает 33% долю мирового рынка веб-серверов. Нам есть, чем гордиться.
Мои результаты скромней, но я уже лет 10 активно участвую в разработке проектов с открытым исходным кодом. И несколько проектов, в которые я внес свой вклад, также были отобраны в архив «Величайшие хиты» — Chewy, UI-Router и Simple Form.
Приятно осознавать, что мой труд сохранен на 1000 лет для будущих поколений и находится где-то по соседству с такими звездами, как Nginx Игоря Сысоева.
- Open Source и его место в современном мире - 20/12/2022 19:32
- ПО видео-дизайнера: программы, которые работают на ТВ - 05/08/2022 18:21
- Технологический аудит: при чем здесь API - 01/08/2022 12:15