Обсуждаем трудности, которые стоят перед разработчиками открытого ПО, и то, как сложности, с которыми им приходится сталкиваться, влияют на ИТ-экосистему в целом.
Фото — James Sutton — Unsplash
Open source — основа интернета
По данным Linux Foundation, 72% компаний из Fortune 2000 используют open source инструменты для решения своих задач. При этом 55% задействуют открытый код в коммерческих продуктах. Открытое ПО распространено в дата-центрах — например, с ним работают Facebook, Rackspace, NASA и AT&T. Ряд облачных провайдеров и ИТ-компаний даже основал организацию Open Compute Project. Она разрабатывает открытый стандарт архитектуры серверных стоек (Open Rack) и требования к модульному серверу для облачных дата-центров (OpenCloud Server).
Значительная часть популярных open source продуктов — это масштабные проекты вроде Kubernetes, TensorFlow или Ansible. Их разрабатывают и финансируют крупные ИТ-компании. Но есть и небольшие продукты (например, cURL), которые поддерживают энтузиасты. Часто они делают это на добровольной основе и в свободное время. И здесь кроются подводные камни.
Почему такую модель критикуют
Концепция open source подразумевает, что модифицировать исходники и исправлять в них ошибки могут все желающие. Коллективные усилия повышают качество кодовой базы и сокращают число багов. Но к сожалению, эта модель работает не всегда.
Значительную часть изменений в open source проект вносит или маленькая команда, или один мейнтейнер. Например, из 25 тыс. коммитов в репозитории cURL, 14 тыс. принадлежат автору — Даниэлю Стенбергу (Daniel Stenberg). Долгое время число разработчиков библиотеки OpenSSL не превышало четырех человек. Большую часть коммитов сделал один из них — Стив Хенсон (Steve Henson). Поэтому в таких условиях легко недоглядеть и «пропустить» баг.
Так, пять лет назад в OpenSSL обнаружили одну из самых крупных уязвимостей в софте — Heartbleed. Она позволяет несанкционированно читать память на сервере или клиенте. Тогда число уязвимых веб-сайтов оценили в полмиллиона. Патч выпустили сразу, но еще в 2017 году работали 200 тыс. сайтов, подверженных Heartbleed.
Фото — James Sutton — Unsplash
Многие open source проекты испытывают проблемы с финансированием. Тот же OpenSSL существует за счет пожертвований комьюнити и доходов с корпоративных контрактов — сумма не превышает миллиона долларов в год. Бывший CEO проекта говорит, что одной из причин появления Heartbleed стал именно недостаток финансирования. Инженерам бывает сложно привлечь средства даже за консультации. По словам Даниэля Стенберга, к нему часто обращаются международные компании с просьбами помочь решить проблему в cURL. Но каждый раз, когда он просит оплатить его работу, беседа почему-то прекращается.
«Иногда разработчики занимаются открытыми проектами в свободное время в качестве хобби. Поэтому неудивительно, что некоторые приложения забрасывают. Если никто не хочет поддерживать проект на плаву, сформированное вокруг него комьюнити распадается.
В худшем случае пользователи системы могут стать целью хакерской атаки. Пример — прошлогодняя атака на npm-модуль event-stream».
Автор проекта, Доминик Тарр (Dominic Tarr), переключился на другие задачи и оставил свое детище без внимания. Некий пользователь предложил взять поддержку модуля на себя.
Тарр согласился и предоставил ему доступ к репозиторию на GitHub и npm. Со временем новый мейнтейнер внедрил в утилиту скрипт, который воровал данные биткоин-кошельков и загружал их на его сервер. Уязвимость затронула большое число пользователей, учитывая, что у event-stream 1,9 млн скачиваний в неделю.
Как исправляют ситуацию
По данным Национального бюро экономических исследований США, главный мотивирующий фактор развития open source — это экономическая выгода. Поэтому разработчики открытого ПО ищут способы его монетизировать. Например, переводят часть модулей на ограничивающие или даже коммерческие лицензии. По этому пути пошли MongoDB, Redis и другие компании.
Подробнее о ситуации мы уже говорили. Разработчики считают, что даже частичная коммерциализация кода позволит открыть дополнительный источник дохода и привлечь новых людей в проект. Но такая модель часто воспринимается ИТ-сообществом в штыки.
Есть мнение, что подход противоречит концепции открытого ПО. При этом он годится не для всех. В 2017 году HTTP/2 веб-сервер Caddy анонсировал коммерческую лицензию. Но по каким-то причинам месяц назад проект вновь вернули в open source.
Фото — Artem Beliaikin — Unsplash
Мировая интернет-инфраструктура зависит от открытых проектов. Поэтому важно уделять внимание их поддержке. И работа в этом направлении ведется. В Linux Foundation регулярно появляются новые резиденты. Все больше в open source инвестируют крупные компании. Возможно, такие инициативы помогут избежать повторения истории, аналогичной Heartbleed.
Дополнительное чтение в блоге 1cloud.ru:
Спасет ли облако ультра-бюджетные смартфоны
Почему Apple изменила требования к разработчикам приложений
Эволюция архитектуры облака 1cloud
Что нового в Linux kernel 5.3 — графические драйверы, виртуализация и другие обновления
Почему разработчики мейнстрим-браузера снова отказались от отображения поддомена
Почему Apple изменила требования к разработчикам приложений
Автор: 1cloud