Представляем шестой выпуск подкаста о технологиях, процессах, инфраструктуре и людях в IT-компаниях. Сегодня в гостях у “CTOcast” — Даниил Дубровкин (Daniel Doubrovkine), технический директор компании Artsy и open source энтузиаст.
О нашем собеседнике:
Даниил Дубровкин окончил Женевский университет в Швейцарии (1999). За годы учебы создал два стартапа: успешный Vestris и менее везучий Xo3. После завершения обучения переехал в Сиэтл (США). В 1999−2004 годах работал в компании Microsoft, где занимался проектами NetDocs, MSN, а также системой биллинга. В 2004−2006 годах руководил разработкой в Visible Path, с 2006 года работал в компании Application Security. С 2011 года возглавляет разработку в компании Artsy.
Член New York CTO Club. Занимается развитием open source решений.
Текстовая версия подкаста (1-ая часть)
Об open source в крупных компаниях
Александр Астапенко: Существует стереотип о несовместимости open source и бренда Microsoft. Правда, в последнее время этот стереотип активно ломается. Ты несколько лет проработал в компании, как так получилось, что после Microsoft ты стал заниматься open source продуктами? Или может быть ты ими занимался всегда, даже работая в Microsoft?
Даниил Дубровкин: Идя в Microsoft, я был энтузиастом Linux и прочих открытых версий, писал программы на С, Unix. Я был очень удивлен, что технология, которой пользуется Microsoft—совсем другая, закрытая. Я пытался помочь разработчикам работать вместе, создавая shared source проекты внутри Microsoft, но все это напоминало плавание против течения реки. Было очень трудно убедить людей, что надо не переписывать одно и тоже по десять раз, а учиться друг у друга. Мне всегда хотелось работать в открытую, но в Microsoft было интересно научиться другому: работать с большими командами и разрабатывать проекты, которыми пользуются миллионы людей.
Павел Павлов: И насколько твои подходы находили поддержку в Microsoft?
Даниил Дубровкин: Я работал на двух проектах, которые были чисто моими: один назывался CoreXT, другой—BuildTracker. Оба до сих пор живые. Я пытался их писать в открытую и хотел, чтобы другие разработчики в Microsoft тоже участвовали в процессе. И это работало довольно хорошо. Но сама компания активно боролась с открытыми вещами, которые делались внутри Microsoft. Внутри компании всегда было две стороны: люди, которые хотели работать в открытую, и люди, которые очень не хотели. И это чувствовалось каждый день, с каждой новой версией. Постоянно были споры на счет того, что должно быть открыто и что не должно. В это время, в 2000-х годах, Microsoft как компания была абсолютно закрыта, даже внутри.
Павел Павлов: Сейчас тренд изменяется. Не только Microsoft, но и, например, Dropbox и Netflix постоянно выкладывают свои проекты, то есть очень сложно найти компанию, которая хотя бы частично не открывала свои проекты. Естественно, что core-продукты никогда не будут выкладываться, тем не менее тренд есть, и многие компании, в том числе Microsoft, начинают делать большое количество проектов с open source. С чем это связано? Почему так сильно поменялась ситуация за последние пять-десять лет?
Даниил Дубровкин: Я думаю в Microsoft поняли, что без этого они совершенно неконкурентоспособны: у них не хотят работать инженеры, потому что такая закрытая компания, и те же самые инженеры не хотят пользоваться технологиями Microsoft из-за их закрытости. Microsoft был вынужден это делать. Открытая разработка не входит в ДНК Microsoft, и я не верю, что компания изменяется сейчас радикально. Я думаю, что это был просто ответ на насущные вопросы: бизнес пойдет дальше плохо или Microsoft потерял 90% своих разработчиков. Как бы ты не любил .NET, но большинство стартапов на нем не пишут.
Многие компании работают совершенно по-другому и видят в open source возможность научиться сотрудничать с большим количеством людей, которые не работают с вами напрямую. Для маленьких компаний это значительное преимущество. Например, в Microsoft я мог выйти из своего офиса, пройти по коридору и найти экспертов в чем угодно, которые могли помочь мне с моей проблемой. В компании из десяти человек такое невозможно. Поэтому open source—ответ на эту проблему. Я могу найти экспертов в любом вопросе в Интернет, но для того, чтобы они меня слушали и со мной говорили, мне надо свою собственную часть этого дела делать и класть весь код открытым.
Я не согласен с мнением, что core-проекты не будут open source, и считаю, что их тоже нужно делать открытыми. Это вопрос только конкурентоспособности, сам код ничего не стоит.
Александр Астапенко: Условно говоря, есть какая-то большая компания со своим сore-продуктом. И ты говоришь, что для этой компании выгодно, чтобы ее сore-продукт был в open source? Можешь привести какие-то доводы?
Даниил Дубровкин: Да, конечно. Самый известный пример—компания Red Hat, которая на 100% делала разработку open source. Еще один пример компании, которая меньше и моложе—MongoDB. Их разработка тоже идет полностью в открытую. Бизнес обоих компаний растет. Red Hat—огромный бизнес и продолжает им быть, и MongoDB растет очень быстро.
Уже многие компании доказали ошибочность идеи о том, что для того, чтобы делать много денег, код должен быть закрыт. Просто надо деньги делать немного по-другому, в сервисах, например.
У самого кода довольно маленькая цена. Например, представьте себе, что Microsoft Office был бы полностью open source. Ну и что? Клиентам, которые пользуются этими программами, все равно, что open source, что не open source. А для разработчиков иметь открытый код—замечательно, потому что я могу найти проблему намного быстрее и может быть смогу исправить какие-то баги. Я вижу только преимущества открытого кода. Думаю, что большинство компаний этого не делают, потому что они просто боятся, у них слишком много адвокатов.
О безопасности
Александр Астапенко: Ты затронул интересный вопрос о безопасности. Особенно острым он стал в последние пару лет, когда некоторые open source решения получили популярность в масс-медиа, когда у них появились баги. Что ты думаешь по этому поводу? Безопасность open source версий против безопасности проприетарных решений?
Даниил Дубровкин: У Microsoft тоже достаточно багов внутри. От того, что все это идет в закрытом виде, программное обеспечение лучше не становится. Намного важнее—кто его пишет, кто платит за то, чтобы код писали, и кто работает над тем, чтобы код был безопасен. Это намного важнее, чем то, что он открыт или закрыт. Проблема OpenSSL была на 90% связана с тем, что никто этим не занимался, а не с тем, что код был открыт.
Александр Астапенко: Откуда тогда возникает мнение, что open source продукты не так безопасны, как проприетарные? Я не говорю, что я с этим мнением согласен. Вот ты говоришь, что даже в OpenSSL баг был не из-за того, что код открыт, а из-за того, что им не занимались. Может быть, если бы это был проприетарный продукт с компанией, с иерархией, с кучей менеджеров, которые стояли бы за этим продуктом, то занимались бы лучше? Или это тоже стереотип?
Даниил Дубровкин: Думаю, что это стереотип. Например, я знаком с базами данных Oracle c моей прошлой работы. Application Security имел на салфетках много zero days, написанных про базы данных Oracle. И я думаю, что если мне сейчас дать терминал для подключения к Oracle 10g или 11g, то я его раскрою без паролей. И баги, которые находятся в этих базах данных, они там сидят по два–три года после того, как какой-нибудь security researcher их нашел. Вроде бы все чувствуют себя лучше, потому что не знают об этих проблемах. Но если один исследователь нашел, то другой тоже найдет, который уже не такой хороший и который продаст эти уязвимости, чтобы потом можно было ломать базы данных конкретных компаний, Sony, например, и так далее. Я не думаю, что если код закрыт, то нам от этого становится безопаснее.
Павел Павлов: Интересная ситуация получается. Ты опять же упомянул два показательных примера—Red Hat и MongoDB. Эти компании построены на бесплатном и открытом продукте, но в тоже время они ведут довольно успешный сервисный бизнес и предоставляют либо enterprise-фичи, либо техническую поддержку. Огромное количество корпоративных заказчиков с серьезными решениями и бизнесом идут к Red Hat, потому что они доверяют им и их безопасности. Как ты считаешь, связано это с открытостью продукта? Чем еще может привлекать такая модель?
Даниил Дубровкин: Цена акций Red Hat на американском рынке сильно увеличилась после того, как в Oracle сделали свой Unbreakable Linux. Это случилось довольно интересно. Oracle решил, что раз Red Hat Linux все хотят, то Oracle сделает свою версию и все захотят Oracle, поскольку доверяют. Результат был противоположным. Тогда цена акций Red Hat, по-моему, удвоилась за несколько дней.
Я думаю, что люди хотят работать, покупать и платить деньги тем компаниям, у которых интересы те же самые, что и у клиентов. Я с удовольствием буду пользоваться MongoDB, потому что я всегда могу найти инженеров и всегда могу посмотреть на код, потому что им важны мои результаты. И естественно, если у нас коммерческие цели, мы с удовольствием платим деньги за то, чтобы они давали нам какие-то другие фичи.
Александр Астапенко: Может быть большие компании идут за проприетарными решениями, чтобы прикрыть себя в случае какого-нибудь провала? Например, мы используем open source решение и критический баг срабатывает на ком-то из наших клиентов. Если это проприетарное решение, то мы можем прикрыться договорами с компанией-поставщиком этого решения. В случае open source прикрыться некем. Да, сообщество быстро поправит, но в итоге перед конечным клиентом будем мы виноваты.
Даниил Дубровкин: Эта стратегия разработана не программистами, а адвокатами и прочими людьми, которые занимаются бизнесом и которые всегда думают про самое худшее, что может случиться. Я считаю, что надо изменить взгляд. Засудить могут кого угодно и по любой причине. А насчет того, что большие компании хотят прикрыться от таких возможностей, то я думаю, что они просто не хотят быть ответственными за собственную работу. Это плохая стратегия, потому что так они говорят: «Мы не ответственны за наш продукт».
Оpen source не значит, что ты не владеешь своим продуктом и не стоишь за ним. Ты не говоришь, что это не мое, а общее. Оpen source совсем не значит—общее. Оpen source не значит, что это бесплатно и что это никому не принадлежит. Это значит, что мы разрабатываем наш проект в открытую, и все видят то, что мы делаем. MongoDB хороший пример. Я не написал ни одной строчки кода в MongoDB, хотя им пользуюсь.
О людях и мотивации
Павел Павлов: Одна сторона—люди, которые занимаются разработкой open source продуктов, а другая сторона—потребительская. Ты учился и работал в Европе, потом Вест Кост, Ист Кост. Разные культуры и компании. Какие подходы к использованию open source продуктов и к рискам, связанным с ними, ты заметил?
Даниил Дубровкин: Когда я работал в маленьких компаниях как Visible Path, то вопрос о том, какими программами и кодом пользоваться, не стоял. Мы всегда искали ответы в открытых приложениях. В более крупных компаниях надо было провести довольно серьезную работу и объяснить людям, которые не занимаются разработкой, что, как ни крути, мы пользуемся большим количеством open source решений. Например, если ты пишешь программу на Java, то, естественно, ты будешь пользоваться open source кодом. Чем больше компания, тем сильнее они не хотят использовать open source и открывать свои двери, но все очень быстро изменяется. Сейчас некоторые крупные компании начинают активно смещать разработку в открытую сторону, потому что больше хороших инженеров хотят над этим работать, программы получаются лучше, мы не переписываем одно и тоже много раз. Следующий этап—начать в открытую писать собственные программы, библиотеки и так далее.
Александр Астапенко: Экологичное software, да?
Даниил Дубровкин: Правильно, software становится старее и хуже со временем, даже если с ним ничего не делать. И каждый раз, когда мы переходим из компании в компанию, мы находим себя в ситуации, когда опять все надо переделывать. И не хочется этого мне делать больше никогда. Я не хочу опять начинать с нуля, а хочу пользоваться всем, что уже было разработано до меня другими умными людьми.
Павел Павлов: Говоря о сообществе и людях, которые создают open source решения, как ты считаешь, что привлекает их в такие проекты?
Даниил Дубровкин: С самого начала первой и наиболее важной причиной для меня было желание научиться чему-то. Я каждый день вижу программистов, которые работают на open source проектах и которые намного сильнее меня. Я не всегда могу работать с такими людьми, сидя рядом с ними в одной компании, но через открытые проекты у меня появляется возможность с ними говорить и быть на равных.
Вторая причина—возможность научиться работать с большим количеством людей, которым ты не указываешь, что делать. Многие представляют менеджмент как работу, где ты сидишь и говоришь: «Вот сегодня ты делай это, а завтра делай то. И как так, что ты не закончил то, что должен был закончить вчера?» И для начинающих менеджеров работать в open source проектах—очень хорошая школа, потому что ты пишешь программы с людьми, которые от тебя не зависят. Они делают все, что хотят, они работают абсолютно на волонтерской основе.
Продолжение текстовой версии подкаста—в ближайшие дни.
Автор: ViktoryiaFedzkovich