Хабрахабр

«Запрос назрел»: Алексей Федоров о новой конференции по распределённым системам

Люди, которым близка эта тема, понимают, что приезд в Россию Лесли Лэмпорта, Мориса Херлихи и Майкла Скотта — важнейшее событие. Недавно были анонсированы сразу два мероприятия о разработке многопоточных и распределённых систем: конференция Hydra (11-12 июля) и школа SPTDC (8-12 июля). Но возникали другие вопросы:

  • Чего ждать от конференции: «академичности» или «продакшна»?
  • Как соотносятся школа и конференция? На кого рассчитано то и другое?
  • Почему они пересекаются по датам?
  • Будут ли они полезны тем, кто не посвятил всю жизнь распределённым системам?

Обо всём этом хорошо известно человеку, благодаря которому Hydra появилась: нашему директору Алексею Федорову (23derevo). Он и ответил на все вопросы.

Формат

— Вступительный вопрос для тех, кто далёк от распределённых систем: о чём оба мероприятия?

Значит, машин должно быть несколько. — Глобальная задача в том, что вокруг нас существуют сервисы с большими объёмами операций и сложными вычислительными задачами, которые не сделать на одном компьютере. А дальше возникают вопросы, связанные с тем, как грамотно синхронизировать их работу и что делать в условиях не самой высокой надёжности (потому что оборудование ломается, а сеть отваливается).

Что делать, если на одни и те же вычисления разные машины выдают разные результаты? Чем больше машин, тем больше возникает точек отказа. В общем, миллион связанных с этим проблем. Что делать, если на какое-то время пропала сеть и часть вычислений стала изолированной, как потом всё это объединять? Новые решения — новые проблемы.

Хочется поговорить про то, что происходит и на практике, и в науке, а главное — на их стыке. В этой области есть совсем прикладные направления, а есть более научные — то, что ещё не стало мейнстримом. Вот про это и будет первая конференция Hydra.

Как они соотносятся? — Хочется разобраться с тем, что есть конференция, а есть летняя школа. Если для участников школы сделана скидка на посещение конференции, то почему они пересекаются по датам, так что нельзя посетить сразу всё без потерь?

И возникает ситуация, когда в Петербурге на пять дней собираются светила мирового уровня, готовые что-то рассказывать. — Школа — это камерное мероприятие на 100–150 человек, куда приезжают ведущие специалисты со всего мира и в течение пяти дней читают лекции. А в таком случае напрашивается решение организовать не только камерную школу, но и более масштабную конференцию.

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

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

Да, это порождает некоторые проблемы. Поэтому единственное решение, которое мы нашли — это просто провести конференцию параллельно школе. Хорошая новость в том, что всё это будет проходить в соседних залах, можно будет бегать туда-сюда. Есть люди, которые хотят и на школу, и на конференцию, и им придётся пропустить часть лекций там или там. И ещё одна хорошая сторона в наличии видеозаписей, на которых позже можно спокойно посмотреть то, что пропустил.

Чего именно ожидать от каждого, и в чём различия? — Когда два мероприятия проходят параллельно, у людей возникает вопрос «какое из них мне нужнее-то».

Кто сам занимался наукой и имел какое-то отношение к аспирантуре, представляет, что такое академическая школа. — Школа — это чисто академическое мероприятие, классическая научная школа на несколько дней.

А мы всё-таки довольно опытные ребята, так что можем довольно грамотно всё сделать. Обычно такие академические мероприятия не очень хорошо организованы в силу отсутствия ивентной экспертизы у людей, которые это делают. Я думаю, что с организационной точки зрения SPTDC будет на голову выше любой научной или научно-практической школы, которую вы когда-либо видели.

Надо понимать, что в первый раз участнику может быть непросто: когда два года назад эта школа проводилась впервые, мне самому было непривычно, я несколько раз примерно в середине двойной лекции выключался, и потом уже трудно было понять, что происходит. Школа SPTDC — это такой формат, где каждая большая лекция читается две пары: «полтора часа — перерыв — полтора часа». Но это очень зависит от лектора: хороший лектор все три часа очень интересно рассказывает.

Там будет несколько светил науки, приехавших читать лекции на Школе: от Лесли Лэмпорта, чьи работы лежат в основе самой теории многопоточных и распределённых систем, до Мориса Херлихи, одного из авторов знаменитого учебника по concurrency «The Art of Multiprocessor Programming». Конференция Hydra (Гидра) — более прикладное мероприятие. Ну и конечно, поговорим о будущем разработки многопоточных и распределенных систем. Но на конференции мы попытаемся поговорить о том, как в реальности реализуются те или иные алгоритмы, с какими проблемами инженеры сталкиваются на практике, у кого что получается и не получается, почему одни алгоритмы применяются на практике, а другие нет. То есть дадим такой cutting edge: о чём сейчас говорит мировая наука, вокруг чего крутятся мысли ведущих инженеров, и как это всё это друг с другом стыкуется.

— Раз конференция более прикладная, то там будут не только академические светила, но и спикеры «из продакшна»?

Мы пытаемся смотреть на всех «больших»: Google, Netflix, Яндекс, Одноклассники, Facebook. — Однозначно. Например, все говорят: «Netflix — это распределённые системы, чуть ли не половина трафика США, очень круто», а когда начинаешь смотреть на их реальные доклады, статьи и публикации, наступает лёгкое разочарование. Есть специфические забавные проблемы. Потому что, хотя это безусловно мировой уровень и там есть cutting egde, его там меньше, чем кажется на первый взгляд.

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

Например, будет Мартин Клеппман, который в своё время навёл шороха в LinkedIn, а также выпустил хорошую книгу — пожалуй, одну из базовых книжек в области распределенных систем.

— Если человек работает не в Netflix, а в компании попроще, он может задумываться: «стоит мне на такую конференцию идти, или там всякие нетфликсы друг с другом разговаривают, а мне делать нечего?»

Это могли быть люди из виртуальной машины, или из отдела тестирования, или из performance concurrency — например, Лёша Шипилёв и Серёжа Куксенко. — Скажу так: когда я три с небольшим года работал в Oracle, самые потрясающие и интересные вещи я слышал на кухне и в курилках, когда там собирались коллеги, делающие те или иные куски платформы Java.

Для меня это были поразительные и неожиданные вещи, о которых я даже не задумывался. Когда они между собой начинали что-то обсуждать, я обычно просто слушал, открыв рот. Потом непонятного стало 80%. Естественно, сначала я не понимал 90% того, о чём они говорят. Я до сих пор не понимаю очень многого из того, о чём они между собой говорят. А после того, как я сделал домашнее задание и прочитал несколько книжек, это число сократилось до 70%. Но, сидя в уголке с чашкой кофе и подслушивая, я немного начал понимать, что происходит.

Наоборот, надо внимательно слушать, потому что это — наше будущее. Поэтому, когда между собой разговаривают Google, Netflix, LinkedIn, Однокласники и Яндекс, это не значит, что это что-то непонятное и неинтересное.

Если не хотите в этой теме развиваться, не надо идти на эту конференцию, вы там просто потеряете время. Конечно, есть и люди, которым это всё не надо. Причём я думаю, что не только в России, но и в мире. А вот если тема интересна, но в ней ничего не понимаете или пока только присматриваетесь — значит, надо приходить, потому что ничего подобного вы не найдёте нигде. Мы пытаемся сделать конференцию, которая будет не просто лидером по этой теме в России, а вообще номером один в мире.

Конечно, некоторые из тех, кого мы позвали на первую Гидру, не смогут приехать. Это не самая простая задача, но когда у нас есть такой потрясающий шанс собрать сильных спикеров со всего мира, то я многое готов отдать, чтобы это получилось сделать. Кроме, разве что, самого первого JPoint шесть лет назад. Но я скажу вот что: мы никогда не начинали новую конференцию с таким мощным составом.

— Хочется развить слова «это наше будущее»: тема позже затронет и тех, кто сегодня о ней не думает?

Поэтому мне кажется очень правильным начинать обсуждать её как можно быстрее. — Да, я уверен в этом. А сейчас у нас всех многоядерные сервера, ноутбуки и даже телефоны, и это мейнстрим. Скажем, теория многопоточности появилась довольно давно (в 70-х уже вовсю выходили работы), но долгое время они были уделом узких специалистов, пока в начале двухтысячных не появился первый пользовательский двухъядерный компьютер. Потребовалось около 10 лет, чтобы это стало массовым, чтобы люди поняли, что этот дискурс — не удел узкого круга специалистов.

Потому что базовые решения вроде распределения нагрузки, обеспечения отказоустойчивости и тому подобного сделаны уже довольно давно, но что такое, например, распределённый консенсус или Paxos, знает очень мало людей. И примерно то же самое мы сейчас наблюдаем с распределёнными системами.

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

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

Когда наши друзья из Oracle (прежде всего, Лёша Шипилёв и Сергей Куксенко) стали активно рассказывать про перформанс и, в частности, про многопоточность, буквально через два-три года эти вопросы начали задавать на собеседованиях в компаниях, люди это начали обсуждать в курилках. Очень интересная вещь связана с той же многопоточностью. То есть вещь, которая была уделом узких специалистов, вдруг стала мейнстримом.

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

Чтобы все примерно понимали, что это такое, откуда растут ноги, какие там задачи и проблемы, чтобы это тоже стало мейнстримом. Задача, которую я вижу сейчас — примерно то же самое проделать с распределёнными системами.

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

Предыстория

— Конференция проходит впервые, а вот школа не в первый раз. Как это всё возникло и развивалось?

Два года назад, в мае 2017 года, мы сидели в Киеве с Никитой Ковалем (ndkoval), специалистом в области многопоточности. — Это интересная история. И он мне рассказал, что в Петербурге пройдёт «Summer School in practice and theory of concurrent computing».

А тут выяснилось, что летом в Питер приезжают очень-очень известные люди, те же Морис Херлихи и Нир Шавит, по учебнику которых я учился. Тема многопоточного программирования в последние три года моей инженерной карьеры была фантастически интересна. Я понял, что просто не могу пропустить такое мероприятие. И к этому имели отношение многие мои знакомые — например, Рома Елизаров (elizarov).

У нас в JUG.ru Group было полное понимание, как должны записываться такие лекции. Когда стало понятно, что программа у школы 2017 года будет классная, возникла мысль, что лекции обязательно надо записывать на видео. В итоге все лекции школы лежат на нашем YouTube-канале. И мы вписались в SPTCC как ребята, которые сделали для школы видеосъёмку.

Я понял, что это фантастически здорово и интересно и, наверное, очень плохо, что всего 100 участников могут прикоснуться к прекрасному. Я стал общаться с Петром Кузнецовым, который был главным идеологом и организатором этой школы, и с Виталием Аксёновым, который помогал организационно всё это делать в Петербурге.

Так и происходит сейчас, Пётр занимается контентом, а мы всем остальным. Когда Пётр задумался, что надо снова делать школу (в 2018 году не было сил и времени, поэтому решил делать в 2019 году), стало понятно, что мы можем ему помочь, просто сняв с него все организационные вещи. А мы хорошо умеем работать с залами, площадками и так далее. И это кажется правильной схемой: наверное, Петру интереснее программа, чем «где и когда все будут обедать».

Соответственно, примерно в этом и разница: в прошлый раз в школе не говорили про распределённые системы, а на этой будем про них активно говорить. В этот раз вместо SPTCC школа называется SPTDC, не «concurrent computing», а «distributed computing».

Что получилось в предыдущий раз? — Поскольку школа проходит не в первый раз, уже можно делать какие-то выводы из прошлого.

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

Был Андрей Паньгин (apangin) из Одноклассников, были ребята из JetBrains, которые активно занимаются этой темой. По факту оказалось, что пришло очень много инженеров из больших российских компаний вроде того же Яндекса. Я совершенно не удивлён, прекрасно понимаю, почему они туда пришли. В общем, там было много знакомых лиц из наших компаний-партнёров.

Собственно, у организаторов были ожидания, что на Школе будут академические люди, а внезапно пришли люди из индустрии, и тогда мне стало понятно, что в индустрии есть спрос.

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


Морис Херлихи на встрече JUG.ru

Кто тогда пришёл — те же люди, которые обычно на митапы JUG.ru приходят, или другая аудитория? — Помимо школы, Морис Херлихи в 2017-м выступил в Петербурге на встрече JUG.ru, рассказав про транзакционную память, и это немного ближе к конференционному формату.

— Это было интересно, потому что мы понимали, что у Мориса будет общий доклад, а не специфичный для Java, и сделали чуть более широкий анонс, чем обычно делаем по своим подписчикам JUG-новостей.

