Press "Enter" to skip to content

GOTO 2016 • Monitoring Microservices • Tom Wilkie


ciao, per favore votami su questa app e sul mio
il nome è Tomoyuki
grazie per l’introduzione di Thomas
parlerò del monitoraggio di Micra
servizi e sì cominciamo con alcuni
warm up in realtà tutti hanno fatto questo
quindi ti senti piuttosto scaldato, quindi sono
salterò che sto correndo leggermente
poco tempo, quindi la tesi di questo discorso
è molto cambiato il servizio di Mike
l’architettura con cui costruisci
app e forse hai bisogno di riflettere
diverse tecniche per monitorarle
app quando le persone parlano di monitoraggio I
so che vado subito a una sorta di disegno
bei grafici di stile di serie temporali e che cosa
Sono davvero qui per parlare, forse
cercando di convincerti a pensare
il monitoraggio non è solo il tempo
grafici delle serie, quindi ho intenzione di rompere questo
parlare nel monitoraggio tradizionale
visualizzazione e tracciamento quindi iniziamo
con il monitoraggio tradizionale tuo
forse sai che monolite tradizionale
sembra un po ‘come questo
non è particolarmente interessante
diagramma hai qualche bilanciamento del carico
hai qualche servizio di applicazione
probabilmente hai alcuni database
cosa da notare da questo il personaggio
caratterizzazione destra non cambia
molto spesso è ragionevolmente statico
c’è un piccolo numero di parti mobili
e probabilmente hai dedicato
host o VM dedicate per ognuno di questi
componenti che probabilmente li hai nominati
altre persone hanno coperto il tipo di
li ha nominati appositamente per te
loro il tuo Mike Rosario molte persone
ne ho parlato è più dinamico
stai spingendo sai forse tutti
tre minuti e mezzo al massimo
estremo non hai davvero un
la tecnologia prescritta non lo fai davvero
hai un’architettura prescritta che hai
ha delegato molte delle responsabilità
sai che questa è una buona cosa
Adrienne coprì la sua nota dominante
ieri hai delegato il
responsabilità per gli strumenti che usano
per le lingue che usano per il
architettura dei sottosistemi al
team responsabili della loro costruzione e
questo è fantastico ma significa te
so che è flessibile è
cambiando non puoi più fare affidamento su a
così come un unico sistema di monitoraggio statico
sai che abbiamo sentito l’analogia degli animali domestici
contro i bovini mi piace comunque questa foto
vedremo che salteremo oltre che uno
quindi quello che finisci per costruire per a
l’applicazione monolitica è grande
cruscotto come questo non è il nostro
cruscotto Ho appena tirato fuori questo il
internet ma se guardi il
applicazione si tende a vedere questi sono
metriche host questo è l’I / O del disco host
le CPU host sono host centric
metriche e suppongo la vera tesi di
questa sezione del discorso è nel vecchio
mondo il tuo sistema la chiave primaria
sul tuo sistema di monitoraggio era host e
nel nuovo mondo dovrebbe essere la chiave primaria
sii un’applicazione o un servizio, quindi chi lo sa
o ha sentito parlare dell’uso di Brendan Greg
metodo buono qualcuno mi piace questo mi piace
semplice facile ricordare le cose che fa
rende più facile il tuo lavoro come DevOps
comunque, Brendan Greg parla del modo
monitorare un sistema è misurare il
saturazione di utilizzo e tasso di errore di
ogni risorsa e mentre penso questo
è utile soprattutto per cose come
capacità di pianificazione questo non è quello che io
piace usare e quindi questo è un po ‘
per favore non citatemi
questo penso che dovremmo leggere
metodo e il metodo di lettura è per ogni
servizio dovremmo monitorare il
tasso di errore il tasso di richieste e il
durata vorrei dire latenza
ma Arielle non suona altrettanto bene
quindi sì, si dovrebbe monitorare questi
tre cose che dovrebbe essere la chiave primaria
il servizio e tu vuoi davvero essere
guardando queste metriche in forma aggregata
davvero non vuoi guardare
queste metriche di una singola replica
di un determinato servizio che vuoi essere
guardandoli come sul servizio come a
intero e se inizi a misurarli
tipo di metrica che ti permetterà di
avere molta più fiducia nelle cose
come il tuo blu verde blu verde
implementazioni quindi come facciamo bene
tradizionalmente faresti qualcosa
in questo modo è un sacco di codice ma tu
in pratica dichiara alcune metriche nel tuo
applicazione li misuri e tu
esportarli e quindi questo sta per
ti chiedono di uscire per tutti i tuoi
diversi servizi tutti loro
diversi binari che hai scritto e
li strumenti in questo modo particolare
e ora uno dei tipi di tesi che noi
Se lo fai, scusa, vai avanti
di me si finisce con un bel
cruscotto come questo è l’ onore del grafico
che sta offrendo Prometeo
back-end e questo è ciò che in realtà
utilizzare per monitorare il nostro servizio che abbiamo
funziona ed è abbastanza bello farlo bene
lavoro ma ci deve essere un modo migliore che si
devi sapere questo quando ho fatto riferimento
prima a questo tipo di delegazione di
responsabilità ma con molto
monitoraggio degli argomenti e questo sta per
essere una cosa ricorrente che si finisce con
questo tipo di mandato top-down
tutti devono strumentare i loro servizi
in un modo particolare con un particolare
tecnologia e questo è completamente contro
questa responsabilità di delegazione è giusta
ogni squadra dovrebbe essere in grado di scegliere
i propri strumenti per far funzionare anche i loro
servizi ma non funziona così
c’è un modo migliore possiamo fare
qualcosa che significa squadre che non lo fanno
devono mandato che le squadre utilizzano
Prometeo e credo che tu possa
Credo che la piattaforma o il servizio
stai correndo dovrebbe fornirti il
metriche di cui hai bisogno senza che tu debba
strumenta la tua applicazione così se tu
guarda questo è specifico per kubernetes
ma funziona su molte cose se si guarda
nella maggior parte delle piattaforme hanno carico
equilibristi là dentro ce n’è uno nel cloud
fonderia Julieta ha un proxy cubo questi
load balancer vedere tutte le richieste a
tutte le tue istanze di tutti i tuoi
servizi e quindi perché non aggiungere il
strumentazione lì e poi si ottiene
metriche uniformi coerenti su tutte
i tuoi servizi e non devi farlo
questo mandato questo è qualcosa che
qualcuno può fare relativamente facilmente così noi
abbiamo lavorato a un progetto open-source
è davvero molto presto, come abbiamo appena
rilasciato il nostro zero virgola due così ho
sicuramente non lo dirigerò in produzione
solo ancora ma è uno strumento
bilanciamento del carico programmabile che utilizza
Prometeo per memorizzare le sue metriche perché
amiamo dal teologo di Ephraim II appena arrivato
a proposito, accettato in questo CNC F
che è una fantastica notizia CN CF è stato trovato
la fondazione che possiede anche Cuba
Anche Nettie è così
pensiamo che questo sia un approccio fantastico
farebbe una demo ma non ho davvero
tempo così ho intenzione di saltare questo uno
Avrò più demo dopo che incoraggerò
tu per provare il flusso penso che sia carino
freddo
questo è davvero tutto quello che ho da dire su
monitoraggio che devi conoscere
riassumere proprio nel vecchio mondo il tuo
la chiave primaria era host e nel nuovo
mondo nel mondo dei micro servizi
la chiave primaria ha davvero bisogno di essere revisionata
e poi ci sono diverse tecniche per
facendo questo, ma lo stato attuale del
l’arte sta strumentando singoli binari
ed esportandoli in qualcosa di simile
Prometeo il nuovo sai che ci penso
bisogno di trasferirsi in un mondo in cui il carico
gli equilibratori nella tua piattaforma ti danno
questo tipo di parametri in modo da non avere
per fare questo mandato in modo che sia il monitoraggio
visualizzazione questo è in realtà ciò che io
lavorare su così ho intenzione di trascorrere un po ‘
un po ‘ più di tempo a lavorare su questo parlare
su questo è una visualizzazione noi
parlato di questo mondo in cui il tuo
applicazione che la topologia e e
l’architettura della tua applicazione è
cambiando rapidamente così quante persone hanno
mai tipo di sedersi e spiegare
qualcuno che aspetto ha la loro applicazione
come su una lavagna sarò tipo di
spero che tutti voi abbiate ragione e quanti
le persone avevano torto quando l’hanno spiegato
So che avevo ragione, quindi è reale
problema hai la nota dominante
la mattina ha parlato di questo tipo di
conoscenza istituzionalizzata che hai
le persone a cui è stato insegnato questo è ciò che
l’ aspetto sembra e poi loro
ripeti e l’applicazione ha
cambiato tra il momento in cui erano
insegnato e il tempo lo ripetono e
non lo sanno, quindi non lo farebbero
è bello se probabilmente notate un
tema qui non sarebbe bello se ci
era uno strumento là fuori che ti attirava a
mappa della tua applicazione e in cima
tutto ciò non ha avuto bisogno di nessuno
tipo di annotazione o dichiarazione di sapere se
è appena uscito e
scoperto qual è la topologia del tuo
l’applicazione era ora la ragione per cui sono appassionato
su questo è perché è esattamente ciò che
Ho scritto che è open source
scritto fa è principalmente incentrato su
docker e kubernetes ma abbiamo
integrazioni con me salsa e
questo è si chiama noi scoped l’idea
ecco che ti disegna è un po ‘come
un po ‘ come un database grafico va e
raschia tutti i tipi di informazioni su
il sistema e lo rende in questi simpatici
topologie visivamente attraenti che chiamiamo
loro
quindi questo è pulito quello che voglio veramente
parlare di qui è perché questo è un
problema difficile da un punto tecnico
di vista per fare ciò ottenendo il
nota che è facile docker destro PS voi
sai che puoi fare PS nel tuo funzionamento
sistema per ottenere i processi da cui ottenere i pod
premiere dagli studi umanistici tutti hanno un
API per ottenere i nodi ma sta ottenendo
i bordi che sono difficili ci sono a
un paio di tecnologie per scoprirlo
le attuali connessioni TCP quindi tutto il
i bordi in questa app sono TCP
connessioni così le tecnologie che abbiamo
così contrac che sta esponendo i tavoli
usato per fare come mappare la mappa fino a me
capire e davvero sapere che il
la tecnologia del kernel dietro quella estremamente
bene il contratto può darti un flusso in diretta
di eventi va bene questo è grande questo sarà
ti dico quando vengono create le connessioni
e distrutto è un po ‘difficile da
interpretare lì perché è solo IP
indirizzi e quindi è necessario aderire a questo
con contenitori che potrebbero avere unicità
Indirizzi IP o se siete tutti familiari
con i contenitori docker è possibile condividere la rete
gli spazi dei nomi possono quindi condividere gli indirizzi IP così
potresti aver bisogno di specializzarti un po ‘
potrebbe aver bisogno di guardare il porto e sapere
che questo contenitore ascolta su questo
porto e questo contenitore in ascolto
questa porta ma ne hai anche fatta un’altra
approccio all’interno del file system proc
hai le tabelle TCP e così puoi
andare a vedere questo e che racconterà
voi cosa FD sta comunicando su quale TCP
collegare quale descrittore di file che è
ottimo ma ora ho anche bisogno di raschiare il
proc file system e ottenere la mappatura
tra processi e descrittori di file
e poi ho bisogno di ottenere la mappatura
tra processi e contenitori e I
ha bisogno di fare con questo grande join e ottenere
funziona tutto bene così che suoni
plausibile che suoni fattibili suona
complicato ma non complesso ma è così
in realtà diventa un po ‘così difficile
hai questo questo sarà un
Diagramma di Venn e non ne ho visti molti
Diagrammi di Venn e molti discorsi lì
dovrebbe essere più così sì questo è tutto
connessioni esistenti nel sistema e
questi sono quelli che posso direttamente
proc e io non riesco a raschiare tutto il
connessioni da proc perché la lettura
dai file system proc costosi quindi
Devo farlo, sai che devo valutare
limite quanto posso fare sono fondamentalmente
andando a sprecare tutta la mia CPU
monitorare l’applicazione che dovrei
per essere in esecuzione quindi devo farlo
periodicamente che significa qualsiasi breve durata
connessioni che si verificano tra il mio pisello
Non vedo bene, va bene
usa un contratto che mi darà un
diverso insieme di connessioni è un po ‘
sovrapposizione ci saranno alcuni bug in
contratto che è davvero fastidioso dove
ti parla di connessioni
non esiste Mi sono appena sbarazzato di uno di
quelli ieri quindi sono davvero felice
a tale proposito c’è ancora una sinistra che è
avrò qualche sovrapposizione con il pop ma
è anche andando fatemi sapere è anche
non ho intenzione di farmi sapere di tutto questo
connessioni in basso a destra e
queste sono connessioni che potrebbero essere
proveniente da processi nell’hostnet
namespace
okay, non posso disambiguare quelli al
processo giusto o al contenitore giusto
quindi questo è cose come le connessioni
finestra mobile docker
i demoni che mi impediscono di capire cosa
a che fare con quelli e diventa ancora più difficile
giusto perché li abbiamo
Connessioni con carico bilanciato sai
Saranno i moderni bilanciatori di carico del software
fare routing basato su tabelle IP in modo che
kernel sta facendo la cosa
inoltro dei pacchetti e questi
questi tendono ad andare a un indirizzo IP virtuale
che in realtà non esiste che sia
ottimo se stai cercando di monitorare i bordi
perché vedi questi indirizzi IP che
non sono reali quindi ora devi
tradurre questi indirizzi IP falsi questi
indirizzi IP virtuali in IP reale
indirizzi e cosa significa di più lì
potrebbe disegnare molti più cerchi qui sotto
Sto solo cercando di mostrarti il ​​motivo per cui disegno
questi bordi è difficile in ogni caso ho potuto
continua su questo, ma non ho intenzione di farlo
Invece farò una demo per mostrarlo
non c’è niente nella manica che ho
ha una scatola completamente vuota, questo è tutto
eseguito localmente su una singola VM su a
VM macchina mobile . Sto andando a correre
Esempio applicazione ora io normalmente non mi piace
utilizzare un grande script di shell per fare la mia demo ma
questo non è in realtà che cosa importante
questo sta facendo sotto il sotto le cose
sta solo facendo funzionare alcuni contenitori e
questi contenitori parlano tra loro
c’è un carico generalmente generatore in
lì così fa qualcosa e questi
i contenitori hanno l’ applicazione Python che ho
scritto alcuni elasticsearch alcuni Redis
qualche nginx lo chiami e va bene lo è
davvero ovvio per tutti giusto cosa
no, potrei sapere come ottenerlo
Lavagna bianca e disegnala ma non lo siamo
userò la portata questa volta, quindi la portata
il lancio dovrebbe essere così facile da eseguire
software e ora ho intenzione di ottenere l’interfaccia utente
quindi dargli un secondo per formare il suo graffio
per il sistema come vuoi dire peggiore lo fa
quello e là noi andiamo
raggio parlato è andato e raschiato questo
app questa app non è stata annotata
non è stato modificato per essere eseguito su scope e
gli ambiti sono riusciti a capire chi è
parlando a cosa e puoi vedere chiaramente
una specie di delineazione di cui hai un
basso equilibrio hai un generatore di carico
un servizio di bilanciamento del carico di alcuni server delle applicazioni
che stanno facendo solo routing e
quindi un mucchio di micro servizi nel
fondo che in realtà non fa nulla
è solo lì per spettacolo ma così è
questa è l’idea di base ora una delle
funzionalità che stiamo aggiungendo al campo di applicazione
questo sprint dovrebbe essere rilasciato bene
sarebbe stato rilasciato ieri se io
non era qui è così che possiamo fare le cose
come per favore dimmi cosa c’è scritto
Python e possiamo vedere che quei quattro
le app invocano Python nella loro linea di comando
o possiamo dire che ce n’erano alcuni
nginx quindi cosa c’è scritto nel motore X.
riguardo i due front end, ok
Indirizzi IP possiamo andare a 10.30 2.0 11 oh
quello è il front end che abbiamo
davvero buono se ti piace io chi è giusto
come se si presentasse con queste cose
comunque questa è la ricerca di altre cose noi
può fare dove possiamo cliccare su un dato
nodo nella topologia e possiamo
vedere più informazioni su di esso e noi
iniziare a raccogliere le metriche di base che iniziamo
raccogliere la memoria della CPU
abbiamo davvero un plugin davvero interessante
per l’ambito che inietta un filtro del kernel
questo piccolo EBP F è nel kernel
e inizia ad analizzare le intestazioni HTTP nel
kernel e l’emissione come tassi di richiesta
e tassi di errore e cose come questa così
simile a quello che possiamo fare con il flusso ma
in effetti senza nemmeno un bilanciatore del carico ma
è davvero molto presto
roba sperimentale quindi non ho intenzione di farlo
mostralo perché probabilmente no
lavoro ma altre cose puoi farlo
sappiamo che questa è un’app vediamo se noi
puoi ottenere un registro da questo
macchina sì
oh lo è o l’ errore va bene è interessante
ma possiamo ottenere un terminale potremmo questo
è solo facendo una finestra mobile collegata forse io
non voglio agganciare o attaccare forse
in realtà voglio curiosare dentro
lì abbiamo un terminale interattivo
quello ha smesso di funzionare No
questo è quello che succede quando usi
software non rilasciato lì vai
quindi l’intera idea qui è che puoi
visualizza l’app ma puoi anche
interagire con l’app puoi anche sì
puoi anche cliccarci sopra e solo cancellare
quello perché forse non lo vogliamo
fermiamolo e poi perché no?
fermati di nuovo
si è fermato e ora possiamo cancellarlo
eccolo, è sparito quindi questo è il
tipo di cose che stiamo cercando di fare un ambito
stiamo cercando di mostrarti cosa sta succedendo
nella tua applicazione ora questo è forse
un po ‘ troppe informazioni cosa noi
voglio davvero vedere è un più di un tipo
di una panoramica di livello superiore o di ciò che possiamo
fare è raggruppare questi contenitori insieme
e e da alcune metriche di certo
metadati così potremmo per esempio prendere
il nome DNS del contenitore e forse
questa è la cosa che si sta utilizzando al tipo di
indicare a quale servizio appartengono e
ora questo è sperabilmente il tipo di cosa
si potrebbe disegnare sulla lavagna voi
sappiamo che non stiamo mostrando tutto il diverso
repliche abbiamo un po ‘ aggregato il
nodi e se si è eseguito questo contro il
Cluster di Kuban eTI che potresti fare
stessa cosa che potresti vedere in tempo reale
servizio perché cuba Nettie ha un
concetto di un servizio e così via
dove mi piacciono anche la portata e lo scopo
capisce le relazioni tra
tutti i contenitori non solo nei bordi come
Connessioni TCP ma anche gentilmente
capisce che dentro questo contenitore
è un processo in modo che io possa andare a vedere
informazioni su quel processo e io posso
vedere che ha 21 file aperti e che cosa pit
è e sai che lo capisce
processo è in esecuzione su questo host e it
capisce davvero l’intera topologia
quanto connesso tutto è sul
computer e si può anche ottenere una radice
il computer quindi lo scope è anche un rootkit
sì, devo aggiustare la messa a fuoco della tastiera
cosa sono eccellente, quindi lo scopo è
versione o punto 14 così non siamo ancora
sai che non siamo ancora stati rilasciati
ancora non su uno oh è open source voi
possiamo andare e provarlo siamo davvero
interessato al feedback e ovviamente noi
devo fare un po ‘di sicurezza su di esso così
ci andiamo Penso che è praticamente
quello che voglio mostrare sullo scope funziona
è raggruppato e supporta tutti i tipi di
roba interessante e abbiamo solo
rilasciato negli ultimi plugin di rilascio e
questa versione è interamente dedicata alla ricerca
kubernetes così in movimento su come sto facendo
per tempo se vuoi lo abbiamo ospitato
versione di scopo questo è ciò che siamo
sperando di vendere e fare soldi un giorno
ma è un po ‘lontano ma dentro
nel frattempo è solo l’unico github
e tu puoi venire a parlare con me a molle
se vuoi così è la visualizzazione
l’intera idea qui è la tua app
cambiando sai che ti sei delegato
responsabilità per l’architettura a
il tuo team e hai davvero bisogno di uno strumento
quello visualizzerà quell’architettura
e ti aiuta ad avere un comune
linguaggio attraverso tutte le squadre e questo è
visualizzazione così tracciando quindi questo è questo
è ora che sai che ce ne siamo andati
dal software alfa al software betta
e ora stiamo andando tutto il viaggio di ritorno a
prototipi distribuiti su questa traccia
la traccia non è un argomento nuovo , inizia
con l’idea che quando hai avuto un
monolite potresti fare un profilo questo è
un profilo go e potresti fondamentalmente
che ti dà tutte le informazioni di te
bisogno di eseguire il debug e e e capire
problemi di prestazioni nella tua app, ma ora
che ogni richiesta data probabilmente sta andando
essere gestito da più micro servizi
conosci decine di micro servizi
non posso andare e profilare tutti quei micro
servizi e tipo di capire dove
le richieste hanno significato che è ora che finisci
con questa idea di tracciamento distribuito
che fa esattamente quello che traccia da solo
richieste mentre attraversano il tuo
app dei servizi micro e ti disegna a
bella fiamma una cornice una fiamma al grafico così
questo è abbastanza bello il più popolare
la versione nel mondo open-source è
chiamato Zipkin è modellato su qualcosa
che Google ha chiamato dapper come la maggior parte
cose Google ha scritto un documento su di esso e
qualcuno ha costruito una versione open source di
ed è davvero bello funziona davvero
bene ma uno dei problemi che ho toccato
in precedenza con il monitoraggio è giusto
ben Tornerò per questo voglio solo
per parlare di alcune pubblicazioni
quel Perez il foglio di carta Zipkin I
non pensare che abbia un documento quello che sono
veramente interessato in realtà è il secondo
uno indietro e questo è un poco conosciuto
paper di Microsoft Research a Cambridge
Regno Unito dove hanno distribuito la richiesta
tracciamento ma attraverso il sistema operativo
strumentazione così invece del modo
DAPA lo ha modificato
Il kernel di Windows e ottenuto tanto
informazioni che potrebbero uscire da quello
e questo è quello che mi ha dato l’ idea
questo quindi come fa il lavoro dapple
perché è così difficile la sfida è
hai una richiesta in arrivo che puoi
tempo che puoi misurare che è quello
facile la sfida è come si fa
associarlo con le richieste in uscita
come risolvi queste causalità?
i servizi sono scatole nere, proprio no
sapere cosa sta succedendo lì dentro e il
soluzione praticamente tutti se ne sono andati
con così tanto è che si inietta un po ‘
ID univoco nelle tue richieste in arrivo
e ti propaghi che tu modifichi
tutte le tue applicazioni da propagare
questo ID univoco va bene e che cosa ero io
dire prima riguardo a micro
servizi e controllandoti davvero
non voglio questi mandati top-down
per favore vai via e modifica tutto il tuo
applicazioni e cosa succederà
alcune squadre stanno per essere distribuite
ogni pochi giorni ci saranno alcune squadre
rilasciando ogni giorno alcune squadre in realtà
probabilmente hanno rilasciato questa cosa e
lasciato lì non sai tutto
deve essere revocato ogni minuto e così
hai intenzione di ottenere questo scaglionato
introduzione di questa tracciata distribuita o
nemmeno per niente alcune squadre potrebbero essere impegnate
alcuni software potrebbero essere stati rinnegati
nella tua organizzazione è ancora fermo
lì e deve ancora essere
strumentato in modo da ottenere questo problema
dove ricevi una richiesta in arrivo a
pezzo di un pezzo di codice che non ha
stato strumentato e qualcosa è
solo una scatola nera non vedi cosa c’è
accadendo passato là e questo davvero
ostacola il tipo di implementazione di
tracciamento distribuito in un’organizzazione
così di nuovo l’ho detto per ogni singolo
l’argomento può essere fatto senza modifiche
la tua applicazione e penso che possa
ovviamente quindi l’idea qui è questa
ovviamente non come funziona un computer
il modo in cui la tua applicazione parla con
kernel fa le chiamate di sistema che fa
chiamate di sistema per farlo devo sui socket IT
il sistema chiama per connettersi ad altri
connettersi ad altri computer in modo che il
il kernel ti fornisce un meccanismo per
intercettare quelle chiamate di sistema
si chiama P trace è chi ha usato s
traccia di questo è tutto
sai che sto parlando di così possiamo noi
intercettiamo queste chiamate di sistema possiamo noi
costruisci i nostri piccoli dati in memoria
struttura di quale filo che elabora
sta scrivendo o leggendo da un certo F DS
quale FD rappresenta quale indirizzo IP
quale porto conosci e chi c’è sul
altra estremità di quell’indirizzo IP nella porta e
possiamo usare questo per inferire questo
è una specie di domanda e se qualcuno è
prestando attenzione la risposta ovvia è
no perché cose come te asincrone
conoscere
architetture basate sul reattore stile nettie
stanno andando davvero
dissociare l’ IO della richiesta in arrivo
dalla tua richiesta di alchimia normalmente lo sono IO
andando a fare tutto nello stesso thread o
su un piccolo numero di fili del reattore o
qualcosa ma in realtà è la mia argomentazione
ci sono molte applicazioni che non lo fanno
usa che ci sono molte applicazioni
che sono molto più semplici che fanno ancora a
thread per richiesta e alcuni dei nuovi
le cose nel kernel di Linux fanno qualcosa
discussioni per richieste molto di più
prestazione di quanto fosse in passato se
stai facendo discussioni per richiesta che io
credo sia un qualche sottoinsieme di applicazioni
Credo che questo funzioni e lo mostrerò
perché io ho una demo quindi questa è
un po ‘meno affidabile perché dico
questo è completamente completamente
prototipo di software, quindi sono giusto
andando a cancellare tutto e solo a
mostrare che che ha funzionato e mi mostra
ha funzionato sì, tutti possono vedere cosa
Sto facendo del bene che in realtà non ho sentito
risposta ma va bene così sto andando
esegui un’app demo leggermente più piccola
tempo solo così è un po ‘di più
comprensibile e poi lo farò anche io
esegui lo scope per mostrarti cos’è questa demo
sta facendo
okay, dai uno sguardo al problema
tutto può mostrarti cosa sta facendo
questo è dove, naturalmente, andrà
istantaneamente sbagliato non vedremo nulla fare
fare per fare oh ci va davvero
semplice app qui abbiamo un carico
generatore di nuovo è lo stesso carico
generatori nell’esempio precedente che abbiamo
ho avuto una piccola app Python lo stesso
App Python come l’ultimo esempio, ma questo
tempo abbiamo solo due servizi in eco
server che è davvero buono perché tu
inviare una richiesta e lo invia indietro
a te e una citazione del server del giorno
che esce su Internet parla
la citazione attuale del protocollo del giorno
che è come un protocollo appropriato IETF
protocollo e ottiene un preventivo e poi e
quindi rispondere in modo l’applicazione riceve un preventivo esso
fa eco indietro e lo invia al
l’ utente all’utente che è un carico
generatore in questo caso quindi iniziamo
il tracciante e vedere cosa succede tracciante
lanciare bene in modo che sembra aver funzionato
puoi vedere i traccianti che girano lì
andremo al porto per il tracciatore okay
quindi questa UI ovviamente non è buona ma
non è realmente circa l’interfaccia utente Vado
per dimostrare solo che possiamo fare il
causa della causalità quindi vado a
dimostrare che possiamo unire le connessioni
tra due processi anziché
in entrata e in uscita possiamo unirmi a loro
tra due processi e poi vado
di lasciare che correre e vedere cosa succede
quindi iniziamo a tracciare il contenitore dell’app
questo forse funziona al 50 percento alla volta
beh, lasceremo che venga un’altra traccia
su chi usa Internet, andiamo
quindi possiamo vedere qui che in realtà ne usiamo uno
questo è più facile da vedere che possiamo vedere
una richiesta in arrivo e possiamo vedere noi
trovato due richieste in uscita per questo
richiesta in arrivo ora di nuovo questa app non
stato non è stato strumentato in alcuno
il modo in cui non è stato modificato in alcun modo
questo è solo usando la traccia P per scoprirlo
cosa succede in quell’app e così anche noi
possiamo vedere questi sono attualmente solo IP
indirizzi ma possiamo almeno vedere un
la richiesta in entrata ha causato due uscite
chiede quindi fermiamoci, andiamo e
prova questa citazione del day server
anche farlo per qualcosa di scritto e vedere
il server del tribunale del giorno è solo un
pthread veramente minimale vedi la libreria okay
sì , abbiamo una richiesta in arrivo
che provoca una singola richiesta in uscita a
qualche indirizzo IP casuale su internet
e ora cosa succede se rintraccio entrambi
loro allo stesso tempo posso partecipare al
richiesta in uscita dall’app al
richiesta in arrivo dalla citazione del
day server senza avere alcun tipo di
propagato ID univoci e la risposta è
forse di nuovo puoi vedere questo
qui questa è una richiesta in uscita da
l’app per la citazione del server di base
che poi è andato a un IP casuale forse
questo sarà più chiaro là vai
codice con aggiungere un IP casuale funziona
è solo su una singola macchina, ma io sono
piuttosto soddisfatto di quello così uno dei
cose interessanti qui puoi vedere un po ‘
le richieste sono veloci e alcune richieste
lento così possiamo capire con
tracciamento distribuito perché sta accadendo
se clicchiamo su una richiesta lenta, vediamo
è sempre nel secondo servizio cos’è
il secondo servizio mi chiedo quindi se andiamo
ed esegui l’echo tracer
così dovremmo anche iniziare a vedere questo
qui ah siamo ora riusciti a unirci al
richiesta in uscita dall’app al
richiesta in arrivo del server echo noi
può vedere il server di eco in realtà non
fare qualsiasi cosa con esso è bello saperlo
ma allora forse possiamo vedere che lo è
sempre il server echo che sta rallentando
si, è sempre l’eco quindi è essere
lento, ottimo da sapere
quindi questa è la traccia distribuita con P
traccia una delle cose da notare su P
traccia è quando la traccia P allegata a
un’applicazione diventa molto lenta, quindi noi
questa tecnica non funzionerà in produzione
ancora ma come ho toccato prima c’è
questi filtri EB PF che puoi iniettare
nel kernel e praticamente rimandare
qualsiasi cosa nel kernel la usiamo parte
Intestazioni HTTP nel kernel per ottenere il
ottenere le metriche credo anche io
non l’ho ancora fatto che potremmo usare
i filtri F EBP per fare la stessa cosa
qui e in realtà hanno un performante
versione di questo tipo di nessuna applicazione
modifica delle traccie e per il for
le istanze in cui stai utilizzando
qualcosa come compensazione o qualche tipo di
async I / O spero che potremo
usa anche un po ‘di strumentazione
o forse anche alcuni come livello di lingua
strumentazione se non è completamente
agnostico per ottenere quei bordi pure
per ottenere quelli una causalità quindi uccidiamo
quello perché potrebbe uccidere la mia macchina
è stato distribuito tracciare questo è
davvero un prototipo di software che tipo di questo
è più un hobby che qualcosa
approvato da lavori a intreccio ma se pensi
è interessante sto cercando persone
per lavorarci sopra con me che sto cercando
alcuni programmatori gratuiti quindi, per favore lasciami fare
So che è tracciare l’idea qui è che si
davvero bisogno di tracciamento distribuito
se hai intenzione di capire davvero
cosa succede nella tua applicazione
quando usi i servizi micro e io
crediamo di poterlo fare senza
modifiche delle applicazioni quindi spero
Ti ho quasi mostrato i tre tipi
di quello che vedo sono i tre inquilini di
monitorare un’applicazione di micro servizi
qual è il tuo monitoraggio tradizionale
dove ho detto ciò che si vuole veramente è quello di
cambia la tua chiave primaria dall’host a
servizio e se sei intelligente su dove
raccogli i dati che potresti fare
senza questo mandato dall’alto
visualizzazione che penso super
importante quando l’architettura del nostro
l’applicazione è in continua evoluzione e
nuovi servizi che vengono lanciati e
rifiutato su base giornaliera e di nuovo
puoi farlo senza applicazione
modifiche e senza annotazioni
le tue applicazioni e traccia dove
forse puoi farlo senza modificare
la tua applicazione sai già quelle
per essere ancora visto, siamo obbligati
assumendo abbiamo funzionato in realtà solo questo
mattina abbiamo annunciato la grande serie B noi
ha raccolto 15 milioni da Google Ventures
quindi siamo abbastanza contenti di questo e
sì domande ho pensato di provare e
finisci presto perché è il pranzo e io sono
buon affamato e tempismo perfetto perché
il mio orologio di Apple mi ha appena detto di stare in piedi
oh e tra l’ altro ci sono i link che farò
metti queste diapositive online sono già
online da qualche parte ma metterò il
versioni aggiornate online e per favore scrivi
me così un sacco di domande non ho avuto
è una buona cosa vediamo che sarai
il giudice di ciò credo che sia tuo
la visualizzazione va bene finché tu
ho forse dozzine di microservizi ma
quello che si sa aggiungere centinaia scala più grande
fa questa visualizzazione se lo sai
piccoli gruppi funzionano ancora o lo faresti
questa è una bella domanda, non lo so
non siamo il viaggio che stiamo provando
indirizzare con scope è uno sviluppatore
lavorando sul loro laptop e magari muovendosi
inizialmente attraverso come iniziale iniziale
fasi di produzione come scopo come ho detto
è ancora essere troppo software è ancora
non il punto 15 o qualcosa così sì sì
non so che stiamo appena iniziando
per affrontare alcuni dei problemi con
scala perché usiamo lo scopo da soli
servizio e tu stavi ovviamente correndo
più che come 10 contenitori ora e
sì, ci imbattiamo in alcuni problemi
è per questo che abbiamo aggiunto la ricerca per quello che abbiamo
fatto un sacco di prestazioni funzionano così tu
può solo ancora rendere tutto e
stiamo aggiungendo le visualizzazioni delle liste è per questo che noi
aggiunto la funzionalità di raggruppamento in modo da te
può fare in tempo a prendere tutti questi contenitori
e D ingannarli e filtrarli sai
abbiamo aggiunto un sacco di filtri
roba nell’ultima versione, quindi puoi
guarda il sistema che hai organizzato
ti interessa ma sì, è così
sai ancora che è una domanda aperta come
se questa tecnica sarà scalabile
diecimila contenitori che dire se
hai un’architettura come abbiamo parlato
all’incirca nel discorso di Fred George
dove hai una Venezia bene hai un
capo del messaggio esattamente perché eccoti qui
parlando di connessioni tra
singoli nodi individuali e ora
stai inviando messaggi e non è così
tipo di quell’ostacolo vedi il flusso
di informazioni in qualche modo intenzionalmente
alcuni potrebbero dire sì, intendo io personalmente
ho avuto qualche esperienza con questi messaggi
l’architettura basata su bus non è così
molto come ho con il bus non di messaggi
quelli basati e preferisco il non messaggio
quelli basati sul bus del messaggio ma II indovina il
la linea aziendale sarebbe che abbiamo un
plugin per architettura e se riesci a trovarlo
un modo di esprimere le relazioni
tra i tuoi servizi puoi alimentare Skype
quel dato e lo renderà per te
si e non c’è niente che ti fermi
forse facendo un plug-in che lo farebbe
supportare qualcosa come caf esattamente sì
si ok, voglio dire, lo sai che ne penso uno
di tutti i punti del bus dei messaggi
l’architettura basata sul trucco è quella che non lo è
tipo di relazioni intrinseche ed è
molto più dinamico quindi non lo so
sì, intendo che è un problema irrisolto
problema pure, ma una buona domanda così
tu e sicuro che ci hai mostrato come correre
questo a livello locale sulla tua macchina come
lo installeresti su una vera rete
oh wow beh, in realtà ho appena scritto il
documenti su come farlo come un paio di
giorni fa, ma se stai usando Cuba
Nettie di
dovresti fare per fare il sito
istruzioni per l’ installazione installando così
lui va come se ci fossero le istruzioni su come
installarlo su praticamente tutto
se hai dei grossi nefande cubani
cluster è come un comando se è un
cluster di mesosfera quindi è nel
negozio di mesosfera che hai visto ieri
in effetti potresti persino vedere il logo se
stai prestando attenzione se stai usando
sciame docker si usano gli stessi comandi I
ha scritto e tu lo hai eseguito più volte
su ogni host e qual è l’altra cosa
sosteniamo ECS abbiamo un cloud
ricetta di formazione non l’ho scritto io
non so cosa sia e si
in fondo c’è un modo per farlo
in realtà stavo parlando con KC di come
per farlo funzionare su Cloud Foundry
che non abbiamo ancora fatto, ma sono sicuro
lo faremo come se fosse il super-generic solo
traccia le connessioni TCP tra i processi
quindi non dovrebbe funzionare più o meno
qualsiasi cosa, quindi, non su docker
la gente non usa effettivamente il razzo docker
Sì, stavo lavorando con un tizio chiamato
album anche se non so quale sia il suo
il vero nome è che è il suo gestore di Twitter
a farlo funzionare su un razzo che è
progressi di lavoro va bene, ma non c’è
ancora nessuna ragione per cui non può farlo
di nuovo, in realtà, lo scope gira abbastanza bene
sul Mac in cui non hai una finestra mobile
tempo di esecuzione del contenitore in modo che tu possa effettivamente
compilare questo su Arwen e giusto
eseguilo e funziona bene perché è un
obiettivo perché sta andando bene ma si
come l’idea tra il docker
l’imballaggio è solo per renderlo facile così
per quanto riguarda i processi tra diversi
reti che ci hai mostrato su una macchina
qui ma funziona perfettamente se tu
okay, sì, un bel po ‘di lavoro è andato
in particolare come un indirizzo IP possibile
significa una cosa diversa su un computer
di quello che può su un altro questo è quello che io
era una specie di parlare con l’IP
bilanciamento del carico basato su così tanti lavori
andato a fare in modo che possiamo capire
su che fine funziona la connessione su due
diversi host si divertono con i tavoli IP sì
Intendo gli incubi e ho perso il sonno con IP
i tavoli sono più ma sì sì sì dovrebbe
come se lavorassi su grandi dimensioni
reti come ho appena si riferiscono al primo
domanda come obiettivi mirati a te
conoscere piccole implementazioni proprio ora
Sappiamo ci arriveremo alla fine grazie
tu Tom, grazie
tu
tu

Please follow and like us: