Бизнес-модели Linux и Open Source совершенно далеки от того представления, которое должно было сложиться у ранних разработчиков. Linux в частности и Open Source в целом прошли тернистый путь, полный падений и взлетов, но мало какие компании за редким исключением типа Red Hat снискали коммерческий успех. В итоге Linux так и не удалось сходу завоевать умы как потребителей, так и корпоративных клиентов, однако открытые технология полным ходом осваивают Интернет, завоевывают облако и являются основой для развертывания проектов в области Интернета вещей, пишет на портале LinuxInsider Джек Джермейн.

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

Сложности Linux-десктопа несколько иного рода. В последнее время его охватили проблемы с уязвимостями, обнаруженными не только в сопутствующих технологиях, но даже в ядре, а также проблемы с совместимостью. Несмотря на это, Linux продолжает укреплять позиции. Перечисление достижений Linux было бы неполным без упоминания Android — эта система, которая базируется на открытых технологиях, уже много лет занимает доминирующие позиции. Фактически у нее есть только один конкурент — Apple с ее iOS. Вряд ли Microsoft, некогда занимавшая одну из лидирующих позиций на мобильном рынке, ожидала от Open Source подобного триумфа. К слову, ей пришлось с этим смириться и бросить попытки противопоставить Android свою альтернативу — Windows Phone.

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

Понимая это, Google оснастила ее возможностью запускать приложения для Android. Еще большего импульса ей придаст умение работать с Linux-программами (ранее Chrome OS позволяла устанавливать лишь веб-приложения). Обе эти возможности наверняка отразятся на развитии настольной системы Google, привлекая к ней интерес разработчиков и производителей, что будет способствовать продвижению Open Source в массы.

Другим важным драйвером роста Linux и технологий с открытым кодом являются контейнерные приложения, которые используются преимущественно в облаке. Растущая популярность контейнеров и Linux начала постепенно превращать их в корпоративные стандарты, что побудило Microsoft привнести некоторые Linux-элементы в Windows, а контейнеры — в облачную среду Azure.

«Открытый код прогрессирует, набирая более быстрый темп изменений. Вместе с этим растет значимость автоматического тестирования и инструментов, которые на порядок ускоряют выход готовых решений. Проекты, которые смогут подстроиться под этот темп, завоюют рынок, это же касается и проектов с лучшей обратной связью», — считает вице-президент отдела продаж и решений Gravitational Абрахам Ингерсолл.

Продвижение вперед

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

Есть ли к этому предпосылки? Менеджер по развитию бизнеса Exit Technologies Кайл Битнер полагает, что есть, приводя в пример GitLab, которая управляет репозиторием открытого кода, а недавно она стала «единорогом», доведя свою капитализацию до 1 млрд. долл. В своем недавнем отчете GitLab провозгласила, что 2018-й станет переломным в истории Open Source и DevOps. Битнер полагает, что к мнению успешной компании стоит прислушаться, к тому же Open Source может искоренить одну из наиболее сложных проблем современных ИТ — ошибок в коде и, следовательно, проблемы с безопасностью.

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

А ведь эти риски действительно имеют место, особенно с учетом того, что Linux из изолированных систем превращается в большие многопользовательские окружения, что несет дополнительные риски безопасности. Яркими примерами таких окружений являются такие масштабные проекты, как Hadoop или Docker, в каждый из которых вовлечены сотни разработчиков, написавших сотни миллионов строк кода.

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

Linux и контейнеры

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

«Вопросы безопасности должны продумываться в период развертывания приложений, а не после него. Безопасность софта нужно ставить выше дизайнерской культуры той или иной компании», — сказал он. Несмотря на то, что контейнеры — одни из самых безопасных частей корпоративной инфраструктуры, Коекартс советует при их создании с осторожностью относиться к источникам файлов, которые требуется упаковать в контейнеры. Перед созданием образа контейнера также рекомендуется провести сканирование кода и проверить порты — не затронет ли их открытие другие компоненты инфраструктуры? Следует с осторожностью скачивать образы контейнеров, если они упакованы третьей стороной, и обязательно проверять их на цифровую подпись.

«Docker Hub открывает доступ к миллионам образов. Это очень удобно, но когда вы что-то загружаете, это черный ящик. Если, к примеру, в описании контейнерного образа содержатся строки типа „домашний телефон“ и т. п., вы просто не сможете понять что это, пока не прозондируете этот вопрос более детально», — сказал Коекартс.

В качестве одного из основных критериев бесперебойной работы технологии он называет обеспечение надежной сборки контейнеров. Дополнительную защиту придает текущая модель запуска контейнеров — они работают в облачной среде внутри виртуальной машины (ВМ). «Контейнеры — это смена парадигмы, они помогли уйти от ВМ, однако лишь отчасти — они запускаются не в виде ВМ, а внутри нее. Это интересный поворот событий», — сказал он.

Определенно существует проблема, которая беспокоит ИБ-экспертов, — нативный запуск контейнеров не обеспечивает защищенный изоляционный слой между процессами, поэтому ВМ — это наилучший способ их защиты. Дополнительную защищенность им придает большое количество исправлений в Linux и гипервизоре, решающих проблемы с кэшем и боковыми каналами. С другой стороны, большое количество исправлений мешает разработчикам наращивать производительность контейнеров и поддерживать уровень изоляции.

Некоторые рыночные наблюдатели полагают, что современные контейнерные технологии являются первым шагом на пути к созданию ответвления от традиционной Linux. «Linux — это ядро. Что такое операционная система сегодня? Если вы посмотрите на дистрибутив Linux, вы увидите, что он немного видоизменился. Если раньше вы устанавливали ОС и поверх нее приложения, то теперь она превращается в структуру наподобие Docker. Преимущество этой модели состоит в том, что на одной и той же машине можно запускать различные версии приложений, не беспокоясь о конфликтах с библиотекой и т. д.», — сказал Коекартс. Операции с контейнерами напоминают модель работы мейнфреймов — они также работают с ВМ (каждое приложение имеет собственную ВМ). Он полагает, что современные контейнеры — это наследники софтверной составляющей мейнфреймов, но они играют в более легкой весовой категории.

Прогресс неумолим, но в случае контейнеров — особенно. Учитывая скорость изменений и их значение для предприятий, безопасность контейнеров находится в центре внимания, поэтому по мере появления проблем разработчики стараются их быстро решать. «Docker и другие контейнерные технологии двигаются параллельными путями, над ними работает огромное количество инженеров и еще больше работает над сопутствующими технологиями из среды Linux. Важно, что между ними существует налаженный канал для связи, позволяющий оперативно менять версию ядра, получать исправления и убеждаться, что все заинтересованные стороны применяют самую новую версию кода. Может это и не идеальный рабочий процесс, но он слаженный и приносит видимые плоды», — сказал топ-менеджер Oracle.

Огрехи безопасности

Технический директор Mocana Дин Вебер считает, что на пути роста Open Source стоят уязвимости в коде, многие из которых были обнаружены недавно. Проблема в том, что компоненты с открытым кодом присутствуют в 96% коммерческих приложений (по данным прошлогоднего отчета Black Duck). В среднем, в каждом приложении имеется 147 различных компонентов с открытым кодом, 67% из которых представляют собой компоненты с известными уязвимостями.

«Использование уязвимых открытых кодов во встраиваемых ОС, IoT и системах промышленного управления (ICS) опасно по многим причинам», — сказал Вебер. Если код не надежен, то в нем легко найти уязвимости и эксплуатировать их. К этому особенно чувствительны встраиваемые решения — там не всегда понятно, где и какая часть кода работает, обновлена ли она или нет. Ситуация усугубляется тем, что системы нельзя обновить посередине производственных циклов.

«Использование небезопасного открытого исходного кода во встраиваемых решениях, IoT и ICS продолжает расти. Это именно из-за плохого кода хакеры останавливают электростанции, лишая крупные города электричества, ломаются очистные сооружения, загрязняя водоемы и нашу питьевую воду», — сказал Вебер.

Компании, использующие библиотеки и структуры с открытым кодом, сталкиваются с двойственной природой Open Source: в целом это высококачественный и едва ли не единственный метод ускорения цифровой трансформации. Однако есть одно «но», говорит технический директор Contrast Security Джефф Уильямс: «Вы доверяете свой бизнес коду, написанному людьми, которых вы не знаете, с целью, отличной от вашей, и которые к тому же могут относиться к вам враждебно».

Еще одним недостатком открытого кода является то, что из-за своей открытости он все чаще становится вектором хакерских атак. Уильямс отметил, что каждую неделю в таком коде и его компонентах находят десятки новых уязвимостей. «Устанавливая у себя какое-либо решение, пользователь несет ответственность за безопасность всего Open Source. Это вовсе не бесплатный продукт, потому что вам приходится думать о безопасности, поддерживать ее в актуальном состоянии и при необходимости устанавливать другие меры защиты», — сказал он.

Как улучшить Open Source

По словам Битнера, разработчикам необходимо эффективное руководство для использования различных моделей развертывания, что связано со сложностью ПО. Она настолько высока, что пользователям все труднее получить безопасные системы, поэтому нужно создать универсальную базу кода. Создание реестра компонентов с открытым кодом поможет разработчикам сопоставлять известные уязвимости с установленным ПО. Это снижает риск угрозы, считает он.

«Команды разработчиков находятся под постоянным прессингом, чтобы как можно быстрее создавать больше ПО. В качестве ответа появились инструменты автоматической проверки кода и DevOps. Это те средства, которые помогают срезать острые углы», — сказал Битнер.

Разработчики должны следовать философии Unix-минимализма, модульной модели развертывания, считает Ингерсолл. По его словам, подход Unix предполагает «прогрессивное наслоение небольших инструментов для формирования сквозных потоков и непрерывную интеграцию. Это создает код, работающий в реальной целевой среде без ручного вмешательства».

Генеральный директор ActiveStat Барт Коупленд предложил еще одно решение, призванное упростить жизнь разработчикам: стандартизация целевой сборки кода для конкретного применения с учетом лицензий третьих сторон. Кроме того, методология для моделей развертывания ОС должна учитывать управление зависимостями и конфигурацию среды. «Это уменьшит проблемы при интеграции кода из разных источников, сгладит трения, увеличит скорость разработки, сократит вероятность атаки. Такая методология смягчит болезненную эволюцию Open Source-языков для управления зависимостями, соблюдением безопасности, лицензий и т. д.», — сказал он

Очевидные перспективы

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

В любом случае, в сознании разработчиков произошел перелом, и это приведет к тому, что Open Source в ускоренном темпе продолжит проникать на предприятия. Рост числа качественных приложений вызовет повторный всплеск интереса, и предприятия будут стимулировать своих инженеров для создания и поддержки открытого кода. Open Source уже доминирует в облаке, работает на большинстве серверных систем, отметил вице-президент по маркетингу Azul Systems Говард Грин. Влияние открытых технологий начинается с ОС Linux и распространяется на большую часть стека управления данными, мониторинга и разработки на предприятиях всех размеров.

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