Привет, Хабр! Меня зовут Дмитрий Комиссаров, я член совета директоров и основатель МойОфис. За годы работы в ИТ я не раз наблюдал, как перед разработчиками встает дилемма: задействовать СПО или написать весь код самостоятельно «с нуля»? На этот вопрос нет универсального ответа. Кажущаяся доступность СПО вселяет излишний оптимизм в ИТ-специалистов, но как показывает практика, такой подход может привести к многократному росту непрогнозируемых рисков. А ошибка в выборе, например, корпоративной почты и вовсе способна привести к остановке бизнес-процессов всего предприятия, где было внедрено то или иное решение.

Сегодня на D-Russia.ru вышла моя новая статья. В ней я рассуждаю о том, какой вариант предпочтительнее для современной крупной организации — задействовать в создании продукта проприетарные технологии, либо полагаться на СПО. И детально разбираю опасности, которые возникают при использовании в российских компаниях продуктов со свободными лицензиями. Надеюсь, Хабрасообществу также будет интересно почитать об этом. Полный текст статьи доступен под катом.

Существует два типа почтовых решений — классические системы, то есть разворачиваемые на собственной серверной инфраструктуре (on-premise) и облачные («рожденные для облака» или cloud-born), которые разработаны крупными почтовыми SaaS-провайдерами. Первые можно тиражировать, но они имеют пределы масштабирования, которые измеряются несколькими тысячами пользователей. Вторые же существуют в единственном экземпляре, полностью подконтрольны провайдеру и могут обслуживать десятки, даже сотни миллионов пользователей.

Приложения Cloud-born часто называют Cloud Native. Такие решения строятся как набор микросервисов, слабо связанных между собой и упакованных в контейнеры. Контейнеризированные приложения автоматически управляются облачными платформами, а сама микросервисная архитектура может масштабироваться до уровней, которые сложно достичь при обычном подходе. Cloud Native решения в сравнении с продуктами монолитной архитектуры более гибкие и стабильные. Показатели надежности продукта, построенного на принципе Cloud Native, позволяют обеспечить отсутствие времени видимого простоя – то есть, говоря на языке обычного пользователя, софт не будет «зависать». Можно считать, что решение соответствует принципу Cloud Native только в том случае, если оно способно к автоматическому мониторингу, самовосстановлению и масштабируемости.

Любой Enterprise-продукт требует длительного проектирования, разработки и усилий большой высококвалифицированной команды. Применяя только СПО, создавать решения такого класса гораздо сложнее. Нужно собрать команду, кто-то должен это финансировать, люди где-то должны работать: либо full-time на этом проекте, в режиме создания собственного СПО, либо рart-time при его создании. Сразу возникает вопрос – а насколько быстро такие команды придут к результату и насколько ответственно они будут подходить к своей работе?

Если потратить немного времени и разобраться в вопросе, то станет понятно, что применимость on-premise опенсорсных почтовых решений сильно ограничена одним-двумя десятками тысяч пользователей. И виной тому сразу несколько причин — технологические особенности программных продуктов, юридические и лицензионные ограничения и слабо прогнозируемые риски.

Ключевой тренд в области корпоративных коммуникаций


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

В чем опасность применения опенсорса


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

  • Технологические риски. Большая часть опенсорсных почтовых систем построена на старых принципах хранения почты в файловой системе. Архитектура не менялась с 1971 года — почта располагается внутри файловой системы отдельного сервера и хранится в виде файлов. Это накладывает ряд ограничений на масштабирование, надежность и отказоустойчивость почтового сервера, а кроме того, не позволяет разместить почту в геораспределенном кластере.
  • Юридические риски. Когда продукты с СПО-компонентами поступают в коммерческий оборот и возникает обязательство о соблюдении лицензионных правил, установленных сообществом — например, раскрывать код или не продавать продукты на определенных территориях. Разработчик должен внимательно следить за всеми лицензиями и ограничениями, так как фактически он распространяет чужое СПО-решение и обязан соблюдать определенные регламенты.
  • Риски информационной безопасности. Если в случае продуктов с проприетарной лицензией ответственность за устранение уязвимостей лежит на разработчике, то при обнаружении их в СПО-продуктах — исправлять код будет сообщество. При этом их устранение не является основной задачей контрибьюторов и мэйнтейнеров, такую работу они выполняют бесплатно и по собственной доброй воле.

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

К чему приводит игнорирование рисков


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

Для покупателя таких продуктов игнорирование рисков приводит к следующим последствиям:

  • Запрет использования продукта на определенной территории. Пример: сообщество Fedora Project изменило лицензионное соглашение и запретило поставки операционной системы в Крым. Надо понимать, что за каждым сообществом стоят интересы спонсирующей организации. Так, за Fedora Project стоит Red Hat, и именно эта компания (ныне IBM) причастна к изменению лицензионной политики.
  • Обнаружение неустраненных критических уязвимостей, которые напрямую влияют на безопасность не только самого продукта, но и всей ИТ-инфраструктуры предприятия. Пример: в ядре Linux была обнаружена уязвимость, которая существует с момента появления OC, может наделить правами администратора любого пользователя и присутствует в большинстве дистрибутивов.
  • Непрогнозируемые сроки внесения изменений в продукт при выявлении уязвимостей. Пример: в январе 2022 года была обнаружена серия критических ошибок в СПО-продукте log4j. Неравнодушные мэйнтейнеры оперативно отреагировали и начали устранять их, причем работая сверхурочно, отложив свои обычные рабочие и личные дела. Они посвятили более недели собственной жизни сообществу, хотя в принципе могли этого и не делать, и в итоге еще и столкнулись с негативной реакцией со стороны самого сообщества из-за недостаточно быстрого внесения правок.
  • Остановка бизнес-процессов организации в связи со сложностями при администрировании и настройке СПО-компонентов. Пример: авария 2018 года в Росреестре, которую журналисты связывали с использованием СПО Ceph — тогда МФЦ в 50 регионах РФ лишились возможности проводить операции с недвижимостью. Разбор подобной ситуации был проведен в рамках конференции DevOpsConf Russia — исследователи потратили человеко-год ресурсов, чтобы выявить ограничения опенсорсного продукта, которые повышали вероятность наступления аварийных событий при масштабировании.

Разработчики продуктов на базе СПО также должны внимательно следить за применяемыми компонентами, их кодом и условиями лицензирования. Наиболее критичные риски разработчиков:

  • Изменение лицензионного соглашения. Разработчик может потерять право продавать продукт на базе конкретного СПО, или же возникает обязательство разработчика по раскрытию исходного кода продукта. Пример: скандал из-за компонентов под GPL-лицензией в продуктах для TikTok — независимые аудиторы установили, что TikTok использовал в своих продуктах СПО-компоненты OBS Studio, но не объявил об этом, как требует лицензия. Под давлением общественности TikTok отказался от их использования в своих продуктах. Примером также является судебный иск в отношении ChessBase и последовавший отзыв лицензий на компоненты Stockfish, которые используются для создания шахматного ПО. Кроме этого, можно вспомнить и историю фреймворка Qt, создатель которого поменял лицензирование, и оказалось, что безопасно использовать можно только платную версию, стоимость которой составляет $4 тыс. за одно рабочее место в год без учета НДС. Если в вашей разработке присутствует много открытого кода, с которым произойдут подобные изменения, то стоимость его поддержки значительно вырастет и возникнет риск, что ваш ИТ-продукт просто перестанет существовать.
  • Прекращение выпуска СПО-продукта. Наиболее ярким примером является история невероятно популярного проекта MySQL, который был поглощен Oracle в 2010 году и позже превращен в проприетарный. Другой пример — в 2021 году компания Red Hat предпочла закрыть проект CentOS в пользу собственной коммерческой разработки Red Hat Enterprise Linux.
  • Замена кода СПО-продукта. Обострение геополитической ситуации уже привело к возникновению рисков нового типа — создатели СПО-продуктов могут ухудшать код компонентов или даже вовсе запрещать его использование в определенной стране. Пример: разработчик часто используемых библиотек colors.js (3,3 млрд скачиваний) и faker.js (272 млн скачиваний) при очередном релизе подменил исходный код вредоносным. Это привело к проблемам более чем у 19 тыс. проектов, которые использовали такое СПО.

Что предлагают российские производители


Недавно две российские ИТ-компании объявили о выпуске своих почтовых решений. В ноябре 2021 года МойОфис официально представил корпоративную почту нового поколения Mailion, пилотные проекты внедрения которой уже стартовали на нескольких крупнейших российских предприятиях. Другой игрок отечественного ИТ-рынка, НПО «РусБИТех» анонсировалпоявление почтового продукта RuPost со схожей функциональностью, который предположительно должен появиться на рынке в середине 2022 года. Ключевым различием двух разработок является технологический стек. В то время как инженеры МойОфис создают собственный продукт своими силами «с нуля» и доля СПО в нем, если считать в компонентах, не превышает 5%, наши коллеги напротив решили сформировать свое решение из множества доступных на рынке опенсорсных технологий.

