Реклама в Telegram-каналах DzikPic и dev.by теперь дешевле. Узнать подробности 👨🏻‍💻
Support us

Константин Хоренко и Андрей Вагин из Parallels: «Отношения с OS-сообществом взаимовыгодные»

Оставить комментарий
Константин Хоренко и Андрей Вагин из Parallels: «Отношения с OS-сообществом взаимовыгодные»

Компания Paralells хорошо известна всем, кто сталкивается с программным обеспечением для хостинга и облачных вычислений, а также не чужд Open Source движению. 18 июля два её ведущих разработчика Андрей Вагин и Константин Хоренко проведут открытую встречу на тему контейнерной виртуализации в Linux, и перед ней мы задали докладчикам несколько вопросов, чтобы узнать, что сейчас наиболее актуально в области виртуализации, почему было принято решение совершить перенос из ядра в пользовательскую область (CRIU), как строятся отношения Parallels с OS-сообществом и каково разрабатывать продукты с открытым кодом за зарплату.

А также какой ресурс наиболее ценен и как лучше всего расслабляться после напряженного рабочего дня

Что происходит в мире разработки ПО для дата центров в области виртуализации? Какие вещи сейчас наиболее актуальны и окажут наибольшее влияние на будущее по вашему мнению?

Андрей: Сейчас бурно развиваются облака, похожие на Amazon и Digital Ocean, когда количество и мощность виртуальных машин может меняться в зависимости от нагрузки. Контейнерная виртуализация на этом рынке представлена слабо, и мы пытаемся исправить эту ситуация. Активно работаем над поддержкой контейнеров в OpenStack, Libvirt. Совместно с Docker и LXC участвуем в создании универсальной библиотеки для управления контейнерами.

Константин: Наша работа, как мы надеемся, как раз и окажет влияние на будущее виртуализационных решений. На текущий момент Контейнеры активно используются хостерами, enterprise рынки больше пользуются Виртуальными Машинами. В то же время многие интересуются тем же OpenStack-ом, хотят использовать его для управления своих виртуальных сред, и, если OpenStack будет поддерживать Контейнеры, на них могут обратить внимание не только хостеры, ведь свои плюсы у технологии имеются.

Константин Хоренко

Проект CRIU, в частности ваше нетривиальное решение совершить перенос из ядра в пространство пользователя. Оно было неоднозначно поначалу воспринято, звучала критика от лидеров OS, но по итогу оказалось успешным. Расскажите немного подробнее о логике принятия этого решения.

Андрей: Строго говоря, переноса-то и не было, так как в ядро оно не вошло. Первый рабочий вариант появился в OpenVZ в 2005 году, который и по сегодняшний день используется в 2.6.32 ядрах. Он был заточен под контейнеры. В 2008 году Орен Лаадон предложил более универсальную версию реализации в ядре, но сообщество не горело большим желанием принимать настолько сложный код. Так в 2011 году Павел Емельянов решил пробовать другой путь (CRIU), который переносил большую часть логики в пространство пользователя. Сообщество приняло эту идею, хотя некоторые относились к ней скептически и до конца не верили, что всё это полетит.

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

Не могли бы вы дать краткий обзор других систем виртуализации, таких как Xen, KVM и VirtualBox, которые всё активнее проникают на поле систем контейнерной изоляции, с точки зрения пользователя. В чём их преимущества и недостатки в сравнении с вашими продуктами.

Андрей: Основной недостаток в большем потреблении ресурсов и, как следствие, меньшей плотности размещения. Из плюсов можно упомянуть отсутствие ограничений на запускаемую операционную систему, несколько большую изоляцию.

Как и почему конкурируют коммерческие продукты понятно. А что такое конкуренция между Open Source продуктами?

Константин: Часто конкуренция между Open Source продуктами слабо отличается от конкуренции коммерческих продуктов. Пользователь сравнивает продукты с точки зрения функциональности, выбирает понравившийся, его и покупает. У кого покупать? Конечно, у того, кто продукт разрабатывает, они смогут оказать наилучшую поддержку. Нюанс тут может быть такой: кто-то может взять существующий код (он же открытый), сделать свой продукт на его базе, начать продавать и осуществлять поддержку. Переманить пользователей непросто: у оригинальной компании-разработчика больше опыта, ей больше верят, но всё возможно.

Как построено взаимодействие компании Parallels с OS-сообществом? Есть ли в ваших продуктах коммиты не от сотрудников компании?

Андрей: Это мой любимый вопрос. Компания Parallels уже больше 10 лет делает контейнеры. Отчасти благодаря ей в Linux ядре появилась контейнерная виртуализация. Отношения с OS-сообществом взаимовыгодные. Мы создаём новые технологии, оттачиваем их на своих пользователях и отдаём в ядро. Наверное, у вас уже созрел вопрос, а зачем нам их отдавать? Раз в несколько лет изменения приходится переносить на новую кодовую базу, и эта (не самая увлекательная) работа отнимает большое количество времени.

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

Заливая код в ядро, мы освобождаем ресурсы для создания чего-то нового и работаем на свою репутацию.

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

Что с вашей точки зрения является основным препятствием для окончательной победы OS-продуктов над коммерческими решениями? 

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

А если серьёзно, то в Open Source будет переходить всё больше базовых вещей, но часть инновационных продуктов будет оставаться в закрытом виде. Так уж устроен мир. Возьмём, например, компанию Parallels. У нас всегда существовало две версии продукта: открытая OpenVZ и закрытая Parallels Server (Virtuozzo), которая предоставляет ряд дополнительных возможностей.

Константин: Неверное противопоставление, правильнее сказать – «победа OS-продуктов над продуктами с закрытым кодом». Думаю, никогда все продукты не станут полностью открытыми (с открытым кодом). Открываться будут те части, которые реализуют функциональность, присутствующую во многих продуктах, и этот код будет унифицироваться в разных продуктах со временем. Просто не имеет смысла тратить ресурсы на уникальный код, реализующий функциональность, которая есть у всех и работает примерно одинаково. А вот какие-то уникальные особенности, скорее всего, будут оставаться закрытыми – как конкурентное преимущество продуктов – до тех пор, пока конкурирующие продукты не будут иметь аналогичную функциональность или до тех пор, пока не станет понятно, что эта функциональность не является важной для пользователей.

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

Андрей: Если говорить про ядро Linux, то ситуация не уникальная. Большинство разработчиков ядра работает за деньги, которые им платят работодатели. С балансом бывают проблемы, но руководство быстро наводит порядок:).

Константин: Деньги-то нам платят за разработку продукта, а делая его более «открытым», мы экономим на поддержке кода: если какой-то наш код уже находится в мейнстриме, то при разработке новой функциональности или переработке старой в мейнстриме ему просто не дадут поломаться, а так нам бы самим пришлось заниматься адаптацией.

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

Кроме проектов, в которых вы заняты на основной работе, вовлечены ли вы ещё в какую-то Open Source разработку для души?

Андрей: Трудно провести грань между основной работой и разработкой для души, для меня это одно и то же. Раньше участвовал в каких-то смежных проектах, но немного. Помню, надоело ходить в Windows, чтоб GPS данные обрабатывать. Нашёл программу помощнее (QLandkarte GT) и дописал туда то, чего мне недоставало, и даже немного больше. Но это было давно и неправда. Теперь жалко тратить время на подобные вещи.

Константин: Нам повезло, однозначно – нам нравится заниматься тем, что оказывается необходимым по работе. Это счастливое совпадение и отличная мотивация!

У каждого есть какие-то рабочие ритуалы, которые помогают настроиться. Расскажите о ваших.

Константин: Настраиваться надо на то, что не хочется делать, а надо. А приступать к делу, за которое болеешь душой, – никакие ритуалы не нужны.

Остаётся ли время на какое-то хобби? Может быть, спорт?

Андрей: После напряженного рабочего дня хочется отвлечься, подвигаться. Я привык вести активный образ жизни. Кроме того, мне всегда хотелось путешествовать, но смотреть часами достопримечательности – это не мое. В институте увлекся горными походами: романтика, экстрим и очень бюджетно. Чем дальше, тем рюкзак становился тяжелее, и я перешёл в альпинизм, а потом в скалолазание. Скалолазание – это спорт на каждый день. После работы можно пойти в зал. На выходные можно выехать за город. А для отпуска подобрать район в любой части света.

Иногда увлекался и более экзотическими видами, такими как slackline и unicycle.

Андрей Вагин

Константин: Время – самый ценный ресурс, я уже пришёл к этому. Особенно ярко это ощущается после недавнего рождения сына. :) Хотя, пожалуй, и раньше спортом не занимался: так, на роликах покататься, в футбол сыграть, но всё абсолютно нерегулярно. А вот ходить мне нравится: и по городам – достопримечательности смотреть, и в лесу. Грибы-ягоды – это моё, хотя, опять же, последние годы за грибами ещё хожу, а на ягоды времени не остаётся.

Wargaming.net приглашает всех желающих на встречу с Константином Хоренко и Андреем Вагиным Open WG Talk#2 18 июля.

Новый рекламный формат в наших телеграм-каналах.

Купить 500 символов за $150

Читайте также
Хуже Windows. Linux стала рекордсменом по росту числа вредоносов
Хуже Windows. Linux стала рекордсменом по росту числа вредоносов
Хуже Windows. Linux стала рекордсменом по росту числа вредоносов
Разработчик Ubuntu уходит из России
Разработчик Ubuntu уходит из России
Разработчик Ubuntu уходит из России
1 комментарий
Google: разработчики Linux «латают дыры» быстрее Google, Apple и Microsoft
Google: разработчики Linux «латают дыры» быстрее Google, Apple и Microsoft
Google: разработчики Linux «латают дыры» быстрее Google, Apple и Microsoft
«Комп стоимостью в 2-3 рабочих дня — тысячи % прибыли». На чём кодить хорошо
«Комп стоимостью в 2-3 рабочих дня — тысячи % прибыли». На чём кодить хорошо
«Комп стоимостью в 2-3 рабочих дня — тысячи % прибыли». На чём кодить хорошо
52 комментария

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.