Российскому ит-рынку грядет полный опенсорс

Введение

Подходы к информационной безопасности в мире ИТ со временем эволюционируют и развиваются. Вопросы цифровой безопасности уже не стоят на дальнем плане в приоритетах большинства компаний и продуктов. Репутационные риски стали не эфемерной угрозой, а реальным бизнес-инструментом. Вспомним, например, что после выявления системных проблем ИБ в своих микропроцессорах компания Intel заказала аналогичное исследование для процессоров AMD. Крупные корпорации активно вкладываются в программы Bug Bounty, а также развивают процессы управления информационной безопасностью и безопасной разработки.

Визионер мирового рынка DevSecOps компания Sonatype совместно с партнёрами выпустила очередной анализ рынка ПО с открытым кодом — State of the Software Supply Chain 2019 (SSSC). Согласно 5-му выпуску SSSC, сохраняются тенденции активного роста распространения Open Source. Растущий спрос на инновации ускорил внедрение автоматизированных конвейеров разработки ПО (development pipelines), одновременно поднимая на новые высоты распространение Open Source во всех экосистемах.

Исследователи отметили, что 95 % кода современных веб-приложений составляют компоненты, загруженные из npm-репозитория. Большинство команд программистов опрошенных компаний включает обновление зависимостей в свой ежедневный процесс разработки. Таким образом, количество включений уязвимого ПО в проекты постепенно снижается.

В исследовании рассматривается важный класс метрик — время обновления и исправления компонентов и зависимостей. Приводятся выводы, что своевременная плановая установка общих обновлений сокращает время на исправление найденных в продукте уязвимостей. То есть сокращение времени установки обновлений, не связанных с безопасностью — MTTU (Mean Time To Update), — снижает также время исправления уязвимостей в продукте — MTTR (Mean Time To Remediate). Для повышения общей защищённости эксперты рекомендуют всегда обновлять пакеты и их зависимости до актуальных версий.

Это подтверждается цитатой Джереми Лонга, основателя The OWASP Dependency Check: проект предполагает, что «только 25 % организаций сообщают об уязвимостях пользователям, и только 10 % уязвимостей зарегистрированы как Common Vulnerabilities and Exposures (CVE)». В качестве примера Лонг приводит уязвимость безопасности, обнаруженную в PrimeFaces — инфраструктуре пользовательского интерфейса Java. Проект PrimeFaces узнал об уязвимости и устранил её в феврале 2016 года. В 2017 году этой уязвимости была назначена CVE (CVE-2017-1000486). Затем CVE была опубликована в национальном каталоге 3 января 2018 г. После публикации CVE криптомайнеры начали активно эксплуатировать уязвимые версии компонента. Разработчики, которые практиковали обновление до последних выпущенных версий PrimeFaces, подвергались меньшему риску, чем те их коллеги, которые полагались на публикацию CVE для запуска процесса по исправлению.

Рисунок 1. Инфографика основных выводов исследования State of the Software Supply Chain 2019

Если в цифрах, то основные выводы отчёта — следующие:

Распространение компонентов Open Source в коммерческих и промышленных средах показало 75-процентный рост (рис. 2) — во многом благодаря распространению JavaScript и открытых репозиториев пакетов и библиотек, а также активному сообществу разработчиков и росту версионности как для исправления ошибок, так и для внедрения функциональности.

Рисунок 2. Динамика распространения компонентов Open Source в коммерческих и промышленных средах, 2017–2019 гг.

Проекты, где обновление происходит регулярно, а не по обнародованию CVE и выходу соответствующего патча, показывают более защищённый статус продукта (рис. 3). В целом отмечен тренд на снижение использования уязвимых компонентов в проектах (рис. 4).

Рисунок 3. Сравнение среднего времени на обновление и установку программных исправлений продуктов Open Source

Рисунок 4. Динамика использования компонентов с известными уязвимостями

Количество подтверждённых взломов открытого ПО по сравнению с 2014 годом выросло на 71 %. Однако в сравнении с 2018 годом имеется тренд на понижение, который, как предполагают эксперты, формируется благодаря внедрению процессов цифровой гигиены в содержании пакетов (Open Source Hygiene) (рис. 5).

Рисунок 5. Предполагаемые или подтверждённые взломы, связанные с открытым исходным кодом, в течение четырёх лет

Is open source software only important to computer programmers?

No. Open source technology and open source thinking both benefit programmers and non-programmers.

Because early inventors built much of the Internet itself on open source technologies—like the Linux operating system and the Apache Web server application—anyone using the Internet today benefits from open source software.

Some people call remote computing «cloud computing,» because it involves activities (like storing files, sharing photos, or watching videos) that incorporate not only local devices but also a global network of remote computers that form an «atmosphere» around them.

Cloud computing is an increasingly important aspect of everyday life with Internet-connected devices. Some cloud computing applications, like Google Apps, are proprietary. Others, like ownCloud and Nextcloud, are open source.

Cloud computing applications run «on top» of additional software that helps them operate smoothly and efficiently, so people will often say that software running «underneath» cloud computing applications acts as a «platform» for those applications. Cloud computing platforms can be open source or closed source. OpenStack is an example of an open source cloud computing platform.

Заработок в Open Source

Photo by rawpixel on Unsplash

Вероятно, вам интересно, можно ли
заработать что-нибудь, занимаясь Open
Source проектами. Естественно!

Несмотря на то что программы сами по
себе обычно бесплатные, есть и другие
способы заработать себе на жизнь. Open
Source в этом смысле напоминает искусство.
И, как и в случае с искусством, некоторые
методы могут вам подойти, а другие –
нет. Это неточная наука.

Методы постоянного заработка

Мой любимый «постоянный» метод –
кнопка «Пожертвовать» («Donate»). Вы можете
видеть пример на одном из моих проектов
– .
В зависимости от ожидаемого размера
пожертвований можно рассмотреть разные
варианты перевода денег. Например,
Paypal (платежи больше $15) или Buy
me a Coffee (меньше $15).

Songcorder tip button

Кнопка «Buy me a Coffee» выглядит вот так
(кстати, можете кликнуть, если считаете,
что я заслужил):

Помимо кнопок общего назначения, есть
методы, предназначенные именно для Open
Source проектов, например, Gittip/Liberapay
(этот проект любит менять названия).
Любопытно, что один из популярных
репозиториев, поддерживаемых Liberapay, это
awesome.

Упомянутый в предыдущем пункте проект
похож на Flattr. Вы
(потребитель) выбираете ежемесячную
сумму, которую хотите потратить на
поддержку проектов. Когда вы одобряете
чью-то работу, ее автор получает часть
вашего бюджета.

Скажем, вы решили, что можете себе
позволить тратить на Open Source $5 ежемесячно.
Если вы за месяц одобрили четыре проекта
(поставив им «звезду» с помощью кнопки
Flattr), то каждый из авторов получит по
$1,25. Все просто.

репозитории, подключенные к Liberapay

Можно поддерживать не проекты целиком,
а перечислять деньги непосредственно
(ну, почти) контрибуторам. Таким образом
работает Tip4Commit.
Желающие поддержать проект кладут на
депозит проекта некоторую сумму в
Bitcoin, а каждый контрибутор проекта
получает что-то из этой суммы.

Есть еще один возможный способ получения
оплаты – Patreon.
Здесь, в отличие от предыдущего варианта,
бюджет не делится поровну между
контрибуторами. Вместо этого вы можете
перечислить некую сумму любому
контрибутору по вашему выбору.

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

Сюда может относиться продажа
pro-функционала корпоративным клиентам
или помощь им в деплое и кастомизации
ваших продуктов. Во многих организациях
нет специалистов с достаточным уровнем
навыков для адаптации Open Source проекта
под их нужды. А кто справится с этим
лучше, чем человек, занимающийся
поддержкой этого проекта?

Если можете помогать другим и получать
за это деньги, – вперед!

Разовые методы

Один из популярных методов поддержки
Open Source проектов это краудфандинг. Для
этой цели создано множество платформ.
Kickstarter, например,
помог запустить Mycroft
Mark II (голосовой помощник). Другой
крупный игрок, Indiegogo,
размещал кампанию для почтового
клиента Geary.

Если вы опасаетесь, что не найдете
достаточно желающих для успешного
краудфандинга, можете попробовать
гранты. Я знаю по крайней мере две
организации, занимающиеся такими
грантами. Одна из них – Travis
Foundation (детище компании, занимающейся
Travis CI). Другая –
Mozilla Foundation
(создатели браузера Firefox).

Большинство названных инструментов
фокусируются на тех, кто ведет проекты
в Open Source. Но и контрибуторы могут
подзаработать, став «охотниками за
головами». «Головы» в данном случае это
фичи, запрашиваемые какой-то третьей
стороной, обещающей за это финансовое
вознаграждение. Чтобы «поохотиться»,
вам нужно заполнить запрос по фиче и
потребовать награду. Самая популярная
платформа для «Охоты за головами» на
данный момент – Bountysource.

Но если вы предпочитаете получать
оплату криптовалютой, вам может подойти
Gitcoin.

Еще один подходящий способ заработка
– платная стажировка. Здесь есть два
популярных варианта:

  • Google
    Summer of Code – нацелен на студентов
  • Outreachy –
    нацелен на меньшинства в сфере технологий.

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

Установка приложений из google play

Как было отмечено выше, есть несколько способов решения проблемы.

  • Можно установить патченную версию оригинального Google Play и жить, как обычно. Должно работать всё, включая микроплатежи в приложениях.
  • Aurora Store. Прекрасное, красивое, быстрое приложение. Может многое (из основного нужного — установка, обновление бесплатных приложений). Пока в бете и имеет некоторые проблемы со скачиванием через анонимный аккаунт (используйте свой неанонимный или пока обойтесь Yalp Store, это практически то же самое, но без красивого интерфейса и с еще более скромными системными требованиями (до сих пор поддерживается Android 2+)
  • PlayMaker позволяет на вашем сервере развернуть f-droid репозиторий с нужными вам приложениями из google play. Управление скачиваемыми приложениями производится через веб-интерфейс. Имеет очевидные ограничения, но очень удобен, если вы нечасто устанавливаете новые приложения и нуждаетесь лишь в способе их удобного обновления.
  • 4pda app&game: Безумное приложение, однако, предоставляющее быстрый доступ к обновлению ваших приложений. Может быть полезным тем, что на 4pda обычно выкладывают не только оригинальные версии, но и модифицированные (например, с удаленной рекламой). Лично я не одобряю, но знаю, что этим пользуются.
  • APKPure Сторонний сервис-зеркало Google Play. Не был замечен за перепаковкой приложений (подписи совпадают с оригинальными), но нет никаких гарантий, что так будет продолжаться и дальше.

На чем же базируется концепция RPA?

В основе инструментов RPA лежать следующие технологии:

  • управление открытыми web страницами браузера;
  • управление открытыми десктопными GUI приложениями;
  • управление мышью и клавиатурой (нажатие клавиш, hotkeys, кнопок мыши, перемещение курсора);
  • поиск графических элементов на экране рабочего стола для применения дальнейших действий мышью и/или клавиатурой;

Многолетним практическим опытом нам удалось показать, что именно этот набор технологий позволяет реализовать роботизацию практически любого бизнес-процесса, в которых не требуется элемент распознавания/применения искусственного интеллекта (в этих случаях требуется подключать к роботу соответствующие библиотеки, доступные в существующем мире IT). Отсутствие хотя бы одного из вышеперечисленных инструментов существенно влияет на возможности RPA.

Создание фонда

ИТ-сообщество предложило открыть в России фонд для создания софта с открытым кодом. В рамках конгломерата планируется объединиться разработчикам софта из Сбербанка, «Яндекса» и еще ряда ИТ-компаний. О планах создания Russian Open Source Foundation, некоммерческой организации (НКО) или фонда для развития софта с открытым кодом (Open Source) 1 октября 2021 г. заявил Илья Массух, глава центра компетенций по импортозамещению в сфере информационно-коммуникационных технологий на Russia Open Source Summit, сообщает РБК. По словам Массуха, собрать игроков рынка для НКО планируется до 1 ноября 2021 г. Кроме Сбербанка и «Яндекса» планируется привлечь ВТБ, Mail.ru Group, Postgres Professional и Arenadata.

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

Что будет дальше

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

Если десять лет назад настройка своего облака была затратной деятельностью, сейчас с появлением Docker’а, K8s и т.д. задача сильно упростилась. Многие компании на ранней стадии вообще отказываются от выделенной команды DevOps’ов или системных администраторов, и поручают разработчикам поддержку парка машин. Не последнюю роль тут играет доступность облачного хостинга (Digital Ocean, AWS и т.д.).

Мне кажется, что через некоторое время настройка и установка сервиса в своей инфраструктуре станет сравнимой с установкой софта на Mac или Windows и будет доступна людям с минимальной технической экспертизой (Product- и project-менеджерам). И open-source станет намного больше!

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

Никита Однороб: «Пробуйте себя в Open Source, ищите good first issue и реализуйте их»

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

У такого подхода есть несколько преимуществ:

  1. Даже без опыта и глубоких знаний вы сможете внести вклад в проект.
  2. Несмотря на простоту, такие задачи позволяют пройти весь цикл разработки в Open Source: изменяете/пишете код → создаёте pull request → проходите код-ревью.
  3. Даже такие, на первый взгляд несущественные, изменения помогают проекту. Как правило, авторы сосредоточены на добавлении новых фич, а на покрытие кода тестами и красивое оформление документации не остаётся времени.
  4. Когда ваши изменения вольют в основную ветку, будет приятно осознавать, что вы причастны к большому проекту. Каждый новый влитый pull request придаст уверенности в своих силах.

Но всё же новичкам не стоит контрибьютить в первый попавшийся проект. Например, не советую выбирать репозитории, в которых давно не было обновлений. Возможно, их авторам будет не до вас, вы не получите код-ревью и даже хоть какой-то реакции на pull request. Также посмотрите на список issue проекта. Если в репозитории много issue, заведённых уже несколько месяцев назад, — это плохой знак.

А вообще, в open-source-проектах есть много issue на несложные задачи, до которых у авторов просто не доходят руки. Их иногда помечают как good first issue. Это означает, что, по мнению автора, задача несложная и, скорее всего, с ней справится даже начинающий разработчик. Например, такие issue появляются, если нужно добавить новую локализацию или обновить документацию.

Рассмотрим проект jest. Достаточно популярный npm-пакет — 12 млн скачиваний в неделю. На данный момент у него 23 issue с меткой good first. При этом закрытых issue с такой же меткой — 200. Большинство из них — по документации или тестам.

Есть сайт goodfirstissue, который показывает популярные репозитории с такими задачами. Например, когда я выбрал TypeScript, он показал, что в пакете react-use пять дней назад создали issue об ошибке сторибука с меткой good first и кто-то даже сделал pull request. Начинать вносить вклад в Open Source стоит с больших проектов — там много опытных участников, которые помогут и дадут код-ревью.

Ваш код не обязательно сразу попадёт в main — возможно, авторы репозитория попросят вас что-то подправить. Рекомендую доводить свои pull request до мерджа. Например, в проекте jest есть good first issue, открытое более года назад. Для него сделали два pull request — в каждом из них владелец репозитория предложил что-то исправить, но оба до сих пор висят незавершённые и с конфликтами: инициаторы просто забросили их.

Ваши pull request могут посмотреть не сразу — не переживайте по этому поводу. Если ожидание сильно затянулось, а автор репозитория при этом продолжает работать над проектом, упомяните его в issue или pull request.

Итак, резюмируем:

  1. Пробуйте себя в Open Source, ищите good first issue и реализуйте их.
  2. Если ревьюер попросил вас что-то подправить, лучше сделайте это и не оставляйте висячие pull request.
  3. Не расстраивайтесь, если ваш pull request посмотрят не сразу.
  4. Не расстраивайтесь, если ваши изменения отклонили. Попробуйте найти другую задачу.
  5. Ваши изменения влили в основную ветку? Вы молодец! Можете собой гордиться.

Если хотите быть в GitHub как рыба в воде, освойте один из языков программирования и заодно Git. Выбирайте курс в разделе «Программирование» на сайте Skillbox и вносите свой вклад в Open Source.

Плюсы открытого кода

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

Для пользователей

  • Долгосрочная поддержка — в интересах опенсорс-сообщества развивать проект как можно дольше, в то время как корпорации постоянно обновляют версии и выпускают новые продукты на смену старым, чтобы брать с потребителей деньги.
  • Экономия денег — за продукт и его новые версии не нужно платить.
  • Конфиденциальность — корпорации зачастую собирают личные данные потребителей для таргетинга и прочих целей. К примеру, Microsoft уличили в том, что она собирала персональные данные 300 тыс. госслужащих Нидерландов через Office ProPlus без разрешения и документации.
  • Простая обратная связь — индивидуальные разработчики и небольшие группы программистов реагируют на баги и ошибки гораздо быстрее, чем крупные компании.

Для разработчиков:

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

Для корпораций:

Участие в открытых проектах позволяет привлечь внимание к другим своим программам, а также развивать собственную экосистему за счет усилий сторонних разработчиков.
Вовлеченность открытого сообщества в проекты компании делает проще поиск и найм новых сотрудников.
Покупка опенсорс-компаний позволяет удерживать таланты внутри компании; поддержка проектов извне мотивирует разработчиков активнее развивать их.

Falcongaze SecureTower

SecureTower представляет собой комплексное программное решение для защиты бизнеса от внутренних угроз.

Функции и фичи

  • Создание скриншотов рабочих компьютеров (что позволяет частично контролировать деятельность сотрудников).
  • Хороший инструментарий просмотра и анализа архива.
  • Практически из любого отчёта можно перейти к указанному там событию. 
  • Инцидентам можно назначать категории (исследованные, неисследованные, отложенные). 

К бонусам программы можно отнести мониторинг Телеграмма и Viber’а, поскольку есть DLP-системы, которые никак не взаимодействуют с мессенджерами.

Недостатки:

  • Отсутствие возможности блокировки принтеров.
  • Отсутствие блокировок для сетевых каналов.

Удобство в использовании

SecureTower легко устанавливается без углубленного изучения инструкций. Удобно управлять, работать с архивной информацией. По всем эксплуатационным функциям ставим плюс.

Цена

На официальном сайте покупателям предлагается заполнить форму и дождаться обратного звонка, чтобы рассчитать сумму к оплате. На сторонних ресурсах мы нашли минимальную стоимость за лицензию в размере 70 000 рублей. Дорого ли это, решать, скорее, вам, а мы поставим минус за отсутствие платежной информации на сайте.

Вывод

Программа практически никогда (кроме HTTP, SMTP и MAPI) не блокирует перехваты, а создает теневую копию действий. По сути, SecureTower дает возможность сотрудникам предпринимать любые действия, предупреждая, что они будут проанализированы в будущем. Пока SecureTower больше заточена на мониторинг, нежели на перехват, поэтому назвать программу яростным борцом с утечками данных мы не можем. 

Преимущества

Начну с «хорошего», а именно почему мне нравится тратить +30 минут в день, на бесплатные проекты с открытым исходным кодом.

Разносторонний опыт в программировании

Каждый разработчик ограничен проектом, вне зависимости от квалификации, занимаемой должности и размера инвойса. Это в свою очередь значит, что список используемых технологий предопределен и статичен. Ближайшее изменение стека случится не скоро, или вообще никогда.

Рутина — главный убийца интереса, как в ежедневной работе, так и в профессии в целом. Наши заботливые (и не очень) начальники изо всех сил стараются угодить, ведь недовольный сотрудник завтра убежит к соседям. Тут тебе и смузи по утрам, и электрогитара в офисе, и абонементы в спортзал, но как бы они не старались, решающим фактором (после ЗП) остается проект. Будь то интересный стартап на модных фреймворках, или же enterprise на Angular 1.X, так или иначе настанет момент, когда всё надоест. Такова природа человека — обесценивать всё чем он обладает, и зариться на соседское.

Надоело писать на своем стеке? Не спеши бегать по собесам, а просто найди интересный для тебя проект в мире open source, и вперед.

Свобода

Да простит меня мой учитель математики, за мои изыскания ниже:

На работе мы обязуемся выполнять задач, за вознаграждение на протяжении времени . Эта формула для лабораторных условий в вакууме. Для применения её на практике следует добавить коэффициент реальной жизни :

Если же применить этот расчет на open source, то все переменные будут вычеркнуты. В этом и есть свобода, никаких ограничений, требований, боссов и дедлайнов, только интересные задачи, которые можно решить используя новый подход или стек. Появилось желание — покрываю тестами v14 Node.js, завтра надоест буду смотреть YouTube, и никто не спросит с меня за тесты, даже если я никогда их не закончу.

Развитие soft skills

Одна голова хорошо, две лучше, а все maintainer’ы отлично, но сложно. Работая над очередным фиксом или фичей, конечно же хочется в итоге залить его в . Для этого нужно не просто написать хороший код, но еще и отстоять свою идею и доказать правоту. В мире open source царит демократия, и каждый готов озвучить свою точку зрения.

Чем серьезнее проект и чем активнее в нем комьюнити, тем больше придется общаться. Каждый PR и каждый issue это новая дискуссия, новый шанс потренироваться в искусстве убеждения и попрактиковать English.

Самореклама

По ходу работы над проектом можно пересечься с разными людьми по всему миру, тем самым формируя сеть знакомств. Звучит немного по-еврейски, но связи сильнее денег, и на них держится кремниевая долина, где команда для стартапа может сформироваться в очереди за кофе. Здесь то же самое, только онлайн. Подискутировали под несколькими issue, потом в Slack просишь просмотреть твой PR, слово за слово и уже вроде как знакомы.

Как распорядиться такими знакомствами решать вам, можно стартап начать, можно договориться о бесплатной ночевке, на случай путешествий, а можно просто сказать «ищу работу» и получить горячую позицию с готовой рекомендацией. В любом случае, хуже от связей не будет.

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

Если опустить романтичные мечты о собственном деле и вернуться в галерные будни, то здесь тоже есть своя выгода. Приходишь на собеседование, а тебе кофе, печеньки и оффер, потому что ты core contributor в . Другому кандидату с идентичным опытом, скорее всего придется отвечать на банальные вопросы в духе «какие вы знаете типы в JavaScript?», ну вы понимаете.

Карма

Я использую бесплатные продукты с открытым исходным кодом, так почему бы не отдать долг родине? Это из разряда чего-то личного, но мне сложно быть должным. Мне приятно осознавать, что я также вношу свой вклад и могу помочь другим разработчикам решить их проблемы.

Doesn’t «open source» just mean something is free of charge?

No. This is a common misconception about what «open source» implies, and the concept’s implications are not only economic.

Open source software programmers can charge money for the open source software they create or to which they contribute. But in some cases, because an open source license might require them to release their source code when they sell software to others, some programmers find that charging users money for software services and support (rather than for the software itself) is more lucrative. This way, their software remains free of charge, and they make money helping others install, use, and troubleshoot it.

While some open source software may be free of charge, skill in programming and troubleshooting open source software can be quite valuable. Many employers specifically seek to hire programmers with experience working on open source software.

Счастье — в модульности

Некоторые разработчики нашли себя, сосредоточившись на создании небольших, легко обслуживаемых, фрагментов кода и тем самым сознательно избавились от избыточной ответственности. «Я не люблю разрабатывать ПО, требующее масштабной поддержки, — говорит Джеймс Халлидей (James Halliday), создатель большого количество модулей Node.js. — Вообще стараюсь делать модули минималистичными. Уверен, многие инструменты выиграли бы от того, что над ними перестали работать, перестали вносить изменения без объективных причин». Дополнительные функции приводят к избыточной сложности, и каждое изменение влечет за собой риск появления новых багов.

Хэллидей (более известный под ником substack) — сторонник политики невмешательства и пассивного подхода. «У меня отключены все уведомления от GitHub», — говорит он. В самом деле, любой разработчик может форкнуть код и исправить обнаруженную проблему или добавить новый функционал в модуль. В конце концов, именно так работает Open Source. Джеймс перестает отслеживать issues или pull request’ы для пакетов, которые считает завершенными. «Постоянно следить за каждой мелочью, которую я написал много лет или десятилетий назад, — это не про меня, — отмечает он. — Я всегда занят новыми проектами, что было бы невозможно, если бы постоянно возвращался к старым».

Не существует идеального подхода к разработке, который пришёлся бы по вкусу всем разработчикам открытого и свободного ПО. Многие из них счастливы поддерживать свои проекты или работать с сообществом над улучшениями. Установка в духе «меньше — значит больше» становится все более популярной альтернативой для поддержания крупных проектов и сообществ. Как отмечает Эгбал в своей книге Working in Public: The Making and Maintenance of Open Source Software, добавление новых участников в проект фактически означает дополнительную работу для его авторов. Те рискуют оказаться на своеобразном крючке, связанном с необходимостью не только проверять чужой код, но и поддерживать новые функции, если новички уходят из проекта. Эгбал обнаружила в сообществе Open Source тенденцию к более модульному проектированию и разработке, когда авторы создают компактные пакеты, требующие меньшего числа maintainer’ов и меньшего объема работ. Даже такие крупные проекты, как Ruby on Rails, постепенно переходят на модульный подход.

Между тем, в отчете GitHub State of the Octoverse-2020 говорится, что Open Source-разработчики предпочитают вносить небольшие, постепенные изменения, тем самым создавая меньше проблем для тех, кто занимается поддержкой. «Главной лучшей практикой был признан небольшой охват pull request’ов, поскольку такой подход облегчает их рассмотрение (review), способствует более качественному анализу и упрощает откат в случае возникновения проблем, — сказано в отчете. — Также он улучшает обратную связь, стимулируя и способствуя повышению производительности команды».

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

В некотором смысле такова цена использования свободного программного обеспечения. «Помните, что Open Source-программисты обычно делают эту работу ради общего блага, часто безвозмездно, и не могут контролировать то, как их софт используется, — говорит руководитель отдела безопасности GitHub Майк Хэнли (Mike Hanley). — Полагаясь на Open Source и стороннее ПО, необходимо проявлять должную осмотрительность в отношении того, какое ПО вы включаете в проект и как его используете. При этом не забывайте делиться своими улучшениями, интересными примерами использования или багфиксами».

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

Выводы

Приобретая лицензионное платное программное обеспечение, вы автоматически получаете возможность обращаться за технической поддержкой к разработчику и регулярно, по мере необходимости, обновлять свой продукт. Для установки его на компьютер не надо обладать глубокими знаниями в области IT.

Устанавливая бесплатное программное обеспечение, обращайте внимание на дату его создания/обновления и обязательно проверяйте ПО на наличие вирусов. Такими программами пользуются как IT-специалисты, так и пользователи ПК разного уровня

Несомненным достоинством open source проектов является их независимость от вендора, крупные компании предпочитают на их основе создавать корпоративное ПО. Особенно это становится актуальным для госкорпораций в связи с возможными сложностями в приобретении проприетарных продуктов из-за экономических санкций. Сдерживающим фактором при внедрении open source является некоторая неопределенность, связанная с информационной безопасностью: возможны проблемы при прохождении сертификации в ФСТЭК.