NET-тусовки, из JavaScript-тусовки. Пришло очень много знакомых мне людей из сообществ, которые вообще не про Java: из . Когда приезжает специалист мирового уровня рассказать про транзакционную память, упускать возможность такого человека послушать, задать ему вопросы — просто преступление. Потому что тема транзакционной памяти не относится к конкретной технологии разработки. Просто фантастика. Это просто производит мощное впечатление, когда человек, по книжке которого ты учишься, к тебе приезжает и что-то тебе рассказывает.

Не оказался ли для людей из индустрии подход слишком академическим и непонятным? — И какой был фидбэк по итогам?

Люди писали, что он очень просто и ясно излагает, что не ожидалось от академического профессора. — Отзывы о докладе Херлихи были хорошими. И, наверное, он во многом стал известным благодаря своему умению доносить материал до людей. Но надо понимать, что мы его не просто так позвали, это всемирно известный специалист с большим опытом выступлений и с бэкграундом из кучи книжек и статей. Поэтому в этом ничего удивительного.

То есть ему можно задавать совершенно любые вопросы. У него нормальный понятный английский, и он, конечно, здорово разбирается в том, о чём рассказывает. Ну, что успели за два часа, то успели. В основном народ жаловался, что мы дали Морису на доклад слишком мало времени: два часа для такого мало, надо ещё как минимум два.

Мотивация

— Обычно JUG.ru Group занимается масштабными мероприятиями, а эта тема выглядит более узкоспециализированной. Почему решено было браться за неё? Есть готовность провести менее масштабное мероприятие, или и на такую тему может собраться много зрителей?

Какому количеству людей — десяти, ста или тысяче — это интересно. — Действительно, когда ты делаешь некое мероприятие и задаёшь некий уровень дискуссии, всегда встаёт вопрос, насколько массовая эта дискуссия. Это совершенно нормальный вопрос, и его каждый решает по-разному. Возникает трейд-офф между массовостью и глубиной.

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

А я со своей стороны пытаюсь сделать это мероприятие таким, на которое я со своим отсутствием экспертизы сам хотел бы пойти. У нас есть программный комитет, состоящий из экспертов в этой области и способный оценить точность докладов. Наверное, на этом этапе это не самая главная задача этого мероприятия. Получится ли заинтересовать массовую публику, я не знаю. Сейчас важнее сформировать наиболее сильную программу в сжатые сроки.

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

Мы и так делаем большое количество классных масштабных мероприятий на тысячу человек и больше. Есть вещи поважнее денег и за пределами денег. То есть вопрос того, что мы стали опытными и известными организаторами, уже не стоит. Наши Java-конференции давно перевалили за тысячу человек, а теперь и другие мероприятия эту планку перепрыгивают. И, наверное, то, что мы на этих мероприятиях зарабатываем, даёт нам возможность реинвестировать в то, что интересно нам самим, и в данном случае — лично мне.

Например, обычно мы стараемся готовить конференции очень сильно заранее, а сейчас у нас очень сжатые сроки, и мы финализируем программу всего за месяц до самого мероприятия. Делая это мероприятие, я иду вразрез с некоторыми принципами нашей организации.

Здесь тоже всегда возникает дискуссия о том, надо быть ближе к народу (которому понятнее, когда большинство докладов на русском языке) или ко всему миру (потому что технический мир англоязычный). И ещё это мероприятие будет на 70-80% англоязычным. Но не в этот раз. Обычно мы стараемся делать много докладов на русском.

Это в некотором смысле абсолютно антиюзерский и негуманный подход. Более того, некоторых наших русскоязычных спикеров мы тоже будем просить рассказывать по-английски. А значит, как-то с английским способен разобраться. Но надо понимать, что русскоязычной литературы по этой теме сейчас нет, и любой человек, который вообще этим интересуется, вынужден читать по-английски. NET есть куча людей, которые не очень хорошо знают английский, но при этом могут классно программировать, то, наверное, распределённые системы — та область, в которой сейчас просто никак по-другому не научиться. Если в случае с JavaScript, Java или .

Зайдёт оно или нет? Мне очень хочется провести этот эксперимент: как будет восприниматься публикой в России англоязычное на 70–80% мероприятие. Но почему бы не сделать? Мы не знаем этого заранее, потому что мы не делали такого никогда. Скажем так: это один большой эксперимент, который я просто не могу не провести.

Программа школы SPTDC уже опубликована целиком, а в случае с Hydra уже известна заметная часть, и вскоре мы опубликуем разбор всей программы конференции.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть