- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF142:Interview
Материал из Linuxformat.
- LXF Интервью
Вскрытие «буки»
- Джоно Бэкон беседует с Дэвидом Рекордоном из Facebook о Сети, стандартах, открытом коде и о том, почему в сердце всего, что они делают, лежит HipHop.
Имея более 500 миллионов пользователей, Facebook является крупнейшей в мире социальной сетью, в то же время активно содействующей сообществу открытого кода. Дэвид Рекордон [David Re-cordon], редактор сайта по открытому коду, рассказывает нам о подходе компании к свободному ПО
- LXF: Каков ваш опыт работы с открытым кодом?
Дэвид Рекордон: На самом деле я начал работать с открытым кодом, будучи еще подростком. Я использовал YaBB SE (программу для форумов PHP) и начал помогать другим в сообществе. В то время я знал C++ и немного Perl, а web-программированием почти не занимался. Разобраться в PHP было легко, и мне нравилось, что можно просто нажать на Save и тут же обновить браузер. За следующие несколько лет я глубже втянулся в проект, помогал запустить его переписанную версию в виде Simple Machines Forum и создал бизнес по хостингу форумов с моим другом Джошуа Дикерсоном [Joshua Dickerson]. Видимо, это и был мой первый опыт серьезной работы в проекте с открытым кодом.
- LXF: Вы продолжили работу в интернет-бизнесе?
ДР: Пару лет спустя я стажировался в LiveJournal, по-настоящему выучил Perl, и мне велели ни за что не признаваться, что я использовал Nano (когда я перешел на Emacs). Работа в LiveJournal была также моим первым опытом повседневного использования настольного Linux.
- LXF: Вас хорошо знают в мире OpenID. Как вы очутились в этом проекте?
ДР: Некоторые воспользовались открытостью кода ядра LiveJournal и запустили клоны. Согласно Wikipedia, было около 30 разных сайтов – первым стал DeadJournal, в 2001. И хотя спам никогда не вызывал больших проблем у http://LiveJournal.com, комментарии между сайтами блогов по-прежнему изобиловали им, поскольку там отсутствовало единое понятие об идентификации.
OpenID была создана в Six Apart, чтобы помочь в решении межсайтового комментирования децентрализованным образом. С 2005 года они довольно сильно эволюционировали, и я действительно принимал активное участие в OpenID 2.0, работая в VeriSign. Она была реализована практически каждой крупной интернет-компанией, но нам ещё предстоит долгий путь. Я вижу следующую версию OpenID основанной на OAuth 2.0. Это позволит ей стать весьма компактной технологией, которая будет работать для приложений вне браузера.
- LXF: Как вы перешли в Facebook?
ДР: Я присоединился к Facebook в 2009 году, чтобы работать над открытым кодом и стандартами. Моя команда старается упростить для всех сотрудников компании работу по использованию, содействию и выпуску проектов с открытым кодом. Временами это означает работу в других командах, как было, например, с HipHop для PHP, который мы выпустили в начале 2010. И хотя HipHop уже подтвердил свою значимость в Facebook, там все же оставалось немало работы, чтобы он стал полезной частью инфраструктуры для других.
- LXF: Что именно делает HipHop?
ДР: HipHop воплощает в себе то, как мы творим в Facebook. Его запустил Хайпинь Чжао [Haiping Zhao] как экспресс-проект – хакатон, а потом к нему присоединились Иэн Проктор [Iain Proctor] и Миньюй Янь [Minghui Yang]. Хайпинь заметил определенное сходство синтаксисов PHP и C++ и задался вопросом, можно ли программным способом переписать один в другой. И вот, благодаря усилиям, отнявшим два с половиной года и нескольких инженеров, HipHop уже обслуживал большую часть производственного трафика Facebook. Он берет наш исходный код PHP, трансформирует его в C++ и компилирует в независимый бинарник, а мы его задействуем при создании web-серверов. Это типичная схема запуска проектов в Facebook. Кто-то просто хочет что-то попробовать. Мы называем это «культурой хакинга».
- LXF: Ваша работа над стандартами OpenID и OAuth используется в Facebook?
ДР: В прошлом году наша команда платформенного инжиниринга немало потрудилась над OAuth 2.0. OAuth создавался для стандартизации части дизайна API, чтобы дать пользователю способ позволить другому человеку войти на сайт вместо него, не сообщая при этом своего пароля. И хотя два последних года OAuth 1.0 вставлялся практически в каждый новый API, все же для многих разработчиков он был сложноват. Мы помогли создать OAuth 2.0, чтобы снять эту проблему.
OAuth 2.0 использует SSL для защиты доступа при отправлении запросов API вместо подписей HMAC, которые применялись в версии 1.0. Это значительно упрощает дело: ведь разработчикам, взаимодействующим с вашим API, уже не нужно нормализовать, сортировать и потом подписывать все свои параметры запроса HTTP. Мы первые сделали OAuth 2.0 частью Graph API, анонсированного в f8 в апреле, поработав в сообществе IETF над написанием изрядной его части. Также в f8 мы ввели протокол Open Graph (http://ogp.me), который использует очень простое подмножество среды RDF для представления любого сайта в качестве части социальной схемы.
- LXF: Facebook считают сайтом с закрытым кодом. Как еще вы поддерживаете открытый код?
ДР: Инженеры Facebook активно вносят свой вклад в экосистему Apache Hadoop и в MySQL и PHP, и создали ряд функций, позволяющих системам с распределенной памятью [mem-cached] масштабироваться до современного оборудования. Но мы не просто участвуем в других проектах или выпускаем инструменты для разработчиков: мы открываем код целых участков производственной инфраструктуры. HipHop, Flash-Cache, Apache Hive и Cassandra, Thrift, Scribe и многие другие созданы в Facebook. Не думаю, что найдется другая интернет-компания нашего размера, способная похвалиться тем же.
- LXF: Ну, а трудно ли работать над открытым кодом в компании?
ДР: Компаниям легко поверить в миф, будто открытый код не требует дополнительного времени и усилий. А он еще как требует времени, если вы хотите сделать работу хорошо. И очень важно правильно настроить свои ожидания от проекта, четко разграничив выдачу своего кода для пользования другими по лицензии открытого кода и предоставление контроля над самим проектом. Это решение мне кажется менее важным по сравнению с необходимостью правильно установить свои ожидания для компании.
- LXF: Что вы думаете о Diaspora, клоне Facebook?
ДР: Я очень уважаю этих ребят. Они энтузиасты своего проекта, и действительно создали стоящий продукт. По-моему, в том, что они пытаются сделать, есть дерзновенные перспективы. Социальная сеть с открытым кодом – это не просто обновление статуса и обмен сообщениями между сайтами; это также глобальное ощущение единства и возможности объединить своих друзей и свой контент в сети, позволяя в то же время контролировать, кто просматривает то, чем вы делитесь. Это уже построение платформы.
- LXF: Вы полагаете, что в настоящее время Facebook охватил открытую сеть?
ДР: Да, я полагаю, мы прошли долгий путь за прошедший год. Будь то OAuth 2.0, HTML 5, или Open Graph Protocol, мы использовали стандарты там, где они уже имелись, и работали вместе с сообществом над их созданием в областях, где их не было. Нас еще будут критиковать за неприменение имеющейся технологии, но наилучшие стандарты создаются в процессе, когда вы делаете дело – иного пути нет. Как я написал летом про возникновение стандартов: «Не бойтесь нарушать их, если вам это нужно – если в итоге у вас получится лучший продукт, лучшая технология и в конечном итоге – лучший стандарт. Мы поступили так с OAuth 2.0, и благодаря этому Интернет стал лучше».