Интервью с Джеймсом Боттомли, техническим директором продуктов серверной виртуализации Parallels и членом совета директоров Linux Foundation

James Bottomley

Типичный: Давайте начнем с самого начала: что такое Linux-сообщество сегодня? Какие люди там работают, и на какие категории их можно разделить?

Джеймс Боттомли: Linux-сообщество сегодня, спустя 23 года после своего основания, намного более разнообразно и также намного более профессионально, чем в самом начале своего существования. В сообществе насчитывается около 10 000 людей, 90% которых занимаются развитием ядра Linux, в том числе, нанятых именно для этих целей разными компаниями и считающих это своей основной работой. В самом начале такого не было.

Типичный: А от добровольного сообщества по интересам коммьюнити перешло к оплате труда? Я правильно понимаю, что сначала все это было бесплатно? Возможно, это разные модели управления людьми?

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

Я сам 23 года назад, в 1992 году, заинтересовался Linux, прежде всего, как операционной системой. Это было во время моей работы в Кембридже после защиты кандидатской диссертации. Тогда появился процессор Pentium, и мы обнаружили, что ПК на Pentium PC под Linux работает гораздо эффективнее, чем наши прежние рабочие станции, и при этом его цена составляет примерно 1/10 от их стоимости. Я подсчитал, что если мы купим 10 систем Linux по цене одного SPARC (наша предыдущая рабочая станция), то одну я могу оставить себе. И я помог создать первую программу для их инсталляции на рабочие места отделений математики и физики.

Так благодаря Linux у меня появился мой первый софт, который не только вызвал огромный интерес у людей, с которыми я работал, но и который я целиком создал своими собственными руками, и который при этом работал именно так, как я запланировал. Потом от хобби я перешел к профессиональной работе с Linux, а затем эта операционная система начала проникать (правда, в основном через черный вход) на бизнес-рынок, и использовалась сначала в основном для организации веб-сервисов, а затем и для создания веб-платформ, которые разрабатывали IBM и HP. Из-за этого и сам процесс, и сообщество становились все более профессиональными. А причина этого была очень прагматичная: если вы собираетесь основывать свой бизнес на операционных системах с открытым кодом, и вы при этом компания по производству оборудования (как IBM или HP), то вам понадобится полная поддержка своего программного и аппаратного обеспечения и всего, что с этим связано. Например, вам придется держать под своим контролем все: начиная от заботы о том, чтобы операционная система делала именно то, что вам нужно, до ваших собственных инженеров в штате, которыми управляете вы, но они при этом работают над софтом с открытым кодом.

Типичный: Правильно ли я понимаю, что открытый программный код в какой-то момент оказался более конкурентным для крупных компаний, чем платформы с закрытым кодом типа Microsoft и т.п.? Это было неким условием для того, чтобы заинтересовать компании работать с Linux или нет?

Джеймс Боттомли: У ответа на этот вопрос есть своя история. Вспомним старые деньки в восьмидесятые годы и даже чуть раньше: UNIX доминировала на рынке и была признанной операционной системой. Но проблема с UNIX была в том, что у каждой отдельной компании была своя версия. У HP было HP-UX, у IBM – AIX, и другие собственные коммерческие разновидности UNIX разных компаний – CLIX, IRIX, Solaris и так далее. И у всех этих компаний была своя разработка этих маленьких ОС, и все расходы по разработке и поддержке ложились на каждую такую компанию. И это не только снижало их доходность, но и долю их рынка, потому что, по сути, эти компании конкурировали и пытались дифференцироваться друг от друга с помощью практически одинаковых продуктов. Более того, это влияло и на их клиентов, которые несли огромные расходы, им приходилось покупать практически все у одного поставщика без возможности выбора – и ОС, и сопутствующий софт, и оборудование, и поддержку. Когда в середине девяностых появились новые универсальные платформы под ПК, они были в десять раз дешевле, чем эти UNIX-продукты. Все ожидали, что UNIX должен умереть хотя бы из-за этой ценовой политики. И действительно, вскоре пользовательское оборудование на базе Windows и Intel практически заменили его. Но тут Linux все испортил: он пришел как софт с открытым кодом – что означало его бесплатную установку. И при этом он был похож на UNIX – и программно, в плане кода (не нужно было заново обучать персонал работе с ним), и в том, что Linux можно было легко адаптировать под нужды своей компании. Вендорам «железа», которые работали с UNIX, потребовалось совсем не много, чтобы адаптировать свои продуктовые линейки под новые условия, и при этом снизить свои затраты. Поэтому они воспользовались стратегией работы с Linux и Intel – начали адаптировать Linux под то, что раньше выполнял UNIX. У них теперь была совместимая и универсальная платформа для всех продуктовых линеек, так что их клиенты больше не были ограничены необходимостью покупать дорогие и штучные системы. И можно было оптимизировать некоторые затраты, например, не платить полностью за поддержку своей собственной операционной системы и оборудования. При этом у каждой компании была одна и та же ОС Linux, но также возникла необходимость и вместе над ней работать. Модель поведения изменилась: вместо конкуренции разных операционных систем компании были вынуждены взаимодействовать, вместе работать над платформой Linux и поддерживать ее.

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

Типичный: А какая сейчас бизнес-модель у Linux-сообщества, как оно зарабатывает и как тратит деньги? Как это распределяется сейчас?

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

Типичный: То есть я правильно понимаю, что компании обращаются к Linux-сообществу, и ставят конкретные задачи под свои нужды? То есть фактически платят разработчикам, чтобы они создали нужный компаниям софт?

Джеймс Боттомли: Нет, все по-другому. Linux – это то, что в общем-то доступно всем и так, это не сервис, за который нужно платить. Если приходят люди, которым требуется какая-то определенная функциональность, которой в Linux еще нет, которые хотят, чтобы linux сделал для них что-то новое, то они должны поступить по-другому. Во-первых, должны полностью проработать, что именно они хотят и что надо сделать, а затем убедить своих собственных инженеров это разработать (или заплатить каким-то другим инженерам, чтобы они разработали этот самый нужный код). А затем по определенным каналам придется убеждать Linux Comminity, что они должны включить этот код в ядро Linux.

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

Типичный: … поскольку идет перепроверка другими пользователями в сообществе.

Джеймс Боттомли: Да, и они отклонят этот код, более того, вы создадите себе этим и дурную репутацию, потому что они вполне могут продолжать отклонять ваш код, пока вы не научитесь делать все правильно. Это фактически очень и очень сильно отличает модель Linux от общепринятой отраслевой. Мы привыкли говорить клиентам, что мы производим лучший код, но часто даже в хорошо отработанной версии по-прежнему много «костылей», которых там быть не должно. А Linux фактически силой заставляет их производить их самый лучший код.

Типичный: У меня напрашивается аналогия с народной энциклопедией типа Википедии, где люди могут свободно предлагать свои статьи, которые будут потом редактироваться членами сообщества. Но, в отличие от Linux, статьи не всегда получаются на 100% высокого качества. Я хочу спросить, в чем различие между подходом в Википедии (условно) и в Linux-сообществе, ведь и там и там вроде бы есть некий условный аутсорсинг. И при этом конечный продукт у Википедии не всегда профессионального уровня, а у Linux это не так. Как вы избегаете каких-то ошибок, неточностей, как осуществляете контроль качества и так далее?

Джеймс Боттомли: С одной стороны, Linux — это операционная система, и ее качество легче увидеть, потому что она либо работает, либо нет  в отличие от Википедии, где коллективный разум пытается определить объективность, что само по себе субъективно. И также у нас есть не только сообщество людей, разрабатывающих Linux, но и сообщество людей, которые хотят попробовать то, что предлагается. У многих, как у меня, Linux стоит на ноутбуке, причем с самым последним ядром. Если что-то не работает, я кричу «Почему???» и требую, чтобы кто-нибудь удалил то, что вызвало проблему, или починил это. И вот такие люди как я тестируют Linux и на пользовательском, и на отраслевом уровне, в инфраструктурах больших компаний, в платформах или бизнес-продуктах. Это также важная часть контроля качества, потому что какие-то мелкие вещи инспекция в лице Linux-сообщества могла и пропустить. В Википедии если ты не понял статью, то можешь ее и пропустить, не читать, а в ядре Linux лишь очень немногие люди на самом деле понимают буквально все. А ведь есть и такая область, как драйверы устройств и тому подобные вещи, которые устанавливаются на компьютер. Вот почему так важно иметь именно диверсифицированную экосистему тестеров, которые также будут мониторить эту ОС на различном оборудовании. По крайней мере, всегда найдется несколько человек, которые проверят, как работает драйвер, и если найдут ошибку, то пришлют о ней отчет. С Википедией – если никто не читает статью, никого не интересует, что в ней написано, то не имеет значения, какого она качества.

Типичный: Тогда следующий вопрос, что мотивирует людей, работающих в сообществе?

Джеймс Боттомли: Это по-прежнему желание по-настоящему помочь с созданием операционной системы. Это всемирно известный софт с технологически сложными задачами и большими целями, и людям нравится быть причастными к этому, нравится создавать код, решать сложные проблемы. Работа над операционной системой – это как упражнение для талантливых людей. Есть ведь много людей, которым компании платят за то, чтобы они работали над их собственными операционными системами, но при этом в ответ они получают гораздо больше контроля, они связаны обязательствами перед нанимателями, сроками, целями проекта и так далее. Но заниматься микроменеджментом (фактически – стоять над душой) людей, которые работают с Linux в сообществе, гораздо тяжелее. Разработчики тоже люди, им нравится, что им благодарны, нравится внимание к ним. Авторские же права на продукт компании принадлежат компании, многие вещи закрыты по соглашениям о неразглашении коммерческой информации, а тут можно говорить на весь мир, что именно ты автор той или иной вещи, и общаться с такими же, как ты. В этом смысле инженерам точно гораздо больше нравится работать именно с открытым кодом.

Типичный: А как вы двигаете сообщество в нужном направлении?

Джеймс Боттомли: Глобально – просто нужны идеи, если они есть, то все возможно. Сообщество лучше всего откликается именно на удачные идеи, и люди типа меня все время делают все необходимое, чтобы эти хорошие идеи у них появлялись. Сообщество — это хороший вариант протестировать идею: хорошая она или нет, что работает, а что нет. Чья-то идея будет развиваться, а чья вызовет лишь разочарование, или пропадет, как камушек, брошенный в воду.

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

Джеймс у входа в московский офис Parallels.

Джеймс у входа в московский офис Parallels.

Parallels как раз пример такой компании. Например, Parallels уже около 15 лет работает в сфере контейнерной технологии виртуализации. В 2013 году на этот рынок пришел разработчик Docker и начал делать интересные вещи, которые получили много известности. Наш департамент маркетинга дал мне задание, чтобы я рассказал миру и о достижениях Parallels в области контейнеров, так как у нас их не меньше, чем у Docker. Поскольку Docker работает с программным обеспечением с открытым кодом, мы могли видеть, куда они двигаются. У нас были те же идеи, с которыми мы работали много лет, мы наблюдали за рынком и тоже видели, что он может откликнуться на идеи контейнерной виртуализации – в бизнес пришли облачные вычисления, а контейнеры в этой области дают гораздо больше плотности, гибкости, скорости отклика, чем любые другие решения виртуализации.

Поэтому нашей задачей стало сделать использование контейнеров на корпоративном рынке проще и легче. Один из вариантов это сделать – через OpenSource. Разработчики Docker делали почти то же самое, мы даже оба выпустили свои решения приблизительно в одно время. При фактической конкуренции на нас обоих взаимно повлияли идеи друг друга, и нам понравились идеи друг друга. И в результате через полтора месяца мы стали партнерами: анонсировали совместную разработку продукта, который сделает контейнеры удобным инструментом работы для разных компаний. Такая схема была бы невозможна в условиях закрытого кода. Если бы это была коммерческая разработка, то мы бы просто выпустили наши системы и начали думать о рыночном продвижении, пытаясь адаптировать один продукт к другому. Тогда проиграли бы мы, проиграл бы Docker, весь рынок контейнерной технологии проиграл бы. Но мы превратили угрозу в возможность.

Типичный: А не было ли такого, когда сообщество отвергало перспективную, но про на тот момент не оцененную идею?

