Open Source и его место в современном мире

0

Сегодня в развитии 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 считаться безопасным, ведь доступ к коду имеют все желающие?

Мы привыкли считать, что бесплатный сыр в мышеловке и если что-то дается безвозмездно, то не будет качественным и безопасным. Но с 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.

Open Source и его место в современном мире

Почему такие компании, как 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 долларов в год.

Open Source и его место в современном мире

Ваш код попал в программу 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 Игоря Сысоева.

Александр Николайчук
Share.

About Author

IT-журналист, главный редактор Digital Report Russia. Руководил отделом журналистских расследований в агентстве "Минск-Новости", работал журналистом в "БДГ: Деловая газета", "БДГ: Для служебного пользования", редактором интернет-издания "Белорусские новости" и TUT.BY. Автор проекта "Ежедневник", создатель PR-агентства ЕТС и PDF-журнала ET CETERA, систем Bonus.tut.by и Taxi.tut.by, рекламных и PR-проектов. Руководил Radio.tut.by и TB-TUT.BY. Награжден ассоциацией "Белинфоком" за вклад в освещение развития телекоммуникационной отрасли Беларуси.

Comments are closed.

Перейти к верхней панели