Разбираем плюсы и минусы использования в условиях санкций
Open Source технологии
Сибирикс

Open Source технологии

Плюсы и минусы использования в условиях санкций
Еще в 2021 году российские IT-компании разработали стратегию развития ПО с открытым исходным кодом — предполагалось, что к 2026 году около 90% компаний будут использовать открытое ПО. На деле получилось, что изменения в российскую IT-сферу пришлось вносить раньше — после введения санкций в 2022 году наша страна потеряла доступ ко многим зарубежным ресурсам, а российские разработчики получили массовые блокировки на GitHub.

Разработать с нуля аналоги зарубежных сервисов — дело непростое и небыстрое. При этом госкомпаниям сейчас запрещено использовать зарубежное проприетарное программное обеспечение. Открытое ПО сможет стать выходом для российских разработчиков. К тому же, как пообещали в Минцифры, скоро в России появится собственный репозиторий программ с открытым кодом, где будет и открытое ПО из глобальных источников. По некоторым источникам, тестирование репозитория уже началось. И все же, действительно ли Open Source технологии — лучший выход для наших разработчиков в условиях санкций? Давайте разбираться.

Что такое Open Source

Open Source, или «свободное ПО» — это программное обеспечение, исходный код которого свободно распространяется в различных источниках. Любой пользователь может использовать его, модифицировать и создать на его основе новое ПО. При этом, Open Source программы могут быть платными и бесплатными, существующими за счет пожертвований, они могут представлять собой полноценное ПО или какие-то отдельные его функции.

При этом, программы с открытым кодом лицензируются по-разному, это нужно учитывать при разработке:
  • Public Domain — это значит, что ПО является общественным достоянием, его можно использовать как угодно. Самые популярные примеры — библиотека SQLite и исследовательское ПО CERN.
  • Permissive — эта лицензия тоже разрешает любое использование и модификации кода, но на него сохраняется авторское право создателя. Как пример — Apache.
  • Copyleft — по аналогии с copyright. Программное обеспечение с такой лицензией можно свободно использовать, но продукт, созданный на его основе, может распространяться только с такой же лицензией. Например, нельзя сделать его проприетарным, если изначальный код распространялся свободно. Так, Linux находится под copyleft-лицензией, и операционная система Ubuntu, созданная на основе Linux, тоже распространяется свободно и бесплатно.
Распространение Open Source позволило значительно ускорить развитие IT-отрасли. Например, использование линукса в качестве основы для новых операционных систем, или библиотеки React при создании сайтов. Open Source решения позволяют специалистам заниматься новыми и полезными функциями, а не решением рутинных задач, которые неизбежно возникают при создании ПО с нуля. Кроме того, используя свободное ПО, проще справляться с возникающими проблемами и неясностями — достаточно задать вопрос в сообщество. Разрабатывая продукт с нуля, приходится думать над решением всех проблем самостоятельно.

Зачем люди разрабатывают программы с открытым кодом?

Во-первых, нужно помнить, что открытое ПО — не всегда означает «бесплатное», и некоторые авторы как раз и зарабатывают на его продаже. Но основной идеей Open Source все-таки было развитие IT-сферы, поэтому среди целей разработки такого ПО можно выделить следующие.
1
Признание и связанные с этим «плюшки»
Какому разработчику не хочется стать великим и вписать свое имя в историю? Конечно, не все жаждут мировой славы, но стремление к признанию играет немаловажную роль. Среди перенасыщенного рынка молодых IT-специалистов создание крутого Open Source ПО — отличная возможность стать известным, получить нужные знакомства и крупные проекты.
2
Развитие своего проекта
Если денег на развитие проекта не хватает, то для продвижения может сработать создание открытого ПО. Вы выкладываете код в общий доступ, получаете идеи по дальнейшему развитию, бесплатную доработку, а иногда — и финансирование своего проекта.
3
Стремление к совершенству
Когда код видят и оценивают тысячи людей, они могут дать множество ценной обратной связи по доработке и устранению багов. Это как бесплатный аудит от огромного количества профессионалов.
4
Возможность творчества
Некоторые разработчики воплощают в Open Source свои проекты, которые не востребованы на основной работе. Возможность создавать что-то новое, делиться этим и получать обратную связь от единомышленников — вот что привлекает таких людей.
В целом, по опросам IT-компании Tidelift, около 84% разработчиков используют Open Source проекты в своей работе, поэтому их активное использование российским IT-сектором вполне закономерно.

С какими проблемами столкнулись российские компании после принятия санкций в 2022 году

Все проблемы можно обобщить: многие бизнес-процессы просто встали из-за отказа зарубежных поставщиков ПО сотрудничать с российскими компаниями. Доля цифровизации в российском бизнесе высока, а уровень развития отечественного ПО на тот момент не позволял всем легко перейти на отечественные продукты. Большинство организаций пользовалось иностранным ПО практически во всех своих процессах. С принятием санкций:
  • Конфиденциальность информации оказалась под угрозой — из-за использования зарубежных технологий киберзащиты;
  • Российские разработчики практически утратили возможность пользоваться международными серверами и обучаться в иностранных компаниях;
  • На уже приобретенное ПО перестала распространяться техподдержка;
  • Некоторые поставщики ПО ограничили функциональность — например, убрали возможность управления или модифицирования приобретенных программ;
  • Организации утратили возможность пользоваться зарубежными облачными ресурсами, в связи с этим образовалась нехватка мощностей для развертывания ПО.