Джеймс Боттомли: Да, иногда. Что вы можете сделать, если такое случилось? Что вам надо искать, так это use cases – сценарии использования. Рынок все время стремится к тому, чтобы все технологии стали потребительскими, но технологии всегда сами по себе немного забегают вперед. Если идея достаточно хорошая, вы можете понаблюдать за рынком: двигается ли он хотя бы чуть-чуть к вашей идее или нет. Если да, то нужно определить сценарии использования и еще раз попробовать продвинуть свою идею. И если она все-таки была верная, то на втором круге ее могут принять, такое на моей памяти пару раз случалось. Когда такое случалось в Parallels, мы говорили: ок, но нам это нужно по таким-то причинам. Если не срабатывает, то нужно рассказывать, зачем это нужно кому-то еще и по каким причинам. И поскольку это открытый код, то мы можем найти людей, которым это тоже нужно, и создать из них коалицию, которая скажет, что идея должна быть принята.

Мы так делали несколько раз, так произошло, например, с нашим проектом CRIU, который умеет снимать состояние выполняющихся в Linux процессов и восстанавливать их в другом месте или в другое время. Сегодня эта технология checkpoint-restore — основная технология миграции контейнеров. Но ее история не была гладкой. В 2010 году ее предложили ребята из Columbia University (а было и еще несколько других технологий, которые делали похожие вещи). И ее сначала отклонили, потому что она была реализована не в том виде, в котором было нужно. Но нам эта технология была жизненно необходима, иначе мы бы попросту не могли работать на рынке облачных вычислений. И тогда мы создали сообщество из всех людей, которые хотели эту технологию, и, раз ее не хотели включать в само ядро, то в Parallels ее реализовали в виде приложения к ядру (CRIU), которое можно было использовать на уровне пользователя, а приложение добавили в ядро при помощи патчей, а не напрямую. Фактически вошли не в парадную дверь, а с заднего крыльца. Так что со стратегической точки зрения вместо того, чтобы модифицировать ядро, мы модифицировали саму технологию checkpoint-restore, чтобы она работала на уровне процесса отладки, которая уже использовалась тогда и регулярно генерировала отчеты о состоянии системы. Мы расширили возможности интерфейса отладки, и теперь можно было воссоздавать состояние процессов, используя информацию от системы отладки. И в итоге 3 года спустя CRIU — это уже полнофункциональный продукт, на основе которого мы можем делать и бизнес-решения. Например, эта технология используется в нашем коммерческом решении Parallels Cloud Server.

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

Типичный: Знаете ли вы бизнесы, похожие по структуре на Linux?

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

Типичный: То есть опыт Linux можно тиражировать? Или в нем есть некая уникальная, скажем так, составляющая, которую растиражировать в других бизнесах нельзя?

Джеймс Боттомли: Определенно, можно тиражировать, и OpenStack уже это делает, и есть буквально сотни OpenSource-проектов, которые делают то же самое. Не все из них точно следуют модели сообщества Linux. В Linux Community есть она уникальная особенность, которой нет больше ни у кого – это Линус Торвальдс, который решает, что в итоге будет включено в платформу, а что – нет. Но большинство функций нашего сообщества они повторяют, хотя могут иметь множество различий в структуре. Например, у некоторых есть совет директоров, у некоторых – нет, есть разные типы лицензирования. Но если говорить в целом, то в софтверной отрасли сегодня OpenSource – это наиболее жизнеспособный метод сотрудничества для конкурентов-разработчиков.

Типичный: Не так часто такая кооперация людей приводит к конкретным результатам, есть очень много примеров, когда попытки организовать свободное OpenSource-сообщество или краудфандинг провалились. Готовые открытые продукты – это редкость. Реже, чем когда этим целенаправленно занимается корпорация. Поэтому интересен в этом смысле опыт Linux, в чем секрет?

Джеймс Боттомли: А секрет в том, чтобы всегда следовать своим собственным принципам. Для Linux секрет в том, чтобы всегда быть технологически честными, особенно во время инспекции своего программного кода, и всегда быть готовым ко всему, как в примере с нашей технологией CRIU, о которой мы говорили выше.

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

Спасибо компании Parallels за предоставленное интервью.

1_parallels_logo_cmyk