Табл. 1. Различия в подходах к разработке ПО
Российские проприетарные технологии Опенсорсное ПО
Плюсы
  • Клиенто-ориентированный подход
  • Гарантия отсутствия санкционных и геополитических рисков
  • Поддержка российских технологий, в том числе аппаратного обеспечения и СКЗИ
  • Расширенная техническая поддержка
  • Четкий SLA доработки продукта и устранения найденных уязвимостей
  • Применение методологии безопасной разработки, утвержденной регулятором
  • Может быть использовано для КИИ
  • Возможность интеграции с ПО других российских разработчиков
  • Регулярное обновление

  • Большой выбор СПО-продуктов на рынке
  • Открытый код
  • Сформированное сообщество разработчиков
  • Скорость разработки продуктов на базе СПО

Минусы
  • Зависимость от разработчика (vendor lock-in)
  • Проприетарные продукты дороже СПО-решений
  • Невозможность изменить исходный код
  • Ограничение на распространение ПО
  • Ограничение на модификацию ПО

  • Основная часть сообщества СПО находится за пределами РФ
  • Сложности при поддержке продуктов на основе СПО
  • Санкционные и геополитические риски
  • Риски изменения кода продукта
  • Риски закрытия СПО проектов
  • Зависимость от крупных западных ИТ-корпораций, которые спонсируют СПО
  • Лицензионные ограничения
  • Возможная потребность в раскрытии исходного кода
  • Риски ИБ, наличие уязвимостей и отсутствие прогнозируемых сроков по их устранению


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

К каким выводам мы пришли, когда проектировали Mailion


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

И именно здесь появляется грань, переходя которую, мы теряем смысл использования сторонних опенсорсных компонентов. Проще и актуальнее сразу создавать свои. Оценив все риски, мы приняли единственно верное решение и начали делать собственный уникальный продукт с «нуля»: тиражируемое on-premise решение для управления особо крупными почтовыми системами, которое будет иметь все нужные корпоративные функции и при этом обладать отказоустойчивостью, самовосстанавливаемостью и масштабируемостью, с возможностью хранения данных и поддержкой дедупликации. Мы отталкиваемся от современных принципов Cloud Native и построения информационных систем на основе микросервисной архитектуры.

Применить новую архитектуру можно только разработав принципиально новое решение «с нуля», которым и является Mailion. Суммарно мы потратили на наше решение больше 300 человеко-лет. Уже сейчас в продукте реализованы не только корпоративные функции, но и уникальные решения. Например, в части морфологического поиска применяются технологии искусственного интеллекта, интеллектуальная медиапанель облегчает работу с вложениями в цепочках писем, собственный каталог облегчает миграцию с иностранных решений. И это только начало — в наших планах появление еще большего количества корпоративных функций.

Комментарии (24)


  1. tbl
    10.03.2022 17:23
    +32

    Хм, все то, что в статье приписывается к недостаткам СПО, можно отнести и к проприетарному софту. Особенно моменты с лицензированием, саппортом и продажами (прекращение выпуска), связанными с дружным выходом западных вендоров (Oracle, Microsoft, IBM, Intel и т.п.) из России.


    1. marks
      10.03.2022 20:55

      Здесь надо смотреть, как будут развиваться события. Не исключено, что упомянутые вендоры вернутся на российский рынок. Причем в обозримом будущем.


  1. Lirix_vladimir
    10.03.2022 17:34
    +5

    А МойОфис не на опенсорсе основан разве?


    1. amarao
      10.03.2022 17:38
      +12

      тссс.. А то ещё выяснится, что оно программистами из враждебных стран писано, и придётся неудобно объясняться перед майором.


    1. myoffice_ru
      10.03.2022 17:49
      +4

      Владимир, мы разрабатываем МойОфис с нуля, полностью своими силами. Ядро, интерфейс и значительная часть кода платформы МойОфис содержат более 1,5 млн строк собственного кода.


      1. amarao
        10.03.2022 21:47
        +13

        ldd на основной бинарь покажите.


      1. Sahome
        11.03.2022 08:50
        +6

        А как же Qt? Вы же для соискателей у себя всегда писали C++/Qt? Разве нет? С нуля это значит с нуля. Двадцать лет назад в код Qt перевалил за 500000 строк, то есть 5% при ваших 1,5 мл уже никак не получается.


      1. arkashaErema
        12.03.2022 19:24

        Т.е. вы не используете ни Java, ни c++ ни go? Может быть вы еще и свои компиляторы, интерпретаторы и виртуальные машины создали? И никаких сторонних библиотек из опенсорса не подключали? Всё сами пишите?


      1. potato_freak
        12.03.2022 19:28

        А подскажите, пожалуйста, как давно вы отказались от LibreOffice?


  1. rhaport
    10.03.2022 17:43
    +16

    Немного странная риторика. Складывается впечатление, что под использованием СПО имеется ввиду «интегрировал-но-не-понял». То есть используем либу, но если там баг, то ждём пока сообщество пофиксит. Никто не запрещает же фиксить и развивать самим.

    «Возможность интеграции с ПО других российских разработчиков». А СПО точно нельзя интегрировать? Спорно…

    Понятен посыл статьи, но аргументация неубедительна


  1. stopper79
    10.03.2022 18:58

    "Я "и моя компания"" Пиарюсь?


  1. QuAzI
    10.03.2022 19:29
    +15

    После прочтения отпадает всякое желание покупать ваш софт. Спасибо, что помогаете сэкономить в это нелёгкое время


  1. Borjomy
    11.03.2022 00:12
    -2

    Я бы еще добавил следующее: идеологически СПО можно отнести к коммунизму в сфере ИТ, а ППО - к капитализму. Почему коммунизм? Потому что совершенно очевидно, что от каждого по способностям и каждому по потребностям. СПО имеет как минимум один родовой дефект: его НЕВОЗМОЖНО целевым способом финансировать, так как любые вливания в СПО это фактически благотворительность, без отдачи. Никакой бизнес на этом не построить. А значит СПО всегда будет проигрывать в скорости разработки, функционале и безопасности ППО. Потому что всякий труд должен быть оплачен. Если труд не оплачивается, это не профессиональная деятельность, а хобби. А какой спрос с хобби? Никакого. Поэтому в серьезном ПО использовать СПО по меньшей мере безответственно.

    В дополнение, ответ navferty

    https://habr.com/ru/company/redhatrussia/blog/351170/

    Однако Кроа-Хартман обращает внимание, что у Red Hat «есть и проприетарное ПО, и она его продает», что вызывает споры о том, можно ли называть Red Hat компанией с открытым кодом.

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

    по факту это не открытое ПО. И компания имеет возможность зарабатывать другими способами.


    1. navferty
      11.03.2022 00:26
      +7

      Никакой бизнес на этом не построить

      Сильное утверждение, а как же Red Hat, или например Postgres Professional?


      1. QuAzI
        11.03.2022 09:14
        +6

        Зачем далеко ходить - nginx


    1. DarkEld3r
      11.03.2022 01:08
      +2

      Если труд не оплачивается, это не профессиональная деятельность, а хобби

      Немало опенсорса пишется за деньги.


      А значит СПО всегда будет проигрывать в скорости разработки, функционале и безопасности ППО.

      Это утверждение нуждается в доказательстве.


      Поэтому в серьезном ПО использовать СПО по меньшей мере безответственно.

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


    1. avkor2021
      11.03.2022 09:28
      +1

      Не путайте ПО с открытым исходным кодом и бесплатное ПО


    1. Hardcoin
      11.03.2022 11:56
      +7

      Почему большинство серверов на линуксе, если windows, по вашим словам, выигрывает "в скорости разработки, функционале и безопасности"? У вас есть какое-то объяснение этому странному факту?


  1. muon
    11.03.2022 03:57
    +4

    TikTok использовал в своих продуктах СПО-компоненты OBS Studio, но не объявил об этом, как требует лицензия

    А требование выполнять лицензию распространяется только на СПО?

    Сообщество Fedora Project изменило лицензионное соглашение и запретило поставки операционной системы в Крым

    А EAR распростаняется только на СПО? В свете текущих событий такая претензия к СПО выглядит, мягко говоря, нелепой.


    1. aploskov
      11.03.2022 12:48

      Насколько я помню, экспортные ограничения идут на средства шифрования в первую очередь, а не на всё СПО в целом. Исходники большинства пакетов - можно.

      You may not download Fedora software or technical information if you are located in one of these countries or otherwise subject to these restrictions. You may not provide Fedora software or technical information to individuals or entities located in one of these countries or otherwise subject to these restrictions. You are also responsible for compliance with foreign law requirements applicable to the import, export and use of Fedora software and technical information.

      Fedora software in source code and binary code form are publicly available and are not subject to the EAR in accordance with §742.15(b).

      https://www.law.cornell.edu/cfr/text/15/742.15


  1. The_Kf
    11.03.2022 13:41
    +2

    применимость on-premise опенсорсных почтовых решений сильно ограничена одним-двумя десятками тысяч пользователей

    Уфф расскажите это: IBM, Microsoft, вооружённым силам США, Amazon


  1. alexherr
    11.03.2022 15:16
    +5

    Статья по сути является рекламой собственного продукта. Как показывает практика многих ведущих компаний приведенные автором "недостатки" свойственны любым продуктам в независимости от того являются они проприетарными или с открытым исходным кодом.


  1. talifan
    12.03.2022 20:57

     Первые можно тиражировать, но они имеют пределы масштабирования, которые измеряются несколькими тысячами пользователей.

    Вы серьёзно? MS Exchange работает с десятками и сотнями тысяч почтовых ящиков и терабайтами баз.


  1. vazir
    13.03.2022 11:52
    +2

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