«Запит назрів»: Олексій Федоров про нову конференцію з розподілених систем

«Запит назрів»: Олексій Федоров про нову конференцію з розподілених систем

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

  • Чого чекати від конференції: «академічності» чи «продакшну»?
  • Як співвідносяться школа та конференція? На кого розраховано те й інше?
  • Чому вони перетинаються за датами?
  • Чи корисні вони тим, хто не присвятив все життя розподіленим системам?

Про все це добре відомо людині, завдяки якій Hydra з'явилася: нашому директору Олексію Федорову (23derevo). Він і відповів на всі запитання.

Формат

— Вступне питання для тих, хто далекий від розподілених систем: про що обидва заходи?

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

Чим більше машин, тим більше виникає точок відмови. Що робити, якщо на ті самі обчислення різні машини видають різні результати? Що робити, якщо на якийсь час зникла мережа та частина обчислень стала ізольованою, як потім усе це об'єднувати? Загалом, мільйон пов'язаних із цим проблем. Нові рішення – нові проблеми.

У цій галузі є зовсім прикладні напрямки, а є науковіші — те, що ще не стало мейнстримом. Хочеться поговорити про те, що відбувається і на практиці, і в науці, а головне – на їхньому стику. Ось про це і буде перша конференція Hydra.

— Хочеться з'ясувати, що є конференція, а є літня школа. Як вони співвідносяться? Якщо для учасників школи зроблено знижку на відвідування конференції, то чому вони перетинаються за датами, тож не можна відвідати відразу все без втрат?

— Школа — це камерний захід на 100–150 осіб, куди приїжджають провідні спеціалісти з усього світу та протягом п'яти днів читають лекції. І виникає ситуація, коли в Петербурзі на п'ять днів збираються світила світового рівня, які готові щось розповідати. А в такому разі напрошується рішення організувати не лише камерну школу, а й масштабнішу конференцію.

Провести таку школу можна лише влітку, у липні, тому що серед цих фахівців є професори ВНЗ, що діють, і вони в інший час просто не готові: у них студенти, дипломи, лекції і так далі. Формат школи – це п'ять будніх днів. Відомо, що влітку на вихідних люди люблять кудись їхати. Отже, конференцію ми не можемо зробити ні вихідними до школи, ні вихідними після школи.

А якщо продовжувати все ще на пару днів до або після вихідних, то магічним чином п'ять днів перебування фахівців у Петербурзі перетворюються на дев'ять. І вони до цього не готові.

Тому єдине рішення, яке ми знайшли — це просто провести конференцію паралельно до школи. Так, це породжує деякі проблеми. Є люди, які хочуть і на школу, і на конференцію, і їм доведеться пропустити частину лекцій там чи там. Хороша новина в тому, що все це відбуватиметься у сусідніх залах, можна буде бігати туди-сюди. І ще одна хороша сторона в наявності відеозаписів, на яких можна пізніше спокійно подивитися те, що пропустив.

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

— Школа — це суто академічний захід, класична наукова школа на кілька днів. Хто сам займався наукою та мав якесь відношення до аспірантури, уявляє, що таке академічна школа.

«Запит назрів»: Олексій Федоров про нову конференцію з розподілених систем

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

Школа SPTDC — це такий формат, де кожна велика лекція читається дві пари: «півтора година — перерва — півтори години». Треба розуміти, що вперше учаснику може бути непросто: коли два роки тому ця школа проводилася вперше, мені самому було незвично, я кілька разів приблизно в середині подвійної лекції вимикався, і потім важко було зрозуміти, що відбувається. Але це дуже залежить від лектора: хороший лектор усі три години дуже цікаво розповідає.

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

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

- Однозначно. Ми намагаємося дивитися на всіх великих: Google, Netflix, Яндекс, Однокласники, Facebook. Є специфічні кумедні проблеми. Наприклад, усі кажуть: «Netflix — це розподілені системи, чи не половина трафіку США, дуже круто», а коли починаєш дивитись на їхні реальні доповіді, статті та публікації, настає легке розчарування. Тому що, хоч це безумовно світовий рівень та там є cutting egde, його там менше, ніж здається на перший погляд.

Виникає цікава дилема: можна покликати представників великих іменитих компаній, а можна покликати когось уже відомого нам. Насправді експертиза є і там, і там. І ми швидше намагаємось витягувати не «людей із дуже великих брендів», а дуже великих фахівців, конкретних людей.

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

— Якщо людина працює не в Netflix, а в компанії простіша, вона може замислюватися: «Чи варто мені на таку конференцію йти, чи там всякі нетфлікси один з одним розмовляють, а мені робити нічого?»

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

Коли вони між собою починали щось обговорювати, я просто слухав, відкривши рот. Для мене це були разючі і несподівані речі, про які я навіть не замислювався. Звичайно, спочатку я не розумів 90% того, про що вони говорять. Згодом незрозумілого стало 80%. А після того, як я зробив домашнє завдання та прочитав кілька книжок, це число скоротилося до 70%. Я досі не розумію багато чого з того, про що вони між собою говорять. Але сидячи в куточку з чашкою кави і підслуховуючи, я трохи почав розуміти, що відбувається.

Тому, коли між собою розмовляють Google, Netflix, LinkedIn, Однокласники та Яндекс, це не означає, що це щось незрозуміле та нецікаве. Навпаки, треба уважно слухати, бо це наше майбутнє.

Звісно, ​​є й люди, яким це все не потрібне. Якщо не хочете в цій темі розвиватися, не треба йти на цю конференцію, ви просто втратите час. А от якщо тема цікава, але в ній нічого не розумієте або поки що тільки придивляєтеся — значить, треба приходити, бо нічого подібного ви не знайдете ніде. Причому я думаю, що не лише в Росії, а й у світі. Ми намагаємося зробити конференцію, яка буде не просто лідером із цієї теми в Росії, а взагалі номером один у світі.

Це не найпростіше завдання, але коли ми маємо такий приголомшливий шанс зібрати сильних спікерів з усього світу, то я багато чого готовий віддати, щоб це вдалося зробити. Звісно, ​​деякі з тих, кого ми покликали на першу Гідру, не зможуть приїхати. Але я скажу ось що: ми ніколи не розпочинали нову конференцію з таким потужним складом. Крім, хіба що, найпершого JPoint шість років тому.

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

— Так, я впевнений у цьому. Тому мені здається дуже правильним починати обговорювати її якнайшвидше. Скажімо, теорія багатопоточності з'явилася досить давно (у 70-х вже виходили роботи), але довгий час вони були долею вузьких фахівців, поки на початку двохтисячних не з'явився перший користувальницький двоядерний комп'ютер. А зараз у нас усіх багатоядерні сервери, ноутбуки і навіть телефони, і це мейнстрім. Потрібно було близько 10 років, щоб це стало масовим, щоб люди зрозуміли, що цей дискурс — не доля вузького кола фахівців.

І приблизно те саме ми зараз спостерігаємо з розподіленими системами. Тому що базові рішення на кшталт розподілу навантаження, забезпечення відмовостійкості тощо зроблено вже досить давно, але що таке, наприклад, розподілений консенсус чи Paxos, знає дуже мало людей.

Одне з найважливіших завдань, які я ставлю перед цим заходом, — більше й більше занурювати інженерів у цю дискусію. Потрібно розуміти, що на конференціях не просто обговорюються якісь теми та рішення, а й виникає тезаурус — єдиний понятійний апарат.

Я бачу своїм завданням створити майданчик, на якому всі бажаючі можуть все це обговорювати, ділитися досвідом та думками. Щоб у нас з вами виникло єдине розуміння, що робить один алгоритм, що робить інший, який з них кращий за яких умов, як вони пов'язані один з одним і так далі.

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

І це дуже вірно. Як мені здається, ми допомогли цим хлопцям популяризувати всю цю проблематику, справді важливу, корисну та цікаву. Якщо раніше ніхто не думав, як Java-сервер обробляє запити паралельно, то тепер у людей хоч на якомусь рівні виникло розуміння, як це все працює. І це чудово.

Завдання, яке я бачу зараз — приблизно те саме зробити з розподіленими системами. Щоб усі приблизно розуміли, що це таке, звідки ростуть ноги, які там завдання та проблеми, щоб це теж стало мейнстримом.

Компанії мають величезний запит на людей, які щось у цьому розуміють, а таких людей мало. Чим більше ми створюємо навколо цього контенту та можливості навчитися цьому, чим більше ми даємо можливостей людям ставити питання, які витають у повітрі, тим більше у нас шансів якось просунутися у цьому напрямку.

Передісторія

— Конференція відбувається вперше, а от школа не вперше. Як це все виникло та розвивалося?

- Це цікава історія. Два роки тому, у травні 2017 року, ми сиділи у Києві з Микитою Ковалем (ndkoval), спеціалістом у галузі багатопоточності. І він мені розповів, що у Петербурзі пройде «Summer School in practice and theory of concurrent computing».

Тема багатопоточного програмування останні три роки моєї інженерної кар'єри була фантастично цікава. А тут з'ясувалося, що влітку до Пітера приїжджають дуже відомі люди, ті ж Моріс Херліхі та Нір Шавіт, підручником яких я навчався. І до цього мали відношення багато моїх знайомих — наприклад, Рома Єлізарова (elizarov). Я зрозумів, що просто не можу пропустити такий захід.

Коли стало зрозуміло, що програма у школи 2017 року буде класною, виникла думка, що лекції обов'язково треба записувати на відео. У нас у JUG.ru Group було повне розуміння, як мають записуватись такі лекції. І ми вписалися у SPTCC як хлопці, які зробили для школи відеозйомку. У результаті всі лекції школи лежать на нашому YouTube-каналі.

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

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

На цей раз замість SPTCC школа називається SPTDC, не "concurrent computing", а "distributed computing". Відповідно, приблизно в цьому і різниця: минулого разу в школі не говорили про розподілені системи, а на цій про них активно говоритимемо.

— Оскільки школа проходить не вперше, то вже можна робити якісь висновки з минулого. Що вийшло в попередній раз?

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

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

Власне, організатори мали сподівання, що на Школі будуть академічні люди, а раптово прийшли люди з індустрії, і тоді мені стало зрозуміло, що в індустрії є попит.

Якщо захід, який майже ніяк і ніде не просувався, з першого разу по клацанню пальців зібрав аудиторію дорослих людей, то насправді інтерес є. Мені здається, запит на цю тему назрів.

«Запит назрів»: Олексій Федоров про нову конференцію з розподілених систем
Моріс Херліхі на зустрічі JUG.ru

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

— Це було цікаво, тому що ми розуміли, що Моріс матиме спільну доповідь, а не специфічну для Java, і зробили трохи ширший анонс, ніж зазвичай робимо за своїми передплатниками JUG-новин.

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

— І який був Фідбек за підсумками? Чи не виявився для людей з індустрії підхід надто академічним та незрозумілим?

— Відгуки про доповідь Херліхи були добрими. Люди писали, що він дуже просто і ясно викладає, що не очікувалося від академічного професора. Але треба розуміти, що ми його не просто так покликали, це всесвітньо відомий фахівець із великим досвідом виступів та з бекграундом із купи книжок та статей. І, мабуть, він багато в чому став відомим завдяки своєму вмінню доносити матеріал до людей. Тож у цьому нічого дивного.

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

Мотивація

— Зазвичай JUG.ru Group займається масштабними заходами, а ця тема виглядає більш вузькоспеціалізованою. Чому вирішено було братися до неї? Чи є готовність провести менш масштабний захід, чи й на таку тему може зібратися багато глядачів?

— Справді, коли ти робиш якийсь захід і ставиш певний рівень дискусії, завжди постає питання, наскільки масова ця дискусія. Якій кількості людей – десяти, ста чи тисячі – це цікаво. Виникає трейд-офф між масовістю та глибиною. Це абсолютно нормальне питання, і його кожен вирішує по-різному.

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

У нас є програмний комітет, що складається з експертів у цій галузі та здатний оцінити точність доповідей. А я зі свого боку намагаюся зробити цей захід таким, на який зі своєю відсутністю експертизи сам хотів би піти. Чи вдасться зацікавити масову публіку, я не знаю. Напевно, на цьому етапі це не найголовніше завдання цього заходу. Зараз важливіше сформувати найсильнішу програму у стислий термін.

Напевно, зараз я ставлю перед командою не завдання «зібрати з першого разу тисячу людей», а «зробити, щоби конференція з'явилася». Це може звучати не дуже бізнесово та в чомусь наївно, хоч я й зовсім не альтруїст. Але я можу іноді дозволяти собі деякі вільності.

Є речі важливіші за гроші і за межами грошей. Ми й так робимо велику кількість класних масштабних заходів на тисячу людей та більше. Наші Java-конференції давно перевалили за тисячу людей, а тепер інші заходи цю планку перестрибують. Тобто питання того, що ми стали досвідченими та відомими організаторами, вже не стоїть. І, напевно, те, що ми на цих заходах заробляємо, дає нам можливість реінвестувати в те, що цікаво нам самим, і в даному випадку особисто мені.

Роблячи цей захід, я йду врозріз із деякими принципами нашої організації. Наприклад, зазвичай ми намагаємося готувати конференції дуже заздалегідь, а зараз у нас дуже стислий термін, і ми фіналізуємо програму всього за місяць до самого заходу.

І ще цей захід буде на 70-80% англомовним. Тут теж завжди виникає дискусія про те, чи треба бути ближчим до народу (якого зрозуміліше, коли більшість доповідей російською мовою) або до всього світу (бо технічний світ англомовний). Зазвичай ми намагаємося робити багато доповідей російською. Але не цього разу.

Більше того, деяких наших російськомовних спікерів ми теж проситимемо розповідати англійською. Це в певному сенсі абсолютно антикористувальний і негуманний підхід. Але треба розуміти, що російськомовної літератури на цю тему зараз немає, і будь-яка людина, яка взагалі цим цікавиться, змушена читати англійською. Отже, якось з англійською здатний розібратися. Якщо у випадку з JavaScript, Java або .NET є купа людей, які не дуже добре знають англійську, але при цьому можуть класно програмувати, то, напевно, розподілені системи — та область, де зараз просто ніяк не навчитися по-іншому.

Мені дуже хочеться провести цей експеримент: як сприйматиметься публікою в Росії англомовний на 70–80% захід. Зайде воно чи ні? Ми не знаємо цього наперед, тому що ми не робили такого ніколи. Але чому б не зробити? Скажімо так: це один великий експеримент, який просто не можу не провести.

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

Джерело: habr.com

Додати коментар або відгук