«La richiesta è matura»: Aleksey Fedorov sulla nuova conferenza sui sistemi distribuiti

«La richiesta è matura»: Aleksey Fedorov sulla nuova conferenza sui sistemi distribuiti

Recentemente sono stati annunciati subito due eventi sulla sviluppo di sistemi multi-thread e distribuiti: la conferenza Hydra (11-12 luglio) e la scuola SPTDC (8-12 luglio). Le persone interessate a questo tema capiscono che la visita in Russia Leslie Lamport, Maurice Herlihy e Michael Scott è un evento di grande importanza. Ma sorgono altre domande:

  • Cosa aspettarsi dalla conferenza: 'accademia' o 'produzione'?
  • Qual è il rapporto tra la scuola e la conferenza? A chi sono indirizzati entrambi?
  • Perché si sovrappongono nelle date?
  • Saranno utili per coloro che non hanno dedicato tutta la loro vita ai sistemi distribuiti?

Tutto ciò è ben noto a colui grazie al quale è nata Hydra: il nostro direttore Alexei Fedorov () riguardo a tre importanti partecipanti, pionieri della teoria dei sistemi distribuiti — Leslie Lamport, Maurice Herlihy e Michael Scott. È tempo di parlare più in dettaglio dell'intero programma!). È lui che ha risposto a tutte le domande.

Formato

— Domanda introduttiva per chi è lontano dai sistemi distribuiti: di cosa trattano entrambi gli eventi?

— La questione globale è che intorno a noi esistono servizi con grandi volumi di operazioni e compiti computazionali complessi, che non possono essere eseguiti su un singolo computer. Pertanto, devono esserci più macchine. E poi sorgono domande relative a come sincronizzare correttamente il loro lavoro e cosa fare in condizioni di non massima affidabilità (perché l'hardware si rompe e la rete può cadere).

Maggiore è il numero di macchine, più punti di guasto possono emergere. Cosa fare se diverse macchine producono risultati differenti per gli stessi calcoli? E se la rete è scomparsa per un certo periodo, come si può poi riunire tutto ciò che è diventato isolato? In breve, ci sono un milione di problemi correlati. Nuove soluzioni portano a nuovi problemi.

In questo campo ci sono direzioni molto pratiche, ma anche approcci più scientifici — ciò che non è ancora diventato mainstream. Vorrei parlare di ciò che sta accadendo sia nella pratica che nella scienza, e soprattutto — all'incrocio tra i due. Questo sarà l'argomento della prima conferenza Hydra.

— Vorrei chiarire che c'è una conferenza e c'è una scuola estiva. Come si relazionano tra loro? Se agli partecipanti della scuola viene offerto uno sconto per partecipare alla conferenza, perché si sovrappongono nelle date, rendendo impossibile partecipare a tutto senza perdite?

— La scuola è un evento intimo per 100–150 persone, che accoglie esperti di alto livello da tutto il mondo che tengono conferenze per cinque giorni. Si crea quindi una situazione in cui a San Pietroburgo si raccolgono per cinque giorni menti di fama mondiale pronte a condividere le loro conoscenze. In questo caso, risulta naturale organizzare non solo una scuola intima ma anche una conferenza più ampia.

È possibile organizzare una tale scuola solo in estate, a luglio, perché tra questi esperti ci sono professori attivi delle università, e in altri periodi non sono disponibili: hanno studenti, tesi, lezioni e così via. Il formato della scuola prevede cinque giorni lavorativi. È noto che in estate le persone amano andarsene nei fine settimana. Questo significa che non possiamo tenere la conferenza né nei fine settimana prima della scuola, né in quelli dopo.

E se si prolunga ancora di qualche giorno prima o dopo il fine settimana, magicamente cinque giorni di presenza degli specialisti a San Pietroburgo diventano nove. E non sono preparati a questo.

Quindi, l'unica soluzione che abbiamo trovato è semplicemente condurre la conferenza parallelamente alla scuola. Sì, questo crea alcuni problemi. Ci sono persone che vogliono partecipare sia alla scuola che alla conferenza, e dovranno perdere parte delle lezioni da una parte o dall'altra. La buona notizia è che tutto si svolgerà nelle sale adiacenti, sarà possibile correre da una parte all'altra. E un altro aspetto positivo è la disponibilità di registrazioni video, che potranno essere visualizzate successivamente per rivedere ciò che è stato perso.

— Quando due eventi si svolgono in parallelo, le persone si interrogano su quale dei due sia più utile. Cosa aspettarsi da ciascuno, e quali sono le differenze?

— La scuola è un evento puramente accademico, una classica scuola di scienze della durata di alcuni giorni. Chi ha mai lavorato nella scienza e ha avuto a che fare con il dottorato, sa cosa significa una scuola accademica.

«La richiesta è matura»: Aleksey Fedorov sulla nuova conferenza sui sistemi distribuiti

Di solito, eventi accademici del genere non sono ben organizzati a causa della mancanza di expertise nell'organizzazione da parte delle persone coinvolte. Tuttavia, noi siamo piuttosto esperti, quindi siamo in grado di gestire tutto in modo abbastanza efficace. Credo che, dal punto di vista organizzativo, SPTDC sarà di gran lunga superiore a qualsiasi scuola scientifica o scientifico-pratica che abbiate mai visto.

Scuola SPTDC — è un formato in cui ogni grande lezione viene tenuta per due blocchi: «un'ora e mezza — pausa — un'ora e mezza». Bisogna capire che per la prima volta può essere difficile per un partecipante: quando questa scuola è stata organizzata per la prima volta due anni fa, anche per me è stato inusuale, ho perso la concentrazione qualche volta a metà della doppia lezione, e poi era difficile capire cosa stava succedendo. Ma dipende molto dal docente: un buon docente riesce a mantenere alta l'attenzione per tutte e tre le ore.

Conferenza Hydra — è un evento più applicato. Ci saranno diversi esperti di fama mondiale che verranno a tenere conferenze nella Scuola: da Leslie Lamport, le cui opere sono alla base stessa della teoria dei sistemi multithreading e distribuiti, fino a Maurice Herlihy, uno degli autori del famoso libro di testo sulla concorrenza «The Art of Multiprocessor Programming». Ma alla conferenza tenteremo di parlare di come in realtà vengono implementati vari algoritmi, quali problemi affrontano gli ingegneri nella pratica, cosa riescono e non riescono a fare, perché alcuni algoritmi vengono applicati in pratica e altri no. E naturalmente, discuteremo del futuro dello sviluppo di sistemi multithread e distribuiti. In altre parole, daremo una visione all'avanguardia: di cosa sta parlando la scienza mondiale, attorno a quali argomenti si concentrano le menti dei principali ingegneri, e come tutto ciò si collega.

— Poiché la conferenza è più pratica, ci saranno non solo luminari accademici, ma anche relatori «dal campo»?

— Assolutamente. Cerchiamo di osservare tutti i "grandi": Google, Netflix, Yandex, Odnoklassniki, Facebook. Ci sono problemi specifici e divertenti. Ad esempio, tutti dicono: "Netflix è un sistema distribuito, quasi metà del traffico degli Stati Uniti, è davvero fantastico", ma quando si comincia a guardare le loro vere relazioni, articoli e pubblicazioni, c'è una lieve delusione. Perché, sebbene sia senza dubbio un livello mondiale e ci siano innovazioni all'avanguardia, ce ne sono meno di quanto sembri a prima vista.

Sorge un'interessante dilemma: possiamo invitare rappresentanti di grandi aziende rinomate, oppure possiamo chiamare qualcuno che già conosciamo. In realtà, l'expertise è presente in entrambi i casi. E noi cerchiamo di estrarre non "persone da marchi molto grandi", ma esperti di alto livello, persone specifiche.

Ad esempio, ci sarà Martin Kleppmann, che ha fatto scalpore su LinkedIn e ha anche pubblicato un buon libro — probabilmente uno dei testi fondamentali nel campo dei sistemi distribuiti.

— Se una persona non lavora per Netflix, ma in un'azienda più semplice, potrebbe chiedersi: «Dovrei partecipare a questa conferenza, o lì i vari Netflix parleranno tra loro mentre io non avrò nulla da fare?»

— Posso dire questo: quando ho lavorato per poco più di tre anni in Oracle, le cose più straordinarie e interessanti le sentivo in cucina e nei luoghi di fumare, quando si radunavano colleghi che lavoravano su vari aspetti della piattaforma Java. Queste potevano essere persone della macchina virtuale, del reparto testing, o della performance concurrency — ad esempio, Alexey Shipilev e Sergey Kuksenko.

Quando iniziavano a discutere qualcosa tra di loro, di solito ascoltavo semplicemente, bocca aperta. Per me erano cose sorprendenti e inaspettate, a cui non avevo neppure pensato. Naturalmente, all'inizio non capivo il 90% di quello di cui parlavano. Poi l’incomprensibile è diventato l'80%. E dopo aver fatto i compiti e letto alcuni libri, quel numero è sceso al 70%. Ancora oggi non capisco molto di ciò di cui parlano tra di loro. Ma, seduto in un angolo con una tazza di caffè e origliando, ho cominciato a comprendere un po' di più su ciò che accade.

Quindi, quando si parlano tra loro Google, Netflix, LinkedIn, Odnoklassniki e Yandex, non significa che si tratti di qualcosa di incomprensibile e poco interessante. Al contrario, bisogna ascoltare attentamente, perché questo è il nostro futuro.

Certo, ci sono anche persone a cui tutto questo non interessa. Se non desiderate svilupparvi in questo ambito, potete evitare di partecipare a questa conferenza, vi trovereste semplicemente a perdere tempo. Ma se la tematica vi interessa, ma non la comprendete bene o state solo dando un'occhiata, allora dovete venire, perché non troverete nulla di simile altrove. E penso che non solo in Russia, ma anche nel mondo. Stiamo cercando di organizzare una conferenza che non sarà solo leader in questo campo in Russia, ma che sarà il numero uno al mondo.

Non è un compito facile, ma quando abbiamo una straordinaria opportunità di riunire relatori di alto livello da tutto il mondo, sono disposto a fare di tutto per farlo accadere. Certo, alcuni di coloro che abbiamo invitato alla prima Hydra non potranno venire. Ma voglio dire questo: non abbiamo mai iniziato una nuova conferenza con un roster così potente. A meno che non si parli del primo JPoint sei anni fa.

— Vorrei sviluppare le parole "questo è il nostro futuro": l'argomento riguarderà anche coloro che oggi non ci pensano?

— Sì, ne sono certo. Pertanto, mi sembra molto giusto iniziare a discuterne il prima possibile. Ad esempio, la teoria del multithreading è emersa già molto tempo fa (negli anni '70 erano già pubblicati molti lavori), ma per molto tempo è stata appannaggio di ristretti specialisti, fino a quando, all'inizio degli anni 2000, non è arrivato il primo computer dual-core per utenti finali. E ora abbiamo server multi-core, laptop e persino telefoni, ed è diventato mainstream. Ci sono voluti circa 10 anni affinché ciò diventasse comune, affinché la gente capisse che questo discorso non è riservato a un ristretto gruppo di specialisti.

E circa la stessa cosa stiamo osservando ora con i sistemi distribuiti. Perché le soluzioni di base come la distribuzione del carico, l'assicurazione della resilienza e cose simili sono state adottate da tempo, ma ciò che è, ad esempio, il consenso distribuito o Paxos, lo conoscono ben poche persone.

Uno dei compiti più importanti che mi pongo in questo evento è quello di coinvolgere sempre di più gli ingegneri in questa discussione. Bisogna capire che nelle conferenze non si discute semplicemente di argomenti e soluzioni, ma si crea un thesaurus — un apparato concettuale comune.

La mia missione è creare uno spazio dove tutti coloro che lo desiderano possano discutere, condividere esperienze e opinioni. Affinché possiamo avere una comprensione comune di cosa fa un algoritmo, cosa fa un altro, quale è migliore in determinate condizioni, come si collegano tra loro, e così via.

C'è qualcosa di molto interessante legato alla stessa multithreading. Quando i nostri amici di Oracle (in particolare, Alexey Shipilev e Sergey Kuksjenko) hanno cominciato a parlare attivamente delle performance e, in particolare, della multithreading, letteralmente dopo due o tre anni queste domande hanno iniziato a essere poste durante i colloqui nelle aziende, e la gente ha cominciato a discuterne nelle pause. Cioè, una questione che era appannaggio di specialisti ristretti è improvvisamente diventata mainstream.

E questo è assolutamente giusto. Credo che abbiamo aiutato queste persone a far conoscere una tematica davvero importante, utile e interessante. Se prima nessuno si era mai chiesto come un server Java gestisce le richieste in parallelo, ora le persone hanno almeno una comprensione di base di come funziona tutto questo. Ed è fantastico.

La sfida che vedo ora è di fare più o meno la stessa cosa con i sistemi distribuiti. Affinché tutti possano comprendere di cosa si tratta, quali sono le sue origini, quali problemi e compiti ci sono, affinché anche questo diventi mainstream.

Le aziende hanno una grande richiesta di persone che capiscano davvero queste tematiche, ma ce ne sono poche. Più creiamo contenuti intorno a questo e opportunità di apprendimento, più forniamo alle persone possibilità di fare domande che fluttuano nell'aria, maggiori saranno le nostre possibilità di migliorare in questa direzione.

Contesto

— La conferenza si svolge per la prima volta, ma la scuola non è alla sua prima edizione. Come è nato e si è sviluppato tutto questo?

— È una storia interessante. Due anni fa, a maggio 2017, eravamo a Kiev con Nikita Koval.ndkoval), esperto nel campo della programmazione concorrente. E mi ha detto che a Pietroburgo si svolgerà «Summer School in pratica e teoria della programmazione concorrente».

Il tema della programmazione concorrente negli ultimi tre anni della mia carriera ingegneristica è stato incredibilmente interessante. E qui scopro che quest'estate a Pietroburgo arriveranno persone molto famose, gli stessi Maurice Herlihy e Nir Shavit, autori del libro di testo che ho studiato. E molte persone che conosco ne erano coinvolte — per esempio, Roma Elizarov (elizarov). Ho capito che semplicemente non posso perdermi un evento del genere.

Quando è diventato chiaro che il programma della scuola del 2017 sarebbe stato fantastico, mi è venuta in mente l'idea che le lezioni dovevano essere registrate in video. Noi di JUG.ru Group avevamo una chiara visione di come dovessero essere registrate queste lezioni. Così ci siamo uniti a SPTCC come i ragazzi che hanno realizzato le riprese video per la scuola. Alla fine, tutte le lezioni della scuola sono disponibili sul nostro canale YouTube.

Ho iniziato a parlare con Petr Kuznecov, che era il principale ideologo e organizzatore di questa scuola, e con Vitalij Aksyonov, che ha aiutato nella parte organizzativa a San Pietroburgo. Ho capito che è fantastico, interessante e, probabilmente, molto male che solo 100 partecipanti possano entrare in contatto con qualcosa di così bello.

Quando Petr ha iniziato a pensare di dover rifare la scuola (nel 2018 non aveva energie né tempo, quindi ha deciso di farlo nel 2019), è diventato chiaro che potevamo aiutarlo, semplicemente sollevandolo da tutte le questioni organizzative. Questo è ciò che sta accadendo ora: Petr si occupa dei contenuti e noi del resto. E sembra essere un modello corretto: probabilmente a Petr interessa di più il programma piuttosto che «dove e quando tutti pranzeranno». E noi siamo bravi a gestire sale, location e così via.

Questa volta, invece di SPTCC, la scuola si chiama SPTDC, non «concurrent computing», ma «distributed computing». Di conseguenza, questa è più o meno la differenza: l'ultima volta alla scuola non si parlava di sistemi distribuiti, mentre in questa ne parleremo attivamente.

— Poiché la scuola non è alla sua prima edizione, possiamo già trarre alcune conclusioni dal passato. Cosa è andato bene l'ultima volta?

— Quando è stata organizzata la prima scuola due anni fa, ci si aspettava un evento accademico, principalmente interessante per gli studenti. In particolare, per studenti provenienti da tutto il mondo, poiché la scuola è in inglese e si pensava che sarebbe arrivato un numero significativo di studenti stranieri.

In realtà, si sono presentati molti ingegneri di grandi aziende russe come Yandex. C'era Andrey Panygin (apangin) di Odnoklassniki, c'erano ragazzi di JetBrains che si occupano attivamente di questo tema. Insomma, c'erano molte facce familiari delle nostre aziende partner. Non sono affatto sorpreso, capisco perfettamente perché siano venuti.

In effetti, gli organizzatori si aspettavano che alla scuola ci fossero persone accademiche, mentre all'improvviso si sono presentate persone dell'industria, e allora ho capito che nell'industria c'è richiesta.

Se un evento che non è stato praticamente promosso è riuscito a raccogliere un pubblico di adulti al primo colpo, significa che c'è realmente interesse. Penso che ci sia una domanda su questo tema.

«La richiesta è matura»: Aleksey Fedorov sulla nuova conferenza sui sistemi distribuiti
Maurice Hurley alla riunione di JUG.ru

— Oltre alla scuola, Maurice Herlihy ha partecipato nel 2017 a San Pietroburgo all'incontro di JUG.ru, parlando della memoria transazionale, e questo si avvicina un po' di più al formato di una conferenza. Chi è venuto allora — erano le stesse persone che di solito partecipano ai meetup di JUG.ru, o un pubblico diverso?

— È stato interessante, perché eravamo consapevoli che Maurice avrebbe presentato un intervento generale, non specifico per Java, e abbiamo fatto un annuncio un po' più ampio rispetto a quello che facciamo di solito per i nostri iscritti alle notizie JUG.

Sono venute molte persone a me conosciute da comunità che non sono affatto legate a Java: da quelle di .NET, da quelle di JavaScript. Perché il tema della memoria transazionale non si riferisce a una specifica tecnologia di sviluppo. Quando un esperto di livello mondiale viene a parlare di memoria transazionale, perdere l'opportunità di ascoltare una persona del genere, di porgli delle domande — è semplicemente un crimine. Fa un'impressione enorme, quando la persona di cui leggi i libri viene da te e ti racconta qualcosa. È davvero fantastico.

— E qual è stata la reazione finale? È risultato che l'approccio fosse troppo accademico e poco comprensibile per le persone del settore?

— Le feedback sulla presentazione di Cherlihi è stato positivo. Le persone hanno scritto che espone in modo semplice e chiaro, cosa che non ci si aspettava da un professore accademico. Ma bisogna capire che non lo abbiamo invitato a caso, è un esperto di fama mondiale con una vasta esperienza e un background ricco di libri e articoli. E probabilmente, è diventato famoso in gran parte grazie alla sua capacità di comunicare il materiale in modo accessibile. Quindi non c'è nulla di sorprendente in questo.

Ha un inglese chiaro e comprensibile e, naturalmente, conosce a fondo ciò di cui parla. Puoi fargli qualsiasi domanda. Principalmente, la gente si è lamentata che abbiamo dato a Moris troppo poco tempo per la presentazione: due ore sono poche, ne servirebbero almeno altre due. Beh, quello che siamo riusciti a fare in due ore, lo abbiamo fatto.

Motivazione

— Di solito, JUG.ru Group si occupa di eventi su larga scala, mentre questo argomento appare più specialistico. Perché è stata presa la decisione di occuparsi di questo? C'è la disponibilità a organizzare un evento meno ampio, o su un tema del genere può radunarsi comunque un gran numero di spettatori?

— Certamente, quando organizzi un evento e stabilisci un certo livello di discussione, sorge sempre la questione di quanto sia ampia questa discussione. A quante persone — dieci, cento o mille — interessa? C'è un trade-off tra ampiezza e profondità. È una domanda del tutto legittima, e ognuno la affronta in modo diverso.

In questo caso, desidero organizzare un evento «su misura» per me. Con la multithreading capisco qualcosa (ho tenuto delle conferenze su questo argomento, raccontando diverse cose agli studenti), ma per quanto riguarda i sistemi distribuiti sono un profano: ho letto alcuni articoli e visto alcune lezioni, ma non ho nemmeno letto un intero libro.

Abbiamo un comitato scientifico composto da esperti nel settore, in grado di valutare l'accuratezza delle presentazioni. Dalla mia parte, cerco di rendere questo evento tale che vorrei partecipare anche io, nonostante la mia mancanza di competenza. Non so se riuscirò a interessare il pubblico generale. Probabilmente, a questo punto, non è la missione principale di questo evento. Ora è più importante creare il programma più forte possibile in tempi brevi.

Forse ora non sto chiedendo al team di "riunire mille persone al primo colpo", ma piuttosto di "far sì che la conferenza si realizzi". Questo può sembrare poco professionale e un po' ingenuo, anche se non sono affatto un altruista. Ma a volte posso permettermi qualche libertà.

Ci sono cose più importanti del denaro e al di là di esso. Stiamo già organizzando tantissimi eventi fantastici con mille partecipanti o più. Le nostre conferenze Java hanno superato da tempo le mille persone, e ora anche altri eventi stanno superando quella soglia. Non è più una questione di diventare organizzatori esperti e conosciuti. E probabilmente, ciò che guadagniamo da questi eventi ci permette di reinvestire in ciò che ci interessa, e in questo caso — personalmente a me.

Facendo questo evento, vado contro alcuni principi della nostra organizzazione. Per esempio, di solito ci impegniamo a pianificare conferenze con largo anticipo, mentre ora abbiamo scadenze molto serrate e stiamo finalizzando il programma solo un mese prima dell'evento.

Inoltre, questo evento sarà per il 70-80% in inglese. Si solleva sempre il dibattito se sia meglio essere più vicini al pubblico (che trova più comprensibile avere la maggior parte delle relazioni in russo) o al mondo intero (dato che il mondo tecnico è anglofono). Di solito cerchiamo di avere molte relazioni in russo. Ma non questa volta.

Inoltre, chiederemo a alcuni dei nostri relatori di lingua russa di parlare in inglese. In un certo senso, questo è un approccio assolutamente anti-utente e disumano. Ma bisogna capire che attualmente non ci sono opere in lingua russa su questo argomento, e chiunque sia interessato deve leggere in inglese. Pertanto, devono essere in grado di destreggiarsi con l'inglese. Se nel caso di JavaScript, Java o .NET ci sono molte persone che non conoscono molto bene l'inglese ma possono programmare in modo eccellente, probabilmente nel campo dei sistemi distribuiti non si può imparare in nessun altro modo al momento.

Sono molto curioso di condurre questo esperimento: come verrà percepito dal pubblico in Russia un evento prevalentemente in inglese, per il 70-80%? Avrà successo o no? Non lo sappiamo in anticipo, perché non abbiamo mai fatto nulla di simile. Ma perché non provare? Diciamo che è un grande esperimento che non posso semplicemente non intraprendere.

Il programma della scuola SPTDC è già pubblicata completo, e nel caso di Hydra già noto una parte significativa, e presto pubblicheremo un'analisi dell'intero programma della conferenza.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster