- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

«Запрос назрел»: Алексей Федоров о новой конференции по распределённым системам - 2
Морис Херлихи на встрече JUG.ru

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: phillennium

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/algoritmy/319188

Ссылки в тексте:

[1] анонсированы: https://habr.com/ru/company/jugru/blog/445730/

[2] Hydra: https://hydraconf.ru/?utm_source=habr&utm_medium=453952

[3] SPTDC: https://sptdc.ru/?utm_source=habr&utm_medium=453952

[4] 23derevo: https://habr.com/ru/users/23derevo/

[5] Лесли Лэмпорта: https://en.wikipedia.org/wiki/Leslie_Lamport

[6] Мориса Херлихи: https://en.wikipedia.org/wiki/Maurice_Herlihy

[7] хорошую книгу: http://dataintensive.net/

[8] ndkoval: https://habr.com/ru/users/ndkoval/

[9] «Summer School in practice and theory of concurrent computing»: http://neerc.ifmo.ru/sptcc/index.html

[10] учебнику: https://www.amazon.com/Art-Multiprocessor-Programming-Revised-Reprint/dp/0123973376

[11] elizarov: https://habr.com/ru/users/elizarov/

[12] лежат: https://www.youtube.com/playlist?list=PLVe-2wcL84b9G9o7KPubp6NO0nqI1a-Qp

[13] apangin: https://habr.com/ru/users/apangin/

[14] рассказав: https://www.youtube.com/watch?v=S3Fx-7avfs4

[15] опубликована: https://sptdc.ru/?utm_source=habr&utm_medium=453952#schedule

[16] известна: https://hydraconf.ru/?utm_source=habr&utm_medium=453952#schedule

[17] Источник: https://habr.com/ru/post/453952/?utm_campaign=453952