В поисках идеального ПО: стоит ли переходить на Open Sourceисточник

По итогам прошлого года на крупнейшей в мире платформе для хранения и совместной разработки Open Source проектов GitHub было размещено 413 миллионов программ с открытым исходным кодом, и 90% компаний в мире использовали подобные продукты. В чем их отличия от проприетарных решений, какие могут быть сложности и на что обратить внимание при выборе, рассказывает Юрий Мацыгин, руководитель производственного блока кластера «Продукты и партнерства» холдинга Т1.

Open Source с английского языка дословно переводится как ‹программное обеспечение› с открытым исходным кодом, что и определяет его основные особенности. Любой человек может свободно скачивать, просматривать, использовать, изменять и дорабатывать программу, если он имеет необходимые навыки в разработке ПО. В то же время существует так называемое проприетарное ПО, исходный код которого закрыт, и его изменение доступно только владельцу продукта, который продает его в виде готового решения.

Это же определяет, кто именно создает, тестирует и совершенствует ПО. В случае с Open Source задачу берет на себя сообщество разработчиков и делает это на добровольных началах. Над проприетарным ПО работают сотрудники компании-владельца продукта. Вот несколько примеров из разных индустрий.

Категория

Проприетарное ПО

Open source ПО

Операционные системы

Microsoft Windows

Linux

Офисные приложения

Microsoft Office

Open office

Веб-браузеры

Microsoft Edge

Mozilla Firefox

Графические редакторы

Adobe Photoshop

GIMP

Редакторы векторной графики

Adobe Illustrator

Inkscape

Базы данных

Oracle Database

PostgreSQL

Веб-серверы

Microsoft IIS

Apache HTTP Server

3D-моделирование

Autodesk AutoCAD

Blender


Сегодня всё больше компаний задумываются над переходом к Open Source ПО как по экономическим соображениям, так и из-за ухода ведущих мировых вендоров с российского рынка. Так в чем же преимущества, недостатки и подводные камни именно такого вида ПО?

Шесть плюсов популярных Open Source решений

Самое очевидное преимущество Open Source ПО — его лицензия бесплатна. Исходный код открыт — любой может скачать его с GitHub или других источников, установить и запустить на своем компьютере или сервере. В то же время за лицензию проприетарных решений придется заплатить.

Интуитивно кажется, что бесплатное ПО должно быть менее качественным. Но в случае с популярными Open Source программами всё ровным счетом наоборот. Это можно посмотреть на примере популярных решений, таких как PostgreSQL, Redis, Elasticsearch, Kibana, Kafka, которые стали де-факто стандартом в enterprise-стеке. Пользователи за них фактически проголосовали скачиваниями. Значит большое число профессионалов получило доступ к исходному коду, протестировало продукт и предложило улучшения, которые вошли в его следующие версии. Качество такого ПО достаточно высокое и с архитектурной точки зрения, потому что на фоне множества экспертных мнений сообщество смогло выбрать оптимальный вариант реализации. И если среди пользователей достаточно крупных организаций, значит задача масштабирования и быстродействия была решена.

То же самое касается и информационной безопасности: больше пользователей — больше уязвимостей найдено и устранено. Важно обозначить, что сообщество разработчиков самостоятельно следит, чтобы вредоносный код не попадал в программы под видом улучшений. Например, в начале марта 2022 года один из разработчиков внес исправления в популярную Open Source библиотеку node-ipc, которая широко используется ИТ-сообществом по всему миру. Если пользователь оказывался из России или Белоруссии, программа автоматически начинала уничтожать содержимое всех файлов на зараженном устройстве, до которых она могла добраться. Вредоносная версия была оперативно обновлена другим пользователем, а прежняя версия удалена администрацией GitHub. В широко распространенных продуктах безопасность обеспечивается благодаря структуре сообщества разработчиков, где четко разделены роли: одни предлагают улучшения, другие их проверяют и принимают.

Популярность программного обеспечения с открытым исходным кодом помогает и с точки зрения HR — проще найти специалистов, которые смогут с этим продуктом работать, разворачивать его и улучшать.

И последнее преимущество актуально для тех, кто хочет создать собственный программный продукт на базе библиотек с открытым исходным кодом. Многие типы лицензий Open Source не ограничивают их использование и позволяют коммерциализировать производный продукт. А в случае включения проприетарного ПО в свое решение придется платить роялти компании-вендору.

Коротко о преимуществах популярных Open Source решений:

  1. Бесплатное использование.
  2. Высокое качество.
  3. Надежность при масштабировании и росте нагрузок.
  4. Безопасность.
  5. Простота в подборе персонала, которые знают решение.
  6. Возможность доработки до собственного продукта с целью его продажи.

Все представленные выше преимущества относятся только к широко распространенному ПО, над исходным кодом которого постоянно работает огромное количество человек.

Проблемы и сложности с Open Source

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

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

Препятствия могут быть и для компаний, относящихся к объектам критической инфраструктуры. Так, согласно указу Президента РФ с 1 января 2025 года органам государственной власти и заказчикам запрещается использовать иностранное программное обеспечение на принадлежащих им значимых объектах критической информационной инфраструктуры. В то же время крупнейшая в мире платформе для хранения и совместной разработки Open Source проектов GitHub принадлежит компании Microsoft, которая находится в юрисдикции США. Есть риск, что всё скачанное с платформы ПО окажется зарубежным со всеми последствиями в соответствии с российским законодательством.

В нашей стране ведется работа по созданию похожей платформы — национального репозитория, но пока релевантного аналога всё ещё нет. Главное преимущество GitHub — это комьюнити из 94 млн разработчиков со всего мира. Привлечь хотя бы часть из них развивать ПО на отечественной площадке будет непросто. Однако Китаю похожую задачу решить удалось, создав репозиторий gitee.com.

Open Source или проприетарное ПО: как выбрать

Не существует универсального ответа, какое именно ПО использовать в компании. Но чтобы принять правильное решение, можно руководствоваться следующим алгоритмом:

  1. Определить наличие необходимого ПО среди вариантов с открытым кодом. Если вы ищете решение для узкоспециализированных задач, например, по цифровизации промышленных процессов — вероятность его обнаружить на GitHub стремится к нулю. С более распространенными задачами, особенно в сфере инструментов для ИТ-специалистов, шансов больше.

  2. Оценить, насколько решение распространенное, если подходящий исходный код найден. С непопулярными продуктами лучше не рисковать: они могут быть ненадежными, небезопасными, а также будет сложно найти специалиста, который осуществит его развертывание и поддержку.

  3. Определиться с целями. Если компания ориентирована на то, чтобы не только использовать готовое решение, но также развивать и дорабатывать продукт собственными силами, Open Source может стать отличным инструментом для технологического развития организации.

  4. Посчитать экономику. Возможно, затраты на развертывание, сопровождение и эксплуатацию с содержанием нужного штата специалистов будут выше, чем для проприетарного ПО, даже с учетом приобретения лицензии.

  5. Определить, будет ли использоваться ПО на объектах критической инфраструктуры. В случае, если ответ положительный, стоит рассмотреть локализованные аналоги, внимательно изучить текущую законодательную базу и связанные и с ней ограничения.