"La richiesta è in ritardo": Alexey Fedorov su una nuova conferenza sui sistemi distribuiti

"La richiesta è in ritardo": Alexey Fedorov su una nuova conferenza sui sistemi distribuiti

Recentemente ci sono stati annunciato due eventi contemporaneamente sullo sviluppo di sistemi multi-thread e distribuiti: una conferenza Hydra (11-12 luglio) e la scuola SPTDC (8-12 luglio). Le persone vicine a questo argomento lo capiscono quando vengono in Russia Leslie Lamport, Maurizio Herlihy и Michael Scott - l'evento più importante. Ma sono sorte altre domande:

  • Cosa aspettarsi dal convegno: “accademico” o “produttivo”?
  • Come sono collegati la scuola e il convegno? A chi è rivolto questo e quello?
  • Perché si sovrappongono nelle date?
  • Saranno utili a chi non ha dedicato tutta la vita ai sistemi distribuiti?

Tutto questo lo sa bene la persona che ha dato vita a Hydra: il nostro regista Alessio Fedorov (23derevo). Ha risposto a tutte le domande.

Formato

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

— La sfida globale è che intorno a noi ci sono servizi con grandi volumi di operazioni e compiti informatici complessi che non possono essere svolti su un computer. Ciò significa che devono esserci diverse auto. E poi sorgono domande relative a come sincronizzare correttamente il proprio lavoro e cosa fare in condizioni di non massima affidabilità (perché l'attrezzatura si guasta e la rete cade).

Più macchine ci sono, più punti di guasto ci sono. Cosa fare se macchine diverse producono risultati diversi per gli stessi calcoli? Cosa fare se la rete scompare per qualche tempo e parte dei calcoli viene isolata, come combinare poi il tutto? In generale, ci sono un milione di problemi associati a questo. Nuove soluzioni - nuovi problemi.

In quest'area ci sono aree completamente applicate e ce ne sono altre più scientifiche, qualcosa che non è ancora diventato mainstream. Vorrei parlare di ciò che sta accadendo sia nella pratica che nella scienza e, soprattutto, al loro incrocio. Questo è l'argomento della prima conferenza Hydra.

— Vorrei capire il fatto che c'è una conferenza e c'è una scuola estiva. Come si relazionano? Se viene concesso uno sconto ai partecipanti scolastici per la partecipazione alla conferenza, allora perché le date si sovrappongono, in modo che sia impossibile partecipare a tutto in una volta senza perdite?

— La scuola è un evento da camera per 100-150 persone, dove i maggiori esperti provenienti da tutto il mondo vengono e tengono conferenze per cinque giorni. E si verifica una situazione in cui luminari di livello mondiale si riuniscono a San Pietroburgo per cinque giorni, pronti a raccontare qualcosa. E in questo caso nasce la decisione di organizzare non solo una scuola da camera, ma anche una conferenza su larga scala.

È possibile tenere una scuola del genere solo in estate, a luglio, perché tra questi specialisti ci sono attuali professori universitari, e semplicemente non sono pronti in nessun altro momento: hanno studenti, diplomi, lezioni e così via. Il formato scolastico è di cinque giorni feriali. È noto che in estate nei fine settimana alla gente piace andare da qualche parte. Ciò significa che non possiamo tenere una conferenza né nel fine settimana prima della scuola né nel fine settimana dopo la scuola.

E se lo prolunghi ancora un paio di giorni prima o dopo il fine settimana, magicamente i cinque giorni di permanenza degli specialisti a San Pietroburgo diventano nove. E non sono pronti per questo.

Pertanto, l'unica soluzione che abbiamo trovato è stata semplicemente quella di tenere la conferenza parallelamente alla scuola. Sì, questo crea alcuni problemi. Ci sono persone che vogliono andare a scuola e ad una conferenza, e dovranno perdersi qualche conferenza qui o là. La buona notizia è che tutto questo si svolgerà nelle sale vicine, potrete correre avanti e indietro. E un'altra cosa positiva è la disponibilità di registrazioni video, in cui potrai poi guardare con calma ciò che ti sei perso.

— Quando due eventi si svolgono in parallelo, le persone si pongono la domanda “di quale ho bisogno di più?” Cosa dovresti aspettarti esattamente da ciascuno e quali sono le differenze?

— La scuola è un evento puramente accademico, una scuola scientifica classica di più giorni. Chiunque sia stato coinvolto nella scienza e abbia avuto qualcosa a che fare con la scuola di specializzazione ha un'idea di cosa sia una scuola accademica.

"La richiesta è in ritardo": Alexey Fedorov su una nuova conferenza sui sistemi distribuiti

Di solito questi eventi accademici non sono organizzati molto bene a causa della mancanza di esperienza tra le persone che li organizzano. Ma siamo ancora ragazzi abbastanza esperti, quindi possiamo fare tutto in modo abbastanza competente. Penso che da un punto di vista organizzativo, la SPTDC sarà al di sopra di qualsiasi scuola accademica o basata sulla ricerca che tu abbia mai visto.

Scuola SPTDC - questo è un formato in cui ogni grande conferenza viene letta in due coppie: "un'ora e mezza - una pausa - un'ora e mezza". Dovete capire che potrebbe non essere facile per un partecipante per la prima volta: quando questa scuola si è tenuta per la prima volta due anni fa, io stesso ero insolito, mi sono spento più volte all'incirca nel bel mezzo di una doppia lezione, e allora era difficile capire cosa stesse accadendo. Ma questo dipende molto dal docente: un bravo docente parla in modo molto interessante per tutte e tre le ore.

Conferenza dell'Idra - un evento più pratico. Diversi saranno i luminari della scienza venuti a tenere lezioni alla Scuola: da Leslie Lamport, il cui lavoro è alla base della teoria stessa dei sistemi multi-thread e distribuiti, a Maurizio Herlihy, uno degli autori del famoso libro di testo sulla concorrenza “The Art of Multiprocessor Programming”. Ma alla conferenza cercheremo di parlare di come vengono implementati nella realtà determinati algoritmi, quali problemi affrontano gli ingegneri nella pratica, chi riesce e chi fallisce, perché alcuni algoritmi vengono utilizzati nella pratica e altri no. E, naturalmente, parliamo del futuro dello sviluppo di sistemi multi-thread e distribuiti. Cioè, daremo un vantaggio così innovativo: di cosa parla la scienza mondiale ora, attorno a cosa ruotano i pensieri dei principali ingegneri e come tutto si incastra.

— Dato che il convegno è più applicato, non ci saranno solo luminari accademici, ma anche relatori della “produzione”?

- Decisamente. Stiamo cercando di guardare a tutti i “grandi”: Google, Netflix, Yandex, Odnoklassniki, Facebook. Ci sono problemi divertenti specifici. Ad esempio, tutti dicono: "Netflix è un sistema distribuito, quasi la metà del traffico statunitense, molto interessante" e quando inizi a guardare i loro rapporti, articoli e pubblicazioni reali, subentra una leggera delusione. Perché, anche se questo è certamente di livello mondiale e c'è dell'avanguardia, ce n'è meno di quanto sembri a prima vista.

Sorge un dilemma interessante: puoi chiamare rappresentanti di grandi aziende eminenti, oppure puoi chiamare qualcuno che già conosciamo. In realtà, le competenze esistono sia qua che là. E stiamo piuttosto cercando di tirare fuori non "persone di marchi molto grandi", ma specialisti molto grandi, persone specifiche.

Ad esempio, ci sarà Martin Kleppmann, che un tempo ha fatto colpo su LinkedIn e si è anche liberato buon libro - forse uno dei libri di base nel campo dei sistemi distribuiti.

— Se una persona non lavora per Netflix, ma per un'azienda più semplice, potrebbe chiedersi: "Devo andare a una conferenza del genere, o ci sono tutti i tipi di Netflix che parlano tra loro, ma non ho niente da fare?"

— Dirò questo: quando ho lavorato in Oracle per poco più di tre anni, ho sentito le cose più sorprendenti e interessanti in cucina e nelle sale fumatori, quando i colleghi si riunivano lì per realizzare alcune parti della piattaforma Java. Potrebbero essere persone della macchina virtuale, del reparto test o della concorrenza delle prestazioni, ad esempio Lyosha Shipilev e Seryozha Kuksenko.

Quando cominciavano a discutere di qualcosa tra loro, di solito ascoltavo con la bocca aperta. Per me queste erano cose sorprendenti e inaspettate a cui non avevo nemmeno pensato. Naturalmente all’inizio non capivo il 90% di quello di cui stavano parlando. Poi l'80% è diventato incomprensibile. E dopo aver fatto i compiti e letto qualche libro, questo numero è sceso al 70%. Ancora non capisco molto di cosa parlano tra loro. Ma mentre mi sedevo in un angolo con una tazza di caffè e origliavo, ho cominciato a capire un po’ cosa stava succedendo.

Pertanto, quando Google, Netflix, LinkedIn, Odnoklassniki e Yandex parlano tra loro, ciò non significa che si tratti di qualcosa di incomprensibile e poco interessante. Al contrario, dobbiamo ascoltare con attenzione, perché questo è il nostro futuro.

Certo, ci sono persone che non hanno bisogno di tutto questo. Se non vuoi approfondire questo argomento, non hai bisogno di andare a questa conferenza, perderai solo tempo lì. Ma se l'argomento è interessante, ma non ne capisci niente o lo stai solo guardando, allora dovresti venire, perché non troverai niente di simile da nessuna parte. Inoltre, penso che non solo in Russia, ma anche nel mondo. Stiamo cercando di organizzare una conferenza che non sarà solo leader su questo argomento in Russia, ma in generale la numero uno nel mondo.

Questo non è il compito più semplice, ma quando abbiamo l’opportunità così straordinaria di riunire relatori forti da tutto il mondo, sono disposto a dare molto per realizzarlo. Naturalmente alcuni di quelli che abbiamo invitato alla prima Hydra non potranno venire. Ma dirò questo: non abbiamo mai iniziato una nuova conferenza con una formazione così potente. Tranne, forse, il primo JPoint sei anni fa.

— Vorrei approfondire le parole “questo è il nostro futuro”: l’argomento toccherà poi chi non ci pensa oggi?

- Sì, ne sono sicuro. Pertanto, mi sembra molto giusto iniziare a discuterne il più rapidamente possibile. Ad esempio, la teoria del multithreading è apparsa molto tempo fa (negli anni '70 il lavoro veniva già pubblicato in pieno svolgimento), ma per molto tempo erano riservati a specialisti ristretti, finché non è apparso il primo computer dual-core per utenti. agli inizi degli anni 10. E ora abbiamo tutti server multi-core, laptop e persino telefoni, e questa è la tendenza dominante. Ci sono voluti circa XNUMX anni perché questo si diffondesse, perché la gente capisse che questo discorso non è appannaggio di una ristretta cerchia di specialisti.

E ora stiamo vedendo più o meno la stessa cosa con i sistemi distribuiti. Perché le soluzioni di base come la distribuzione del carico, la tolleranza agli errori e simili sono state realizzate già da molto tempo, ma pochissime persone sanno cosa sia, ad esempio, il consenso distribuito o Paxos.

Uno degli obiettivi più importanti che mi sono prefissato per questo evento è immergere sempre più gli ingegneri in questa discussione. Devi capire che alle conferenze alcuni argomenti e soluzioni non vengono solo discussi, ma emerge anche un thesaurus, un apparato concettuale unificato.

Considero mio compito creare una piattaforma dove tutti possano discutere di tutto questo, condividere esperienze e opinioni. In modo che tu ed io abbiamo una comprensione comune di cosa fa un algoritmo, cosa fa un altro, quale è migliore in quali condizioni, come sono correlati tra loro e così via.

Una cosa molto interessante è legata allo stesso multithreading. Quando i nostri amici di Oracle (principalmente Lesha Shipilev e Sergey Kuksenko) iniziarono a parlare attivamente di prestazioni e, in particolare, di multithreading, letteralmente due o tre anni dopo queste domande iniziarono a essere poste durante le interviste presso le aziende, la gente cominciò a discuterne in camere per fumatori. Cioè, ciò che era riservato agli specialisti ristretti è diventato improvvisamente mainstream.

E questo è molto corretto. Mi sembra che abbiamo aiutato questi ragazzi a divulgare l'intera questione, che è davvero importante, utile e interessante. Se prima nessuno pensava a come un server Java elabora le richieste in parallelo, ora le persone hanno almeno a un certo livello una comprensione di come funziona il tutto. E questo è fantastico.

Il compito che vedo ora è fare più o meno la stessa cosa con i sistemi distribuiti. In modo che tutti capiscano approssimativamente di cosa si tratta, da dove viene, quali compiti e problemi ci sono, in modo che anche questo diventi mainstream.

Le aziende hanno una grande richiesta di persone che ne capiscano qualcosa, e sono poche queste persone. Più creiamo attorno a questi contenuti e all’opportunità di imparare da essi, più diamo alle persone l’opportunità di porre domande nell’aria, più è probabile che ci muoviamo in qualche modo in questa direzione.

Sfondo

— Il convegno si tiene per la prima volta, ma non è la prima volta per la scuola. Come è nato e si è sviluppato tutto questo?

- Questa è una storia interessante. Due anni fa, nel maggio 2017, ci siamo seduti a Kiev con Nikita Koval (ndkoval), un esperto nel campo del multithreading. E mi ha detto che si sarebbe tenuto a San Pietroburgo “Summer School in pratica e teoria del calcolo concorrente”.

L'argomento della programmazione multithread è stato straordinariamente interessante negli ultimi tre anni della mia carriera di ingegnere. E poi si è scoperto che in estate vengono a San Pietroburgo personaggi molto, molto famosi, gli stessi Maurice Herlihy e Nir Shavit, secondo manuale che ho studiato. E molti dei miei amici avevano qualcosa a che fare con questo, ad esempio Roma Elizarov (Elizarov). Mi sono reso conto che semplicemente non potevo perdermi un evento del genere.

Quando è diventato chiaro che il programma della scuola per il 2017 sarebbe stato grandioso, è nata l’idea che le lezioni dovessero essere assolutamente registrate su video. Noi del JUG.ru Group avevamo una comprensione completa di come dovrebbero essere registrate tali lezioni. E noi ci inseriamo in SPTCC come i ragazzi che hanno realizzato un video per la scuola. Di conseguenza, tutte le lezioni scolastiche menzogna sul nostro canale YouTube.

Ho iniziato a comunicare con Pyotr Kuznetsov, che era il principale ideologo e organizzatore di questa scuola, e con Vitaly Aksenov, che ha contribuito a organizzare tutto questo a San Pietroburgo. Mi sono reso conto che è straordinariamente bello e interessante e, probabilmente, è molto brutto che solo 100 partecipanti possano toccarne la bellezza.

Quando Peter ha pensato che aveva bisogno di ricominciare la scuola (nel 2018 non c’erano né energia né tempo, quindi ha deciso di farlo nel 2019), è diventato chiaro che avremmo potuto aiutarlo semplicemente rimuovendo da lui tutte le cose organizzative. Questo è quello che sta succedendo adesso, Peter si occupa dei contenuti e noi facciamo tutto il resto. E questo sembra lo schema giusto: Peter è probabilmente più interessato al programma che a “dove e quando pranzeranno tutti”. E siamo bravi a lavorare con sale, locali e così via.

Questa volta, invece di SPTCC, la scuola si chiama SPTDC, non “calcolo concorrente”, ma “calcolo distribuito”. Di conseguenza, questa è più o meno la differenza: l’ultima volta a scuola non si parlava di sistemi distribuiti, ma questa volta ne parleremo attivamente.

— Poiché la scuola non si tiene per la prima volta, possiamo già trarre alcune conclusioni dal passato. Cosa è successo l'ultima volta?

— Quando, due anni fa, è stata creata la prima scuola, ci si aspettava che ci fosse un evento accademico, di interesse soprattutto per gli studenti. Inoltre, studenti da tutto il mondo, perché la scuola è solo in inglese, e si pensava che sarebbe venuto un numero significativo di studenti stranieri.

In effetti, si è scoperto che molti ingegneri provenivano da grandi aziende russe come Yandex. C'era Andrey Pangin (apangina) di Odnoklassniki, c'erano ragazzi di JetBrains che stanno lavorando attivamente su questo argomento. In generale erano presenti molti volti noti delle nostre aziende partner. Non sono affatto sorpreso, capisco perfettamente perché sono venuti lì.

In realtà, gli organizzatori si aspettavano che ci sarebbero stati accademici alla Scuola, ma all'improvviso sono arrivati ​​anche quelli dell'industria, e allora mi è diventato chiaro che c'era domanda nel settore.

Se un evento che difficilmente è stato promosso da nessuna parte, con il primo clic di un dito, ha raccolto un pubblico di adulti, vuol dire che effettivamente l'interesse c'è. Mi sembra che una richiesta su questo argomento sia tardiva.

"La richiesta è in ritardo": Alexey Fedorov su una nuova conferenza sui sistemi distribuiti
Maurice Herlihy all'incontro JUG.ru

— Oltre alla scuola, Maurice Herlihy ha parlato a San Pietroburgo all’incontro JUG.ru nel 2017, avendo detto sulla memoria transazionale, e questo è un po’ più vicino al formato della conferenza. Chi è venuto allora: le stesse persone che di solito vengono agli incontri su JUG.ru o un pubblico diverso?

— È stato interessante perché abbiamo capito che Maurice avrebbe avuto un rapporto generale, non specifico per Java, e abbiamo fatto un annuncio leggermente più ampio di quello che facciamo di solito per i nostri abbonati alle notizie JUG.

Molte persone che conosco provengono da comunità che non riguardano affatto Java: dal pubblico .NET, dal pubblico JavaScript. Perché il tema della memoria transazionale non si riferisce a una specifica tecnologia di sviluppo. Quando uno specialista di livello mondiale viene a parlare di memoria transazionale, perdere l'opportunità di ascoltare una persona del genere e fargli domande è semplicemente un crimine. Fa una forte impressione quando la persona da cui stai studiando il libro viene da te e ti dice qualcosa. Semplicemente fantastico.

— E qual è stato il feedback di conseguenza? L’approccio era troppo accademico e incomprensibile per gli operatori del settore?

– Le recensioni del rapporto di Herlihy sono state buone. Si scrive che affermasse in modo molto semplice e chiaro ciò che non ci si aspettava da un professore accademico. Ma dobbiamo capire che lo abbiamo invitato per un motivo, è uno specialista di fama mondiale con una vasta esperienza nel parlare e un background derivante da numerosi libri e articoli. E, probabilmente, è diventato famoso in molti modi grazie alla sua capacità di trasmettere materiale alle persone. Pertanto, questo non è sorprendente.

Parla un inglese normale e comprensibile e, ovviamente, ha un'ottima comprensione di ciò di cui sta parlando. Cioè, puoi fargli assolutamente qualsiasi domanda. In sostanza, ci si è lamentati del fatto che abbiamo concesso a Maurice troppo poco tempo per la sua relazione: due ore non bastano per una cosa del genere, ne servono almeno altre due. Bene, siamo riusciti a fare quello che siamo riusciti a fare in due ore.

motivazione

— Di solito il gruppo JUG.ru si occupa di eventi su larga scala, ma questo argomento sembra più altamente specializzato. Perchè hai deciso di intraprenderlo? C'è la volontà di organizzare un evento più piccolo o è possibile che molti spettatori si riuniscano su un argomento del genere?

— In effetti, quando si organizza un evento e si stabilisce un certo livello di discussione, sorge sempre la domanda su quanto sia diffusa questa discussione. Quante persone - dieci, cento o mille - sono interessate a questo? Esiste un compromesso tra massa e profondità. Questa è una domanda del tutto normale e ognuno la risolve in modo diverso.

In questo caso, voglio realizzare l’evento “per me”. Capisco ancora qualcosa di multithreading (ho tenuto lezioni su questo argomento in convegni, e ho detto qualcosa agli studenti più volte), ma sono un principiante quando si tratta di sistemi distribuiti: ho letto alcuni articoli e visto diverse lezioni, ma non lo ha letto anche un solo libro a tutti gli effetti.

Abbiamo un comitato di programma composto da esperti del settore in grado di valutare l'accuratezza dei rapporti. E da parte mia, sto cercando di rendere questo evento uno di quelli a cui, con la mia mancanza di esperienza, vorrei andare. Se sarà possibile interessare il grande pubblico, non lo so. Questo probabilmente non è il compito più importante di questo evento in questa fase. Ora è più importante creare il programma più forte in breve tempo.

Probabilmente ora ho affidato al team non il compito di "riunire mille persone la prima volta", ma di "far apparire la conferenza". Ciò potrebbe non sembrare molto professionale e un po’ ingenuo, anche se non sono affatto un altruista. Ma a volte posso concedermi qualche libertà.

Ci sono cose più importanti del denaro e oltre il denaro. Realizziamo già un gran numero di fantastici eventi su larga scala per un migliaio di persone o più. Le nostre conferenze Java hanno da tempo superato il migliaio di persone e ora altri eventi stanno superando questo livello. Cioè, la domanda che siamo diventati organizzatori esperti e famosi non vale più la pena. E, probabilmente, ciò che guadagniamo da questi eventi ci dà l'opportunità di reinvestire in ciò che interessa a noi, e in questo caso, a me personalmente.

Facendo questo evento, vado contro alcuni principi della nostra organizzazione. Ad esempio, di solito cerchiamo di preparare le conferenze con molto anticipo, ma ora abbiamo scadenze molto strette e finalizziamo il programma solo un mese prima dell'evento stesso.

E questo evento sarà per il 70-80% in lingua inglese. Anche qui si discute sempre se dobbiamo essere più vicini alla gente (che capisce meglio quando la maggior parte dei resoconti sono in russo) o al mondo intero (perché il mondo tecnico è anglofono). Di solito cerchiamo di scrivere molti report in russo. Ma non in questo momento.

Inoltre, chiederemo anche ad alcuni dei nostri madrelingua russi di parlare in inglese. Questo è, in un certo senso, un approccio assolutamente anti-utente e disumano. Ma dobbiamo capire che attualmente non esiste letteratura in lingua russa su questo argomento e chiunque sia interessato a questo è costretto a leggere in inglese. Ciò significa che in qualche modo è in grado di capire l'inglese. Se nel caso di JavaScript, Java o .NET ci sono molte persone che non conoscono molto bene l'inglese, ma allo stesso tempo sanno programmare bene, allora, probabilmente, i sistemi distribuiti sono un'area in cui semplicemente non ce n'è altra modo per imparare adesso.

Voglio davvero condurre questo esperimento: come verrà percepito dal pubblico in Russia un evento in lingua inglese al 70-80%. Entrerà oppure no? Non lo sappiamo in anticipo perché non l'abbiamo mai fatto. Ma perché non farlo? Diciamo solo che questo è un grande esperimento che non posso fare a meno di provare.

Il programma scolastico SPTDC è già disponibile pubblicato interamente, e già nel caso di Hydra è noto una parte notevole, e presto pubblicheremo l'analisi dell'intero programma del convegno.

Fonte: habr.com

Aggiungi un commento