Press "Enter" to skip to content

GOTO 2018 • Practicalities of Productionizing Distributed Systems • Jeff Hodges


[Musica]
hey, tutti stanno bene oggi, sto parlando
sulle funzionalità di distribuito
sistemi questa è un’idea complicata molto
di gente quando arrivano qui sono
vado a parlarti di specifici
cose su distribuire sistemi o
parleranno del
cose teoriche questo discorso è
specificamente e intenzionalmente progettato
per essere una panoramica generale e per il
pratici di ciò che significa da
quando mettiamo le cose in produzione questo
è anche un discorso che ho tenuto cinque anni fa ma
aggiornato e rinnovato
la compagnia basho che aveva il
database reagire ha avuto una conferenza molti
anni fa ho tenuto questo discorso e un sacco
altre persone hanno fatto troppo e poi il
L’account YouTube per il concerto di Bosch è arrivato
chiuso e c’è stato un tempo nella mia vita
per il quale ero davvero piuttosto eccitato
su questo discorso e gente è stata
chiedendolo di nuovo e così dopo
scomparso da internet sembra
come il tempo per me di fare un’altra versione
di esso qualcosa di aggiornato per il 2018 ok così
ci sono alcune cose che dobbiamo parlare
circa uno di questi è il motivo per cui dovresti
ascoltami ero su Twitter dal 2009
2014 erano 120 persone a 3600 persone
lungo la strada sono andato da un po ‘
ingegnere bambino per un abbastanza maturo e
persona di ingegneria di alto livello ho lavorato su un
un sacco di problemi tra cui uno dei
i membri fondatori dell’anti-spam
squadra che ho lavorato per CBC su Twitter
dopo le uscite di Snowden
Ho lavorato su incidenti come il
risposta di cuore e ha funzionato
lavoro di database distribuito per Cassandra
il mio sequel yada yada yada e poi a
un paio di anni fa sono stato abbastanza fortunato
essere uno dei primi ingegneri
lavoriamo su criptiamo e aiutiamo il fossato
merda qualche mese un paio di anni fa
che potresti essere ora usato potresti essere
usando sul tuo sito web in questo momento per
fornire HTTPS e se non lo sei ero
provando a raccomandarlo è la squadra
fantastico così fatto un paio di cose
come un paio di cose ma ora sono anche io
un piccolo imprenditore ho questo
piccolo sito web chiamato come è il mio così calmo io
vendere abbonamenti ad altri siti web per
loro di usare il mio sito web per capire
quali sono i browser degli utenti sicuri e
Avevo intenzione quando ho scritto questo
parlare cinque anni fa per essere
scala-invariante e ora come un piccolo
imprenditore Sono estremamente consapevole di
quello che serve per essere non solo un grande
azienda che lavora con migliaia di
macchine e quando stiamo parlando
distribuire sistemi ma anche il poco
riempie il piccolo lavoro che serve quando
hai appena saputo uno o tre o
cinque o dieci persone okay
quindi stiamo parlando di costruzione e
eseguire sistemi distribuiti così quando vado
ad una rapida fondazione su ciò che rende
sistemi distribuiti diversi quando ero
nel baby engineer mi avrebbero chiesto
questo e vorrei dire qualcosa lungo il
linee di buona latenza e persone tipo di
orlo e fal e dire non tipo di ciò che è
davvero diverso è il fallimento dello stato
spazio di errore per i sistemi di distribuzione
è molto più grande di una singola macchina
sistema questo è ripetuto più e più volte
di nuovo ho intenzione di darti una rapida
sottoinsieme dei tipi di guasti che
vedrai uno di quelli come una spazzatura
fallimento della raccolta causando solo una coppia
delle tue macchine in modo transitorio per piacere
offline e sembra spesso che ho avuto
gli ingegneri vengono da me e mi dicono che lo hanno fatto
ha qualche problema di rete perché sono
guardando i loro input di rete e
uscita da alcune macchine e hanno
chiedergli come hey cosa è in realtà
andando avanti con il tuo mucchio un’altra cosa è
un cliente potrebbe rimanere bloccato a un
processo sovraccarico ne hanno alcuni molto
time socket connect timeout e tu hai
ha preso questa macchina che sta prendendo
per sempre per risolvere effettivamente le connessioni
e gli straordinari in modo transitorio e implicito
alcuni dei vostri clienti solo tipo di raccogliere
e tutti cercano di collegare questa macchina
ancora e ancora e ancora e così
succede e sembra strano e loro
ammassarsi e non si può mai capire
cosa sta succedendo e naturalmente tu
avere il problema di MongoDB che è dove
fai una presa proprio qui e basta
dice ha funzionato, ma ovviamente sul
dall’altra parte fallisce, questi sono tutti
fallimenti parziali e quella zoppia che è
ciò che rende difficile questo è che c’è
tipo di funziona come distribuire i sistemi
tipo di lavoro tutto il tempo e questo è
ciò che è veramente interessante su di loro e
ci entreremo in quello ma loro
anche un po ‘stanno sempre fallendo un po’
un po ‘e così una delle cose che sei
andando a notare è che ci sono
alcune domande implicite che ottengono
davvero molto difficile come il più difficile
il problema che avrai sarà risolto
lentezza hai un ingegnere
se sei fortunato o un altro
o Dio ti aiuti un utente Is Gonna Come a
tu e ti dico che è lento e tu
devo capire cosa significa
lentezza come dicono oh, va bene solo
ho impiegato molto tempo per postare e tu
tornerà e dirà oh che potrebbe
significa questa cosa di questa cosa o questa
cosa o questa cosa e lo spazio dello stato
è così grande ma è impossibile
capire con la nostra solita macchina singola
strumenti così che è bello distribuire
sistemi è che questi fallimenti e a
lo spazio di errore dello stato è così ampio ma
in realtà possiamo creare affidabilità
possiamo creare più robustezza che possiamo
creare resilienza per avere di più
macchine senza macchine che parlano
ad un altro
ovviamente le cose ovvie sono le
ridondanza quando parliamo come se
hai più di una macchina e una
la macchina fallisce puoi sempre avere
un’altra macchina che recupera il gioco
è bello ce n’è in realtà un altro
cose più interessanti che puoi fare
per costruire una disponibilità parziale nel tuo
sistemi in questo momento un esempio di classe di
costruzione di abilità di velo parziale nel
il design del tuo sistema è la ricerca di questo
inizio a succedere credo alla fine degli anni ’60
con inchiostro per me e un altro paio di grandi dimensioni
i motori di ricerca e ora tutti di loro lo fanno
abbiamo che conosci Google, Yahoo e Yahoo
Bing e Twitter, naturalmente, utilizza questo
roba è la stessa idea che hai
diciamo cinque macchine e il tuo indice
è troppo grande per adattarsi a qualcuno di loro e
quindi quello che fai in realtà è avere un
l’utente entra e chiede di inviare un messaggio
interrogare al tuo primo sistema di muxing e
allora quella macchina effettivamente invia il
interrogare a quelle cinque macchine indice
e poi quelle macchine dell’indice passano attraverso
e a loro piace trovare il più pertinente
documenti e poi restituire di più
documenti rilevanti dopo di ciò
muxing machine the next machine then
classifica tutti i documenti che hanno
ottenuto risultati in un’altra lista e
prende solo la parte superiore da quelli
macchine e lo rimanda all’utente
è un piccolo e semplice design ora
ciò che è veramente grande a questo proposito è che se
una di quelle macchine indicizzate va giù
in realtà puoi ancora tornare decente
risultati per l’ utente anche in quel parziale
interruzione perché questi risultati potrebbero ottenere un
po ‘peggio e non è così
in realtà cambia il fatto che tu voglia
per ottenere qualcosa di nuovo per l’utente a tutti
e questa è una capacità parziale significa questo
puoi costruire sistemi e farlo
che rimani in piedi anche di fronte al filler
e in realtà dai buoni risultati a te
puoi fare soldi con soldi
un po ‘meno lavoro anche
quindi la monorotaia era qualcosa che io
lavorato su Twitter è stato un monolitico
Abbiamo iniziato l’app web di Ruby on Rails
aggiungendo chi seguire se sei familiare
con Twitter è tutto questo
Doodad era originariamente in alto a sinistra
qui che ti direbbe solo altro
persone che potresti voler seguire
questo è tutto
c’è un piccolo grande sistema, ma lo è stato
anche il primo servizio che abbiamo avuto quello
stava arrivando attraverso la monorotaia che noi
sarebbe effettivamente in contatto con il
monorotaia che non era solo un database o
qualcosa e quello che è successo è chi
seguire come un sacco di nuovi sistemi era e
ha avuto problemi a problemi di prestazioni
e uno di quelli e così gente ci avrebbe provato
per risolverlo aumentando il timeout
e loro direbbero bene ogni volta
noi timeout
chi seguire in realtà stiamo inviando
indietro una balena fallita solo un messaggio di errore
a tutto il tessuto per l’ utente invece di
rendendo la loro cronologia di casa e così via
hanno continuato ad aumentare il timeout perché
chi seguire stava avendo prestazioni
problemi e poi abbiamo iniziato a correre
il tempo complessivo di cinque secondi o
qualunque cosa iniziò a essere troppo piccola perché
il segugio segue come un secondo o due
secondo timeout se che ci seguo
avere una brutta giornata e un paio dei
basi di dati che stiamo avendo una brutta giornata saremmo
inizia a rispondere come in bianco
pagine perché stavamo prendendo troppo tempo
completamente e quindi la vera soluzione per
questo era okay, possiamo aggiustare il Pooh
seguire i problemi ma in realtà c’è un
problema più generico che siamo
rivolgendosi qui che è chi seguire
non è così importante come non lo è
abbastanza importante da piacere spedire un errore
torna all’utente solo perché un po ‘
la pagina web non ha funzionato e
questa è parzialmente abilità , stiamo parlando
sui sistemi distribuiti non siamo solo
parlando di okay ridondanza ok
scalabilità orizzontale stiamo parlando
a volte l’opzionalità è il
disponibilità come se non fosse necessario spedire
ogni funzione che non è necessario utilizzare
ogni indice nella tua ricerca a volte tu
può come la mappa utilizza i risultati di geolocalizzazione
e c’è ci vuole reale come
pensando al di fuori del nostro solito
capire quando stiamo costruendo il nostro
app e sistemi per arrivare lì bene
il problema con i sistemi di distribuzione è
questo perché c’è molto più grande
stato dello spazio è difficile per noi come
ingegneri o persone QA o chiunque
effettivamente esercitare ogni caso limite
lì e così abbiamo questa differenza
tra l’ abbiamo conosciuto come un problema
dai singoli sistemi di macchine che vediamo
il codice nella pagina crediamo che conosciamo
cosa farà il codice e poi noi
eseguilo e fa qualcosa di molto
diverso questo diventa molto peggio in
sistemi distribuiti e diventa
più difficile iniziamo a dover pensare
su un’osservazione del sistema in a
modo diverso invece di fare affidamento sull’utente
segnala o cerca il nostro uso o
sapendo che i nostri test di integrazione sono
andando a coprire ogni parte di
funzionalità invece facciamo cose simili
usando le metriche e queste sono come ampie
cose aggregati quindi è come quanti
i messaggi stanno arrivando nel modo in cui intendo
uscire con successo quanta latenza
stiamo usando per fare quel lavoro e il
varietà di come si conosce il raggruppamento di
codici di stato attivi e quant’altro e io sono
fare una vera e veloce immersione al
secondo qui se stai calcolando
latenza per favore non usare le medie lì
è ZERO distribuire sistemi nel mondo
che hanno una media utile del grafico di
Le vedute di Layton non sembrano normali
curva a campana hanno tutti una lunga durata
coda così se in realtà vuoi vedere cosa
come uno su dieci richieste di carichi
sembra che tu debba guardare il 90 °
percentile non puoi semplicemente fidarti di Amin
perché ti dirà qualcosa di grande
numero qui che sembra drogato e tu
voglio vantarmi su di esso, ma tu sei
in realtà sei uno su dieci
gli utenti vedono questa terribile latenza
qui fuori ed è come questo è fondamentale
è una cosa difficile ed è arrivata
tutto il tempo quindi è bello che abbiamo
questi ampi sistemi basati su metriche dove
esponiamo metriche li trasmettiamo fuori a
qualche altro sistema e possiamo fare
grafici dinamici faremo il tempo
le correlazioni per trovare bug sono davvero
a portata di mano hai un sistema a qualcuno
contatore andando sul sistema C andando ad alcuni
contatore inferiore
e tu sei come se ci fosse una differenza così
forse è il sistema B nel mezzo, va bene
sono ampi quando ce n’è di nuovi
roba ma abbiamo iniziato a fare cinque anni
fa quando nessuno parlava davvero
moltissimo
è un’idea di tracciamento che è metrica
sono grandi perché ti danno questi
ampi aggregati su cui puoi lavorare
ma sono molto difficili non lo fanno
parlare del sistema attuale di
comunicazione tra macchine e
tracciando è l’idea che dovremmo
in realtà tiene traccia di una richiesta in arrivo
il nostro sistema attraverso tutti i diversi
sistemi di cui parla per registrarlo in alcuni
modo formattato in modo che possiamo effettivamente costruire a
albero della comunicazione ci sono tonnellate di
sistemi che sono ora in grado di supportare
questo dalle cose di Google che si chiama
lo stack driver ha incorporato questo credo
e poi i soliti fornitori di cloud in
yada yada e stiamo iniziando a spingere
verso questo è molto bello
è quello con solo un paio di ID voi
può iniziare associando dati come okay per
questo errore che abbiamo visto abbiamo inviato indietro a
500 codice di stato o qualsiasi cosa fosse
questo ID utente e abbiamo parlato con questi
sistemi e ci è voluto tanto tempo e possiamo
guardalo in una vista ad albero ed è fantastico
ed è il tipo di cosa che siamo
come è il prossimo passo per tutti noi
costruendo nei nostri sistemi cose che ho
usato regolarmente e ti dà questo
visione ristretta focalizzata mentre le metriche possono
fornire ampie vedute aggregate okay I
voglio fare una vera nota veloce su
profiling profiling è un buon strumento per
hai si dovrebbe avere un profiler si
dovrebbe sapere come eseguire un profiler
quelli sono bravi ti dicono quanto velocemente
il tuo computer può funzionare sono
relativamente economico da eseguire sul tuo
propria macchina puoi testare queste cose
molto bene ho anche gestito un paio in
produzione da un tempo o due ma
profiling lotte in un distribuito
l’ambiente dei sistemi in generale e non lo è
qualcosa su cui possiamo contare per dircelo
molto sui sistemi distribuiti che possiamo
usali a cui abbiamo domande mirate
chiedi ma non puoi avere due problemi
uno profiler anche oggi è un po ‘
troppo costoso per essere effettivamente eseguito
quando vuoi e più distribuito
i problemi dei sistemi sono transitori
succede alle 3 del mattino perché un certo
sottoinsieme di utenti che hai
su queste macchine allo stesso tempo loro
succede quando solo alcune persone stanno usando
questa sola parola e vengono divisi
strano e il tuo sistema succede solo
questi sono ciò che accade mentine in un po ‘
a causa di una combinazione di spazzatura
raccolta e time-out su determinati
macchine questi sono problemi transitori
e i profiler si aspettano di essere scatenati
problema sta succedendo e quindi abbiamo
ricadere in stili asincroni di
ottenere l’osservazione che è metrica
e tracciando e quant’altro il secondo
il problema dei profiler è secondo me
leggermente più egregio e non lo è
vero di tutti gli profiler che cosa carina
molto è il secondo è quello nel
lo stesso modo in cui Layton vede che deve essere
calcolato con percentili non medie
i profiler ti darò una sbavatura
fuori media e quindi quello che dicono è
quanto veloce quel metodo 1 e Metodo 2 ma
i due forse sembrano un po ‘più lenti
in media il metodo uno ma non lo farà
ti dico quel metodo quando va
male va davvero molto male e così tu
in realtà non è possibile vedere quel metodo
effettivamente il tuo problema di prestazioni tu
guarda che è spalmato in uno solo
valore scalare per entrambi i metodi suo
lotte che è il motivo per cui si parla di
metriche così tanto e perché si parla di
osservazione come tracciamento e quant’altro
okay, andiamo avanti da quelle versioni
dovrebbe cambiare uno release metrici sono
distribuzioni di codice più alcune altre cose
arriveremo a quello che è mai stato rilasciato
ipotesi su cosa succederà
nel vostro sistema si dispone di un’ipotesi
codice che ritieni cambierà il tuo
sistemi in determinati modi e questo dovrebbe
essere espressivo almeno per il tipo di
lavoro che faccio e che probabilmente fai
come una metrica ovviamente la qualità di
cose di vita che non sono quantificabili
caratteristiche ma ci sono sicuramente per
la maggior parte dei tuoi dispiegamenti contiene una metrica
che potresti guardare e vedere se è così
salì o scese e dovrebbe essere
in grado di cambiare quello, naturalmente, di più
i sistemi ti rendi più facile
quantificare ok voglio anche fare un breve
Essenza sai che potresti aver menzionato
nota che non l’ ho fatto
il testo a mano libera molto abusato del nostro Signore
registra nei miei sistemi è la prima cosa
che si spezzerà, so che è così
andando a rompere ma i registri di testo a mano libera
mentire e dobbiamo stare attenti a questo
quando parliamo di mini macchine
o anche solo più di uno è quello
i problemi comuni tendono a superare Lord I
ricordo che abbiamo avuto qualche scoperta Serv
roba nel server web che stavo aiutando
costruisci e abbiamo passato un incidente e
dieci minuti in più per cercare di capire
perché stavamo lottando per avere
problemi e abbiamo visto queste pile di
eccezioni che sono registri e sono tutti
dalla scoperta dei signori e noi eravamo come oh
oh, va bene, dobbiamo avere un servizio
problema scurroso iniziamo a scavare intorno
e cercando di capire come fare
funzionava quando in realtà era così
quegli errori erano solo di qualche altro
connessioni al data center che sapevamo
non lavoreremo mai e noi
non aveva ancora creato il data center
come se fosse solo un’assurdità e questo è
molto comune in questi testi a mano libera
logs
devi solo spaccare cose lì come noi
gli ingegneri hanno certe aspettative
cosa sarà utile e
informativo per altre persone o noi stessi
e ci siamo sbagliati con questi
registri di testo a mano libera e poiché non possiamo
Riduci l’output come puoi
avere la marcatura più fine
qualunque cosa e continuerai ad avere
cosa stai ancora sbagliando?
su ciò che è importante perché non comune
i problemi verranno poi seppelliti è difficile
trovarli e poi lo farai anche tu
vedi se hai veramente capito il problema
abbastanza per registrarlo quasi sicuramente
avresti risolto il bug come quello
in realtà perché la maggior parte di questi testi a mano libera
i log vengono eliminati e non è possibile
difficile da usare registri di testo a mano libera come
correlazioni temporali per trovare problemi in
nello stesso modo in cui riusciamo a tracciare
e metriche perché non abbiamo
più fonti con simili reali
numeri che possiamo fare matematica okay
torniamo su da alcuni dei
aspetti pratici ad un punto più generico
va bene, evitare il coordinamento coordinativo come
esseri umani che sentiamo come relativamente
problema semplice se dovessimo votare
qui dentro come quale numero dovremmo
messo sullo schermo potremmo ragionevolmente
fallo con un po ‘di consenso
il coordinamento e il consenso sono in realtà
il problema più difficile in
sistemi distribuiti è forse così
problema difficile nei sistemi distribuiti
si scopre che abbiamo fatto decenni
ricerca su come rendere le macchine d’accordo
su numeri semplici e questo è ancora un
campo attivo di impegno perché per due
ragioni per cui risulta un coordinamento
molto difficile per gli esseri umani
capisco che ci sono così tanti fallimenti
modalità che devi gestire ogni volta
Sto cambiando solo un po ‘di dati
allora diventa troppo complicato per noi
può andare a leggere il motivo per cui i paxos
enrapt
esiste un tentativo originario di paksas
semplificare il coordinamento e ha creato
questo si può avere familiarità con esso Paxos
era questo documento parlamentare
scritto da Lamport nello stile di un
vero parlamento e lo scrisse come se
era all’effettivo processo parlamentare
le misure di scrutinio ed è ancora troppo difficile
per la maggior parte delle persone capire e così via
è per questo che abbiamo avvolto e intero
un sacco di altre cose quindi il primo
il concetto è solo il coordinamento è troppo difficile
per gli esseri umani con cui davvero cimentarsi
molto bene c’è una ragione per cui noi
lottare con esso e il secondo problema
è la lotta per i computer come
beh , in realtà è molto
intensivo di risorse per coordinare
ottenere il consenso per ogni macchina che hai
per portare nel suo molto loquace devi
andare avanti e indietro con macchine cantanti
forme ingenue di questo diventano molto molto
chiacchierato dobbiamo connetterci con tutti
un’altra macchina e concordare su alcuni
cose e ovviamente anche tu hai
il problema che ha la velocità della luce
un limite determina un limite alla quantità di
informazioni che possiamo trasferire quanto velocemente
quell’informazione può trasferire e così via
c’è solo ci sarà sempre
qualche latenza di base che prendiamo così
il coordinamento è qualcosa che noi come
ingegneri isolati via via rendiamo più piccoli
invece di cercare di ottenere ogni volta a
messaggio arriva
non andiamo a tutti i computer
e vai ehi lo possiedi questo lo sai
hai quest’uomo invece hai questo
ciò che facciamo è guardiamo gli ID e otteniamo
quei sistemi quando vengono a concordare
su cosa
Io … va ma loro lo faranno
coordinare su questo è perché un TC d
esiste perché esiste zookeeper perché paffuto
over at google esiste perché sono
questi posti in cui vogliamo cordonare
fuori coordinamento dove le modalità di guasto
sono difficili dove la chattiness
succede e lo rende piccolo e piccolo
il più possibile o anche troppo
comprensibile e una corda più lunga
possedendo fuori dei problemi abbiamo un simile
cosa quando la tua fantasia è stata distribuita
i sistemi qui dentro che arrivano e danno
discorsi o altro che per te che hai
come la maggior parte della gente qui voglio dire che ho
ho un database e alcune applicazioni web e a
mucchio di sistemi che parlano a uno
un altro proprio come tutti gli altri qui
i trucchi che facciamo per la distribuzione
sistemi siamo basati sull’enorme
quantità di letteratura
per i sistemi a macchina singola da trasportare
attraverso mentre stiamo facendo distribuito
i sistemi funzionano se ho incontrato probabilmente possono andare bene
nella memoria significa che ne hai sessanta
anni di ricerche su cui contare su di te
60 anni di biblioteche che sono state
sistemi e strumenti costruiti che sono stati
progettato per te intendo se riesci ad adattarti
in memoria puoi eseguire awk su di esso e
puoi fare tutti i dati di analisi te
volere in nessun momento a tutti e così se possiamo
ma distribuirebbe i sistemi che abbiamo
l’ho fatto solo in produzione per
20 anni e un po ‘di più e il
quantità di ricerca e strumenti e
la disponibilità per quella roba è molto meno
e così troviamo che non solo otteniamo
risultati più rapidi e migliori inserendo
cose in memoria insieme a causa di
il modo in cui funziona la coerenza della cache e il
esiste un modo di raggruppare ma anche perché noi
può solo spingerlo al nostro già
strumenti esistenti e quindi vogliamo trovare
posti dove mettere tutto in una memoria
un posto ed è in realtà un utile e
buon design quindi non lo abbiamo diffuso
fuori attraverso l’ intero cluster, ma invece
coordinato e consolidato ok ora di
Certo, abbiamo parlato di alcuni dei
Praticità qui bene il
Praticità che devi costruire
come stai lavorando su questa roba è questo
idea di contropressione
viene dall’impianto idraulico che io davvero
come l’infrastruttura che faccio
come la difesa della casa e cosa no
perché penso che l’instructure sia super
importante e contropressione è un’idea
dall’impianto idraulico in cui hai questi
tubi molto grandi e c’è in realtà a
quantità di acqua molto variabile in
loro in qualsiasi momento a causa di come la pioggia
funziona e come i serbatoi funzionano così tanto
tubi hanno molta pressione e
cambia molto spesso ma alla fine di
il gioco per riempire queste bottiglie d’acqua a
tagliate fuori l’acqua dal rubinetto
sono piccoli tubicini che tu non hai
voglio buttar fuori ma allora cosa fanno gli idraulici
fare per assicurarsi che questi
variazioni gigantesche in acqua non distruggono
le nostre case e causa come inondazioni gigantesche
dentro la pressione del pozzo posteriore fanno
questi sistemi e disegni in modo tale che quando
l’acqua scorre anche quando arriva troppo calda
duro nei nostri tubi più piccoli e dire ottiene
spinto fuori quando quella pressione dell’acqua
raggiunge un certo livello e c’è
in realtà piacciono i sistemi e i progetti
ovunque in tutto il nostro impianto idraulico
sistema compreso all’interno del lavandino
generalmente se vedi quel piccolo cappuccio
questo è in realtà nel tuo sink che è come
un rinterro va bene è l’idea che il
stesse metafore che si applicano al software come
beh ci devono essere delle reazioni per
quando stai assumendo troppo carico o
i tuoi sistemi cadrà e loro
cadrà in modi che sono impliciti
e difficili da debug arriveranno
fuori come è lento invece di esso
restituire errori ed è lento è molto
più difficile da risolvere di quanto non sia
restituendo errori avrai un mucchio
i problemi di frammentazione avranno
problemi di domanda spazzatura che stai andando
avere solo timeout e luoghi bizzarri
che non ti aspettavi tutto perché noi
non se non ti costruisci di nuovo
la pressione va bene così è fantastico Jeff
non mi hai convinto che c’è
qualcosa chiamato “back pressure” suona
utile di cui parliamo bene
la forma ingenua di esso è appena caduta
messaggi sul pavimento se arriva un messaggio
in e il tuo sistema è sovraccarico di uno
le cose più facili che puoi fare è solo
diciamo ok, restituisci un messaggio ok, ma
in realtà non fare nulla con il messaggio
questo non è il solito ma alcuni
i sistemi in realtà possono andare addio a questo io
consigliamo vivamente di aggiungerne alcuni
metriche in modo da sapere quando sei
facendo questo nel caso qualcuno si arrabbi
in ritardo
ma un altro naturalmente meglio è
ritorno messaggio di errore di sovraccarico
le risposte sono un sacco di sistemi
questo naturalmente l’ho costruito al
Server web Twitter quando siamo andati
su qualche umile numero di dumble di
richieste al secondo sapevo che queste
i sistemi non sono stati in grado di gestire sperimentalmente
che molti sistemi e così invece di noi
sto diventando davvero lento e causa
timeout e cattivo comportamento
in realtà rifiuteremmo i messaggi e otteniamo
un allarme sparato dicendo che stai prendendo
un sacco di messaggi su queste macchine
andare a capire che cosa sta succedendo o fare
queste risposte di sovraccarico più veloci sono molto
molto comuni sono molto molto utili
perché i clienti in genere possono gestire
sovraccarico meglio di un campo server
i clienti sanno se possono fare un tentativo
i clienti sanno se vogliono provarne un altro
i clienti della macchina sanno che forse possono
dire all’utente che sono come hey questo
la funzione non funziona al momento, quindi tu
voglio dirti che vuoi ottenere i clienti
per fare questo lavoro non il server il
il server è come avere altro lavoro da fare
certo che è un altro piccolo
cosa di contropressione come timeout e
back-off esponenziale s– time is an
importante come una risorsa importante per
il tuo cluster come memoria come CPU il tempo
dei tuoi utenti è prezioso che vuoi
arrivare verso di te sa 100 millisecondi
rendere le risposte che è fondamentalmente il
limite della percezione umana dove siamo
capace di distinguere visivamente
cose a circa 100 millisecondi quindi il
più vicino ottieni 200 millisecondi più
si sente un’esperienza magica e meravigliosa
per i tuoi utenti va bene tornare indietro
contropressione parliamo di un altro
la praticità qui distribuisce e rilascia
non sono la stessa cosa e tu no
voglio che siano la stessa cosa questa è una
tecnica classica che era in origine
Penso che Flickr forse abbia parlato di
che nel lontano il giorno in modo da chiudere il
SmugMug credo che le flag di feature siano un
idea da una prova dell’ape dove hanno dato
due diverse UI testano due diverse UI
progetta per gli utenti e poi li ha presi tu
sapere capire quale voleva
ed era una bandiera caratteristica di come
molta percentuale che avrebbero dato a ciascuno
progettare per l’utente è così che ero
originariamente creato ma puoi effettivamente farlo
usa questo come
sistemi distribuiti massivamente potenti
strumento questo è in realtà uno dei migliori
le cose che puoi fare è aggiungere funzionalità
contrassegna e aggiunge resilienza al tuo sistema
come funziona è come questo ogni volta
stai unendo il codice in te continua così
aggiungi come una piccola affermazione e
sembra qualcosa del genere questo è il
uno che usiamo che Twitter si chiama The
Sidro e per ogni richiesta che arriva
o qualsiasi equivalente che tu abbia
faresti un hash e prendi un modulo e
includere come le chiavi il nome delle funzionalità
nome o qualsiasi altra cosa per accertarsene
era ben distribuito o qualunque cosa e
basta scegliere un percorso di codice o vero o
falso e quell’interruttore era qualcosa che
si potrebbe effettivamente cambiare un runtime da
un altro sistema e riceviamo aggiornamenti dal vivo
entro un minuto o giù di lì e andrebbe giù
avremmo scelto di loro agli utenti di inviare verso il basso
un’app coop PAP o un altro percorso di codice
e puoi farlo in modo semplice per struttura
roba per esempio se ne hai una nuova
sistema di storage che si sta utilizzando per
utenti ma non sai se sta andando
essere in grado di gestire tutti i tuoi diritti
percorso se puoi gestire tutto il traffico
si dovrebbe mettere su un prototipo e inviare
Oscuramente senza usare le risposte
in realtà basta duplicare i diritti a
la tua memoria normale e poi ad alcuni
percentuale inferiore a quest’altro più recente
spazio di archiviazione e lo verifichi effettivamente
e poi fa cose simili dove se
stai iniziando a utilizzare i dati da un nuovo
sistema e leggendo da esso puoi iniziare
hai una bandiera decisiva che ha deciso
flags fa semplicemente entrambe le query e questo
li confronta e in realtà dice
tu come stai bene, in realtà
usalo regolarmente per ogni migrazione
sistema abbiamo mai fatto un sacco di supporto e
gioca sulla monorotaia che tireremmo fuori a
archiviazione utente o archiviazione di un grafico sociale
o qualsiasi altra cosa e avremmo effettivamente guardare
al vecchio sistema in cui ci troviamo
posto e il nuovo sistema vorremmo solo
confrontare i risultati è un trucco pulito
e puoi farlo solo per il codice normale
percorsi che è fantastico è che aggiunge
resilienza solo per i normali percorsi di codice come
bene dove non devi preoccuparti
come hey stiamo andando a un deploy che facciamo
questo un sacco di Diciamo che ha fatto questo molto
di criptare dove stiamo andando a fare
distribuire una funzionalità che ci piace ma in
caso che vada male, vogliamo
modo rapido per disattivarlo senza a
distribuire hanno un grande sistema di distribuzione
su criptiamo è molto veloce ma se
stai facendo più distribuzioni o hai
ho ricevuto un sacco di patch in una volta
non devi affrontare l’unione
conflitti e scioglimento di cui hai bisogno
fare per distribuire il nuovo codice così tanto
più facile da disattivare la funzione e
significa anche che puoi spedire senza il
funzione attivata attivandola per a
un po ‘vedere se funziona a tutti e
quindi riaccenderlo fuori e si può fare
questo è il modo sperimentale in questo modo
il tipo di scienza che si può lavorare su
mi sto avvicinando in tempo così andrò
devo muovermi un po ‘veloce ma lo faccio
cosa – che cosa è una cosa su questo se
si inizia a fare un sacco di flag di funzionalità
le persone avranno che avrai
gente che potresti avere o ne avresti
reazioni a queste se le affermazioni ci sono
sarà un sacco di ogni pezzo di codice
devo fare una cosa tipo di domande
non dovrebbe essere questo non potrebbe essere
più semplice e la risposta è intendo che puoi
fare alcune cose con oggetti proxy
un altro conosci il disegno di fantasia
roba ma alla fine della giornata questi se
affermazioni che stanno scambiando locali
complessità per resilienza globale e
semplicità globale e una volta che iniziamo
pensando di distribuire i sistemi in
in questo modo possiamo fare trade-off
tra la complessità locale qui in ordine
per ottenere la semplicità globale ovunque
stiamo pensando in modo molto più forte
modo resiliente ok
questo implica anche le versioni mentali
sono la norma con cui ho parlato di bottom-up
implicitamente sulle migrazioni sul nuovo
sistemi su come spostare i dati
tra di loro e questo è vero per
tutto ciò che avrai multiplo
versioni dei sistemi che puoi avere
più versioni del software che sei
gonna più versioni dello stesso
software fuori le tue versioni mentali del
dati degli utenti in diversi sistemi e quello
non è normale ed è strano che sia
molto stressante la prima volta che tu
rendersi conto che c’è un intero set di nother
degli stati di fallimento che avrai
preoccuparsi ma è normale
questo e va bene e tu no
avvitare facendo che, ovviamente,
non voglio lasciarlo impazzire
nocciola ma avrai questo problema
questo è solo l’essenziale nuda di
facendo distribuire anche i sistemi molto
rapidamente loro
gli scheduler ne valgono davvero la pena
se hai più di poche persone o
più di alcuni sistemi che eseguono I
in realtà lo uso solo per le mie cose
perché non ho mai voluto toccare lo chef o
fantoccio o ansible mai più così semplicemente
come alcune cose del motore del contenitore di Google
qualunque sia in realtà molto utile
perché ti danno un intero set di
distribuire strumenti e un modo di pensare
i tuoi sistemi che ti danno di più
efficienza intendo intendo come se avessimo un
un sacco di discorsi di Kubernet a questo
conferenza quindi non voglio darti il
passo per kubernetes ma c’è a
motivo per cui queste cose esistono e perché
sono così carini come gli stratagemmi
più facilmente diventano standardizzati , inizi
pensando a queste cose come a costruire
blocca invece come ideale platonico
macchine che eseguono un servizio
solo e inizi a entrare in te
lavorare su un livello di astrazione okay
questo era in realtà come uno dei
ragioni per cui quando siamo arrivati ​​quando ero su I
non può parlare uomo lasciatemi dire c’era
una grande quantità di anti-spam che noi
ucciso e io lo associo direttamente
con la nostra capacità di giocare su bezos nel nostro
primo trimestre di esistenza sul
lo spam della squadra anti-spam era enorme
problema imbarazzante per Twitter e it
è diventato molto rapidamente, non così grande di un
affare perché questa squadra era molto
efficace e aveva turnaround molto veloci
che in precedenza non eravamo in grado di farlo
potrebbe tirare fuori nuovi sistemi che potremmo inserire
su nuovi progetti è stato fantastico oh sì, ora
Farò molto velocemente da quando ho ottenuto un
un paio di minuti rimasti qui lo farò
un po ‘di leadership di pensiero sono così tanto
davvero difficile avere tre smart diverse
cita tutto in una volta che è veramente come
Vorrei raccomandare se sei su OS X dare
che uno sparo ci vorrà a
trucco okay la prima cosa è che io
mai e poi mai e poi mai voglia di ascoltare
un altro ingegnere del software lo dice mai
qualcosa è politico e quindi cattivo
la collaborazione è politica se vuoi
lavorare in sistemi di distribuzione che significa
che tendiamo a lavorare di più
persone con cui tendiamo a lavorare di più
team e perché il web esiste, lo siamo
andando a lavorare con organizzazioni esterne
di noi stessi ne useremo altri
servizi che useremo per le altre persone
codice e questi sono i problemi delle persone prima
come le nostre cose tecniche le cose che
Ho parlato per la maggior parte di questo
è un piccolo problema
in uno spazio sociale più ampio il tipo di
roba di collaborazione che coinvolge le persone
migra al tuo sistema persone per pensare
sul tuo sistema per apprezzare il tuo sistema
questi sono come problemi sociali loro
richiedono loop di feedback tra non solo
computer ma umani e se lo siamo
disposto a parlare di come la comunicazione
funziona per sistemi e macchine che dovremmo
assolutamente in grado di parlarne
parlare degli umani oshi impegnarsi proprio come
profondamente in quella roba è vero anche io
andrò a letto un’ultima volta che ne avrò di più
bugie che non parliamo molto di
moralità ed etica ai discorsi della conferenza
a meno che tu non stia facendo cose specifiche per
e ho intenzione di darvi alcuni siamo
lo farò perché è importante
abbastanza e perché quando ho tenuto questo discorso
nel 2013 una versione di questo discorso Tory 13 I
era anche in un che stavo letteralmente lavorando
risposta alle versioni di Snowden che cercano
fare in modo che le grandi organizzazioni
non poteva raccogliere i nostri dati utenti ottengono un
chiave e poi tornare indietro nel tempo e
leggi tutti i dati degli utenti perché cosa
le organizzazioni stanno facendo è possibile essere d’accordo
come ci sono alcuni stati nazione
che sappiamo che lo stanno facendo esplicitamente
il che significa un mucchio in più o farlo noi
avere organizzazioni che sono letteralmente
raccogliere più di Internet
traffico in quanto possono far guerra al traffico Internet
hanno macchine e vari occhi PS
questa non è la pastella tempura II che ha
stato conosciuto per almeno cinque anni
questo è ben documentato più ordini
stanno facendo questo che stanno raccogliendo tutti
del traffico Internet tanto quanto loro
può
crittografati non criptati a loro non importa
preferiscono la non criptata perché allora
possono facilmente tornare indietro
tempo e vedere ogni sussurro tra amato
quelli e amici possono usare questi dati
per interrogare all’indietro e vedere un intero
storia delle cose che abbiamo sussurrato
alle persone che amiamo e che non mi piacciono
che io non credo che così sia
e quindi dobbiamo costruire sistemi che
sono elastici per questo c’è un motore
necessità per noi di crittografare tutti i nostri
i dati è più che cecily per noi
crittografare i dati degli utenti per creare un sistema
che pensa a queste cose da costruire
la crittografia indiana da costruire al
molto meno HTTP è un default è anche un
necessità morale per noi di minimizzare il
quantità di dati che stiamo mantenendo
c’è una ragione per cui il PR di GD è
accadendo in Europa potresti essere familiare
con esso è una nuova normativa sulla privacy
imposto dall’Unione Europea molto
le persone sono sottolineando su di esso è
un po ‘difficile ci sono certamente
problemi di alcune cose che fa schifo su di esso
una delle cose che il motivo per cui è stato creato
la ragione per la sua esistenza la ragione
il motivo per cui l’Unione europea va così duro con la privacy è
perché i tipi di dati che il nostro
sistema raccoglie o questo è il tipo di
dati che i nazisti letterali usavano nel rivetto
guerra per rintracciare e uccidere persone e noi
hanno organizzazioni che stanno cercando di
accedere a questi dati oggi e così noi
sono ad un punto ora dove è il nostro dovere come
ingegneri del software come implementatori di
assumere questa nuova attività per eseguire l’hashing IP
se abbiamo bisogno che l’hashing IP faccia qualcosa
Gli indirizzi IP se non ci interessa a questo proposito
per rimuovere quanti più dati utente possiamo se
non lo useremo
questi sono requisiti morali e noi
non può ignorare loro più bene questo è
esso
e farò domande ora che ero
chiedendo come andate specialmente
per la crittografia sul tuo social
aspetto qui come si va a evitare
le persone raschiando e usandolo per sì sì
ci sono un paio di trucchi che arrivano
lungo farò un po ‘d’acqua qui
ci sono alcune cose implicite che hai
evitare di utilizzare ID auto commettendo aria in
ordine per i dati dell’utente o qualsiasi altra cosa
perché è molto facile accidentalmente
iniziare ad autorizzare ogni utente o alcuni
sottoinsieme di utenti se riescono a indovinare
uno spazio ID possono indovinare il tuo spazio ID
sei fregato quindi prova a farlo
un
idea unica abbastanza casuale ne fai un po ‘
hashing o qualsiasi altra cosa se hai bisogno di allentare
e gente un sacco di gente fa questa roba
l’altro è che stai per te
dovrò costruirci fuori
corso che limita il tasso che puoi costruire
in un mondo in cui sto parlando
minimizzazione dei dati che è possibile isolare
le cose che devono sapere su IP
indirizzi puoi anche fare questa cosa
sfortunatamente l’hashing IP non può
darti un design in questo momento, ma io ho
uno che potrei dirvi su come
hash ip’s un paio di persone hanno fatto
in realtà un bel po ‘di persone lo hanno fatto
ma nessuno lo ha scritto in pubblico
posto che è molto strano quindi potresti
fare hash indirizzo IP che puoi fare tasso
limitando naturalmente la gente fa molto
che per utente consigliamo vivamente di
la maggior parte delle tue cose stai raschiando
quello è stato raschiato è non so il
dettagli del tuo sistema, ma presumo
la maggior parte da qualche parte collegato così vorrei
consigliare di limitare il tasso e
associandosi all’autenticazione
roba di solito è più facile se la tua
il sistema di autenticazione vive al di fuori di
la tua app principale, penso che tu inizi a farlo
cose davvero interessanti quando non lo sono
legato direttamente e tu in effetti passi
come invece della tua app che fa tutto
il lavoro di autenticazione e lettura
biscotti e quant’altro in realtà ne hai uno
strato di fronte ad esso che rimanda a
intestazione ID utente dopo aver eseguito il cookie
lavoro e puoi farlo normalmente
limitante la velocità molto più facile che non ci
tipo di sistema ma è difficile è così
dipende dal sistema si si, hey questo
cosa usi per ottenere visibilità
anche le architetture guidate mi dispiace tanto
l’eco è davvero male quassù
che tipo di tracciato usereste per
ottenere visibilità in anche guidato
architetture architetture event-driven
che tipo di tracciato useresti?
per ottenere visibilità sì così tipicamente che cosa
la maggior parte della gente è simile in movimento
linguaggio di programmazione hanno questa idea
di un oggetto di contesto e tu lo passi
intorno a questo in realtà davvero davvero
Comune
Twitter che avevamo integrato in finagle
come se fosse pazzesco
funzionale a qualsiasi cosa e lo era
in realtà piace un parametro implicito
fondamentalmente, ma in realtà passi intorno a
oggetto di contesto e si può tirare un nuovo
associare ID gara con esso e lo fa
sembra pazzesco perché sei come non lo farei
che contattare un oggetto deve andare
ovunque e la risposta è sì qualsiasi
mi chiedo che Network IO è dove a
oggetto di contesto con alcuni dati di traccia
per andare ed è dove quei trade-off
come ho detto se le dichiarazioni che prendi
su alcune complessità vocali per aggiungere
la resilienza globale fa schifo ma è a
cosa così uno dei nostri prodotti ha un
un po ‘di un problema con gli spammer
in questo momento e stanno effettivamente lavorando
su un’iniziativa hanno chiamato lo spammer
martello sì, ma mi stavo chiedendo cosa
tipo di strumenti o tecniche come te
trovare più efficace con l’identificazione di nuovi
sistemi sì sì okay quindi posso darti
come una veloce storia evolutiva di
l’ anti-spam su cui ho lavorato
prima cosa una delle cose che
non puoi fare la prima cosa ma
deve essere il numero due numero tre
ti consiglio vivamente di fare un
shopping per un grafico e questo è per te
e il tuo team sta guardando che ce l’ha
per essere un grafico di quante cose
hai impedito di uscire e quanti
gli utenti che hai sospeso e ci si sente davvero
buona vi sentirete ci si sente molto bello
rovinare il giorno di qualcuno che è una persona cattiva
la prossima cosa avrei dovuto dire è
certo che non riusciremo mai a risolvere
spam
nel complesso abbiamo davvero bisogno di quello che sei
stai per essere fatto
rendendo lo spam economico che non hai
per sbarazzarsi di tutto ciò che devi fare
renderlo troppo difficile in troppo costoso
per loro di volerlo fare c’è
in realtà anche vero per molestie e
per un abuso simile sui tuoi sistemi che hai
lo stesso anno non puoi sempre liberarti
di tutto ciò, ma possiamo farcela
indesiderabile fare così va bene il primo
la cosa che fai è che non vai per un melone
non andare per l’apprendimento automatico non lo sei
c’è ancora ciò che puoi iniziare con
euristiche molto semplici di come quante
serrature è questo utente che ottiene dalle persone
che a loro piace seguire o agiscono
rispondi e in realtà ne hai solo alcuni
come numeri barebone di come un utente
oltre questo periodo di tempo il cui inizio
questo molti blocchi e ha detto questo molti
i tweet possono essere applicati a qualcun altro e
questo molti blocchi da quelle persone che
ha risposto di solito solo un po ‘ stupido
numeri euristici e inizi qui
e quello che accadrà è se i tuoi spammer
sono intelligenti ma non lo sono ancora probabilmente
se non si dispone di anti-spam
soluzioni ancora se non sono ancora intelligenti
potrebbero semplicemente rinunciare a qualcuno di loro
molto rapidamente capirà il
linee della tua euristica del tuo
conta e scivoleranno sotto di esso
ma puoi fare come la maggior parte del lavoro
con quello quei sistemi semplici e poi
quello che puoi fare è iniziare perché tu
non andare a lavorare su ml perché ml era
un problema più complicato, ma è possibile utilizzare tale
dati per iniziare a costruire ml e te
può anche fare cose che devi costruire
cicli di feedback non si tratta di
positivi e falsi positivi quindi tutti
giusto questo è in realtà una modalità di fallimento di
un sacco di social network dove hanno
modi per dire che qualcuno come spammy bene loro
non hai modo di dire la tua gente
che non sono spam questo è il perché
Facebook ha questa altra casella di posta è per questo
Gmail ha una cartella spam di cui hai bisogno
feedback loop in entrambe le direzioni e
dai loop di feedback più il tuo
sistemi euristici più alcuni consigli da
la tua fiducia e sicurezza sono le persone
che sono a terra come maneggiare
sospensione e quant’altro si può iniziare
costruendo un vero robusto automatizzato
soluzione anche ogni azienda che conosco ha un
sistema in cui possono applicare reg X’s
ai messaggi in modo che gli agenti possano collegarsi
reg X’s e fai fuori la gente
tutti costruiscono che è super
potenti hanno sempre un incidente
dove l’espressione regolare non andava sempre
succede ma puoi costruire reti di sicurezza
intorno a quella roba e questo è molto
primo sistema comune se sei come all’inizio
giorni stavo parlando con euristica e
reg X’s e roba è come non il peggiore
cosa nel mondo e può essere
asincrono non deve essere dentro
nella giusta direzione puoi lasciare il messaggio
entra e poi
rimuovilo e poi costruisci da lì
è una coppa che potremmo parlare dopo
scusa mi è sembrato apparentemente un milione
opinioni su questo di cui parli
amore c’è un mucchio di idee
si
chiunque altro sì dispiace così uh basta
ha detto che se le dichiarazioni aggiungessero locali
complessità ma avrebbero globale
la semplicità corretta si chiama
resilienza e poi anche spesso
semplicità globale si potrebbe spiegare
che come sarebbe una dichiarazione
affermazione sì sì okay, quindi quello che posso
più facilmente indirizzare il globale
lato di resilienza di questo il globale
semplicità dovrai lavorare
dovremo camminare per un giardino
percorso la resilienza globale viene perché
puoi risolvere più facilmente più rapidamente
bug disattivando funzionalità e puoi
anche distribuire e riportare il codice senza
dover eseguire il commit pazzo unione
soluzione invece e poi fare una distribuzione
e farcela attraverso qualunque cosa venga distribuita
sistemi che hai, puoi trovare problemi
più facile è anche più facile da spedire
codice che forse è meno buono ma puoi farlo
sperimentalmente vedere se funziona e vedere
che tipo di problemi avrà
questo tipo di cose si aggiunge nel tempo a
essere più resiliente e quando dico
semplicità globale, intendo che stanno andando
essere viste quando parlo di semplice
sta in piedi la semplicità di non avere
per fare quelli si fondono impegna non dover
quelli ritornano e poi aggiustano il
codice non dovendo pensare di ok noi
ha fatto tutto questo lavoro e noi quello che non abbiamo fatto
rendilo compatibile perché noi
aveva tutte queste dichiarazioni se accese
perché non avevamo questi perché noi
non pensare in quel modo che
si sta andando ad iniziare dover pensare
circa quando aggiungi queste dichiarazioni if
inizi a immaginare all’indietro
compatibilità integrata e quando si
iniziare a farlo si inizia a dover
preoccuparsi di cose come ok se rotolo
torna questa patch che significa anche dopo
rollback come modifiche allo schema o
queste altre modifiche dei dati che abbiamo fatto a
questi altri sistemi e questo è
complicato ed è difficile e così
richiede un profondo pensiero introspettivo
ogni volta che lo fai quando è solo questo
insetto stupido per ogni piccolo insetto
distribuisci che hai fuori invece di
costruendo queste bandiere caratteristiche se tu
pensa a queste cose con le versioni precedenti
compatibilità e flag di funzionalità
inizialmente e in anticipo
hai tu ottieni risposte migliori
e puoi pensare a questi sistemi in
e un modo rapido puoi anche mano
questo a Sres
o ops la gente o qualunque cosa tu li chiami
dove possono andare oh abbiamo appena schierato
questo numero di cose e abbiamo queste
attiva o ci sono problemi
con questi sistemi e sappiamo che se
il nuovo sistema inizia a diventare instabile
Caduta di CUDA o qualunque cosa possiamo deciderlo
fuori e possiamo possiamo trasformare la funzione
sventola e in realtà abbiamo come a
è un’interfaccia molto più semplice invece di
dovendo affrontare ogni problema
frontalmente è una specie di cosa sto ottenendo
Credo che abbia un senso tutto giusto che
è stato fantastico e rinunciare ancora una volta
per Jeff
[Applausi]

Please follow and like us: