
um prima di tutto grazie per essere venuti, lo so
la maggior parte di voi è bloccata qui perché è vostra
i voli sono domani e le persone che
Potrei andare a prendere il treno a casa, ma io sono
solo scherzando grazie mille per
arrivando a questo discorso resiliente predittivo
pipeline di dati solo per ottenere uno spettacolo di
mani su quante di voi effettivamente lavorano
le pipeline di dati vanno bene così sembrano dieci
per cento non male quindi un po ‘ su
io lavoro in una piccola startup di software in
samma-tee-oh chiamato agari e prima
diciamo circa un anno fa ho lavorato a
LinkedIn Netflix ebay e etsy e quello
quelle aziende che lavoro principalmente in ruoli
occupandosi di ridimensionamento e ridimensionamento dei dati
Sono anche un co-chair per q con san
francisco e nel mio tempo libero sono un
committer su una nuova nuova incubazione
progetto chiamato flusso d’aria apache flusso d’aria
e riporto anche a tre piccoli
la natura e sua madre in quella foto qui sotto
quindi potresti chiederti perché è un
la pipeline dei dati parla sempre di questo
la disponibilità è sempre traccia disponibile
quindi per lo più sai sempre sul lavoro
come tradizionalmente focalizzato sul
disponibilità di sistemi di servizio e
i sistemi di servizio sono come in genere
sincrono o semi-sincrono da semi
sincrono voglio dire che c’è una sorta di
aspetto asincrono ad esso ma è
di solito sono limitati nel tempo
transazionale e il loro più spesso
sensibile alla latenza e perché è questo
tracce non rappresentate più di te
conoscere la comunità della pipeline di dati e
è principalmente perché sai che le interruzioni sono
grandi novità proprio nel 2007 era un po ‘
un po ‘ di un distintivo d’onore I intorno al
tempo nella zona della baia per il tuo sito per andare
giù perché significava che avevi un te
sai che il pensiero era che avevi molto
di traffico e il tuo sito è andato giù e
sai che penso abbia dato uno dei
i pitch che AWS ha fatto in quel momento era
sei una startup che non puoi permetterti tutto
questa infrastruttura solo per essere attiva
La prima pagina di techCrunch per voi due
giorni quindi usa ec2 per scalare
e la realtà era nel 2007-2008 cuz
nove un sacco di siti che sono stabili
oggi non siamo così stabili all’epoca e
in realtà pensavano al loro down
pagina come se l’avessero ridisegnata molte volte
per avere il più cool il mio sito è in fondo alla pagina
e tu conosci il problema con questo
dopo un po ‘il tuo sito è inattivo
diventa davvero il tuo marchio e per il
i primi anni di persone di Twitter davvero
riconoscere la balena fallita e quanti di
hai usato etsy alza la tua mano se
ne hai sentito parlare o no, così lo fa
qualcuno riconosce chi questo è il tuo aumento
mano se tu riconoscessi ora così lui è uno
dei fondatori il suo nome è Haim e lui
era simile a DBA / sysadmin per C & S
stava andando avanti parecchio nel 2007
e poi è diventato come un culturale
movimento nella comunità di produttori a
roba artigianale su di esso essere giù e it
è diventato come uno dei popolari
categorie su etsy ora come ho detto
sai che di solito questa pista parla di
sistemi sincroni o in semi
sistemi sincroni ma direi questo
è più importante per la maggior parte del
siti web moderni che iniziamo a concentrare
sui sistemi di flusso di dati perché il flusso di dati
i sistemi sono probabilmente più importanti per
la maggior parte delle aziende online oggi e te
sanno che hanno queste caratteristiche
sono asincroni e non sono
veramente sensibili alla latenza ma lo sono
rendimento sensibile e perché?
fai la dichiarazione giusta così se vai
per esempio i tuoi siti preferiti
netflix in alto a sinistra o addirittura spotify
ci sono pipeline di dati che sono
costruire modelli di personalizzazione a
prevedere cosa ti piacerebbe vedere o
ascoltare e tenerti impegnato con il
sito e nel caso di cose come
Pandora o io non dovremmo davvero tipo di a
più come Netflix che hanno un
modello di abbonamento che porta a churn
riduzione giusta perché non vogliono
le persone che escono lasciando il sito per
siti di social networking come LinkedIn o
Facebook troverai spesso quelle persone
potresti conoscere il widget giusto ed è super
importante per te per questi social
siti di networking per continuare
per far crescere il limite del loro sociale
rete e per esempio nel caso di
di LinkedIn right linkedin ne fa sessanta
per cento dei suoi soldi da reclutatori
trovandoti e qualcosa come settanta
la percentuale dei profili non aveva nulla
oltre il nome giusto aggiungendo altro
dei tuoi amici come Lincoln spera di
vergognandoti un po ‘nel compilare
il tuo profilo in modo che i reclutatori lo faranno
trova te e poi sai che possono
una sorta di ottenere di più si sa profitto da
da quella parte, quindi è così
molto importante che tu conosca la rete
cresce per questo tipo di società sul
in alto a destra riconoscerai amazon e
le persone che hanno comprato ex comprato y e
la gente ha comprato xey insieme e ancora
conosci un sacco di clic e acquisti
capita attraverso quella rotta per amazon e
più in basso sotto ebay così sette anni fa
in realtà ho costruito aiuto per costruire la classifica
algoritmo su cui è ancora attiva l’impostazione predefinita
ebay ha chiamato miglior match e che cosa
essenzialmente fa classifica i risultati
da cosa viene acquistato come adesso
o negli ultimi dieci minuti al fine di
dare la priorità come make renderla più alta
probabilità che ciò su cui clicchi
in realtà vengono acquistati e collegati per sembrare io
significa II VA otterrà una fetta più grande di
che profitto così tutte queste attività
sai che dipendono da queste condotte e
in un caso di base è come un live
pipeline o qualunque cosa tu stia comprando
guardando le offerte per quel genere di cose
ed è come cambiare l’ordine di classifica
dei risultati al volo quindi spero ho
ha reso il caso perché tu sai che è
importante avere un always-on dati
pipeline e in un moderno sistema oggi
è lentamente architetture che
fornire entrambi fornire una porzione
architettura sempre attiva e dati
architettura della pipeline sempre attiva
e questa è una specie di design che potresti
dì per questi sistemi a sinistra che hai
ottenuto il tipico servizio come pila o
servendo l’architettura ti divertirai e
bilanciamento del carico seguito da server Web
seguito da un livello di micro servizi quindi
avrai una sorta di livello dati
che è essenzialmente un database
cerca ricerca nella cache di motori di ricerca Eric
grafici di macchine tutto di quel genere di
roba e l’unico errore che sento sia
un po ‘come un punto di inciampo che
ogni azienda è ciò che fa tu
sapere che iniziano ad assumere un paio di dati
scienziati e forse hai visto questo in
la tua esperienza e poi conosci il
gli scienziati di dati iniziano a gestirli
costose query di scansione sulla TB olio
database e presto diventa come a
problema di disponibilità in modo da sapere come
un passo avanti come LinkedIn forse sette
otto anni fa si erano disaccoppiati
sono come il database oltp di tutti
la loro analisi e prodotti simili
come prodotti di dati e in sostanza
c’era uno strato di integrazione dei dati a
quel punto in quel momento era qualcosa
chiamato bus dati ora è Kafka
essenzialmente separando questi due
architetture puoi puoi tenerle entrambe
di loro disponibili e questo è il tipo di
obiettivo di questo di questa diapositiva quindi cosa
sono alcune delle sfide che conosci
mantenendo una pipeline di dati, voglio dire che lo sei
probabilmente molto familiare nel mantenere un
high availability side up right avoid
come singoli punti di errore che ordinano
di cose ma cosa fai per i dati
condutture quindi uno dei problemi è
chiamato un problema di raggio di esplosione, quindi facciamolo
dì che hai qualcuno in bocca a
lavora chi scrive del codice per un dato
lavoro pipeline chiamiamolo lavoro uno e
il lavoro uno legge i dati a e scrive i dati
e dire che il tuo sviluppatore introduce un bug
c’è un altro lavoro chiamato lavoro per quello
legge che i dati siano e scrivano i dati
mare e penso che tu abbia capito il punto
c’è un altro lavoro che lo legge
emette e immette e ne scrive un altro
uscita e infine qualche uscita lo rende
a un sistema di servizio perché alla fine
come i widget di LinkedIn devono emergere
alcuni di quei dati e questo è probabilmente
dove prenderai l’insetto e
se è come un sistema di raccomandazione sei
probabilmente non lo prenderò per un
molto tempo ricordo di camminare lungo il
sale e Netflix alcuni anni fa e
ha incontrato uno dei VPS che ha detto di aver trovato
un bug sono fantastico è come è stato
in giro per due anni ho detto sì bene
ecco i sistemi di raccomandazione che ci sono
probabilmente molti bug che non conosci nemmeno
circa e in sostanza lo sai
la ragione per cui è chiamata un’esplosione
raggio giusto è un bug che era
creato in un lavoro upstream danneggiato
dati a valle e ha colpito un enorme
parte dei servizi e quello che mostro è stato
solo un percorso ma in realtà ci sono
molti lavori che dipendono dalla produzione di
il primo lavoro e così via molti
lavori che dipendono dall’output di quello
quella linea di posti di lavoro quindi è in realtà a
un sacco di lavori in una piramide che
sono essenzialmente influenzati dai dati corrotti
al nucleo quindi perché è questo un?
punto di dolore acuto in aziende come
LinkedIn Facebook e così bene prima di
tutto quello che hai rilevato il bug giusto per te
il prossimo passo è andare sull’identificazione
la causa quindi prima guardi nel tuo come
servire database e dire ok ecco qui
questo dato è male ciò che ha scritto a questi dati
oh questo lavoro lasciami andare e guarda questo
lavoro fammi guardare il suo codice fammi guardare
al suo input e fuori i suoi vari input
e poi entri in questa situazione
che è fantastico se tu sei il mio
ragazzo di tre anni ma non è tanto
divertimento per me giusto sollevando ogni roccia e
cercando il bug e alla fine se
hai ancora un lavoro e la tua sanità mentale
verrai al punto in cui tu
identificarsi con il bug è giusto, noi
trovato il bug così ora cosa abbiamo bisogno di
abbiamo solo bisogno di distribuire una soluzione ma aspettare
questo è solo andando a correggere i dati in corso
avanti e questo bug è stato intorno per
settimane quindi probabilmente è corrotto un intero
un sacco di dati storici e ho bisogno di
scopri chi contattare per favore lasciami
contatta tutte le squadre che possiedono tutte
i lavori che si preoccupano di questo output e
quindi hanno bisogno di fare lo stesso per
tutti quelli che usano la loro uscita e
fondamentalmente questo è ciò che ottieni
hai fatto male alle attività che stai provando
per capire cosa è interessato come fai tu
che tutti sappiano tutto questo
roba e funzionano tutti in modo diverso
le cadenze quindi è un po ‘un dolore così
essenzialmente dopo tutto questo è fatto
hai rieseguito tutti i lavori dappertutto
i dati sono puliti e quindi il prossimo bug
arriva proprio così rapidamente in questo
campo impari che c’è un c’è
alto costo nelle persone tempo e morale
le persone diventano burnout quindi cosa puoi fare
a questo proposito qualcuno verrà e dirà
Ho una grande idea, facciamo di più
testare i test di destra sta per risolvere
questo problema
il test non sempre risolve questo problema
problema in realtà l’in realtà è
il più delle volte non risolve questo
problema perché nei bug delle pipeline di dati
sono nella logica o se tu
non ho cambiato il codice per come un anno
potrebbe ancora rompersi perché qualcosa
nell’input modificato e il dato è
tipicamente semi-strutturati o
non strutturato e per voi di imitare tutti
i modi in cui potrebbe andare male
creare un corpus di test e mantenerlo
test corpus è un enorme investimento quindi a
l’opzione migliore è più come rilevarlo
c’è un problema e il rollback o correzione
avanti come una soluzione di automazione così
quello che vuoi veramente è in qualsiasi fase di
la tua pipeline per essere in grado di rilevarlo
c’è un problema che ti aiuta
identifica essenzialmente ciò che è sbagliato e
poi aggiustalo in avanti o arrotolalo dentro
un modo automatico un altro problema
con pipeline di dati ha a che fare con
la tempestività quindi immagina che io abbia questi
tre lavori di cui ho parlato prima
lavoro un lavoro al lavoro tre quindi l’output
di lavoro si sta per essere letto da lavoro a
l’output degli strumenti di lavoro può essere letto da
lavoro terzo e il terzo lavoro sta per spingere
qualcosa per un sistema di servizio e nel mio
definizione qui un lavoro è uguale a a
flusso di lavoro e questi sono diretti aciclici
grafico delle attività ora diciamo che sto andando
per eseguire questo su un programma giornaliero, quindi corro
Lunedì lo corro martedì, corro
Mercoledì e tutto ciò che è
bene giovedì andiamo a ed ehi è
Venerdì è ora di andare ai bar
giusto, ma qualcosa non sembra fantastico
perché il mio primo lavoro sta prendendo il doppio
il tempo e poi è il fine settimana
sei con la tua famiglia e tutto ad un
il lavoro improvviso sta prendendo 3 volte l’importo
di tempo e ti stai pagando e
quello che doveva essere un lavoro quotidiano
non completa nel giorno la tua auto
nave a e devi entrare di domenica
e aggiustalo perché se non riesci a finire un
il lavoro di un giorno in un giorno che non hai mai intenzione di
recuperare subito così ora hai un problema
quindi la domanda diventa perché fare lavori
in particolare lo spazio dei big data diventa più basso
giusto perché diventano più lenti così io sono
andando a darti in un esempio reale
quindi quello che vedi qui è tempo
performance di
come straordinario, quindi l’asse x è circa due
mesi di dati a punti orari il
asse y è il tempo di attività il tempo
durate espresse qui come una frazione
di un’ora quindi corriamo un’ora
lavoro in questo caso quindi essenzialmente cosa
stai vedendo è una grande varianza di uno
dei nostri lavori questo in marrone è
in realtà una scintilla e il compito scintilla
è in realtà un lavoro o un compito intelligente nel nostro
è che sta prendendo più di
mezz’ora per completare così perché lo fa
ciò accade così si scopre nel primo
settimana di gennaio uno dei nostri dati scientifici
la gente ha iniziato a calcolare qualcosa di nuovo
caratteristiche e questo è perfettamente accettabile
perché è quello che dovrebbe fare
calcolare alcune nuove funzionalità per qualche tipo
del modello di predizione, ma cosa non va bene
è nelle prossime quattro settimane che inizia
diventando progressivamente più lento e
scopre che il suo modello di costruzione o
il codice edilizio futuro stava guardando un
finestra di dati sempre più in crescita
invece di una finestra scorrevole di dati
e di conseguenza stava facendo più a lungo e
scansioni più lunghe e stava solo prendendo
più a lungo per completarlo, quindi lo aggiustò e
poi ha fatto un paio di altri bug per risolverlo
ci sono volute un paio di settimane ma sai che siamo tutti
in buon territorio e siamo tornati giù
a 9 minuti e abbiamo tutti preso un profondo
respiro e come se spingessero il nuovo codice cinque
giorni dopo e siamo di nuovo lì dove noi
erano prima e in sostanza c’è un
regressione ancora una volta e se hai
ha lavorato nello spazio web che avresti
notato negli ultimi anni giusto
questa tensione tra ops e and
sviluppatori proprio dove sono gli sviluppatori
scrivere il codice e poi anche farlo
mantienilo bruciato e poi
c’è una specie di tensione
tra loro bene quel genere di cose è
giocando nello spazio dati che hai
scienziati dei dati di cui conosci questi ragazzi
come il mondo accademico, dai un’occhiata a questo nuovo
algoritmo ho intenzione di eseguirlo e poi
i tecnici del settore sono come il motivo per cui sei tu
facendo questo a me sono così stanco
ormai è così che in realtà sta arrivando a
punto in cui le persone stanno capendo questo
e la scienza dei dati e gli ingegneri dei dati sono
formando singoli team di chiamata come dati
scienza e ingegneria dove possono
lavorare insieme perché l’effetto di a
il nuovo algoritmo sarà una regressione e
c’è
un ciclo virtuoso che dovremmo tutti
accetta essenzialmente che calcolerai
le nuove funzionalità saranno più lente
la dimensione dei dati crescerà
più lento poi smettila di guardare indietro e prova a
come assetto ottimizza e poi continua
e questo è essenzialmente il virtuoso
entra nel mondo dei big data oggi
e anche la latenza è un po ‘giusta
perché siamo un sistema basato sulla velocità effettiva
ma se non riesci a finire te stesso in a
il giorno in cui sei nei guai, così ti ho dato questi
so per tipo di problemi che ho parlato
circa uno ha a che fare con la correttezza
avere un raggio di esplosione grande se ne hai
un bug che influenza la correttezza è
andando a influenzare un sacco di posti di lavoro a valle
e anche la tempestività, giusto, che tipo
di qualità o design desiderabili
i criteri possiamo venire con così abbiamo
per correttezza operabilità tempestività
e costa e prima causa qualcosa io
ho gettato dentro perché sto per iniziare e
abbiamo una quantità limitata di denaro quindi
la correttezza è tutto simile ai dati
integrità non perdere dati non corrotti
non lo duplica se lo fai
predittivo, la distribuzione dell’output
non dovrebbe cambiare troppo tempo a meno che noi
parla di operabilità
mettendo in utensili che fa grano fine
monitoraggio e allerta abbiamo anche bisogno
qualcosa come capacità di copertura rapida e
per costo vogliamo costruire qualcosa
quello è pay-as-you-go che non vogliamo un
mucchio di infrastrutture permanenti che
paghiamo per quando non lo stiamo usando
quindi farò un punto qui quanti
la gente ha visto questo prima di questo tipo
di alzare la mano se hai visto questo
grafico specifico o questa immagine sì sì così
L’ho visto davvero in un discorso e un ragazzo
da etsy ha dato molti anni fa è
su MPT r & MTBF quindi m TT RS tempo medio
per recuperare MTBF è come hai sentito
questo fa male oggi è tempo medio tra
fallimenti giusti e conosci Rolls Royce
sono costruiti in modo leggermente diverso da
Jeep, così le jeep sono costruite per essere abusate
proprio li proprietari li abusano di
amore ovviamente ma è ancora abuso e
si rompono molto bene ma lo sono
anche super facile da risolvere e sono
progettato in questo modo sono progettati per essere
usato
lato dei loro limiti di progettazione a
rolls-royce funziona alla grande sul paese
strade e di fronte all’hotel ma se tu
portalo su una collina che sta per passare
come due mesi in un negozio quindi l’ idea è
come dovresti costruire il tuo sito web o come
dovresti costruire una pipeline di dati dovrebbe
lo costruisci per non aver mai avuto voglia di entrare
come un sacco di test per catturare tutti
possibile problema che può accadere o fare
ti limiti a scrivere un bug
succede che è in produzione hai colpito a
pulsante si torna immediatamente
avere tutti gli strumenti per recuperare
rapidamente e il punto che farò sono i dati
le condutture in passato sono state trattate
nel modo NPPF e sai come arrivare
Personalmente sono venuto dall’alta scala
mondo del web in realtà credo che mttr sia il
strada da percorrere e se vai online c’è un
video di YouTube di un set di marines che prendono
una jeep a parte e rimettendola
insieme e quattro minuti quindi è abbastanza
impressionante quindi come possiamo usarne
strumenti comunemente disponibili per incontrare
i nostri obiettivi di progettazione quali sono alcune cose
disponibile per noi e disponibile per il mio
la società è fondamentalmente amazzonica così noi
iniziato a guardare alcuni dei
tecnologie così solo per avere un senso
la stanza quanta gente usa Amazon
Servizi Web che è eccellente quanti
di te alzi la mano se usi SQS
oh, va bene, va molto bene, quindi sembra
come la metà di voi effettivamente usa Amazon così
SQS per gli altri è una bassa latenza
messaggio altamente disponibile e scalabile
coda è una coda ma non è esattamente
50 ed è basato su pull così effettivamente così io
penso di essere su questo lato così
ecco un esempio per insegnarti come
come funziona quindi immagina di avere
produttori e stanno producendo messaggi
messaggio da uno a cinque in questa coda
e tu hai alcuni consumatori che sono
in attesa di consumare questi messaggi così il
la prima cosa che succede è un consumatore
leggerà un messaggio da SQS e non appena possibile
in questo modo SQS produrrà quel messaggio
invisibile e inizieranno un timer allora
il consumatore in questione scriverà il
messaggio o impegnare il contenuto di quello
messaggio a un database e infine esso
volere
il messaggio che risulterà in
cancellando il messaggio e cancellando il
timer e questo è come funziona normalmente
operazione ora immagina lo stesso scenario
dove un consumatore legge questo messaggio e
ci vuole un po ‘di tempo per scrivere il
messaggio al database durante quel periodo
periodo il timer si spegne e il
il messaggio ora diventa visibile e
disponibile per altri utenti a
leggerlo e così il consumatore il fondo
lo prende commette un accento così questo
questi sono come la semantica di SQS
basato su questo modello puoi effettivamente
implementare abbastanza bene le transazioni
perché finché hai ragione a
database o idempotente e uno
la caratteristica interessante di SQS è questa cosa
chiamato una lettera morta indica che quello era
menzionato in precedenza in una coda di messaggi non recapitabili
essenzialmente è così immagino di averlo
messaggio uno e c’è un problema con
e il mio codice non può analizzarlo così piuttosto
di avere il messaggio uno che intasa il
coda puoi configurare SQS per rimbalzare
il messaggio in una coda di messaggi non recapitati
dopo n tentativi e il vantaggio di questo è
che puoi mantenere un elevato throughput in
la tua coda e anche tu non perdi mai a
messaggio e il tuo codice stesso no
è necessario gestire la scrittura transazionale
di questo messaggio in un altro posto che
potrebbe avere i propri bug SQS ha maniglie
per te e allo stesso modo puoi avere un
avviso abilitato su quella indicazione in modo che
ogni volta che la coda di lettere morte ha
qualsiasi cosa in cui sei impaginato e poi tu
so che c’è una specie di bug che risolvi
il bug e poi si scarica la coda e
non hai mai perso un messaggio un’altra cosa
che usiamo è SNS e di nuovo uno spettacolo di
mani che usano SNS qui così circa 78
le persone possono essere grandiose quindi SNS e
quanti di voi erano la chitarra CAF
comunque Kafka ha parlato ieri, ok, quindi …
questo è simile a Kafka tranne che è
basato su push è anche un argomento ma
è basato su push e non su pull
quindi i benefici di questo sono quando puoi
si pubblica su SNS che invierà in modo affidabile
a tutti i consumatori a differenza di s
sì chiedici, lo invieremo solo a uno
consumatore, ma il lato negativo è che lo farà
fare qualche numero di tentativi per inviarlo
e se non può il messaggio è perso così
c’è un modo in cui possiamo sfruttare questo
bella come multi spinta transazionale
funzione di ciò che SQS aveva che è il
possibilità di salvare e scrivere in modo affidabile i dati
e ci sono io da una diapositiva I
penso di essere davvero fuori da una diapositiva
va bene quindi questo è in realtà il modello
quello che abbiamo l’idea è
fondamentalmente che hai un argomento e il
argomento in questo caso è un argomento SNS e
hai due messaggi nel messaggio uno
e messaggio a e anche tu puoi
amazon ti permette di registrarne due
diversi sq SQ o più SQ s qs
come abbonati a un argomento SNS così in questo
caso abbiamo due SQ s qs iscriversi
l’argomento SNS e ogni volta che pubblichiamo
i messaggi rendono affidabile l’argomento SNS
multi spinto alle QQ di sQ quindi possiamo
avere servizi a valle dei consumatori
a valle di ciascun SQ SQ in modo affidabile
scrivi i dati intendo che leggi i dati
e impegnato in un back-end per guidare
questa casa diciamo che volevamo tutto
dei nostri dati da scrivere su un elastico
ricerca cluster oh e anche ai nostri simili
Cassandra DB non possiamo davvero farlo
un consumatore in un modo transazionale ma
un modo in cui possiamo farlo è attraverso questo
modello abbiamo produttori che producono
messaggi a noi e s argomenti che ottengono
spinto a ciascuno di questi due segnali che abbiamo
gruppi di consumatori separati il viola
gruppo e il gruppo verde il viola
gruppi responsabili di elasticsearch
aggiornamenti e il gruppo verde è
responsabile di come un dbi standard
stampare e questo modello funziona davvero
bene per noi così ora mettiamoli
diversi tipi di tecnologie insieme
per costruire un vero fault-tolerant
gasdotto ma prima di andare lì dovrei
darti qualche contesto su cosa sia l’agari
lo fa prima di tutto che non rubiamo il tuo
le password cerchiamo di impedire ad altri di
facendo così e abbiamo operato nel
spazio di consumo per circa cinque anni così
come l’ottanta per cento del consumatore nelle scatole
a come gmail hotmail yahoo offrono g65
sono protetti da parte della tecnologia
che l’AG ha ricostruito non vedrai nemmeno a
e-mail di pesce nella maggior parte dei casi perché lo farà
essere filtrato dal provider di posta in arrivo
si stanno ora concentrando su come risolvere questo
problema per lo spazio aziendale e
ciò significa che li mettiamo come
collezionista come elettrodomestici in ognuno dei nostri
data center e clienti aziendali
ogni volta che ricevono una e-mail
ci mandano le intestazioni per quell’e -mail
quello che facciamo è usare un modello di fiducia
analizzare l’e-mail per determinare se è
pesce o no e ora questo non è uno spam
problema è come stiamo cercando pesce
pesce è qualcosa di più dannoso e
poi segniamo l’e-mail e poi noi
sai che il nostro prodotto attuale lo mostra
un’interfaccia utente web che sarà il nostro prodotto futuro
effettivamente essere in linea ed eliminare tale
e-mail da ottenere, quindi mettiamoci
questo insieme in un quadro reale
questa è la nostra pipeline attuale in seguito
o non parliamo di un tempo reale
gasdotto ma questo è il nostro attuale lotto
pipeline quindi quello che abbiamo attualmente è
questi collezionisti in the in the in
il selvaggio stanno inviando dati a s3
ogni ora o così creiamo una scintilla EMR
cluster che è una MapReduce elastica
par cluster lo facciamo ruotare e succhiamo tutto
di quei dati per l’ora segnerà
e anche generare alcune statistiche
scrivilo su un diverso percorso s3 che s
tre percorsi scateneranno una serie di
Avvisi o eventi SNS e SQS e lo faremo
avere quello che viene chiamato uno scalare automatico che
inizia con la dimensione di zero spin up
e iniziare a ingerire rapidamente tali dati
nel nostro database in modo che l’ interfaccia utente web possa
vederlo quindi ci sono alcuni vantaggi per
questo modello parliamo prima di come
risolvere il costo e la tempestività
problema quindi
quello che ho appena detto succede durante
corre ma tra le corse non paghiamo a
dime intendo quello che siamo ciò che essenzialmente
hanno corso tra le nostre corse orarie
solo un secchio s3 dove i nostri clienti
può continuare a inviare dati e anche noi
avere un database nel database Postgres
che è seduto intorno ad esso ha dati da
le corse precedenti e un’interfaccia utente web che colpisce
e abbiamo anche una scatola che ospita
flusso d’aria di cui parlerò un po ‘
più tardi e quindi diciamo che è la fine del
ora ed è ora per l’ aria successiva
il flusso farà girare EMR e verrà eseguito
tutta quella cosa in cui tutto diventa
fatto girare per quello per scherzo così questo è
un po ‘come affrontiamo il problema dei costi
per quanto riguarda la tempestività, quindi ho un po ‘di
menzionato il ridimensionamento automatico un po ‘così
di nuovo ho intenzione di chiedere alla folla come
molte persone usano il ridimensionamento automatico qui ok
tre quattro ok, ok, sì, usiamo l’auto
ridimensionare un ridimensionamento automatico è essenzialmente
Soluzione Amazon per la gestione dei cluster
date alcune regole può scalare un cluster
dentro o fuori una dimensione variabile da trattare
carico variabile quindi è tipicamente buono per
nutre i feed di getta può anche essere usato
per mantenere solo un cluster di dimensioni fisse
tutto il tempo quindi è un altro uso per
e come ho detto lo usiamo per
questo caso quindi una delle sfide con
usare il ridimensionamento automatico sta scegliendo il giusto
metrica per ridimensionamento e scala e
scalare dentro e fuori così il nostro primo passaggio a
questo era usare la CPU che pensavamo di usare
cpu sul box importatore per dirci
se il cluster è sopraffatto e
deve essere ridimensionato o se lo è
deludente e sottoutilizzato e dovrebbe essere
ridimensionato in modo che era il nostro primo passaggio a
questo quindi ti spiegherò una sorta di cosa è
sta succedendo qui, quindi abbiamo un’arancia
grafico e quel grafico arancione è
rendimento dei messaggi che arrivano in SQ s
sono come messaggi pubblicati
al secondo e perché non c’è niente
nel gruppo scala automatica la curva verde
che è il consumo di quei messaggi
inizia a zero e inizia lentamente
ramping up
curva blu che è come proprio al
in basso sembra un po ‘
linea che è CPU, ma davvero pensarci
come proxy per le dimensioni del ridimensionamento
gruppo che è essenzialmente ciò che è suo
CPU totale quindi è un proxy per le dimensioni
del gruppo di ridimensionamento automatico, quindi cos’è
sta accadendo è il gruppo di ridimensionamento automatico è
crescendo bene è in espansione e così com’è
espande il tasso di consumo inizia
aumentando e alla fine attraversa il
tasso di produzione dei messaggi perché
dopo che una scintilla è stata fatta essenzialmente
a un certo punto non c’è niente
lasciato a produrre e poi raggiunge
e scende a destra della curva verde
scende giù così e la curva al
in basso mostra un po ‘come un po’
Mesa che è come l’efficacia
del nostro ridimensionamento automatico, quindi cosa stiamo facendo
stiamo usando una media della CPU del quaranta per cento
quaranta per cento CPU come il segnale per
ridimensionamento in modo da dire aah alberi se il
La CPU in media nel cluster va sopra
quaranta per cento aggiungono più macchine al
cluster e quando scende sotto
qualcosa come il dieci percento o cinque
per cento poi iniziare a scalare perché noi
considera che penso al rumore del cinque percento ora
questo dovrebbe funzionare bene ma non è così
e la ragione è una sorta di mostrato qui così
quello che succede è quando ne hai pochi
messaggi lasciati sul SQ SQ che sono ora
in volo e in fase di elaborazione novanta
il percento delle macchine sta facendo
niente e la loro CPU scende al rumore
livelli e poi la media scende sotto
il cinque percento si innesca e poi tutto
all’improvviso invia aw la scala ASG
gli eventi che dice iniziano a ridimensionarsi, ma è così
non intelligente su quale percentuale dell ‘
le macchine stanno facendo attualmente roba è
semplicemente uccidendo macchine come questa e la
macchine su cui stanno effettivamente lavorando
gli ultimi cinque messaggi non sono mai stati completati
in sostanza c’è uno lo sai perché
vengono ridimensionati in modo casuale senza
qualsiasi conoscenza quindi ci sono una coppia
macchine che continuano a cercare di ottenere il
il prossimo messaggio da SQS piace ok io sono
andando a processarlo e il programma di scalabilità automatica
dice che muore giusto, quindi abbiamo dovuto trovare
un po ‘meglio intendiamo fare il ridimensionamento
e la cosa più ovvia da fare era
in realtà utilizzare la profondità della coda, quindi se
ti ricordi dal mio precedente tipo di
progettare i messaggi può essere visibile o
possono essere invisibili quindi facciamo ciò che facciamo
usiamo due trigger di ridimensionamento separati
usiamo un trigger di scale-out basato sul
numero di messaggi visibili in una coda
e usiamo una scala in trigger basata su
il numero di messaggi invisibili in
fare la coda quindi cosa vuol dire in pratica
così come i messaggi vengono aggiunti alla coda
il numero di messaggi visibili aumenta e
continuiamo a far crescere il cluster come a
pallone fino a quando non è rimasto nulla dentro
la coda del messaggio Q visibile e poi
siamo a dimensione fissa fissa e abbiamo solo
inizia a consumare tutti i messaggi e a
quel punto la curva arancione che è il
il numero di messaggi visibili sono tutti a
questo punto sono stati tutti consumati e
quindi stiamo aspettando di scriverli al
DB una volta che va a zero e c’è
ciò significa che non rimane alcun messaggio
consumato e agiamo non c’è nessun messaggio
lasciato agire è sicuro scalare in noi
ridimensiona l’intero cluster e questo
funziona davvero bene per noi così con questo
modello possiamo effettivamente capire entrambi
la nostra tempestività e costo possiamo effettivamente
risolvo quei due obiettivi di progettazione che farò
menzioniamo una cosa con la scintilla EMR che possiamo
effettivamente prevedere prima della corsa quanti
spar tree ha visto risorse di cui abbiamo bisogno per questo
prossima esecuzione basata su alcune metriche, quindi possiamo
in realtà lo ridimensiona in modo che esso
non si imbatte in colli di bottiglia, ma se tu
vuoi sapere di più su quello che puoi
vieni a parlare con me che ne dici?
operabilità e correttezza quindi per
operabilità che stavamo essenzialmente cercando
per una sorta di automazione che può
gestire tutti i nostri flussi di lavoro che volevamo
qualcosa che è facile da gestire facilmente
all’autore come vogliamo l’autore
flussi di lavoro che volevamo ottenere visivi
intuizione che potrebbe dirci sul
stato dei nostri flussi di lavoro e il
prestazioni e le prestazioni e noi
volevo anche qualcosa che integri
con tutto il nostro monitoraggio esistente e
avvisando quindi abbiamo trovato Apache flusso d’aria
in realtà allora si chiamava Airbnb
flusso d’aria e solo molto recentemente è diventato
un progetto Apache così abbiamo iniziato
sfruttando ciò ed essenzialmente ciò che
ottenere è questo è il mio questo non è significato per
tu a leggere ma questo è un senso
un flusso di lavoro scritto in Python e
in sostanza scrivi i tuoi flussi di lavoro
Python prima di questo come LinkedIn noi
usare azkaban che era essenzialmente un zip
file di un gruppo di cause se di un gruppo
di file di config file e uzi che
è stato usato pesantemente a Yahoo era come un
file XML gigantesco e quelli sono orribili
cose da affrontare e qualche anno fa
un Spotify ha scoperto qualcosa chiamato Luigi
che è anche basato su Python ma l’interfaccia utente
non era molto buono e non è anche molto
stabile così quando ho visto questo un pop-up su
un anno fa ero molto eccitato e
poi, quando il tuo codice viene analizzato, lo farà
in realtà ti mostra il grafico il dag il
flusso di lavoro per esso e il flusso di lavoro su
la sinistra è effettivamente usata per gestire il
l’intero oleodotto a destra e tu
in grado di gestire più DAGs molto facilmente noi
avere qualcosa come dieci la maggior parte di loro sono
costruzione di modelli e puoi vedere per qualsiasi
dato a correre quali sono le parti lente di esso
giusto non hai bisogno di scavare in esso
solo questo ti mostra e in questo caso è così
ci dice che eseguo una determinata corsa per 20 minuti
e la parte più lenta è stata la scintilla
ci sono voluti 10 minuti e tu puoi
anche vedere come abbiamo visto prima di uno storico
trend per tutte le attività in un dato
dag dato il flusso di lavoro dal lato alerting
usiamo come usiamo una combinazione di
ops pagerduty e victor risolvono entrambi
lo stesso problema se c’è un problema sul
lato verrà pagina il primo su chiamata e
prova un paio di volte e poi inizia
escalation per continuare a chiamarlo
si integra bene con il flusso d’aria così otteniamo
un certo tipo di allarmi come se il
il flusso di lavoro è lento, manca SLE o è
incontrando la perdita di dati e quando lo fa
che ci scriverà e altro ancora
interessantemente abbiamo integrato con slack
quello che vedi qui è il sai
flusso d’aria che dice un gioco che hai
hai perso il tuo momento SLA ti sei perso il tuo
tempo SLA e poi più in basso su di esso
dice che questa corsa è finita ma ha perso
dati e c’è un link in esso clicchi
su di esso e il link ti porterà a destra
per il flusso d’aria e mostrare che c’è un
perdita di dati che sta accadendo proprio ora
e funziona davvero bene così con questo
combinazione siamo in grado di colpire
tutti i nostri obiettivi è una specie di nostra sconfitta
pipeline il prossimo tipo di cosa che
stiamo lavorando è il nostro flusso
elaborazione pipeline quindi questo deve guardare
tipo di travolgente voglio dire che lo è
davvero divertente avere come il titolo
quello dice che conosci l’architettura e poi
mostra qualcosa come ho vomitato su questo
Scivola e dipende da come tutti i tuoi bambini
potresti riconoscere come Richard
Scarry è come Busytown e in pratica
sembra un design occupato della città, ma lì
qualcuno di voi sa che non c’è qualcosa da fare
questa follia e in realtà è un modello
e il modello è che siamo essenzialmente
avere il calcolo automatico della scala seguito da
Kinesis che è un po ‘come Kafka così
tutto ciò che computa leggerà
da un flusso kanisa, accendi qualche computer
e sarà auto-scala in modo che noi
conoscere la sua scala per il calcolo e poi
pubblicheranno i suoi dati a valle per
Kinesis e poi qualcosa dall’altra
lato della chinasi lo leggerà e farà il
lo stesso quindi in sostanza tutto è costruito
di questi pattern ripetibili di calcolo
con Kinesis in mezzo e il
computer auto scalati e lo chiamiamo
elaborazione del flusso elastico essenzialmente
perché Kinesis e e il calcolo possono
essere elasticamente dimensionato elasticamente e
ne parlerò un po ‘a
poco dopo e poi c’è questo
altra cosa in cima chiamava uno schema
registro così come molti di voi hanno sentito
di un registro dello schema prima specialmente
se hai usato Kafka lo sapresti
su questo fantastico tutto bene così io sono
parlerò un po ‘di un po’
un po ‘su un fratello, quanti di voi sanno
o Ammiraglio o protobuf o parsimonia
fantastico, quindi molti di voi quindi usiamo
Avril um così come hai dati in a
database giusto e che i dati siano
protetto da uno schema e una sorta di
applicazione dello schema e informazioni sui dati in
file o dati su flussi che dovrebbero
anche essere protetto da una sorta di schema
e Avro fornisce così fa gli altri esso
fornisce tipi di cardinalità tipizzati
opzionalità e fa anche il nesting che
è anche meglio della maggior parte dei database
tu
e supporta anche la cosa molto interessante
ha chiamato un’evoluzione dello schema per cui sei dentro
nostro caso abbiamo dieci clienti che tutti i
avere diverse versioni del nostro collezionista
sono stati tutti aggiornati in momenti diversi e
stanno tutti mandando qualcosa di diverso
schemi per noi come stanno arrivando i dati
binario ma con un po ‘diverso
schemi e quindi stiamo spingendo il codice
ai nostri lettori piace a piacere e tu lo sai
una delle migliori pratiche è questa
modello di disaccoppiamento giusto quindi abbiamo q per
disaccoppiare ma poi sarebbero accoppiati
da schema e vogliamo essere coppia che
inoltre, i dati in arrivo verranno utilizzati
questo concetto si chiama risoluzione dello schema
che prenderà un lettore e uno scrittore
schema e capire cosa è comune
tra di loro per essere in grado di leggere qualsiasi
input che possiamo quindi è una specie di
esempio di un fratello ok, voi ragazzi non avete visto
va bene quindi questo è un esempio di
una riga quindi è uno schema auto-descrittivo
è il tuo formato di anizzazione e come io
menzionato ha tipi e nidificazione ora
tipicamente quando lavori in una sorta di
si fa a memorizzare lo schema che i dati
è stato scritto scritto con il file
ed è perché i file di dati
sono così grandi che lo schema è come overhead
piccolo ma nel mondo dello streaming
le spese generali sono pari al novantanove per cento
i dati che stai inviando quindi non è un
buona idea per inviare lo schema del writer
aggiunto in cima ai dati effettivi
pacchetto che viene inviato così invece il
cosa che LinkedIn ha inventato molti
anni fa era quello di rimuovere lo schema
invia il payload senza uno schema ma
solo un identificatore e poi sul
lato del consumatore per cercare l’uso dello schema
quello di decodificare il binario e l’ unico
il problema è che è molto stretto
accoppiato al progetto kafka quindi cosa noi
è stato diviso in due dal disaccoppiamento
progetto kafka e abbiamo anche fatto un simile
qualcosa che funziona perfettamente
il cloud e in sostanza stiamo andando
open source in poche settimane è così
fondamentalmente uno script Gradle che puoi
utilizzare per pubblicare un file zip che ha due
lambda funziona in esso e il lambda
funzioni o prendere un registro
Chiamata FEMA o uno schema get tramite ID call e
ogni volta che chiami lo schema del registro
chiamalo convaliderà il tuo schema
assicurati che sia indietro e avanti
compatibile sia come lettore che come scrittore
schema prima di accettarlo e anche tu
passalo al volo nell’URL a JDBC
collegamento URL URI al database
questo è il supporto e su ogni chiamata
può cambiarlo se lo desideri, ma in te
lo so, ad esempio puoi passarlo a
URL JDBC a una dinamo su quella chiamata e
cosa farà sarà convalidato
se funziona funzionerà a questo
URL e quindi restituire il successo a te e
ti restituirà un ID e poi quello
ID si passa il flusso e il
il consumatore lo leggerà e lo cercherà e
essere in grado di decodificare al volo, così saremo
open sourcing questo in poche settimane e di
Naturalmente per quelli di voi non hanno usato
lambda è fondamentalmente la prossima evoluzione
delle liste di sondaggi è essenzialmente
la prossima evoluzione del ridimensionamento automatico
ti viene data un’esecuzione ospitata
l’ambiente tutto ciò che dobbiamo fare è caricare
zip in conoscere Python nodo Java ora I
pensa a Ruby e poi quando lo carichi
tutto quello che fai è scegliere un profilo
come memoria media mi dispiace CPU medio
recensione di super occhi super CPU e 256 gig
RAM o RAM di un terabyte o qualsiasi altra cosa
non sapeva esattamente quanto grande diventa e
poi, appena lo fai, ne ottieni uno nuovo
la versione e la bellezza di questa cosa è
se hai un bug e vuoi rotolare
tutto quello che fai è nell’interfaccia utente che dici
l’ultimo dollaro è uguale alla v1 e tu hai appena fatto
arrotolato il tuo codice sul tuo cattivo
codice quindi è davvero molto utile
innovazione e penso di andare a
un po ‘nel tempo, ma lo farò
dillo a questo stiamo anche creando uno strumento
per l’elaborazione del flusso elastico attualmente
se usi Kafka o Kinesis il tuo
la scalabilità è / shard se ne hai tre
frammenti hai un limite di disposizione esatto
cosa succede se il tuo produttore inizia
producendo più dati, quindi quello che facciamo è noi
rileverà che c’è un tale problema
e aggiungi automaticamente nuovi frammenti e
ridimensionare automaticamente il calcolo per gestirlo
e quindi rilevare quando è sotto
provisioning e fare il contrario e
questo usa anche la dinamo dietro le quinte
quindi sarà automaticamente automatico
scala dinamo fino alla prossima disposizione
limita e ridimensiona entrambi
sarà open source se voi ragazzi volete
seguilo sentiti libero di seguire questi due
ID di Twitter e immagino questo davvero
probabilmente non c’è tempo per le domande ma se
hai qualche oh hanno cinque minuti
per domande c’è una domanda in
dall’app ed è quello che era il VP
risposta quando gli hai detto che c’erano
molti libri nel sistema di raccomandazione
lo so, ehm, non gli ho detto che non lo ero
dagli altri dall’infrastruttura
il team di Netflix I in realtà era un
Merita il team di consigli che mi ha detto
e tu sai che penso ci fosse un po ‘
frustrazione ma avendo lavorato ho
ha lavorato in raccomandazioni per lungo tempo
il tempo e la bellezza non si ottiene mai
bug e sai se vuoi un bene
lavoro-vita equilibrio vorrei lavorare dentro
Raccomandi ai sistemi un’altra domanda
ricordati di votare posso dirlo mentre io
cammina qui puoi tornare al
diapositiva che mostra i feed di Twitter su
seguo penso che sia il penultimo
secondo alla fine oh il Twitter sì certo
qui mi dispiace
raddrizza qualsiasi altro commento o diapositiva
vuoi vederti tutte le domande
ok bene, quindi ho avuto un breve momento
Terrore quando hai mostrato l’uso del
Q offset e ritardo 2dr gruppi di ridimensionamento automatico
e chiedendosi cosa significa che devi
evitare di dire una stecca totalmente bloccata da
solo creando server su infinito
tu lo guardi stai mettendo duro
tappi hai rilevamento stallo o alcuni
combinazione quindi se rispondi al tuo
domanda quando passiamo alla Q basata
ridimensionamento automatico stai dicendo come facciamo noi
tenetelo con tutto il ridimensionamento che fornite
una dimensione minima e massima, quindi adottiamo le misure necessarie
ogni cinque minuti controlliamo una regola in
la regola è la profondità del messaggio visibile
ancora maggiore di zero si passo per quattro
quindi prendiamo provvedimenti fino a 40 o
qualcosa e siamo limitati a 40 e
poi ci siamo adattati dopo averli tenuti tutti
intorno fino a quando l’ultimo messaggio non si interrompe
il q in volo e poi siamo al sicuro
per portarlo dentro e amiamo SQS e SNS
ma non potremmo davvero usarlo per lo streaming
elaborazione perché non si fermerà mai
i messaggi giusti non si fermano mai e c’è
mai una scala nel tuo genere non lo farebbe mai
scala in, ma ne ha sicuramente un po ‘
benefici su yeah kinesis buona domanda
Giusto, non ci sono più domande, credo
dovrebbe chiamarlo una conferenza e grazie
ancora una volta hai detto grazie e
qui vieni
la maggior parte di voi è bloccata qui perché è vostra
i voli sono domani e le persone che
Potrei andare a prendere il treno a casa, ma io sono
solo scherzando grazie mille per
arrivando a questo discorso resiliente predittivo
pipeline di dati solo per ottenere uno spettacolo di
mani su quante di voi effettivamente lavorano
le pipeline di dati vanno bene così sembrano dieci
per cento non male quindi un po ‘ su
io lavoro in una piccola startup di software in
samma-tee-oh chiamato agari e prima
diciamo circa un anno fa ho lavorato a
LinkedIn Netflix ebay e etsy e quello
quelle aziende che lavoro principalmente in ruoli
occupandosi di ridimensionamento e ridimensionamento dei dati
Sono anche un co-chair per q con san
francisco e nel mio tempo libero sono un
committer su una nuova nuova incubazione
progetto chiamato flusso d’aria apache flusso d’aria
e riporto anche a tre piccoli
la natura e sua madre in quella foto qui sotto
quindi potresti chiederti perché è un
la pipeline dei dati parla sempre di questo
la disponibilità è sempre traccia disponibile
quindi per lo più sai sempre sul lavoro
come tradizionalmente focalizzato sul
disponibilità di sistemi di servizio e
i sistemi di servizio sono come in genere
sincrono o semi-sincrono da semi
sincrono voglio dire che c’è una sorta di
aspetto asincrono ad esso ma è
di solito sono limitati nel tempo
transazionale e il loro più spesso
sensibile alla latenza e perché è questo
tracce non rappresentate più di te
conoscere la comunità della pipeline di dati e
è principalmente perché sai che le interruzioni sono
grandi novità proprio nel 2007 era un po ‘
un po ‘ di un distintivo d’onore I intorno al
tempo nella zona della baia per il tuo sito per andare
giù perché significava che avevi un te
sai che il pensiero era che avevi molto
di traffico e il tuo sito è andato giù e
sai che penso abbia dato uno dei
i pitch che AWS ha fatto in quel momento era
sei una startup che non puoi permetterti tutto
questa infrastruttura solo per essere attiva
La prima pagina di techCrunch per voi due
giorni quindi usa ec2 per scalare
e la realtà era nel 2007-2008 cuz
nove un sacco di siti che sono stabili
oggi non siamo così stabili all’epoca e
in realtà pensavano al loro down
pagina come se l’avessero ridisegnata molte volte
per avere il più cool il mio sito è in fondo alla pagina
e tu conosci il problema con questo
dopo un po ‘il tuo sito è inattivo
diventa davvero il tuo marchio e per il
i primi anni di persone di Twitter davvero
riconoscere la balena fallita e quanti di
hai usato etsy alza la tua mano se
ne hai sentito parlare o no, così lo fa
qualcuno riconosce chi questo è il tuo aumento
mano se tu riconoscessi ora così lui è uno
dei fondatori il suo nome è Haim e lui
era simile a DBA / sysadmin per C & S
stava andando avanti parecchio nel 2007
e poi è diventato come un culturale
movimento nella comunità di produttori a
roba artigianale su di esso essere giù e it
è diventato come uno dei popolari
categorie su etsy ora come ho detto
sai che di solito questa pista parla di
sistemi sincroni o in semi
sistemi sincroni ma direi questo
è più importante per la maggior parte del
siti web moderni che iniziamo a concentrare
sui sistemi di flusso di dati perché il flusso di dati
i sistemi sono probabilmente più importanti per
la maggior parte delle aziende online oggi e te
sanno che hanno queste caratteristiche
sono asincroni e non sono
veramente sensibili alla latenza ma lo sono
rendimento sensibile e perché?
fai la dichiarazione giusta così se vai
per esempio i tuoi siti preferiti
netflix in alto a sinistra o addirittura spotify
ci sono pipeline di dati che sono
costruire modelli di personalizzazione a
prevedere cosa ti piacerebbe vedere o
ascoltare e tenerti impegnato con il
sito e nel caso di cose come
Pandora o io non dovremmo davvero tipo di a
più come Netflix che hanno un
modello di abbonamento che porta a churn
riduzione giusta perché non vogliono
le persone che escono lasciando il sito per
siti di social networking come LinkedIn o
Facebook troverai spesso quelle persone
potresti conoscere il widget giusto ed è super
importante per te per questi social
siti di networking per continuare
per far crescere il limite del loro sociale
rete e per esempio nel caso di
di LinkedIn right linkedin ne fa sessanta
per cento dei suoi soldi da reclutatori
trovandoti e qualcosa come settanta
la percentuale dei profili non aveva nulla
oltre il nome giusto aggiungendo altro
dei tuoi amici come Lincoln spera di
vergognandoti un po ‘nel compilare
il tuo profilo in modo che i reclutatori lo faranno
trova te e poi sai che possono
una sorta di ottenere di più si sa profitto da
da quella parte, quindi è così
molto importante che tu conosca la rete
cresce per questo tipo di società sul
in alto a destra riconoscerai amazon e
le persone che hanno comprato ex comprato y e
la gente ha comprato xey insieme e ancora
conosci un sacco di clic e acquisti
capita attraverso quella rotta per amazon e
più in basso sotto ebay così sette anni fa
in realtà ho costruito aiuto per costruire la classifica
algoritmo su cui è ancora attiva l’impostazione predefinita
ebay ha chiamato miglior match e che cosa
essenzialmente fa classifica i risultati
da cosa viene acquistato come adesso
o negli ultimi dieci minuti al fine di
dare la priorità come make renderla più alta
probabilità che ciò su cui clicchi
in realtà vengono acquistati e collegati per sembrare io
significa II VA otterrà una fetta più grande di
che profitto così tutte queste attività
sai che dipendono da queste condotte e
in un caso di base è come un live
pipeline o qualunque cosa tu stia comprando
guardando le offerte per quel genere di cose
ed è come cambiare l’ordine di classifica
dei risultati al volo quindi spero ho
ha reso il caso perché tu sai che è
importante avere un always-on dati
pipeline e in un moderno sistema oggi
è lentamente architetture che
fornire entrambi fornire una porzione
architettura sempre attiva e dati
architettura della pipeline sempre attiva
e questa è una specie di design che potresti
dì per questi sistemi a sinistra che hai
ottenuto il tipico servizio come pila o
servendo l’architettura ti divertirai e
bilanciamento del carico seguito da server Web
seguito da un livello di micro servizi quindi
avrai una sorta di livello dati
che è essenzialmente un database
cerca ricerca nella cache di motori di ricerca Eric
grafici di macchine tutto di quel genere di
roba e l’unico errore che sento sia
un po ‘come un punto di inciampo che
ogni azienda è ciò che fa tu
sapere che iniziano ad assumere un paio di dati
scienziati e forse hai visto questo in
la tua esperienza e poi conosci il
gli scienziati di dati iniziano a gestirli
costose query di scansione sulla TB olio
database e presto diventa come a
problema di disponibilità in modo da sapere come
un passo avanti come LinkedIn forse sette
otto anni fa si erano disaccoppiati
sono come il database oltp di tutti
la loro analisi e prodotti simili
come prodotti di dati e in sostanza
c’era uno strato di integrazione dei dati a
quel punto in quel momento era qualcosa
chiamato bus dati ora è Kafka
essenzialmente separando questi due
architetture puoi puoi tenerle entrambe
di loro disponibili e questo è il tipo di
obiettivo di questo di questa diapositiva quindi cosa
sono alcune delle sfide che conosci
mantenendo una pipeline di dati, voglio dire che lo sei
probabilmente molto familiare nel mantenere un
high availability side up right avoid
come singoli punti di errore che ordinano
di cose ma cosa fai per i dati
condutture quindi uno dei problemi è
chiamato un problema di raggio di esplosione, quindi facciamolo
dì che hai qualcuno in bocca a
lavora chi scrive del codice per un dato
lavoro pipeline chiamiamolo lavoro uno e
il lavoro uno legge i dati a e scrive i dati
e dire che il tuo sviluppatore introduce un bug
c’è un altro lavoro chiamato lavoro per quello
legge che i dati siano e scrivano i dati
mare e penso che tu abbia capito il punto
c’è un altro lavoro che lo legge
emette e immette e ne scrive un altro
uscita e infine qualche uscita lo rende
a un sistema di servizio perché alla fine
come i widget di LinkedIn devono emergere
alcuni di quei dati e questo è probabilmente
dove prenderai l’insetto e
se è come un sistema di raccomandazione sei
probabilmente non lo prenderò per un
molto tempo ricordo di camminare lungo il
sale e Netflix alcuni anni fa e
ha incontrato uno dei VPS che ha detto di aver trovato
un bug sono fantastico è come è stato
in giro per due anni ho detto sì bene
ecco i sistemi di raccomandazione che ci sono
probabilmente molti bug che non conosci nemmeno
circa e in sostanza lo sai
la ragione per cui è chiamata un’esplosione
raggio giusto è un bug che era
creato in un lavoro upstream danneggiato
dati a valle e ha colpito un enorme
parte dei servizi e quello che mostro è stato
solo un percorso ma in realtà ci sono
molti lavori che dipendono dalla produzione di
il primo lavoro e così via molti
lavori che dipendono dall’output di quello
quella linea di posti di lavoro quindi è in realtà a
un sacco di lavori in una piramide che
sono essenzialmente influenzati dai dati corrotti
al nucleo quindi perché è questo un?
punto di dolore acuto in aziende come
LinkedIn Facebook e così bene prima di
tutto quello che hai rilevato il bug giusto per te
il prossimo passo è andare sull’identificazione
la causa quindi prima guardi nel tuo come
servire database e dire ok ecco qui
questo dato è male ciò che ha scritto a questi dati
oh questo lavoro lasciami andare e guarda questo
lavoro fammi guardare il suo codice fammi guardare
al suo input e fuori i suoi vari input
e poi entri in questa situazione
che è fantastico se tu sei il mio
ragazzo di tre anni ma non è tanto
divertimento per me giusto sollevando ogni roccia e
cercando il bug e alla fine se
hai ancora un lavoro e la tua sanità mentale
verrai al punto in cui tu
identificarsi con il bug è giusto, noi
trovato il bug così ora cosa abbiamo bisogno di
abbiamo solo bisogno di distribuire una soluzione ma aspettare
questo è solo andando a correggere i dati in corso
avanti e questo bug è stato intorno per
settimane quindi probabilmente è corrotto un intero
un sacco di dati storici e ho bisogno di
scopri chi contattare per favore lasciami
contatta tutte le squadre che possiedono tutte
i lavori che si preoccupano di questo output e
quindi hanno bisogno di fare lo stesso per
tutti quelli che usano la loro uscita e
fondamentalmente questo è ciò che ottieni
hai fatto male alle attività che stai provando
per capire cosa è interessato come fai tu
che tutti sappiano tutto questo
roba e funzionano tutti in modo diverso
le cadenze quindi è un po ‘un dolore così
essenzialmente dopo tutto questo è fatto
hai rieseguito tutti i lavori dappertutto
i dati sono puliti e quindi il prossimo bug
arriva proprio così rapidamente in questo
campo impari che c’è un c’è
alto costo nelle persone tempo e morale
le persone diventano burnout quindi cosa puoi fare
a questo proposito qualcuno verrà e dirà
Ho una grande idea, facciamo di più
testare i test di destra sta per risolvere
questo problema
il test non sempre risolve questo problema
problema in realtà l’in realtà è
il più delle volte non risolve questo
problema perché nei bug delle pipeline di dati
sono nella logica o se tu
non ho cambiato il codice per come un anno
potrebbe ancora rompersi perché qualcosa
nell’input modificato e il dato è
tipicamente semi-strutturati o
non strutturato e per voi di imitare tutti
i modi in cui potrebbe andare male
creare un corpus di test e mantenerlo
test corpus è un enorme investimento quindi a
l’opzione migliore è più come rilevarlo
c’è un problema e il rollback o correzione
avanti come una soluzione di automazione così
quello che vuoi veramente è in qualsiasi fase di
la tua pipeline per essere in grado di rilevarlo
c’è un problema che ti aiuta
identifica essenzialmente ciò che è sbagliato e
poi aggiustalo in avanti o arrotolalo dentro
un modo automatico un altro problema
con pipeline di dati ha a che fare con
la tempestività quindi immagina che io abbia questi
tre lavori di cui ho parlato prima
lavoro un lavoro al lavoro tre quindi l’output
di lavoro si sta per essere letto da lavoro a
l’output degli strumenti di lavoro può essere letto da
lavoro terzo e il terzo lavoro sta per spingere
qualcosa per un sistema di servizio e nel mio
definizione qui un lavoro è uguale a a
flusso di lavoro e questi sono diretti aciclici
grafico delle attività ora diciamo che sto andando
per eseguire questo su un programma giornaliero, quindi corro
Lunedì lo corro martedì, corro
Mercoledì e tutto ciò che è
bene giovedì andiamo a ed ehi è
Venerdì è ora di andare ai bar
giusto, ma qualcosa non sembra fantastico
perché il mio primo lavoro sta prendendo il doppio
il tempo e poi è il fine settimana
sei con la tua famiglia e tutto ad un
il lavoro improvviso sta prendendo 3 volte l’importo
di tempo e ti stai pagando e
quello che doveva essere un lavoro quotidiano
non completa nel giorno la tua auto
nave a e devi entrare di domenica
e aggiustalo perché se non riesci a finire un
il lavoro di un giorno in un giorno che non hai mai intenzione di
recuperare subito così ora hai un problema
quindi la domanda diventa perché fare lavori
in particolare lo spazio dei big data diventa più basso
giusto perché diventano più lenti così io sono
andando a darti in un esempio reale
quindi quello che vedi qui è tempo
performance di
come straordinario, quindi l’asse x è circa due
mesi di dati a punti orari il
asse y è il tempo di attività il tempo
durate espresse qui come una frazione
di un’ora quindi corriamo un’ora
lavoro in questo caso quindi essenzialmente cosa
stai vedendo è una grande varianza di uno
dei nostri lavori questo in marrone è
in realtà una scintilla e il compito scintilla
è in realtà un lavoro o un compito intelligente nel nostro
è che sta prendendo più di
mezz’ora per completare così perché lo fa
ciò accade così si scopre nel primo
settimana di gennaio uno dei nostri dati scientifici
la gente ha iniziato a calcolare qualcosa di nuovo
caratteristiche e questo è perfettamente accettabile
perché è quello che dovrebbe fare
calcolare alcune nuove funzionalità per qualche tipo
del modello di predizione, ma cosa non va bene
è nelle prossime quattro settimane che inizia
diventando progressivamente più lento e
scopre che il suo modello di costruzione o
il codice edilizio futuro stava guardando un
finestra di dati sempre più in crescita
invece di una finestra scorrevole di dati
e di conseguenza stava facendo più a lungo e
scansioni più lunghe e stava solo prendendo
più a lungo per completarlo, quindi lo aggiustò e
poi ha fatto un paio di altri bug per risolverlo
ci sono volute un paio di settimane ma sai che siamo tutti
in buon territorio e siamo tornati giù
a 9 minuti e abbiamo tutti preso un profondo
respiro e come se spingessero il nuovo codice cinque
giorni dopo e siamo di nuovo lì dove noi
erano prima e in sostanza c’è un
regressione ancora una volta e se hai
ha lavorato nello spazio web che avresti
notato negli ultimi anni giusto
questa tensione tra ops e and
sviluppatori proprio dove sono gli sviluppatori
scrivere il codice e poi anche farlo
mantienilo bruciato e poi
c’è una specie di tensione
tra loro bene quel genere di cose è
giocando nello spazio dati che hai
scienziati dei dati di cui conosci questi ragazzi
come il mondo accademico, dai un’occhiata a questo nuovo
algoritmo ho intenzione di eseguirlo e poi
i tecnici del settore sono come il motivo per cui sei tu
facendo questo a me sono così stanco
ormai è così che in realtà sta arrivando a
punto in cui le persone stanno capendo questo
e la scienza dei dati e gli ingegneri dei dati sono
formando singoli team di chiamata come dati
scienza e ingegneria dove possono
lavorare insieme perché l’effetto di a
il nuovo algoritmo sarà una regressione e
c’è
un ciclo virtuoso che dovremmo tutti
accetta essenzialmente che calcolerai
le nuove funzionalità saranno più lente
la dimensione dei dati crescerà
più lento poi smettila di guardare indietro e prova a
come assetto ottimizza e poi continua
e questo è essenzialmente il virtuoso
entra nel mondo dei big data oggi
e anche la latenza è un po ‘giusta
perché siamo un sistema basato sulla velocità effettiva
ma se non riesci a finire te stesso in a
il giorno in cui sei nei guai, così ti ho dato questi
so per tipo di problemi che ho parlato
circa uno ha a che fare con la correttezza
avere un raggio di esplosione grande se ne hai
un bug che influenza la correttezza è
andando a influenzare un sacco di posti di lavoro a valle
e anche la tempestività, giusto, che tipo
di qualità o design desiderabili
i criteri possiamo venire con così abbiamo
per correttezza operabilità tempestività
e costa e prima causa qualcosa io
ho gettato dentro perché sto per iniziare e
abbiamo una quantità limitata di denaro quindi
la correttezza è tutto simile ai dati
integrità non perdere dati non corrotti
non lo duplica se lo fai
predittivo, la distribuzione dell’output
non dovrebbe cambiare troppo tempo a meno che noi
parla di operabilità
mettendo in utensili che fa grano fine
monitoraggio e allerta abbiamo anche bisogno
qualcosa come capacità di copertura rapida e
per costo vogliamo costruire qualcosa
quello è pay-as-you-go che non vogliamo un
mucchio di infrastrutture permanenti che
paghiamo per quando non lo stiamo usando
quindi farò un punto qui quanti
la gente ha visto questo prima di questo tipo
di alzare la mano se hai visto questo
grafico specifico o questa immagine sì sì così
L’ho visto davvero in un discorso e un ragazzo
da etsy ha dato molti anni fa è
su MPT r & MTBF quindi m TT RS tempo medio
per recuperare MTBF è come hai sentito
questo fa male oggi è tempo medio tra
fallimenti giusti e conosci Rolls Royce
sono costruiti in modo leggermente diverso da
Jeep, così le jeep sono costruite per essere abusate
proprio li proprietari li abusano di
amore ovviamente ma è ancora abuso e
si rompono molto bene ma lo sono
anche super facile da risolvere e sono
progettato in questo modo sono progettati per essere
usato
lato dei loro limiti di progettazione a
rolls-royce funziona alla grande sul paese
strade e di fronte all’hotel ma se tu
portalo su una collina che sta per passare
come due mesi in un negozio quindi l’ idea è
come dovresti costruire il tuo sito web o come
dovresti costruire una pipeline di dati dovrebbe
lo costruisci per non aver mai avuto voglia di entrare
come un sacco di test per catturare tutti
possibile problema che può accadere o fare
ti limiti a scrivere un bug
succede che è in produzione hai colpito a
pulsante si torna immediatamente
avere tutti gli strumenti per recuperare
rapidamente e il punto che farò sono i dati
le condutture in passato sono state trattate
nel modo NPPF e sai come arrivare
Personalmente sono venuto dall’alta scala
mondo del web in realtà credo che mttr sia il
strada da percorrere e se vai online c’è un
video di YouTube di un set di marines che prendono
una jeep a parte e rimettendola
insieme e quattro minuti quindi è abbastanza
impressionante quindi come possiamo usarne
strumenti comunemente disponibili per incontrare
i nostri obiettivi di progettazione quali sono alcune cose
disponibile per noi e disponibile per il mio
la società è fondamentalmente amazzonica così noi
iniziato a guardare alcuni dei
tecnologie così solo per avere un senso
la stanza quanta gente usa Amazon
Servizi Web che è eccellente quanti
di te alzi la mano se usi SQS
oh, va bene, va molto bene, quindi sembra
come la metà di voi effettivamente usa Amazon così
SQS per gli altri è una bassa latenza
messaggio altamente disponibile e scalabile
coda è una coda ma non è esattamente
50 ed è basato su pull così effettivamente così io
penso di essere su questo lato così
ecco un esempio per insegnarti come
come funziona quindi immagina di avere
produttori e stanno producendo messaggi
messaggio da uno a cinque in questa coda
e tu hai alcuni consumatori che sono
in attesa di consumare questi messaggi così il
la prima cosa che succede è un consumatore
leggerà un messaggio da SQS e non appena possibile
in questo modo SQS produrrà quel messaggio
invisibile e inizieranno un timer allora
il consumatore in questione scriverà il
messaggio o impegnare il contenuto di quello
messaggio a un database e infine esso
volere
il messaggio che risulterà in
cancellando il messaggio e cancellando il
timer e questo è come funziona normalmente
operazione ora immagina lo stesso scenario
dove un consumatore legge questo messaggio e
ci vuole un po ‘di tempo per scrivere il
messaggio al database durante quel periodo
periodo il timer si spegne e il
il messaggio ora diventa visibile e
disponibile per altri utenti a
leggerlo e così il consumatore il fondo
lo prende commette un accento così questo
questi sono come la semantica di SQS
basato su questo modello puoi effettivamente
implementare abbastanza bene le transazioni
perché finché hai ragione a
database o idempotente e uno
la caratteristica interessante di SQS è questa cosa
chiamato una lettera morta indica che quello era
menzionato in precedenza in una coda di messaggi non recapitabili
essenzialmente è così immagino di averlo
messaggio uno e c’è un problema con
e il mio codice non può analizzarlo così piuttosto
di avere il messaggio uno che intasa il
coda puoi configurare SQS per rimbalzare
il messaggio in una coda di messaggi non recapitati
dopo n tentativi e il vantaggio di questo è
che puoi mantenere un elevato throughput in
la tua coda e anche tu non perdi mai a
messaggio e il tuo codice stesso no
è necessario gestire la scrittura transazionale
di questo messaggio in un altro posto che
potrebbe avere i propri bug SQS ha maniglie
per te e allo stesso modo puoi avere un
avviso abilitato su quella indicazione in modo che
ogni volta che la coda di lettere morte ha
qualsiasi cosa in cui sei impaginato e poi tu
so che c’è una specie di bug che risolvi
il bug e poi si scarica la coda e
non hai mai perso un messaggio un’altra cosa
che usiamo è SNS e di nuovo uno spettacolo di
mani che usano SNS qui così circa 78
le persone possono essere grandiose quindi SNS e
quanti di voi erano la chitarra CAF
comunque Kafka ha parlato ieri, ok, quindi …
questo è simile a Kafka tranne che è
basato su push è anche un argomento ma
è basato su push e non su pull
quindi i benefici di questo sono quando puoi
si pubblica su SNS che invierà in modo affidabile
a tutti i consumatori a differenza di s
sì chiedici, lo invieremo solo a uno
consumatore, ma il lato negativo è che lo farà
fare qualche numero di tentativi per inviarlo
e se non può il messaggio è perso così
c’è un modo in cui possiamo sfruttare questo
bella come multi spinta transazionale
funzione di ciò che SQS aveva che è il
possibilità di salvare e scrivere in modo affidabile i dati
e ci sono io da una diapositiva I
penso di essere davvero fuori da una diapositiva
va bene quindi questo è in realtà il modello
quello che abbiamo l’idea è
fondamentalmente che hai un argomento e il
argomento in questo caso è un argomento SNS e
hai due messaggi nel messaggio uno
e messaggio a e anche tu puoi
amazon ti permette di registrarne due
diversi sq SQ o più SQ s qs
come abbonati a un argomento SNS così in questo
caso abbiamo due SQ s qs iscriversi
l’argomento SNS e ogni volta che pubblichiamo
i messaggi rendono affidabile l’argomento SNS
multi spinto alle QQ di sQ quindi possiamo
avere servizi a valle dei consumatori
a valle di ciascun SQ SQ in modo affidabile
scrivi i dati intendo che leggi i dati
e impegnato in un back-end per guidare
questa casa diciamo che volevamo tutto
dei nostri dati da scrivere su un elastico
ricerca cluster oh e anche ai nostri simili
Cassandra DB non possiamo davvero farlo
un consumatore in un modo transazionale ma
un modo in cui possiamo farlo è attraverso questo
modello abbiamo produttori che producono
messaggi a noi e s argomenti che ottengono
spinto a ciascuno di questi due segnali che abbiamo
gruppi di consumatori separati il viola
gruppo e il gruppo verde il viola
gruppi responsabili di elasticsearch
aggiornamenti e il gruppo verde è
responsabile di come un dbi standard
stampare e questo modello funziona davvero
bene per noi così ora mettiamoli
diversi tipi di tecnologie insieme
per costruire un vero fault-tolerant
gasdotto ma prima di andare lì dovrei
darti qualche contesto su cosa sia l’agari
lo fa prima di tutto che non rubiamo il tuo
le password cerchiamo di impedire ad altri di
facendo così e abbiamo operato nel
spazio di consumo per circa cinque anni così
come l’ottanta per cento del consumatore nelle scatole
a come gmail hotmail yahoo offrono g65
sono protetti da parte della tecnologia
che l’AG ha ricostruito non vedrai nemmeno a
e-mail di pesce nella maggior parte dei casi perché lo farà
essere filtrato dal provider di posta in arrivo
si stanno ora concentrando su come risolvere questo
problema per lo spazio aziendale e
ciò significa che li mettiamo come
collezionista come elettrodomestici in ognuno dei nostri
data center e clienti aziendali
ogni volta che ricevono una e-mail
ci mandano le intestazioni per quell’e -mail
quello che facciamo è usare un modello di fiducia
analizzare l’e-mail per determinare se è
pesce o no e ora questo non è uno spam
problema è come stiamo cercando pesce
pesce è qualcosa di più dannoso e
poi segniamo l’e-mail e poi noi
sai che il nostro prodotto attuale lo mostra
un’interfaccia utente web che sarà il nostro prodotto futuro
effettivamente essere in linea ed eliminare tale
e-mail da ottenere, quindi mettiamoci
questo insieme in un quadro reale
questa è la nostra pipeline attuale in seguito
o non parliamo di un tempo reale
gasdotto ma questo è il nostro attuale lotto
pipeline quindi quello che abbiamo attualmente è
questi collezionisti in the in the in
il selvaggio stanno inviando dati a s3
ogni ora o così creiamo una scintilla EMR
cluster che è una MapReduce elastica
par cluster lo facciamo ruotare e succhiamo tutto
di quei dati per l’ora segnerà
e anche generare alcune statistiche
scrivilo su un diverso percorso s3 che s
tre percorsi scateneranno una serie di
Avvisi o eventi SNS e SQS e lo faremo
avere quello che viene chiamato uno scalare automatico che
inizia con la dimensione di zero spin up
e iniziare a ingerire rapidamente tali dati
nel nostro database in modo che l’ interfaccia utente web possa
vederlo quindi ci sono alcuni vantaggi per
questo modello parliamo prima di come
risolvere il costo e la tempestività
problema quindi
quello che ho appena detto succede durante
corre ma tra le corse non paghiamo a
dime intendo quello che siamo ciò che essenzialmente
hanno corso tra le nostre corse orarie
solo un secchio s3 dove i nostri clienti
può continuare a inviare dati e anche noi
avere un database nel database Postgres
che è seduto intorno ad esso ha dati da
le corse precedenti e un’interfaccia utente web che colpisce
e abbiamo anche una scatola che ospita
flusso d’aria di cui parlerò un po ‘
più tardi e quindi diciamo che è la fine del
ora ed è ora per l’ aria successiva
il flusso farà girare EMR e verrà eseguito
tutta quella cosa in cui tutto diventa
fatto girare per quello per scherzo così questo è
un po ‘come affrontiamo il problema dei costi
per quanto riguarda la tempestività, quindi ho un po ‘di
menzionato il ridimensionamento automatico un po ‘così
di nuovo ho intenzione di chiedere alla folla come
molte persone usano il ridimensionamento automatico qui ok
tre quattro ok, ok, sì, usiamo l’auto
ridimensionare un ridimensionamento automatico è essenzialmente
Soluzione Amazon per la gestione dei cluster
date alcune regole può scalare un cluster
dentro o fuori una dimensione variabile da trattare
carico variabile quindi è tipicamente buono per
nutre i feed di getta può anche essere usato
per mantenere solo un cluster di dimensioni fisse
tutto il tempo quindi è un altro uso per
e come ho detto lo usiamo per
questo caso quindi una delle sfide con
usare il ridimensionamento automatico sta scegliendo il giusto
metrica per ridimensionamento e scala e
scalare dentro e fuori così il nostro primo passaggio a
questo era usare la CPU che pensavamo di usare
cpu sul box importatore per dirci
se il cluster è sopraffatto e
deve essere ridimensionato o se lo è
deludente e sottoutilizzato e dovrebbe essere
ridimensionato in modo che era il nostro primo passaggio a
questo quindi ti spiegherò una sorta di cosa è
sta succedendo qui, quindi abbiamo un’arancia
grafico e quel grafico arancione è
rendimento dei messaggi che arrivano in SQ s
sono come messaggi pubblicati
al secondo e perché non c’è niente
nel gruppo scala automatica la curva verde
che è il consumo di quei messaggi
inizia a zero e inizia lentamente
ramping up
curva blu che è come proprio al
in basso sembra un po ‘
linea che è CPU, ma davvero pensarci
come proxy per le dimensioni del ridimensionamento
gruppo che è essenzialmente ciò che è suo
CPU totale quindi è un proxy per le dimensioni
del gruppo di ridimensionamento automatico, quindi cos’è
sta accadendo è il gruppo di ridimensionamento automatico è
crescendo bene è in espansione e così com’è
espande il tasso di consumo inizia
aumentando e alla fine attraversa il
tasso di produzione dei messaggi perché
dopo che una scintilla è stata fatta essenzialmente
a un certo punto non c’è niente
lasciato a produrre e poi raggiunge
e scende a destra della curva verde
scende giù così e la curva al
in basso mostra un po ‘come un po’
Mesa che è come l’efficacia
del nostro ridimensionamento automatico, quindi cosa stiamo facendo
stiamo usando una media della CPU del quaranta per cento
quaranta per cento CPU come il segnale per
ridimensionamento in modo da dire aah alberi se il
La CPU in media nel cluster va sopra
quaranta per cento aggiungono più macchine al
cluster e quando scende sotto
qualcosa come il dieci percento o cinque
per cento poi iniziare a scalare perché noi
considera che penso al rumore del cinque percento ora
questo dovrebbe funzionare bene ma non è così
e la ragione è una sorta di mostrato qui così
quello che succede è quando ne hai pochi
messaggi lasciati sul SQ SQ che sono ora
in volo e in fase di elaborazione novanta
il percento delle macchine sta facendo
niente e la loro CPU scende al rumore
livelli e poi la media scende sotto
il cinque percento si innesca e poi tutto
all’improvviso invia aw la scala ASG
gli eventi che dice iniziano a ridimensionarsi, ma è così
non intelligente su quale percentuale dell ‘
le macchine stanno facendo attualmente roba è
semplicemente uccidendo macchine come questa e la
macchine su cui stanno effettivamente lavorando
gli ultimi cinque messaggi non sono mai stati completati
in sostanza c’è uno lo sai perché
vengono ridimensionati in modo casuale senza
qualsiasi conoscenza quindi ci sono una coppia
macchine che continuano a cercare di ottenere il
il prossimo messaggio da SQS piace ok io sono
andando a processarlo e il programma di scalabilità automatica
dice che muore giusto, quindi abbiamo dovuto trovare
un po ‘meglio intendiamo fare il ridimensionamento
e la cosa più ovvia da fare era
in realtà utilizzare la profondità della coda, quindi se
ti ricordi dal mio precedente tipo di
progettare i messaggi può essere visibile o
possono essere invisibili quindi facciamo ciò che facciamo
usiamo due trigger di ridimensionamento separati
usiamo un trigger di scale-out basato sul
numero di messaggi visibili in una coda
e usiamo una scala in trigger basata su
il numero di messaggi invisibili in
fare la coda quindi cosa vuol dire in pratica
così come i messaggi vengono aggiunti alla coda
il numero di messaggi visibili aumenta e
continuiamo a far crescere il cluster come a
pallone fino a quando non è rimasto nulla dentro
la coda del messaggio Q visibile e poi
siamo a dimensione fissa fissa e abbiamo solo
inizia a consumare tutti i messaggi e a
quel punto la curva arancione che è il
il numero di messaggi visibili sono tutti a
questo punto sono stati tutti consumati e
quindi stiamo aspettando di scriverli al
DB una volta che va a zero e c’è
ciò significa che non rimane alcun messaggio
consumato e agiamo non c’è nessun messaggio
lasciato agire è sicuro scalare in noi
ridimensiona l’intero cluster e questo
funziona davvero bene per noi così con questo
modello possiamo effettivamente capire entrambi
la nostra tempestività e costo possiamo effettivamente
risolvo quei due obiettivi di progettazione che farò
menzioniamo una cosa con la scintilla EMR che possiamo
effettivamente prevedere prima della corsa quanti
spar tree ha visto risorse di cui abbiamo bisogno per questo
prossima esecuzione basata su alcune metriche, quindi possiamo
in realtà lo ridimensiona in modo che esso
non si imbatte in colli di bottiglia, ma se tu
vuoi sapere di più su quello che puoi
vieni a parlare con me che ne dici?
operabilità e correttezza quindi per
operabilità che stavamo essenzialmente cercando
per una sorta di automazione che può
gestire tutti i nostri flussi di lavoro che volevamo
qualcosa che è facile da gestire facilmente
all’autore come vogliamo l’autore
flussi di lavoro che volevamo ottenere visivi
intuizione che potrebbe dirci sul
stato dei nostri flussi di lavoro e il
prestazioni e le prestazioni e noi
volevo anche qualcosa che integri
con tutto il nostro monitoraggio esistente e
avvisando quindi abbiamo trovato Apache flusso d’aria
in realtà allora si chiamava Airbnb
flusso d’aria e solo molto recentemente è diventato
un progetto Apache così abbiamo iniziato
sfruttando ciò ed essenzialmente ciò che
ottenere è questo è il mio questo non è significato per
tu a leggere ma questo è un senso
un flusso di lavoro scritto in Python e
in sostanza scrivi i tuoi flussi di lavoro
Python prima di questo come LinkedIn noi
usare azkaban che era essenzialmente un zip
file di un gruppo di cause se di un gruppo
di file di config file e uzi che
è stato usato pesantemente a Yahoo era come un
file XML gigantesco e quelli sono orribili
cose da affrontare e qualche anno fa
un Spotify ha scoperto qualcosa chiamato Luigi
che è anche basato su Python ma l’interfaccia utente
non era molto buono e non è anche molto
stabile così quando ho visto questo un pop-up su
un anno fa ero molto eccitato e
poi, quando il tuo codice viene analizzato, lo farà
in realtà ti mostra il grafico il dag il
flusso di lavoro per esso e il flusso di lavoro su
la sinistra è effettivamente usata per gestire il
l’intero oleodotto a destra e tu
in grado di gestire più DAGs molto facilmente noi
avere qualcosa come dieci la maggior parte di loro sono
costruzione di modelli e puoi vedere per qualsiasi
dato a correre quali sono le parti lente di esso
giusto non hai bisogno di scavare in esso
solo questo ti mostra e in questo caso è così
ci dice che eseguo una determinata corsa per 20 minuti
e la parte più lenta è stata la scintilla
ci sono voluti 10 minuti e tu puoi
anche vedere come abbiamo visto prima di uno storico
trend per tutte le attività in un dato
dag dato il flusso di lavoro dal lato alerting
usiamo come usiamo una combinazione di
ops pagerduty e victor risolvono entrambi
lo stesso problema se c’è un problema sul
lato verrà pagina il primo su chiamata e
prova un paio di volte e poi inizia
escalation per continuare a chiamarlo
si integra bene con il flusso d’aria così otteniamo
un certo tipo di allarmi come se il
il flusso di lavoro è lento, manca SLE o è
incontrando la perdita di dati e quando lo fa
che ci scriverà e altro ancora
interessantemente abbiamo integrato con slack
quello che vedi qui è il sai
flusso d’aria che dice un gioco che hai
hai perso il tuo momento SLA ti sei perso il tuo
tempo SLA e poi più in basso su di esso
dice che questa corsa è finita ma ha perso
dati e c’è un link in esso clicchi
su di esso e il link ti porterà a destra
per il flusso d’aria e mostrare che c’è un
perdita di dati che sta accadendo proprio ora
e funziona davvero bene così con questo
combinazione siamo in grado di colpire
tutti i nostri obiettivi è una specie di nostra sconfitta
pipeline il prossimo tipo di cosa che
stiamo lavorando è il nostro flusso
elaborazione pipeline quindi questo deve guardare
tipo di travolgente voglio dire che lo è
davvero divertente avere come il titolo
quello dice che conosci l’architettura e poi
mostra qualcosa come ho vomitato su questo
Scivola e dipende da come tutti i tuoi bambini
potresti riconoscere come Richard
Scarry è come Busytown e in pratica
sembra un design occupato della città, ma lì
qualcuno di voi sa che non c’è qualcosa da fare
questa follia e in realtà è un modello
e il modello è che siamo essenzialmente
avere il calcolo automatico della scala seguito da
Kinesis che è un po ‘come Kafka così
tutto ciò che computa leggerà
da un flusso kanisa, accendi qualche computer
e sarà auto-scala in modo che noi
conoscere la sua scala per il calcolo e poi
pubblicheranno i suoi dati a valle per
Kinesis e poi qualcosa dall’altra
lato della chinasi lo leggerà e farà il
lo stesso quindi in sostanza tutto è costruito
di questi pattern ripetibili di calcolo
con Kinesis in mezzo e il
computer auto scalati e lo chiamiamo
elaborazione del flusso elastico essenzialmente
perché Kinesis e e il calcolo possono
essere elasticamente dimensionato elasticamente e
ne parlerò un po ‘a
poco dopo e poi c’è questo
altra cosa in cima chiamava uno schema
registro così come molti di voi hanno sentito
di un registro dello schema prima specialmente
se hai usato Kafka lo sapresti
su questo fantastico tutto bene così io sono
parlerò un po ‘di un po’
un po ‘su un fratello, quanti di voi sanno
o Ammiraglio o protobuf o parsimonia
fantastico, quindi molti di voi quindi usiamo
Avril um così come hai dati in a
database giusto e che i dati siano
protetto da uno schema e una sorta di
applicazione dello schema e informazioni sui dati in
file o dati su flussi che dovrebbero
anche essere protetto da una sorta di schema
e Avro fornisce così fa gli altri esso
fornisce tipi di cardinalità tipizzati
opzionalità e fa anche il nesting che
è anche meglio della maggior parte dei database
tu
e supporta anche la cosa molto interessante
ha chiamato un’evoluzione dello schema per cui sei dentro
nostro caso abbiamo dieci clienti che tutti i
avere diverse versioni del nostro collezionista
sono stati tutti aggiornati in momenti diversi e
stanno tutti mandando qualcosa di diverso
schemi per noi come stanno arrivando i dati
binario ma con un po ‘diverso
schemi e quindi stiamo spingendo il codice
ai nostri lettori piace a piacere e tu lo sai
una delle migliori pratiche è questa
modello di disaccoppiamento giusto quindi abbiamo q per
disaccoppiare ma poi sarebbero accoppiati
da schema e vogliamo essere coppia che
inoltre, i dati in arrivo verranno utilizzati
questo concetto si chiama risoluzione dello schema
che prenderà un lettore e uno scrittore
schema e capire cosa è comune
tra di loro per essere in grado di leggere qualsiasi
input che possiamo quindi è una specie di
esempio di un fratello ok, voi ragazzi non avete visto
va bene quindi questo è un esempio di
una riga quindi è uno schema auto-descrittivo
è il tuo formato di anizzazione e come io
menzionato ha tipi e nidificazione ora
tipicamente quando lavori in una sorta di
si fa a memorizzare lo schema che i dati
è stato scritto scritto con il file
ed è perché i file di dati
sono così grandi che lo schema è come overhead
piccolo ma nel mondo dello streaming
le spese generali sono pari al novantanove per cento
i dati che stai inviando quindi non è un
buona idea per inviare lo schema del writer
aggiunto in cima ai dati effettivi
pacchetto che viene inviato così invece il
cosa che LinkedIn ha inventato molti
anni fa era quello di rimuovere lo schema
invia il payload senza uno schema ma
solo un identificatore e poi sul
lato del consumatore per cercare l’uso dello schema
quello di decodificare il binario e l’ unico
il problema è che è molto stretto
accoppiato al progetto kafka quindi cosa noi
è stato diviso in due dal disaccoppiamento
progetto kafka e abbiamo anche fatto un simile
qualcosa che funziona perfettamente
il cloud e in sostanza stiamo andando
open source in poche settimane è così
fondamentalmente uno script Gradle che puoi
utilizzare per pubblicare un file zip che ha due
lambda funziona in esso e il lambda
funzioni o prendere un registro
Chiamata FEMA o uno schema get tramite ID call e
ogni volta che chiami lo schema del registro
chiamalo convaliderà il tuo schema
assicurati che sia indietro e avanti
compatibile sia come lettore che come scrittore
schema prima di accettarlo e anche tu
passalo al volo nell’URL a JDBC
collegamento URL URI al database
questo è il supporto e su ogni chiamata
può cambiarlo se lo desideri, ma in te
lo so, ad esempio puoi passarlo a
URL JDBC a una dinamo su quella chiamata e
cosa farà sarà convalidato
se funziona funzionerà a questo
URL e quindi restituire il successo a te e
ti restituirà un ID e poi quello
ID si passa il flusso e il
il consumatore lo leggerà e lo cercherà e
essere in grado di decodificare al volo, così saremo
open sourcing questo in poche settimane e di
Naturalmente per quelli di voi non hanno usato
lambda è fondamentalmente la prossima evoluzione
delle liste di sondaggi è essenzialmente
la prossima evoluzione del ridimensionamento automatico
ti viene data un’esecuzione ospitata
l’ambiente tutto ciò che dobbiamo fare è caricare
zip in conoscere Python nodo Java ora I
pensa a Ruby e poi quando lo carichi
tutto quello che fai è scegliere un profilo
come memoria media mi dispiace CPU medio
recensione di super occhi super CPU e 256 gig
RAM o RAM di un terabyte o qualsiasi altra cosa
non sapeva esattamente quanto grande diventa e
poi, appena lo fai, ne ottieni uno nuovo
la versione e la bellezza di questa cosa è
se hai un bug e vuoi rotolare
tutto quello che fai è nell’interfaccia utente che dici
l’ultimo dollaro è uguale alla v1 e tu hai appena fatto
arrotolato il tuo codice sul tuo cattivo
codice quindi è davvero molto utile
innovazione e penso di andare a
un po ‘nel tempo, ma lo farò
dillo a questo stiamo anche creando uno strumento
per l’elaborazione del flusso elastico attualmente
se usi Kafka o Kinesis il tuo
la scalabilità è / shard se ne hai tre
frammenti hai un limite di disposizione esatto
cosa succede se il tuo produttore inizia
producendo più dati, quindi quello che facciamo è noi
rileverà che c’è un tale problema
e aggiungi automaticamente nuovi frammenti e
ridimensionare automaticamente il calcolo per gestirlo
e quindi rilevare quando è sotto
provisioning e fare il contrario e
questo usa anche la dinamo dietro le quinte
quindi sarà automaticamente automatico
scala dinamo fino alla prossima disposizione
limita e ridimensiona entrambi
sarà open source se voi ragazzi volete
seguilo sentiti libero di seguire questi due
ID di Twitter e immagino questo davvero
probabilmente non c’è tempo per le domande ma se
hai qualche oh hanno cinque minuti
per domande c’è una domanda in
dall’app ed è quello che era il VP
risposta quando gli hai detto che c’erano
molti libri nel sistema di raccomandazione
lo so, ehm, non gli ho detto che non lo ero
dagli altri dall’infrastruttura
il team di Netflix I in realtà era un
Merita il team di consigli che mi ha detto
e tu sai che penso ci fosse un po ‘
frustrazione ma avendo lavorato ho
ha lavorato in raccomandazioni per lungo tempo
il tempo e la bellezza non si ottiene mai
bug e sai se vuoi un bene
lavoro-vita equilibrio vorrei lavorare dentro
Raccomandi ai sistemi un’altra domanda
ricordati di votare posso dirlo mentre io
cammina qui puoi tornare al
diapositiva che mostra i feed di Twitter su
seguo penso che sia il penultimo
secondo alla fine oh il Twitter sì certo
qui mi dispiace
raddrizza qualsiasi altro commento o diapositiva
vuoi vederti tutte le domande
ok bene, quindi ho avuto un breve momento
Terrore quando hai mostrato l’uso del
Q offset e ritardo 2dr gruppi di ridimensionamento automatico
e chiedendosi cosa significa che devi
evitare di dire una stecca totalmente bloccata da
solo creando server su infinito
tu lo guardi stai mettendo duro
tappi hai rilevamento stallo o alcuni
combinazione quindi se rispondi al tuo
domanda quando passiamo alla Q basata
ridimensionamento automatico stai dicendo come facciamo noi
tenetelo con tutto il ridimensionamento che fornite
una dimensione minima e massima, quindi adottiamo le misure necessarie
ogni cinque minuti controlliamo una regola in
la regola è la profondità del messaggio visibile
ancora maggiore di zero si passo per quattro
quindi prendiamo provvedimenti fino a 40 o
qualcosa e siamo limitati a 40 e
poi ci siamo adattati dopo averli tenuti tutti
intorno fino a quando l’ultimo messaggio non si interrompe
il q in volo e poi siamo al sicuro
per portarlo dentro e amiamo SQS e SNS
ma non potremmo davvero usarlo per lo streaming
elaborazione perché non si fermerà mai
i messaggi giusti non si fermano mai e c’è
mai una scala nel tuo genere non lo farebbe mai
scala in, ma ne ha sicuramente un po ‘
benefici su yeah kinesis buona domanda
Giusto, non ci sono più domande, credo
dovrebbe chiamarlo una conferenza e grazie
ancora una volta hai detto grazie e
qui vieni
Please follow and like us: