Разработка программного обеспечения на основе Open Source может помочь сэкономить время и средства, получить поддержку сообщества и доступ к новейшим технологиям. Однако некоторые производители не просто используют открытый код, а берут уже готовый продукт на его основе. Часто такое решение становится практически неуправляемым. Его владелец не может выбирать вектор развития продукта, значимо влиять на обновления или добавлять нужные клиентам функции без накладных расходов на перенос этих функций из более новых версий оригинального продукта. Рассказываем, почему это происходит, к каким последствиям это может привести и какое решение выбрать.
Плюсы и минусы продуктов на основе существующих продуктов с открытым кодом
Open Source распространяется бесплатно, многие используют его при создании программного обеспечения для коммерческих и некоммерческих целей. Производители программного обеспечения могут брать готовые модули и библиотеки, созданные и оптимизированные другими разработчиками. Это позволяет сэкономить деньги и силы и ускорить процесс разработки продукта. Например, в 2022 году, после ухода зарубежных компаний с российского рынка, в нашей стране началась активная «разработка» альтернативных решений. Поскольку невозможно создать полноценное ПО за короткий период времени, многие производители брали готовый opensource-продукт и продавали его как собственный. Скорость создания ПО позволила быстро выйти на рынок и получить преимущество перед конкурентами, а также «торчащие уши» оригинального продукта с открытым исходным кодом.
Иногда производители не просто берут существующий продукт с открытым кодом за основу, а практически полностью копируют его и создают на его основе свой «продукт». У таких «продуктов» есть существенные недостатки. Один из них — вектор их развития задает владелец или основной разработчик кода базового продукта. При этом производитель «клона» не может управлять собственным продуктом в полной мере на значимом отрезке времени и зависит от решений разработчика оригинального продукта.
Почему важно самостоятельно управлять развитием продукта
Возможность управлять развитием продукта напрямую влияет на прибыль производителя и его конкурентоспособность на рынке. Часто при работе с ПО возникают потребности в небольших изменениях или дополнениях. Если производитель самостоятельно разрабатывает решение, для него не составит труда ответить на такой запрос быстрой реализацией запрошенных изменений. Добавление функций по запросу повысит удовлетворенность и лояльность клиентов.
К тому же запросы клиентов на внесение дополнительной функциональности позволяют выбрать вектор для развития, соответствующий актуальным потребностям пользователей. Создание исключительных продуктовых свойств по запросу клиентов позволяет производить исключительный продукт.
Возможность управлять развитием продукта позволяет сократить затраты на его разработку и поддержку. Начиная от ранних этапов, когда производитель может отказаться от ненужной функциональности, и до сокращения затрат на поддержку за счет предотвращения технических проблем.
Однако внесение изменений в продукты, которые были полностью скопированы с решений на основе Open Source, потребует передобавления (rebase) изменений и в более новые версии продукта. При этом кодовая база таких продуктов довольно обширна и часто содержит всевозможные баги и «костыли». Чтобы разобраться в ней, требуется много времени. Поэтому внесение фундаментальных изменений в такое ПО осложняется отсутствием подробной информации о разработке.
Что не так с клонами opensource-продуктов
Программное обеспечение, полностью скопированное с opensource-решений и продающееся как оригинальный продукт, будет проигрывать конкурентам в функциональности и производительности. Если производитель не приложит достаточно усилий для доработки кода, он получит решение, которым не сможет управлять. Кроме того, он не сможет быстро реагировать на изменения рынка и потребности клиентов.
Ограничения, накладываемые использованием готовых продуктов на основе Open Source, могут привести и к проблемам с безопасностью. Производители ПО, скопированного с opensource-решений, не могут гарантировать отсутствие уязвимостей. А в случае их обнаружения владелец не сможет быстро исправить эти проблемы и обновить ПО. В результате это может обернуться потенциальными угрозами для конечных пользователей.
Решение — оригинальный продукт российских разработчиков
В целом использование opensource-кода может быть полезным для производителей ПО, но только при условии, что они готовы вложить достаточно ресурсов в существенную доработку и последующую поддержку. Например, можно использовать открытый код как основу для собственных разработок. Это позволит производителям ускорить процесс разработки и в то же время — оставить за собой возможность добавлять новые функции и улучшения, которые необходимы клиентам.
На российском рынке есть программные решения, полностью разработанные специалистами компаний. Один из удачных примеров такого ПО — российская платформа виртуализации для построения виртуальных ЦОД enterprise-уровня vStack. Производитель платформы использует собственные разработки вместо копирования opensource-продуктов.
vStack объединяет разные технологии в единое решение с помощью собственных разработок:
- реализация алгоритма RAFT;
- кластерный framework;
- слой управления, включающий контроллеры SDC/SDN/SDS и API;
- уникальные механизмы, обеспечивающие высокую экономическую эффективность в слое вычислений;
- виртуальная сеть, выгодно отличающаяся технологически.
Платформа vStack занимает второе место в списке самых популярных альтернатив VMware. Важную роль в работе над платформой играет обработка заявок от клиентов. Компания не только часто вносит обновления по запросам, но и руководствуется актуальными потребностями заказчиков при составлении дорожной карты продукта.