И все это потребовалось решать в короткие сроки, чтобы избежать утечек информации и простоев в производстве.

Плюсы и минусы использования Open Source ПО

Конечно, любая технология в нашем мире имеет и минусы — и у Open Source они тоже есть. Но сначала поговорим о плюсах:

  • Экономия трудозатрат. Разрабатывать ПО с помощью открытых источников гораздо быстрее и дешевле — можно сразу приступать к модификации нужной программы под свои нужды, не тратя время на создание основной архитектуры продукта.
  • Меньшее количество багов. Открытое ПО постоянно анализируется сторонними разработчиками, которые оперативно указывают на баги и уязвимости. Ограниченная команда аудиторов закрытого ПО, конечно, не сравнится по эффективности с огромным количеством пользователей Open Source.
  • Быстрое внедрение. Если при внедрении ПО на основе Open Source технологий возникла проблема, можно просто почитать форумы сообщества — с большой вероятностью решение проблемы уже есть. Если решения нет — на том же форуме с радостью помогут.
  • Актуальные обновления. Как правило, разработчики постоянно поддерживают свои программы с открытым кодом, оперативно внося изменения и обновления.
  • Безопасность. Крупные компании часто попадали в скандалы, связанные с утечками конфиденциальных данных. Открытое ПО легко проверить — какие данные оно собирает, как использует и какие там есть уязвимости.
Казалось бы, использование Open Source — лучший выход для быстрой цифровой реорганизации компаний, но минусы здесь тоже есть.

  • Не всегда открытое ПО — более качественное и оптимизированное. Мы упомянули, что открытое ПО чаще подвергается аудиту — поэтому там может быть меньше багов и недоработок. Но положа руку на сердце — что скорее сделает опытный и талантливый разработчик: условно бесплатную программу для общего доступа или хорошо оплачиваемый закрытый проект? Стимула сделать второе у него будет больше.
  • Уязвимости все же встречаются. Не всегда пользователи вовремя их замечают, а иногда злоумышленники намеренно заменяют ПО в репозитории на поддельное, с заложенным механизмом атаки. Поэтому Open Source код нужно тщательно проверять.
  • Система техподдержки часто отсутствует. Никто не обязуется оказывать вам круглосуточную техподдержку, как это бывает с приобретенным проприетарным ПО. А иногда вопрос нужно решить очень срочно. К тому же, не все Open Source программы имеют развернутую документацию.
  • ПО может не подойти для ваших задач. Конечно, открытый код дает возможность со всех сторон протестировать ПО и решить, подходит ли оно вам, но всех ситуаций не предусмотришь. А если уже проделана половина работы? Это чревато и денежными, и временными потерями.

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

Как сократить риски при использовании Open Source

Текущая ситуация практически не дает нам выбора — использовать или не использовать ПО с открытым кодом. Ответ очевиден — Open Source технологии позволят быстрее развить IT-отрасль в России. К тому же, не стоит считать Open Source злом — все-таки, большая часть ПО создана с благими целями. Но обезопасить себя все же стоит.

  1. Помните, что разработанное ПО требует поддержки. В случае с ПО на основе открытого кода не получится разработать продукт и забыть о нем. А если в нем найдутся уязвимости или добавятся новые функции? На стороне заказчика должны постоянно работать специалисты, которые будут поддерживать созданное ПО.
  2. Обращайте внимание на отзывы о разработчике и величину сообщества. Изучите беседы специалистов, которые уже работают с данным кодом, их обратную связь, частоту обновлений и скорость ответов разработчика на вопросы.
  3. Используйте технологии проверки на наличие уязвимостей в ПО. Так, инструменты SCA (Software Composition Analysis) автоматически анализируют код на основе публичных данных об уязвимостях, а фреймворк SLSA от Google проверяет ПО на наличие вредоносного кода.

Как выбрать Open Source проект для дальнейшего использования

Оцените его по следующим критериям:
  • Функциональность. Хватает ли функциональности для вашей разработки? Не появятся ли проблемы в будущем? Будет ли совместим полученный продукт с вашей остальной IT-инфраструктурой? Избыточная функциональность тоже не есть хорошо — если вам необходима всего пара функций, незачем брать за его обнову громоздкий код с массой возможностей.
  • Лицензия. Если вы собираетесь разработать закрытый продукт, то это не получится сделать, если исходник кода будет размещен в публичном и бесплатном доступе по copyleft-лицензии.
  • Наличие документации. Достаточно ли вам имеющейся документации или что-то потребуется изучать дополнительно? Сложен ли проект для того, чтобы разобраться в нем самостоятельно?
  • Качество кода. Легко ли разобраться в самом коде? Знаком ли вам или вашим разработчикам язык программирования? Хорошо ли код структурирован, нет ли там подозрительных элементов? Как правило, код говорит о мастерстве разработчиков и качестве самого проекта.

Резюмируем

Распространение Open Source технологий — это логичный шаг для развития IT-культуры в целом. Популярные репозитории уже давно превратились из гик-сообществ для энтузиастов в масштабные площадки для обмена данными между профессионалами. Что и говорить, если популярнейшие проекты — например, Google — были созданы благодаря ПО с открытым кодом. Поэтому бояться и избегать Open Source ПО при разработке точно не стоит.

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

Следить за обновлениями Open Source технологий можно и нужно. Для этого подойдут специализрованные новостные площадки, например ubuntu-news.ru