При разработке современного программного обеспечения используются сотни тысяч библиотек с открытым исходным кодом, а в некоторых случаях и целые приложения. Эта страница написана в первую очередь для нетехнической аудитории и не предполагает никаких предварительных знаний об этом ландшафте — поэтому вопросы, какими бы незначительными они ни были, приветствуются.
Эта статья изначально была написана для того, чтобы помочь нетехнической внутренней аудитории лучше понять, как open-source взаимодействует с традиционными процессами закупок на предприятии. Если вы технический специалист, ищущий литературу, которая поможет вашей организации понять, какое влияние на нее оказывает открытый исходный код, или нетехнический специалист, желающий получить представление о том же самом, тогда эта статья, надеюсь, для вас.
Что такое программное обеспечение с открытым исходным кодом?
«Программное обеспечение с открытым исходным кодом (OSS) — это компьютерное программное обеспечение, выпускаемое под лицензией, в которой правообладатель предоставляет пользователям права на использование, изучение, изменение и распространение программного обеспечения и его исходного кода кому угодно и для каких угодно целей. Программное обеспечение с открытым исходным кодом может разрабатываться совместными общественными усилиями. Программное обеспечение с открытым исходным кодом является ярким примером открытого сотрудничества, то есть любой способный пользователь может участвовать в разработке в режиме онлайн, что делает число потенциальных участников неограниченным. Возможность изучить код способствует общественному доверию к программному обеспечению».
Работа с открытым исходным кодом // Плюсы и минусы
Программное обеспечение с открытым исходным кодом является исключительно распространенным типом программного обеспечения в современном мире: многие языки, фреймворки и даже инструменты программирования имеют открытый исходный код.
Проекты с открытым исходным кодом в основном поддерживаются группами добровольцев, часто при корпоративном спонсорстве, или управляются компаниями, которые предоставляют программное обеспечение для продажи контрактов на консалтинг или поддержку.
В своей наиболее распространенной форме программное обеспечение с открытым исходным кодом поставляется в виде библиотек, которые могут быть включены в ваши собственные приложения вашими собственными программистами.
Программное обеспечение с открытым исходным кодом и ваши приложения
Даже если вы не знаете об этом, большинство организаций используют десятки и сотни тысяч библиотек с открытым исходным кодом в программном обеспечении, которое они создают. Это стандартная позиция в технологиях — для примера: самый популярный в мире веб-фреймворк React, на котором многие организации создают все свои веб-приложения, является открытым исходным кодом и зависит от 1391 дополнительного пакета с открытым исходным кодом. Таким образом, для создания любого из этих веб-приложений, просто для начала, придется использовать 1392 пакета с открытым исходным кодом. Для каждого веб-сайта.
Что такое открытый исходный код и как он работает?
Распространение open-source таким образом может показаться неконтролируемым, если вы не знакомы с экосистемой, и в этом документе мы рассмотрим некоторые стратегии, которые используют организации для безопасного внедрения open-source. Большинство из этих процессов должны быть приятно непримечательными и являются стандартными для всей технологической отрасли.
Открытый исходный код и лицензирование
По умолчанию обычно командам разрешается использовать программное обеспечение с открытым исходным кодом с разрешительными лицензиями. Это означает, что лицензии не предполагают, что организация будет делиться своим собственным программным обеспечением или модификациями — распространенные примеры таких лицензий включают, но не ограничиваются лицензией MIT и лицензией Apache2. Также часто встречаются организации, которые лицензируют программное обеспечение с открытым исходным кодом, доступное предприятиям на коммерческих условиях, вместо того, чтобы предоставлять код обратно.
Эти части открытого исходного кода с двойным лицензированием позволяют организациям платить, вместо того чтобы вносить свой вклад, и эта модель используется для того, чтобы помочь проектам с открытым исходным кодом стать устойчивыми.
Поскольку создание устойчивого программного обеспечения с открытым исходным кодом часто является сложной задачей — сопровождающие или основные авторы проектов часто работают бесплатно — вокруг открытого программного обеспечения выросла культура коммерческого лицензирования, консультаций и контрактов на поддержку.
Коммерческая поддержка программного обеспечения с открытым исходным кодом
Если это звучит запутанно, то это потому, что часто так и есть!
Вполне возможно, и это обычное дело, что вокруг поддержки открытого ПО существует множество коммерческих организаций. По большей части, из-за природы открытого исходного кода, люди не выбирают поддержку. Это связано с тем, что преобладает мнение, что если в библиотеке с открытым исходным кодом возникает проблема, то потребители могут исправить ее и внести эти изменения обратно в сообщество.
Однако для определенных категорий открытого исходного кода — обычно это целые приложения с открытым исходным кодом, а не библиотеки — разумно убедиться, что у вас есть отношения поддержки — и это еще более важно, если приложение с открытым исходным кодом занимает стратегическое место в вашем архитектурном ландшафте. Кроме того, часто это правильная этическая позиция, которая помогает обеспечить долговечность проектов, от которых зависят организации.
Обеспечение качества программного обеспечения с открытым исходным кодом
Вследствие сложного характера разработки программного обеспечения с открытым исходным кодом — кода, разработанного неизвестными лицами и предоставленного «как есть» для потребления, без каких-либо юридических гарантий — очень важно, чтобы при использовании программного обеспечения с открытым исходным кодом вы применяли те же методы разработки программного обеспечения, которые вы ожидаете от программного обеспечения, автором которого являетесь сами.
Это означает, что там, где вы используете библиотеки с открытым исходным кодом:
- окружать их автоматизированным тестированием на уровне модулей и интеграции для проверки их поведения
- Выполнять статическое и динамическое сканирование безопасности библиотек (часто называемое SAST и DAST).
- Используйте инструменты сканирования безопасности, которые отслеживают уязвимости и версии патчей для библиотек, чтобы убедиться, что они поддерживаются в актуальном состоянии.
Тот факт, что вы выполняете эти действия, делает наше использование библиотек с открытым исходным кодом безопасным в точке потребления — в дополнение к тому, что, конечно, у вас будет полный контроль над тем, что и когда вы обновляете, и вы сможете прочитать весь код, если мы захотим.
Закупки и программное обеспечение с открытым исходным кодом
При использовании традиционного, платного программного обеспечения требуется процесс закупки, чтобы получить лицензию на программное обеспечение, а затем начать использовать и разрабатывать с помощью приложения или библиотеки. При использовании открытого исходного кода программное обеспечение просто… существует. Оно может быть включено из открытых источников управления пакетами (места, откуда вы загружаете программное обеспечение для использования), и разработка может быть начата немедленно.
Однако это непроизвольно обходит целую категорию гарантий, которые существуют в традиционных процессах закупок программного обеспечения. В большинстве программ с открытым исходным кодом, которые используют люди, бремя обеспечения качества и гарантии лежит на ваших собственных командах в точке интеграции. Это означает, что, обернув библиотеки, которые вы используете, в свои собственные действия жизненного цикла разработки программного обеспечения, такие как автоматизированное тестирование и сканирование, вы относитесь к этим библиотекам точно так же, как если бы они были кодом, автором которого вы являетесь.
Но существует три вида открытого исходного кода, который потребляется:
- Открытый исходный код, для которого вам не требуется контракт на поддержку, и вы можете тестировать/интегрировать его самостоятельно
- Открытый исходный код, для которого вы хотите получить поддержку от сопровождающего или организации, предоставляющей такие услуги.
- Открытый исходный код, доступный на коммерческой основе по двойному лицензированию — требующий оплаты за коммерческое использование.
Для первой категории открытого исходного кода вы предоставлены сами себе, и ваших внутренних процессов разработки должно быть достаточно. Для двух последующих категорий открытого исходного кода, в Enterprise, вам неизбежно потребуется процесс закупки и обеспечения.
Важные вопросы для поддержки Open-Source
Традиционный процесс обеспечения надежности часто сосредоточен на организации, предоставляющей поддержку — ее политике, процессах, рабочей среде и безопасности. В проектах с открытым исходным кодом эти вопросы часто не имеют смысла; здесь нет офисов, нет персонала, работа выполняется по указанию участников. Но при оценке контрактов на поддержку с поставщиками важно понимать, как они связаны с продуктом и какую поддержку и гарантии они могут предоставить за те деньги, которые вы им платите.
Вот несколько примеров вопросов, которые могут заменить более традиционные вопросы о гарантиях в процессах закупок с открытым исходным кодом.
«Какие у вас отношения с проектом?».
В идеале, вы должны приобретать поддержку у основных авторов проекта или организации, сформированной вокруг него.
Хорошие ответы: «мы являемся основной командой сопровождения», «мы являемся основными соавторами», «у нас есть права на коммит».
Плохие ответы: «Нет», «мы — консалтинговая компания, предоставляющая дополнительные услуги и не имеющая отношения к проекту».
«Есть ли у вас процесс проверки авторов?».
Изменения в коде должны проверяться сопровождающими.
Хорошие ответы: «Изменения проходят через наш процесс запросов и тестирования и принимаются сопровождающими».
Плохие ответы: «Никак», «мы принимаем любой вклад без проверки».
«Подписывают ли ваши вкладчики какие-либо юридические соглашения, официально предоставляющие право собственности на их вклад в проект?».
Крупные проекты с открытым исходным кодом или проекты, спонсируемые корпорациями, часто имеют документы, гарантирующие, что работодатели участников не смогут предъявить претензии на авторские права на программное обеспечение. Например, компания Microsoft использует для этого Лицензионное соглашение с вкладчиками.
Несмотря на то, что это не является исключительной практикой, это хороший вопрос, который следует задать.
«Есть ли у вас возможность интегрировать все необходимые исправления ошибок обратно в основной источник проекта?».
В идеале вы должны купить лицензию на поддержку, в которой все исправления будут интегрированы в основной проект, а не в форк для вашей собственной выгоды.
Хотя это может показаться контрпродуктивным, это гарантирует, что вы не будете использовать «форкнутую» или модифицированную версию основного проекта, которая может прекратить активную разработку.
«Существуют ли какие-либо специальные процессы запроса функций или привилегии, которые прилагаются к этому контракту на поддержку?»
В идеале, если вы покупаете контракт на поддержку, он должен давать нам приоритет в запросах на функциональность.
«Обеспечиваете ли вы, и если да, то каким образом, сканирование безопасности и предотвращение эксплойтов в программном обеспечении?».
Даже программное обеспечение с открытым исходным кодом должно быть протестировано, иметь конвейеры сборки и быть надежным — вдвойне, если вы платите за лицензии на поддержку.
«Каков SLA по реагированию на сообщения об ошибках?».
Не менее важно знать уровень обслуживания, который вы ожидаете от контрактов на поддержку — для управления ожиданиями между вашими внутренними командами и организацией поддержки.
«Есть ли у вас процесс поддержки в случае уязвимости 0-дня?».
Уязвимости 0-day — это «живые, свежие ошибки, только что обнаруженные», и следует ожидать, что если служба поддержки узнает об ошибке в программном обеспечении, которое они поддерживают, будет организован процесс уведомления и руководства по устранению.
Заключение
Использование программного обеспечения с открытым исходным кодом является огромным плюсом для коммерческих организаций (которые фактически получают выгоду от бесплатного труда), но для того, чтобы использовать его устойчиво и этично, важно знать как свои обязанности по обеспечению безопасности, так и обязанности любого партнера, с которым вы решили сотрудничать.
Оплата программного обеспечения с открытым исходным кодом — один из наиболее этичных способов взаимодействия организаций с сообществом разработчиков с открытым исходным кодом (не считая внесения ответного вклада!), и его всегда следует рассматривать, когда это возможно.
Источник: procodings.ru
ТОП-5 популярных ПО с открытым исходным кодом за 2023 год
Сегодня мы поговорим о 5 крутых программных обеспечениях с открытым исходным кодом. Каждый из вы сможете найти на платформе GitHub.
№1. Kdenlive
Это мощный видеоредактор, представляющий собой альтернативу Adobe Premiere. Он позволяет редактировать видео, добавлять эффекты и создавать профессиональные видеомонтажи.
Kdenlive предоставляет множество функций и инструментов для создания и редактирования видеоматериалов. Он поддерживает множество форматов и позволяет делать цветокоррекцию, редактировать сразу нескольких дорожек и устанавливать визуальные эффекты. Инструмент поддерживается сообществом разработчиков, и любой желающий может внести свой вклад в проект.
№2. Plausible Analytics
Это аналог Google Analytics, предлагающий простой и эффективный инструмент для анализа веб-трафика. Он обеспечивает возможность анонимной и приватной аналитики без cookies и отслеживания конфиденциальной информации пользователей.
Все отчеты предлагаются в режиме реального времени. Еще одним плюсом ПО является интуитивно понятный интерфейс. Поэтому использовать его смогут все пользователи вне зависимости от наличия знаний Plausible Analytics.
№3. Mastodon
Это социальная сеть, представляющая собой аналог Твиттер. Главное отличие – у нее децентрализованная сеть серверов. Следовательно, она предоставляет возможность создания своего собственного сервера и контроля над данными пользователей. Серверы называют «инстансы», их владельцы могут свободно общаться друг с другом.
В общем, функции у ПО почти те же, что и у классических соцсетях – от установки обновлений до публикации изображений и видео.
Разработчики могут просматривать код, вносить изменения и делиться своими вкладами с сообществом. Это дает большую свободу, а также контроль над своей информацией и опытом использования социальной сети.
№4. Supabase
Это разработчиское ПО, являющееся отличной альтернативой Firebase. Она предоставляет набор инструментов для создания и развертывания веб-приложений и баз данных.
Создавать их можно с использованием базы данных PostgreSQL. Supabase открывает доступ к готовым решениям и функционалу, которые помогают разработчикам быстро создавать масштабируемые и безопасные веб-приложения. При этом к ПО можно интегрировать API, серверную базу данных и пр. И вновь инструмент обладает интуитивно понятным интерфейсом, позволяя работать над проектом сразу нескольким разработчикам.
№5. Rocket.Chat
Это мессенджер для общения, представляющий собой альтернативу Slack. Он позволяет создавать чаты, отправлять друг другу сообщения и работать в группах.
Это открытая платформа для коммуникации в режиме реального времени, которая предоставляет возможности для аудио и видеокоммуникации в корпоративных целях, а также командной работы и интеграции с другими инструментами. Он разработан на основе JavaScript и использует MongoDB в качестве базы данных.
Rocket.Chat можно легко настраивать и применять, как облачный продукт.
Больше интересных новостей
На каком языке пишут искусственный интеллект? Введение в ИИ
11 бюджетных инструментов для веб-дизайнера
Игровой движок Cocos Creator / Создание 2Д игры
9 топовых фреймворков AngularJS в 2021 году
Комментарии (1)
Вадим 07 июля 2023 в 20:44
Источник: itproger.com
Как заработать миллионы на открытом коде: от Red Hat до Nginx
Открытый код прошел путь от увлечения романтиков-нонконформистов до обычного инструмента для зарабатывания денег. Новые подходы позволяют корпорациям превращать бесплатные продукты с открытым кодом в мощный инструмент маркетинга
В 2019 году IТ-компания F5 Networks приобрела российский проект с открытым исходным кодом Nginx за $670 млн. Эта сделка укладывается в новый тренд: сервисы с открытым исходным кодом превратились из альтруистичного способа создавать новые продукты в практичную бизнес-модель, ориентированную на получение прибыли.
До 2018 года компании, работающие по концепции open source (они открывали исходный код своих программ) провели только один крупный экзит (оценка стартапа рынком): в 1998 году провела IPO компания Red Hat. Проекты с открытым кодом — например, операционная система Linux — могли становиться крайне важным элементом множества систем, но практически не приносили прибыли владельцам.
Однако в прошлом году стало заметно, что open source стал способом вырастить миллиардный бизнес: Pivotal Software вышла на IPO, достигнув капитализации в $3,9 млрд в первый день торгов, Salesforce купила MuseSoft за $6,5 млрд. Знаковым событием стала покупка корпорацией IBM разработчика Red Hat за $34 млрд. Как компании изменили свой подход к разработке с открытым кодом, чтобы достичь миллиардной капитализации?
Немного истории
В 80-е годы прошлого века Ричард Столлман основал Free Software Foundation. Изначально идея была в том, чтобы программисты бесплатно делились своими разработками друг с другом. Никто не планировал коммерциализировать «открытый код». Однако все изменилось с созданием Red Hat.
Red Hat вышел на рынок в 1993 году с бесплатной операционной системой Red Hat Linux. Кстати, название Red Hat пришло от любимого головного убора основателя Марка Юинга. Основные деньги тогда зарабатывались на телефонной поддержке клиентов, и компания была довольно мелким игроком. Диски с Red Hat Linux стоили $29,95, а в интернете ПО и вовсе скачивалось бесплатно. Чтобы из маленькой рыбки на рынке превратиться в акулу — поставщика корпоративного ПО уровня Oracle, нужны были действия по увеличению прибыли в десятки раз в короткие сроки.
И вот в 2001 году в компанию пришел Пол Кормье, который предложил продавать расширенный «корпоративный» пакет Red Hat Linux и брать деньги в том числе за установку этого пакета и его техподдержку. Основное ПО в обычной версии по-прежнему оставалось бесплатным.
Это была первая поворотная точка в истории всех open source компаний. Rad Hat подала пример, как зарабатывать на открытом коде, сохраняя сообщество разработчиков-энтузиастов.
От Open Source к Open Core
С развитием современных инструментов разработки делать софт стало гораздо дешевле и быстрее. Многие компании стали чаще выбирать программирование силами собственных сотрудников, а не покупку готового программного обеспечения или аренду облачного сервиса. Это открыло для компаний, работающих в сегменте open source, новые возможности: они по сути поставляют «строительные блоки» для разработчиков, ядро разработки, Open Core. Программисты других компаний с помощью открытого исходного кода решают свои задачи. В результате, однако, распадается «сообщество свободных программистов»: направление проекта жестко задает компания, разработавшая продукт в открытых исходных кодах.
Например, компания Kong создает платформы с открытым исходным кодом и облачные сервисы управления и контроля программирования в корпорациях. Программное обеспечение Kong бесплатное, как и в классическом open source. Бизнес делается на enterprise-версии, которая лучше масштабируется, предоставляет аналитику по проекту и дает прочие функции, необходимые большим компаниям. Годовая лицензия стоит около $100 000.
Как работает бизнес-модель Kong? Сначала разработчики клиента интересуются этим ПО ради бесплатной версии с открытым кодом. Начинают устанавливать софт Kong везде, выстраивают на его базе большую часть разработки. В этот момент к техническому директору компании приходят менеджеры по продажам Kong. Они говорят: «Вы внедрили наш продукт вот здесь и здесь.
Вам не хватает определенных функций, которых нет в бесплатной версии, но они есть в расширенной версии Enterprise». Тут технический директор и начинает задумываться о покупке платной версии.
На первый взгляд модель Kong такая же, как у Red Hat, которая еще в 2001 году начала продавать «корпоративную» версию операционной системы. Но главное отличие в том, что пользователи могли выбирать из большого количества альтернативных дистрибутивов Linux. Компания Red Hat не владела ключевой технологией: если ее вариант операционной системы не устраивал клиента, тот теоретически мог перейти на другую версию Linux.
А вот Kong полностью владеет своей технологией и ее разработкой. В мире просто не найдется значительного количества независимых программистов, которые разбираются в Kong настолько, чтобы создать копию ее корпоративного продукта, но при этом не работают в компании.
При старом подходе недостающие функции в бесплатную версию могли добавить независимые разработчики. В новой модели разработка ПО с открытым кодом полностью контролируется компанией. Кроме того, AngelList в своей рассылке отмечал, что современные open source проекты предполагают заключение лицензионного соглашения с массой ограничений, подталкивающих партнеров к покупке платной версии.
Open source 2.0
Почему модель с открытым исходным кодом позволила создавать стартапы с миллиардной капитализацией только в последнее время? Компании все чаще стали закупать технологию по модели bottom-up: разработчики убеждают руководство, что им необходим определенный софт для развития, тогда как раньше топ-менеджмент компании обычно решал этот вопрос директивно.
Чтобы привлечь внимание разработчиков, open source компаниям необходимо стать золотым стандартом. Они подчеркивают свою экспертность на митапах и конференциях для девелоперов. А те, попробовав бесплатную версию, сами не замечая, становятся амбассадорами выбранной технологии в своих компаниях, убеждая руководство купить подписку на «полный пакет».
Так действует все больше компаний. Проект Confluent разработал технологию с открытым кодом Apache Kafka, но ежегодно увеличивает подписку на ее расширенную версию в 3,5 раза. Это позволило ему привлечь $125 млн от Sequoia, Index Ventures и Benchmark.
Таким образом, продукты с открытым кодом стали по существу механизмом продвижения на рынок платных продуктов. Отличие от традиционной практики можно проиллюстрировать примером: если раньше компании пытались заработать, открывая кафе (т. е. предлагая платную поддержку) на обочине оживленной трассы (бесплатный продукт с открытым кодом), то теперь сама трасса прокладывается таким образом, чтобы привести в заведение состоятельных клиентов.
Прагматики против идеалистов
Можно было бы погрустить, что в новом мире open source не осталось места для альтруизма. Однако в этой ситуации можно найти почву для оптимизма. Во-первых, на рынке закрепилась новая модель продажи софта. Во-вторых, она подходит только тем разработчикам, которые смогли сделать свои программы основой инфраструктуры большого числа компаний. А значит, подходит она далеко не всем: например, ее нельзя повторить, если клиент — конечный пользователь.
Даже компании, которые дошли до многомиллионной капитализации, продолжают заботиться о бесплатных пользователях. Например, главным условием российских основателей Nginx для нового владельца F5 стала открытость кода продукта. Стартап, начав как «бескорыстный» open source, пришел к бизнес-модели с платной enterprise-версией.
Тем не менее российский продукт до сих пор бесплатно используют миллионы разработчиков и бизнесов по всему миру. При этом зарабатывает проект в основном на крупном платежеспособном бизнесе. Можно сказать, что крупный бизнес оплачивает возможность использования продукта всеми остальными.
Некоторые корпорации открывают внутренние разработки, что практически не встречалось в 90-х. Например, популярный среди разработчиков инструмент React использовался внутри корпорации Facebook. А Google создал открытую программную библиотеку Tensorflow, популярную у разработчиков сервисов с применением искусственного интеллекта. Не монетизируя открытый код напрямую, корпорации привлекают разработчиков, которые стремятся разрабатывать подобные продукты.
Открытый код прошел путь от почти идеалистической концепции до обычного инструмента зарабатывания денег. Однако идея не умерла: новые подходы позволяют корпорациям создавать бесплатные продукты, открывать их код и при этом не забывать о своих финансовых целях.
Источник: www.forbes.ru