«Open source в России» — интервью с сооснователем и CTO компании-разработчика веб-сервера Angie
Продолжаю рассказывать о российских разработчиках open source решений и технологий. На этот раз удалось пообщаться с Валентином Бартеневым, сооснователем и руководителем отдела разработки компании-разработчика российского веб-сервера Angie. Мы обсудили развитие компании, работу в формате open source, взаимодействие с партнерами и не только.
@dmitrykabanov: В интервью на Хабре вы говорили, что основная часть ваших специалистов занималась развитием nginx более 10 лет. Могли бы вы подробнее рассказать о том, каким образом сложилось ядро команды? Кто в него входил на начальном этапе формирования новой компании? Речь скорее о прямом переходе исключительно тех, кто работал над nginx? Как идет расширение команды сейчас?
@VBart : В марте 2022 года американская компания F5, владелец nginx к тому моменту, закрыла инженерный офис в Москве, который занимался OSS-проектами и технической поддержкой, в том числе разработкой nginx. Таким образом, большинство наиболее высококвалифицированных специалистов по nginx в одночасье лишились работы. Именно они и составили костяк новой компании. Среди них были и разработчики, проработавшие в компании nginx со дня её основания, а это — более 10 лет. Поэтому над Angie сейчас работает большая часть команды инженеров, которая работала в nginx до 2022 года.
Полностью всю команду сохранить не удалось, кто-то решил уехать, а кто-то пойти своим путем, заняться другими проектами. Но у нас уже была отличная стартовая позиция, чтобы быстро продолжить работу над новыми версиями сервера, и уже через несколько месяцев свет увидел первый релиз Angie 1.0.0. Разумеется, у нас амбициозные планы, и потому мы продолжаем вести поиск специалистов для расширения команды. У нас интересный проект и большой опыт, возможность работать публично с открытым исходным кодом, что позволяет быть привлекательной компанией на рынке труда.
Работа над OSS-продуктом дает разработчику целый ряд преимуществ за счет публичности. Это — отличное дополнение в личное портфолио, которое можно всегда продемонстрировать, и прямая обратная связь с пользователями. Разработчик в таком случае — больше не безликий абстрактный исполнитель, а автор, чей вклад виден всему миру в репозитории проекта и в собственном профиле на GitHub. Многие разработчики принимают участие в OSS проектах на волонтерских началах, а у нас их работа ещё и оплачивается. Зачастую, поработав в той или иной компании над OSS, программисты больше не хотят идти туда, где исключительно закрытая разработка.
Внесли ли вы изменения в вашу бизнес-модель и в то, как вы подходите к коммерциализации Angie, если сравнивать с работой в прежнем формате над nginx? Поменялся ли каким-то образом ваш подход к работе с заказчиками?
В самом начале мы пробовали разные модели, но они оказались нежизнеспособны. В итоге пришли к модели, которая очень близко воспроизводит прежний формат, за исключением того, что мы все-таки чаще переносим функциональность из коммерческой версии в OSS. Нюансы в работе с заказчиками, конечно же, есть, в том числе связанные с местной бюрократией и длинным жизненным циклом продаж. Но мы учимся их преодолевать и работать с этими моментами — что-то получается, что-то не очень. Мы ещё пока молодая компания на рынке, набиваем себе шишки.
Как выглядит коммерческое взаимодействие с заказчиками? Это — исключительно тех. поддержка PRO-версии или есть какие-либо другие коммерческие опции? Изменились ли запросы коммерческих заказчиков в России за последние пару лет?
Когда речь идет о PRO-версии, то это — не только техническая поддержка, но и сами лицензии. Версия PRO обладает расширенной функциональностью, востребованной в энтерпрайз-сегменте, что само по себе несет дополнительную ценность.
Кроме Angie PRO, у нас есть и другие коммерческие продукты. Например, это — ANIC — ингресс контроллер для Kubernetes, построенный на базе возможностей PRO-версии.
Также есть и заказная разработка. Мы готовы разработать на заказ функциональность, которой ещё нет или решить какую-то очень узкоспециализированную проблему, в том числе с производительностью. Плюс — наша развитая инфраструктура по сборке и тестированию сторонних модулей несет отдельную ценность. Мы можем предоставить её возможности клиентам, если у них есть какие-то модули для nginx, которые они разработали и сейчас поддерживают своими силами.
В целом за пару лет запросы заказчиков начали меняться. Ранее закупленное оборудование устаревает. Лицензии и версии ПО протухают, ко многим приходит понимание того, что на сером импорте далеко не уедешь и нужно искать замену, появляются новые запросы и освобождаются ниши, ранее наглухо занятые крупными вендорами, мастодонтами рынка. Имея богатую экспертизу в вопросах балансировки и доставки контента, мы пристально следим за тем, какие решения будут всё более востребованы и работаем над ними. В скором времени мы расширим линейку продуктов.
Наш веб-сервер, не смотря на тесную связь с nginx, рынок воспринимает как новый продукт, и у корпоративных клиентов есть запрос на выстроенную систему обучения. Мы работаем в этом направлении, в том числе над тем, что можно сделать сравнительно малыми силами: улучшаем документацию, готовим так называемый «сборник рецептов» по конфигурированию сервера под те или иные задачи.
Есть ли среди числа организаций-пользователей зарубежные коллеги?
Компания nginx работала в основном с зарубежными клиентами, поэтому у нас очень богатый опыт работы именно за рубежом, как ни удивительно. Так, в некоторой степени с зарубежными партнерами и заказчиками нам работать даже проще.
Санкции конечно вносят свои неудобства, из-за них мы стараемся не афишировать такие международные сотрудничества и не называть имен.
Могли бы вы оценить то, как в целом изменилась ваша конкурентная среда в мире с момента начала работы над nginx (тогда аналогов было крайне мало)?
Аналоги были всегда. Много или мало — стоит оценивать по отношению к объему рынка, последний тоже заметно вырос с тех пор. Когда я пришел в nginx в 2011 году, разгорался бум смартфонов, мобильный интернет набирал обороты, росло число пользователей. Сейчас растет трафик от неодушевленных пользователей сети, IoT-устройств.
Подходы к разработке и организации инфраструктуры также менялись. Современные веб-сервисы очень сложные, состоят из множества отдельных компонент, которые зачастую разрабатывают и непрерывно обновляют разные команды на разных языках. Всё это необходимо связывать между собой, масштабировать, балансировать. Больше требований к тому, чтобы конфигурация сервера менялась динамически, соединения жили долго, а клиенты могли бы мигрировать между сетями безболезненно. Технологии виртуализации и контейнеризации сейчас используют повсеместно. Всё это требует новых подходов и новых продуктов. Что-то мы можем обеспечить уже сейчас, что-то в скором будущем. Мы не стоим на месте и работаем, как над улучшениями Angie под новые сложившиеся требования, так и над будущей заменой.
Это — одна сторона медали, а другая — большая инерция. Огромное количество инженеров крайне неохотно пробуют что-то новое, предпочитая старые, проверенные годами, как им кажется, решения. Это наблюдается даже в случае с Angie, где переход с nginx максимально упрощен: ставь и пользуйся, конфигурацию править не нужно. Согласно статистике, многие и nginx не обновляют, используют устаревшие версии, причем некоторые, возможно, с известными уязвимостями. Так, современные версии nginx — 1.24 и 1.25 составляют лишь 15%. Да, кстати, по крайней мере перестали спрашивать про поддержку ".htaccess".
Сотрудничаете ли вы с какими-либо российскими организациями на партнерской основе? Какой вклад в развитие продукта привносит такое взаимодействие? Помогает ли работа в open source формате налаживать подобные партнерства?
У нас уже сложилось множество партнерств. Это реселлеры, интеграторы, технологические партнеры. В частности, у нас есть ряд партнеров, предоставляющих WAF решения на базе Angie. Это — Вебмониторэкс (бывший Wallarm) и Немезида.
Сейчас проходит тестирование WAF от SolidWall. Также активно работаем с КриптоПро, чтобы предоставить сертифицированное решение для ГОСТ TLS, очень востребованное частью заказчиков на российском рынке.
Наличие OSS-версии позволяет партнерам ознакомиться с продуктом даже ещё до начала диалога. Простой доступ к исходному коду облегчает для них интеграцию и разработку своих расширений для Angiе, которые затем могут работать не только с OSS, но и с PRO-версией.
Мы открыты к диалогу и работаем по многим направлениям. От этого в выигрыше оказываются все, включая и наших клиентов, которые получают готовые, протестированные, высокоинтегрированные решения для своих задач, которые сложно было бы обеспечить без тесного взаимодействия между участниками рынка.
Как вы взаимодействуете с open source сообществом и контрибьютерами? Как в целом вы работаете и взаимодействуете с внешней технологической аудиторией?
Не секрет, что большая часть этого сообщества пользуется GitHub, поэтому и мы там присутствуем. Там находится зеркало репозитория, обрабатываются тикеты и пул-реквесты от сообщества. Помимо этого у нас есть два канала в телеграм: первый рассказывает о новостях компании и обновлениях, а во втором — можно задать вопрос по настройке или функциональности, оперативно получить поддержку. Формат телеграм-чата не всегда удобен, поэтому есть форум, где также можно обсудить ту или иную тему, получить консультацию.
Есть ли у вас необходимость балансировать ресурсы компании между открытой и проприетарной разработкой? Или в OSS контекст погружается весь коллектив?
Поскольку наша коммерческая версия базируется на OSS-версии, то, безусловно, над OSS-ядром сервера работает вся команда Angie в той или иной степени. Каждый квартал мы выпускаем новую версию, куда добавляем ряд новых востребованных возможностей, ранее недоступных с nginx. На базе этой версии, мы выпускаем Angie PRO, где добавляем что-то ещё, интересное прежде всего нашим корпоративным клиентам.
Коммерческая версия обеспечивает развитие OSS-версии. Без неё мы бы не смогли расширять команду и наращивать разработку. Даже поддерживать серьезную инфраструктуру для разработки, сборки пакетов и тестирования было бы затруднительно. Наличие коммерческой составляющей влияет на OSS-версию исключительно положительно, по крайней мере в нашем случае. Без неё в принципе не было бы достаточно ресурсов на развитие, нечего было бы тогда и балансировать.
Расскажите, пожалуйста, почему вы остановились на лицензии BSD для open source версии Angie? Исключительно следование традициям — и выбор привычной для аудитории nginx лицензии — или были дополнительные соображения в пользу BSD?
Если рассматривать Angie исключительно как продолжение развития nginx, чем по сути он и является, ведь разработчики остались прежние, совместимость практически полная. Сменилась только вывеска. Изменение лицензии тут было бы совершенно лишней переменной, для которой не было острой необходимости.
Если говорить про российских разработчиков open source решений, могут ли они также осуществить сдвиг в сторону source available дистрибуции? Или стоит ждать скорее обратного движения? Как вы оцениваете запрос на open source в России?
У меня есть хороший пример классического OSS в России. Ранее, когда автор nginx собирал пожертвования и не было коммерческой составляющей, то этих пожертвований хватало только на оплату хостинга. Их бы не хватило даже на жизнь автору, не говоря о том, чтобы расширять команду или выстраивать инфраструктуру для сборки и тестирования. Во время существования nginx, как классического OSS, ревью кода как такового не было, а долгое время не было и достаточного покрытия тестами.
Помню, в первые годы работы компании, мы такое гигантское количество багов из nginx вычистили. Достаточно было посмотреть внимательно на ранее никем не отсмотренный участок кода, чтобы сходу найти там ошибку. Можно даже пошутить, что nginx работал благодаря тому, что минус на минус дает плюс, одна ошибка компенсирует другую и хрупкий баланс четности ошибок поддерживал его работоспособность.
После появления компании все процессы были налажены, а доля nginx на мировом рынке по разным подсчетам с тех пор выросла с единиц процентов до более трети всех веб-серверов в мире. Были также опробованы и разные модели монетизации. В итоге пришли к той, которая более-менее сработала, т.н. модель open-core.
Игорь Сысоев, автор исходного nginx, довольно давно потерял интерес к своему детищу и практически не принимал активного участия в его разработке ещё с 2012 года.
Безусловно, это — один пример, но есть и другие. Все случаи и проекты — разные, подходы могут быть разные, все индивидуально, тут нет волшебной пилюли успешного OSS. Но я его привел, чтобы проиллюстрировать, что всё не так просто и радужно. Недостаточно написать какой-то популярный проект, который будет использоваться на миллионах серверов по всему миру, и ожидать, что ресурсы сами собой появятся.
Это всегда сложно, тут множество различных рисков и даже таких, которые не приходят в головы неискушенных в данном вопросе. Свежая история с умышленной закладкой в XZ Utils только иллюстрирует лишь один из возможных рисков.
Предсказуемость и уверенность в будущем зачастую оказываются важнее той или иной формы дистрибуции. Лично я бы хотел, чтобы за проектом, которым я пользуюсь, который является кирпичиком в моей инфраструктуре, стоял кто-то достаточно большой и ответственный, OSS это или не OSS. Чтобы не случилось истории, когда единственного толкового разработчика сбил автобус, он сошел с ума или просто потерял интерес. Чтобы проект не был бы незаметно передан на поруки непонятно кому, и у проекта было бы достаточное количество ресурсов на организацию нормального тестирования, ревью кода, обеспечение безопасности всей цепочки подготовки релизов.
Какие российские организации, которые разрабатывают open source решения, вы могли бы выделить? Также было бы интересно узнать, какие российские сообщества и площадки по теме open source вы считаете актуальными?
Хочу отметить Postgres Professional — компания существует уже очень давно и внесла вклад в развитие OSS версии популярной базы данных PostgreSQL. Мы регулярно общаемся, изучаем их огромный и достаточно успешный опыт на российском рынке.
Из сообществ, ServerAdmin.ru и одноименный телеграм-канал, где автор регулярно на собственном примере освещает те или иные нововведения, в том числе, и в Angie, за что ему большая благодарность (: