Press "Enter" to skip to content

GOTO 2016 • Cloud Native Java • Josh Long


va bene qualsiasi cosa tu stia facendo, ricorda
Credo che il codice sia il più singolo
cosa importante possiamo fare se siamo su
se siamo tra i quattro o giù di lì
miliardi di persone su internet collegate
a Internet o al pozzo della foresta
miliardi di persone sul pianeta collegate
a Internet per noi il codice è un singolo
la cosa più impattante che puoi fare
una modifica a fare la differenza per a
cambia il mondo ce ne sono ancora tre o
così miliardi di persone non ancora collegate a
Internet quindi ovviamente abbiamo un lungo
modi per andare, ma se sei connesso
il codice Internet è il più potente
cosa puoi fare è per questo che comincio
codice
Credo che il codice sia l’essenza di cosa
stiamo cercando di fare qui, quindi prendi nota che per
il tuo riferimento sono anche su
internet sono felice di portare questo
discussione in avanti sopra e oltre il nostro
tempo umile insieme qui oggi così
per favore nota che Twitter gestisce quanti
di te su twitter twitter è il 2016
twitter twitter okay, questo è un po ‘
imbarazzante che dire dell’e-mail e-mail e-mail
nessuno va bene se sei su email
probabilmente dovresti considerare la tua vita
Scelte amico Twitter ottimo se non capisco
su di esso è il nuovo IRC è roba calda
roba buona un po ‘su di me il mio nome
è Josh lungo Sono lo sviluppatore di primavera
difendere in primavera la squadra I’m the
libro autore l’ultimo e più grande libro
che non è ancora finito ma lo siamo
lavorando su di esso si chiama cloud native
Java è una sorta di versione long-form
di quello di cui stiamo per parlare nel
i prossimi 50 minuti quell’uccello per quelli di
ti stai chiedendo è il blu eared
Martin pescatore dalla javanese un’isola
quindi è un uccello che lo vedi
vola da Java in modo uccello uccello nativo John
oh, va bene verrà, no
ti preoccupare lo otterrete sarà
bene
inoltre ho fatto un allenamento video in modo che
l’ultimo e il più grande dei quali è chiamato
costruzione di lezioni di avvio di primavera con
co-fondatore di stivali primaverili e il mio amico e
l’amico di tutti è davvero Phil Webb
c’è che sono anche un open-source
collaboratore di un ingegnere sono il numero
uno in alto classifica No scherzo
numero uno sette anni consecutivi sette
anni più bug per commit rispetto a qualsiasi altro
altro committer numero uno numero uno
per progetti come spring boot spring
negazione della baldoria del cloud Baudin batch di primavera
tempo foglia attività ecc più bug per
commetto e lavoro in modo cruciale in a
fine settimana cruciale
molto sull’open source che puoi vedere
questo perché ho le loro icone carine
sulla mia diapositiva ma non sono i nostri ragazzi
che non è il motivo per cui siamo qui è
non è la ragione per cui siamo entusiasti di andare
lavoro la mattina siamo eccitati
perché vogliamo aiutare i clienti
membri della comunità e organizzazioni a
grande mossa rapidamente e in sicurezza da
concetto alla produzione e vediamo che a
molti di loro lottano con questo loro
non so come farlo perché loro
sono abbastanza fortunato per essere stato in giro per
più di dieci anni più a lungo dell’epoca
del cloud computing di cui siamo a conoscenza
in questo momento quello in cui ci troviamo adesso
queste organizzazioni hanno esistenti
applicazioni che sono state scritte in
passato prima dell’economia e
prima dei benefici del cloud computing
erano così ovvi e così evidenti questi
applicazioni mentre stavano bene
progettato per il tempo in cui erano
concepito ora presente un po ‘di un
l’ostacolo che vedi la velocità è un
differenziatore è la salsa segreta
che aiuta a ottenere rapidamente sul mercato e
Non ho bisogno di guardare troppo lontano per
a supporto delle prove di questo giusto cosa
è qual è la più grande compagnia di taxi in
il mondo adesso
uber proprio quello che è l’hotel più grande
marchio nel mondo in questo momento qual è il
più grande in termini di anno in anno
società automobilistica di crescita nel mondo giusto
ora e qual è il noleggio video più grande
servizio nel mondo in questo momento
non lo vedo esattamente, è così ironicamente
così male che è ironico e lo è
divertente non è blockbuster è Netflix
e questo dimostra il mio punto queste aziende
quando sono stati avviati non ne avevano più
i soldi non avevano più risorse no
anche necessariamente hanno persone più intelligenti
avevano il vantaggio della velocità che avevano
la capacità di fare un errore
Ovviamente corretto e quindi per risolvere il problema
si chiedono costantemente di ruotare o
perseverare e hanno avuto questa capacità
perché hanno usato processi agili
e hanno capito di avere il
capacità di andare più veloce perché hanno funzionato
su piccoli lotti quindi ora siamo in una buona
posizione capiamo cosa aiuta le persone
andare veloce e ciò che li aiuta a salire il
ranghi della velocità del mercato è molto
importante anche se ne stai facendo di più
errori più velocemente è possibile risolverli più velocemente
giusto non è necessariamente sull’essere
meglio si tratta di fare lo stesso
errori come ogni altro e poi
fissandoli e riparandoli più velocemente riducendo
il tempo di consegna e le organizzazioni
capisci questo, ma il problema è questo
un’organizzazione tipica ha un sacco di
luoghi nella catena del valore in cui il tempo è
perso quando si spostano concetti dal concetto
a
riduzione quindi per esempio se hai un
grande organizzazione in genere
potrebbe avere in genere l’ accodamento
tra gli sviluppatori di gestione del prodotto
conosci i tester delle persone con esperienza utente
gli amministratori di ecc. che la coda è a
grosso problema perché devi aspettare
le persone a gestire il lavoro l’altro
il problema è che hai grandi esistenti
applicazioni ed è molto difficile da fare
muovere il Titanic per così dire ci vuole un
molte persone per apportare modifiche per testarlo
integrarlo per stabilizzarlo e poi
finalmente dispiegarlo in così piccoli lotti di
il lavoro è ciò di cui abbiamo bisogno e possiamo usarti
conoscere la guida del buon dottore scusa
il buon Eric Evans e il suo fantastico tomo
design guidato da domini in cui parla
su qualcosa chiamato contesto limitato
un contesto limitato è una parte del
applicazione che quando estratta dal
il buco più grande si trova su se stesso
internamente coerente e riusabile a
contesto limitato è una definizione nitida di
parte del modello di dominio di cui ci si sbarazza
l’ambiguità dell’ambiguità tra questo e
alcune altre parti e ce la fai
croccante e lo estrai se puoi
identifica contesti limitati hai a
candidato per una piccola serie di lavori a
piccola partita di lavoro su cui un piccolo
gruppo di persone che non devono spendere
un sacco di tempo in riunioni di cui parlare
quello che stanno facendo possono davvero
basta fare un piccolo lotto di lavoro per a
piccolo gruppo di persone che può essere
evoluto e schierato indipendente da
l’un l’altro
un piccolo focalizzato individualmente
dispiegabile internamente coerente
lotto riutilizzabile di lavoro questo è un micro
servizio un micro servizio è un’unità di
agilità organizzativa che capita di essere
la migliore architettura per ridimensionare
in senso orizzontale, ma non credo che è necessario
trasferirsi in questa architettura per quello
non è l’ obiettivo se ti sposti in micro
servizi perché stai cercando di scalare
sei pazzo che non sei Google che sei
non Netflix risolve prima il vero problema
risolvere i colli di bottiglia organizzativi
e puoi farlo con i micro servizi
i micro servizi sono un hack su Conway’s
legge che dice che il software riflette
la struttura organizzativa che
serve a rispecchiarlo così se il tuo
l’organizzazione ha un’organizzazione schifosa
struttura che avrai schifoso
il software risolve questo costruendo team
tu che vuoi che tu voglia riflettere
il software nel software così quando tu
trasferirsi in questa architettura ne hai due
problemi che abbiamo guardato abbiamo visto
stivali di primavera stivali di primavera risolve il
primo problema il primo problema è come
faccio rapidamente alzare un nuovo servizio
consiste in una pulce costantemente in esso
utilmente come faccio perché lo sono
andando a doverlo fare molto bene se
esso
succhia a stare in piedi un servizio di uno
organizzazione di un’applicazione nel tuo
organizzazione sarai completa
l’inferno quando ti sposti ai microservizi
questo è il primo problema che devi
risolvere la maggior parte delle organizzazioni che ho visto
avere questa pagina wiki da incubo 500 facile
passi per la produzione di quella pagina wiki
il nemico della velocità e tu hai bisogno di
superare che deve essere veloce a
alzati in piedi nel tuo stivale a molla di servizio
rende veloce la messa in piedi di un nuovo servizio
e farlo con la prontezza della produzione in
mente per supportare la sicurezza e
osservabilità e coerenza e tutto
queste sono le cose di cui hai bisogno
ogni servizio che non direttamente
contribuire alla catena del valore che è il
primo problema il secondo problema che sei
Avrai è ora che hai questi
indipendentemente schierato cose che
implica partizioni di rete
i dipendenti implicano la distribuzione che hai
ora ha costruito un sistema distribuito e se
c’è qualcosa su cui sono sicuro noi
tutti possono essere d’accordo dice che costruisce
sistemi distribuiti è difficile e così per
che oggi guarderemo qualcosa
chiamato spring cloud quanti di voi hanno
sentito parlare di Spring cloud roba buona come
molti di voi l’hanno usato nella rabbia che
significa che sai in produzione fondamentalmente
okay, per il resto di voi questo è
sarà un lavello della cucina se ne hai uno
telefono o computer lo chiuderei e
quindi apri gli occhi e lo faremo
andremo piuttosto velocemente perché noi
non ho molto tempo quindi ricorda il mio
questo è il mio secondo posto preferito
su internet proprio qui inizia la primavera
Nanao il mio primo posto preferito su
Internet è produzione
Amo la produzione che dovresti amare
produzione dovresti andare tutte le volte che sei tu
può il tempo è bello è il
il posto più felice sulla terra è meglio di
Disneyland
Amo la produzione e anche tu dovresti
se non sei già in produzione allora
iniziare il vostro viaggio qui partiamo che
molla che io oh questo è il mio secondo
luogo preferito così ancora una volta il segnalibro lo mantiene
tenerlo vicino al tuo cuscino
il tuo cuore se sei se i tuoi figli
stanno avendo problemi a dormire iniziare così
molla che i / o, se vi trovate
soffre di indigestione e ricerca
sollievo iniziare quella primavera che io Oh
e se si vuole per ispirazione nella
mattina presto prima di una tazza di caffè o
il tè inizia quella primavera oggi, oh, ci siamo
andrò avanti e costruirò una cosa molto semplice
servizio e non ho molto di più
tempo per spiegare il servizio stesso così
costruiremo questo che chiameremo
questo il servizio di prenotazione che sto per fare
usa il supporto web di Springs Userò h2
che è un sequel incorporato nella memoria
il database è in memoria quindi andrà
perde tutto il suo stato dopo ogni riavvio
molto simile a MongoDB, quindi c’è questo
useremo il client di configurazione che
è molto utile per centralizzato
configurazione useremo Eureka per
registrazione di servizio e scoperta sono
userò JP l’API di persistenza Java
perché prendo decisioni di vita povere, quindi JP
a Sto per portare un attuatore per
preoccupazioni operative o portare Zipkin
per tracciamento distribuito e cue casuale
per l’elaborazione del flusso e che penso
lo farò per ora oh non ci riposeremo
supporto repository e ora potrei
scegliere di andare qui e passare al
versione completa a cui mi verrà dato un
vero oceano di opzioni caselle di controllo
che rappresentano tutti i diversi tipi di
carichi di lavoro e tecnologie che potrei
seleziona qualsiasi altra opzione che conosci qui
ma non abbiamo abbastanza tempo non quasi
abbastanza tempo abbiamo anche un po ‘di discrezione
su quale lingua vorrebbe usare
qualsiasi lingua sulla JVM che supporti
annotazioni e oggetti funzioneranno correttamente
bene così Scala groovy Kotlin e e Java
certo che va bene, qui
non avere scelte e le persone si danno molto
confuso su questo non sanno quando
e dove scegliere quale andrò
faccio la mia testa più equilibrata qui e ora
spiegare
non usarli mai così semplice come
che queste non sono scelte, queste sono
scelte allo stesso modo di quelle di stripping
correre nudo nel traffico è una scelta per te
potrei, ma non farlo, e poi qui
abbiamo la scelta della confezione se da
Qualche capriccio di fisica che trovi
te stesso bloccato molto molto
molto lontano molto oltre il moderno
aiuta quindi scegliere dot waar ma se lo sei
qui con me nel 2016, quindi scegliere dot jar
questa è una parte importante della mia sovranità
guida la filosofia personale di fare barattolo
non warren di nuovo hai opzioni voi
avere scelte che dovresti fare ciò che funziona
che in questo caso corrisponde al fare
quello che ho detto di fare è comodo
andremo avanti e colpiremo generare
e questo ci darà un nuovo file zip
aprirò il file zip nel mio ID e
non importa quale IDE sia così
a patto che tu abbia un NetBeans IntelliJ
ed Eclipse funzionano tutti molto bene
strumenti per NetBeans spring tool suite 4
per Eclipse ovviamente e poi IntelliJ
l’ultimo ha plugin aggiuntivi ma lo sono
non è necessario hai solo bisogno di Java e
supporto per le annotazioni e li ha supportati
o un supporto Gradle ora quello che sto per fare
faccio è che costruirò un assurdamente
modello di dominio banale puoi vedere tutti
questo nella parte posteriore è abbastanza grande
dovrei renderlo un po ‘meno grande
perché è quasi troppo grande per me che ero
data la stessa presentazione di ieri
e stavo usando il mio profilo più grande
ma è quasi troppo più grande così
diremo 222 ok
hey, dove è mai okay con quello
faboo, quindi sto per dire che ho un Joe
Ho fatto un modello di tipo di prenotazione
dargli una chiave primaria che segnalerò
usando l’ annotazione anti d a
valore generato va bene e dirò
questo è il nome di prenotazione stringa privata
Sarà un campo JP che sarà mappato
una colonna chiamata prenotazione o punteggio
nome nel database e segnalerò
questa è un’annotazione JP usando
finisci con te o usando tu aggiungi
l’annotazione ora è questa i miei amici
il più puro il più conciso più incontaminato
espressione più chiara del mio modello di dominio
è bellissimo assolutamente ma
questo è Java, quindi non sarà nemmeno vicino
a sufficienza quindi aggiungeremo questo costruttore
aggiungerà un altro costruttore proprio questo
solo per JPA e JP si aggiungerà a
il metodo a due corde aggiungerà alcuni getter
e lì andiamo e quello che voglio fare è
Voglio salvare i record di quel tipo in
il database e io potrei creare un manuale
oggetto repository se si rivolge nuovamente a
Eric Evans nel fantastico libro
design basato sul dominio è un oggetto che
sta andando a gestire il sottostante
persistenza la lettura della scrittura ecc
ma non è una questione di business
funzionalità quindi preferisco rimandare a
repository basati su interfacce dichiarative
dai dati di primavera voglio fare questo a
API REST quindi dirò al repository di riposo
risorsa userò i dati primaverili lì
e poi voglio impostare qualche campione
dati quindi dirò esempi di implementazioni CLR
riga di comando Runner ci siamo e
cosa farò nel mare
la faccia ha appena scavalcato il callback
metodo chiamato void run e lo dirò
molla ogni volta che si avvia a chiamare
questo metodo perché ha questo
interfaccia e userò la dipendenza
iniezione qui dirò a primavera
fornire un riferimento a questo repository
che sto andando a soddisfare attraverso il
costruttore questo è il modo corretto per
fai questo dal modo in cui non usi mai il
iniezione di campo sempre ogni singola volta
lo fai muore un test unitario
non farlo mai neanche quando sei
tutto da solo a casa
tutto solo e nessuno guarda mai
va bene
così ciao a questo ora ho un semplice
registrare e inserirò solo alcuni
dati quindi il mio nome è Josh, è adorabile
incontrare voi il mio amico tuo come va
amico Arion, lui è laggiù, uragan
lasciato ovviamente
Stephan e Brian sono sei
è quasi un buon numero qual è il tuo
nome amico come si scrive in questo modo
va bene
e che ne dici di te capo se la nostra sospensione in k
piacere di conoscerti che è otto questo è un
bel numero rotondo anche dormirò bene
stasera sarà fantastico, e allora?
Sto andando faccio è sto andando in un passaggio
consumatore questo è un Java otto ism giusto
questa è una di quelle nuove funzionalità che
solo lingue molto moderne hanno
lingue come C COBOL PHP Ruby pearl
Lisp small talk C ++ obiettivo-c Visual
Basic basic visual basicnet Ruby go Lua
Haskell COBOL ha ragione così come un Java
campione Sono molto felice di parlare di
qualcosa chiamato un lambda che è nuovo
in Java 8 dove abbiamo introdotto due anni
fa e poi vado a visitare tutti
record lo dirò per ogni disco
chiamiamo il metodo della linea di stampa che sono
andando stamparlo ora cosa che sta andando
fare è girare e basta
andando a scrivere tutti i record per il
database e poi vedremo quelli
record riflesse nell’output sulla
riga di comando okay, ho tutto
tipi di cose sui miei percorsi di classe così
vediamo come va, non sono nemmeno
sicuro se dovrei averne cancellato un po ‘
bene bene lì è ha funzionato di
Certo che ha funzionato era una demo cosa erano
ti aspetti che succederà sempre
lavoro invece quello che volevo davvero
parlare di questo è qualcosa
è vicino e caro al mio cuore è
fondamentalmente
qui questo è un grosso problema che diavolo
perchè questo qui vede quello che veramente
Volevo parlare di questo era questo
la stivale primaverile ASCII opera d’arte e questo
Lavoro ASCII art è voluto molto tempo per arrivare
Proprio noi della squadra primaverile ne abbiamo diversi
dottori di phd persone che hanno lavorato in
fisica nucleare che ha lavorato molto duramente
fai questo lavoro per te
e quindi considero questo particolare
presentano una deficienza molto grave nel
Prodotto JetBrains cosa diavolo perché è
che lì e così ho fatto quello che tutte le persone
fare di fronte a un sai
sfida e lotta su Internet I
è andato su internet e ho pianto e io
è stato accolto da un messaggio di speranza dal mio
amico Yan tebron che è un software
sviluppatore da appassionato intelligente
cervello e ha risposto con questo
messaggio che condivido con voi qui ora
non preoccuparti per i miei amici che faremo
intelligente di nuovo grande comunque così abbiamo
ottenuto un’ora al API REST possiamo visitare il
Arresta le API andando alle prenotazioni e
possiamo vedere qui che ho un
raccolta di risorse questa scatola blu così
molto se puoi vederlo c’è un piccolo
piccolo schermo lì, ma quella scatola blu è
una risorsa è un oggetto busta con
un carico utile e una collezione di link
riguardo al carico utile è iper media è
costruito sulla primavera calda così come hypermedia
il motore di applicazione di stato che
è un modello di design ora se hai seguito
uno dei precedenti discorsi sulla primavera
stand quindi sai che puoi cambiare tutto
modo di cose diverse per esempio
andando alle proprietà dell’app dell’applicazione
e cambiando ad esempio il porto ma
questo tradirà alcune delle cose
che vogliamo in una consegna continua
App stile o stile agile che conosci
ambiente Voglio essere in grado di spostare il mio
costruire da un ambiente all’altro o
che dover ricompilarlo così mentre io
potrebbe cambiare le cose in applicazione di
proprietà e scavalcandoli vorrei
devo ricompilare ogni volta se ho fatto
che posso invece rimandare a Springs
buon supporto per lo stile 12 fattori
configurazione qui, quindi se vado qui
alla mia mia build nella quale il mio cappotto è come
questo e io potrei persino pulire l’installazione
Ono ti ringrazio e poi maven – d salta
test perché Yolo va bene e obiettivo CD
ci siamo , puoi vedere che ho un
il cosiddetto fat char che contiene
tutto ciò di cui ho bisogno per eseguire l’ applicazione
e posso dire porta dot server Java – D
è uguale a 80 10 – mostra prenotazione char –
braccio che ti sputare l’applicazione su
porta 80 10 invece del predefinito 8080
dove sono gli altri
quindi c’è anche l’80 10 che posso usare
variabile d’ambiente quindi posso dire esportazione
la porta di sottolineatura del server è uguale a 80 30 e
quindi basta fare Java – conservazione dei vasi
serve a quel barattolo che vedrà che gira su
porta 80 30 invece ci siamo
giusto oh torna figlio di pistola intendo
L’ho perso ti biasimo per te
ci siamo 80 30 va bene così funziona
e questo è certamente molto potente ma
non è abbastanza ce ne sono molti usi
casi per i quali ciò non è sufficiente
supponiamo che voglio cambiare il
configurazione mentre il servizio è
correre supponiamo che voglio
supporta password sensibili crittografate
informazioni sul file system come
sostengo che suppongo che voglio
centralizzare invece tutte queste informazioni
di copia e incolla configurazione
da un dato da uno script di avvio o
file manifest o docker o qualsiasi altra cosa
un altro e poi immagino che voglio
cambiare le cose bene è il servizio
in diretta per tutti questi casi d’ uso
e più mentre questa è una buona base è
non abbastanza e abbiamo bisogno di fare a
un po ‘meglio quindi cosa farò
Sto costruendo una configurazione di nuvole primaverili
server ora che può risolvere il nostro oh sì, tutto
va bene, roba il server di configurazione
il server di configurazione è un’API che stiamo per fare
alzarsi che sa come gestire a
directory piena di configurazione e quella
la directory sarà basata su git e
Lo clonerò dal mio github
repository qui ora questo è un approccio
puoi anche usare zookeeper o console per
centralizza la tua configurazione e di nuovo
Ti rimanderò al mio buon amico
questo tuo discorso più avanti, ma abbiamo un
server di configurazione così ho intenzione di spostare questo
elenco qui solo per conoscere la configurazione
è sul mio elenco per il mio a casa mia
directory nel mio desktop e ora ho
creato questo nuovo modulo chiamato il
servizio di config Sto andando aprire questo
e lo configurerò per essere un
server di configurazione che gestirà il nostro
directory piena di configurazione su
per conto dei micro servizi così config
servizio che abilita il server di configurazione che siamo
andrò qui al file di proprietà che siamo
dirò spring cloud cloud config
server ottiene URI uguale e sto per dire
home Desktop config e sto andando anche io
per indirizzare la mia applicazione alla porta 8080 888
okay e lo farò ora, supponiamo che io
sono un micro servizio che voglio fare
Voglio avere la mia chiamata servizi di micro
il server di configurazione sulla porta 8888 e poi
chiederanno i loro set di
configurazione così invece di dover
mantenere tutta quella roba in file di proprietà in
ogni applicazione ho solo un servizio
e ha una directory quindi cosa succede se io sono
un micro servizio che mi chiamerò
la prenotazione del servizio di prenotazione –
servizio quale configurazione vorrei vedere io
vedrei questa prenotazione 8888 –
servizio predefinito ok predefinito è il
profilo questa è la proprietà che conosci
il nome del servizio e vedrò due
fonti di proprietà uno dall’applicazione
scusa uno dall’applicazione delle proprietà
e un altro dal servizio di prenotazione
tipo prop
ci sono chiavi nei valori in ciascuno di
questi file di proprietà se c’è un
conflitto come qui porta del server e
porta del server quindi il file più specifico
sovrascrive il file di fallback predefinito così
ogni micro servizio vedrà i valori
nelle proprietà dell’app dell’applicazione solo il
micro servizio chiamato prenotazione –
il servizio vedrà i valori in
proprietà del tipo di servizio di prenotazione I
anche qui c’è un messaggio , quindi andiamo
torna alla nostra piccola API REST con
prenotazioni e cambiarlo per essere chiamato
il servizio di prenotazione e per ottenere il suo
configurazione dal server di configurazione così
eccoci qui, ne cambieremo alcuni
cose diremo nuvole primaverili
config URI è uguale a HTTP localhost 8888
ora si scopre che il valore predefinito
per questo è in realtà esattamente quello che ho appena
metti dentro Voglio solo che tu veda come è
fatto l’altra cosa che devi fare
è dargli un nome che devi dirlo noi
sapere come identificarsi e chiama
il server di configurazione ora questi due valori
siamo comprensibilmente e necessariamente noi
usato dal server di configurazione prima di esso
carica la configurazione per tutto
altrimenti è usato nella fase di bootstrap quindi
devi rinominare questo file in
proprietà top bootstrap in modo che la primavera
il cloud può trovarlo quindi ecco il bootstrap
le proprietà dei punti e finalmente ci arriveremo
vai avanti e usa quel messaggio che noi
aveva appena creato un semplice mondo Ciao
messaggio che aggiungeremo un punto finale
qui dirò classe di controller di rischio
controller di messaggi rimanenti okay e lo faremo
dire messaggio di stringa finale privato e
Creerò un costruttore e lo farò
automaticamente okay messaggio e dirò
Voglio chiudere un endpoint in modo semplice
restituisce quel valore ogni volta che viene richiesto
Dirò msg stringa letta e tornerò
la raccolta questo messaggio punto va bene
eccoci qui, quindi vogliamo questo valore
essere disponibile e lo farà ora
ci siamo collegati al server di configurazione I
voglio anche essere in grado di cambiare il valore
dal vivo e il servizio è in corso, quindi lo farò
rendere il bean aggiornabile ora per confermare
che tutto funziona come
dovrebbe essere possibile andare in porto
8000 non 8080 ma 8000 questo è il nuovo
porto su cui abbiamo lanciato il servizio
e dovremmo vedere il risultato dopo l’intervento
venire al computer è tempo che non c’è
siamo così che ha funzionato array e che dire
il messaggio
c’è il nostro messaggio o no no ho fatto un
msg a
eccoci lì, c’è il nostro messaggio
funziona ma non è grandioso che possiamo fare a
lavoro migliore quindi rivisitiamo questo
directory piena di configurazione sul
configurare e quindi nel file system
qui e ricorda che sta usando git che è
molto importante sto usando git per gestire
questo o sovversione ma deve essere
una specie di sai cosa
supporta auditing e journaling quindi lo farò
saluta Amsterdam esclamazione extra
segna per reddit ok git commit – a – M
Yolo ora se vado al server di configurazione esso
vede immediatamente il valore ma questo ha
nessuna idea e posso cambiarne alcuni
modi diversi posso usare la primavera
cloud event bus o posso attivare un
punto finale dell’attuatore che è un punto finale
che è impostato da stivali a molla per voi
operare o visitare o ottenere osservabilità
riguardo all’applicazione, quindi vado
avanti e colpisci vuoto – manderò un
post vuoto e quindi aggiornare e posso
vedere il valore immediatamente supportato
cose come le bandiere delle caratteristiche che mi aiutano
separare il rilascio del software da
il lancio di quel software dal
la distribuzione di software questo mi aiuta
supporto ramo per astrazione e
tubazioni di consegna continua c’è a
molto potere qui che può riparare il server
perché è tra la mia configurazione
directory e anche i miei micro servizi
fare crittografia simmetrica e decrittografia
dei valori nei file di proprietà così
c’è molto potere ma dobbiamo
passa alla prossima cosa che guarderemo
a è la registrazione e la scoperta del servizio
la cosa a cui teniamo ora è per
la capacità dei servizi di parlare con ciascuno
altro senza sapere su ciascun host
importa e ci sono molte buone ragioni
perché vorresti fare questo e in un primo momento
arrossire al primo sguardo potrebbe sembrare un
usa il caso per DNS ma in realtà è a
inadeguato all’interno di un cloud-based
l’ambiente prima di tutto aggiunge DNS
latenza devi risolvere il DNS
entrata e poi tornare indietro se ci sei
un convento di solito comporta un salto
al di fuori del router e del back-end che
è anche peggio
e poi il terzo di tutto il DNS è di
definizione a volte non lo faccio
vogliono i miei servizi per essere scrivibile Voglio
essere in grado di parlare con loro ma non esporre
loro tramite una sorta di voce DNS che posso fare
il multi-casa cosa in cui ho
DNS privato contro pubblico ma questo diventa
molto confuso l’altro problema è quello
Voglio essere in grado di gestire il carico
bilanciamento del bilanciamento del carico personalizzato
avrà ad esempio un router f5 medio
una casella di controllo che dice di caricare round robin
bilanciamento ma per quanto riguarda più specifico
uso specifico della semantica del business case
casi come se avessi bisogno di fare
sharding sono su un percorso un client a un
nodo specifico o
Ho multi-tenancy o se voglio fare
un client OAuth lo chiuderò a un
nodo specifico o qualcosa di stato ha
successo accadendo alcuni bilanciatori di carico
avere una nozione stupida di stateful o
affinità di sessione o sessioni adesive ma
che non si applica a non standard
cose come un token off, ad esempio così
come supporti tutto questo uso
casi che non vogliamo usare DNS e il tuo
medio grande carico muto in tour invece
usiamo qualcosa chiamato servizio
registro un registro di servizio è come un
rubrica per il cloud è una logica
mappatura da un ID di servizio agli host
importazioni e ci sono molti diversi
ancora una volta le implementazioni puoi parlare al mio
amico tuo un po ‘più tardi per il suo
parlare ma ci sono molti diversi
implementazioni là fuori
Apache zookeeper hash it Corp console a
CD Cloud Foundry abbiamo noi astrazioni
avere un’astrazione che ha
implementazioni per tutti loro ma io sono
userò Eureka perché lo era
sviluppato da Netflix è molto, molto molto
molto provato è stato usato su larga scala per
anni ed è semplicissimo da configurare e
Sono molto molto pigro molto pigro, voglio dire te
non ci crederesti, quindi lo dirò
config client eureka servizio sto andando
per costruire il mio registro eureka qui e
faremo la stessa cosa di prima
ti diremo a dove trovare
la configurazione quindi configura il cloud a
è uguale a localhost HTTP 8888 sto andando
dagli un nome così diremo la primavera
il nome dell’applicazione è uguale al servizio eureka
e noi rinomineremo questa proprietà
file per essere le proprietà migliori di bootstrap come
prima e poi apriremo il tuo
domanda di servizio Reco sto andando a dire
abracadabra sei un Eureka e così sarà
gira se tutto va in piano
porto 87-61 ora non sappiamo che questo potrebbe
tutto andrà a sud tra un minuto, sì
figlio di un fucile, perché oh, va bene così prima
cosa che dovete notare è che abbiamo
Gif animate di buona qualità molto molto
ben fatto ora l’altra cosa di cui hai bisogno
da notare è che non abbiamo alcuna
domande registrate ancora così andiamo
torna al nostro servizio di prenotazione e
insegnagli come alzare la mano come
dì ascolta se qualcuno ha bisogno di me, ho ragione
qui questo è il mio ospite questa è la mia porta su
il cliente nella build abbiamo la primavera
Nube di stelle Eureka da qualche parte
ba-ba-ba-ba non noi
ecco, questo è il client di scoperta
implementazione di astrazione per la primavera
cloud quindi tutto ciò che devo fare è abilitare
quell’astrazione dicendo ad abilitare o
abilitare discovery client e quindi tutti
ricominciare e questo aumenterà il suo
mano e chiamare a casa al registro e
di ‘ascolta se qualcuno ha bisogno che io trovi me
qui se hai dieci istanze che sono
chiamerò il registro ora cosa
faremo è che costruiremo un
cliente di utilizzare questo servizio un vantaggio
servizio va bene lì un client di bordo così
chiameremo questa la prenotazione
cliente useremo il server di configurazione
userà la vostra settimana di servizio
registri e scoperte useranno il
Zipkin per tracciamento distribuito che usiamo
RabbitMQ per l’elaborazione dello stream durante l’ uso
Zul per i micro proxy che useremo
hystrix per gli interruttori che stiamo per fare
utilizzare il resto del supporto web di repository
supportare il supporto attuatore e quindi siamo
andrò avanti e generare generare va bene ora
questa è la stessa di prima sarò
aprilo. Lo configurerò e
indirizzalo alla mia applicazione sulla mia configurazione
piuttosto piuttosto così c’è primavera
cloud config URI è uguale a HTTP localhost
8888 nome applicazione molla uguale a
prenotazione – cliente e sto andando
rinominare questo file di proprietà come essere
Proprietà bootstrap up apriranno
il codice e abilitare una scoperta
implementazione dell’astrazione client ora
pensa a cosa faremo qui e
il servizio di bordo è la nostra logica
componente vive al limite del
architettura rispondente alle richieste di
fuori dai tuoi dispositivi html5 da
i tuoi iPhone i tuoi androidi
Playstation il tuo Roku è il tuo Xbox come
il tuo test era sull’internet delle cose
potrebbe essere la tua scrittura a microonde
qualsiasi cosa in questi giorni ha un IP così ciascuno di
questi client hanno un payload specifico
problemi di protocollo e sicurezza e se
devi cambiare ogni singolo micro
servizio per accogliere tutti questi nuovi
clienti che stai ridistribuendo
tutto l’anno è pazzesco, quindi non farlo
preoccuparsi di centralizzare quelle preoccupazioni al
bordo il servizio di bordo sta per essere
esposto via DNS ma poi quando il bordo
servizio cerca altri servizi nel
architettura nel cloud nel cluster
utilizzerà la registrazione del servizio
scoprire il tuo iPhone non lo farà
usa Eureka per esempio, a destra userà a
Endpoint DNS ma poi da lì lo farà
utilizzare i registri di servizio e la scoperta
quindi quello che vogliamo fare per esempio è quello di
costruire un servizio di bordo che gestisce
preoccupazioni specifiche del cliente si può avere un
html5 edge service un bordo iPhone
servizio e servizio di bordo Android ecc
pensare a html5 html5 è ridicolo
potente oggi nel browser html5
può fare un sacco di cose interessanti che ho
penso che questo ragazzo sia in realtà da qui
può essere
hai visto questo lattice geloso?
folle quindi questo è uh sì che è così
in realtà un browser completamente in memoria
avviare Linux quindi non dirmi che vuoi
è necessario creare il desktop nativo
l’applicazione per Windows è più
semplicemente ridicolo abbiamo appena avviato Linux
interamente in JavaScript il punto sei tu
può fare un sacco di cose nel browser
oggi che non penseresti possibile
quindi non hai davvero bisogno di tenerlo
mano e babysitter per computazionale
roba ma devi capirlo
vive in una sandbox che non può creare
richieste al di fuori dello stesso host
importare è possibile aggiungere una politica a tutti
micro servizio ma poi cambieresti
ogni micro servizio per ospitare il
nuovo cliente vogliamo evitare quella strada
per evitare che sia per proxy tutti i miei
servizi che sono registrati in Eureka
attraverso un singolo host e porta e noi
può farlo usando il micro proxy a
micro proxy è un modello di design che
indirizza ciecamente le cose avanti e indietro
useremo qualcosa chiamato Zul ora
Zul è un micro proxy di Netflix che sono
non sono sicuro se ti mantieni al passo con il tuo
Mitologia greca e Ghostbusters ma
questo è Zuul ora Zul è il custode
agli inferi agli inferi o all’inferno
Almeno questo è quello che pensavo ma poi io
poi il mio amico ha detto che sai Josh che è
non è giusto non lo sappiamo nel film
non dicono che potrebbe venire da un
luogo molto bello da cui potrebbe venire
Alle Hawaii non possiamo giudicare e quindi lo sai
quello che ha ragione mi dispiace
questo è quello che pensavo che tu lo sapessi
non so in ogni caso che è il proxy per
ovunque alle Hawaii va bene e ora molla
cloud e Zul hanno già creato un
servizio di bordo per me alla prenotazione I
Prenotazione in anticipo di $ 9,99 e –
servizio per la prenotazione di barre così questo è
la porta del servizio di bordo questo è il
ID di servizio in Eureka e questo è il
percorso reale ricorda che in realtà ho un
vero servizio qui sul porto 8000 così reale
servizio edge service real service edge
servizio vero servizio al vero signore
è un proxy che i miei amici suggeriscono
si può vedere che il proxy invia un
intestazione per il servizio a valle il
il servizio downstream utilizza tale intestazione in
riscrivi questi URL in modo che dal
prospettiva del cliente non lo fa
sappi che quel JSON non è venuto
quel nodo I
questo è molto molto potente quindi forse lo sono
fatto sai tutti i miei servizi
sono in Eureka posso accedervi usando
come ID di servizio come contesto
percorso quindi ho finito forse per il mio html5
sviluppatori che assumono tutti i miei servizi
sono un riposo omogeneo in JSON forse vado
a casa dovrei probabilmente aggiungere HTTP o
in realtà sicuramente a HTTP dovrei
probabilmente aggiungerlo dovrebbe essere di base il nostro
Tipo di autenticazione OAuth ma forse
Ho fatto altrimenti, forse ho fatto
tutto ciò di cui ho bisogno per renderli capaci
fatto a volte comunque è utile
avere un sottoinsieme dei dati o una vista di
i dati o trasformati sai
endpoint che ha una composizione di altro
servizi questo è un diverso tipo di
il servizio edge ha chiamato un gateway API e
micro proxy è un proxy stupido indietro e
avanti è un servizio di bordo un’API
gateway fa una sorta di traduzione o
trasformazione della richiesta o del
rispondere o entrambi sono entrambi i servizi di bordo
quindi costruiremo un’API molto semplice
gateway che porta semplicemente a valle
servizio di prenotazione e ottiene solo il
nomi che stiamo per togliere gli strati
di tutto il JSON circostante che vogliamo
i nomi ora per capire come
funzionera ‘abbiamo bisogno di prima
pensa a come ha funzionato
come mai è in grado di indirizzare quella richiesta
come fa a sapere che sta facendo la richiesta
andando a Eureka e sta utilizzando tale
servizio ID e poi Eureka sta dicendo
Ne ho conosciuti dieci casi
servizio come seleziona quale istanza
sta prendendo questa decisione sul cliente
usando qualcosa chiamato Netflix ribon
ribon è un servizio di bilanciamento del carico lato client
giusto così ce l’abbiamo già in gioco
il nastro ti dà la possibilità di by
collegare un oggetto fa diversi tipi
del bilanciamento del carico puoi fare round-robin
che è il predefinito o appiccicoso o dati
bilanciamento del carico centrato o sharding
via o bilanciamento del carico o qualunque cosa tu
voglio bene, quindi costruiremo molto
servizio di bordo semplice qui diremo
resto del gateway API prenotazione di classe
controller e questo lo sai molto
succinta lo so e sto andando via questo
endpoint alle prenotazioni che sto per
fare un controller di riposo e sto andando
sfruttare e creare un endpoint
qui che restituisce solo i nomi delle stringhe
okay, solo i nomi così ogni volta che qualcuno
va alla barra diretta di localhost 9999
prenotazioni slash nomi questo
i punti finali verranno chiamati e io lo farò
uso
un modello di riposo da Spring Framework a
effettuare questa chiamata il più rapidamente e in modo conciso
il più possibile ma il problema è il mio riposo
modello non conosce ancora Eureka I
ho bisogno di renderlo consapevole così ho intenzione di farlo
configurare un Eureka consapevole di un carico bilanciato
e il modello di riposo a nastro sensibile qui
non posso restituire il nuovo modello di riposo e lo farò
quindi assicurati di qualificarlo
versione iniettata qui con uno sguardo ascia
annotazione del qualificatore e sto per dire
chiama il metodo di scambio del modello resto
chiama la prenotazione – servila
non importa quale si ricordi di questo
non è il DNS che sta per essere
è intercettato dal load balancer
andando a trovare un’istanza che sta per
sceglierlo e poi sostituirlo per questo
stringa Sto per dire fare un HTTP GET
chiama nooo-body e sto per dire che voglio
i dati da restituire come raccolta
di oggetti risorsa EOS primavera caldo di cui
il carico utile è di tipo prenotazione così
Sto usando il tipo di token di blocco scusa
modello di progettazione qui per fare questo lavoro il
Tipo di mod di token ottiene intorno al fatto
che Java non ha un buon generico quindi a
buon sistema di tipo generico quindi ecco il mio
ehm, sto facendo la richiesta e ora
quando il resto del restituisce il rischio
modello restituirà un oggetto busta
chiamato un’entità di risposta e il
la risposta all’entità ha un carico utile di tipo
di risorse di prenotazione, quindi vado
dire che l’ entità della risposta ottiene il contenuto del corpo
punto mappa puntino di cui farò la mappa
prenotazione al nome di prenotazione e io sono
raccoglierò tutto in una lista così là
i miei amici è un vantaggio molto molto semplice
servizio è due linee – certamente
linee pazzamente terrificanti ma ancora giuste
due linee a destra e quelle linee sono
andando a fare quello che ci aspettiamo
prendi i dati e li trasformi in a
raccolta di risorse il cui carico utile è
di tipo prenotazione e poi dereferenziazione
il nome della prenotazione e raccogliere tutto
quello in una stringa in modo che possiamo vedere che qui
barra diretta 9999 localhost
prenotazioni per tali nomi e questo è
funziona bene, ma cosa succede in
il caso di un fallimento che ho bisogno di degradare
organizzazioni con un buon rendimento
capire che il fallimento è un dato di fatto
la vita è un’inevitabile Netflix
una suite di componente software chiamato
esercito simian
Questo
nell’esercito sono fondamentalmente poco software
i terroristi corrono in giro in produzione
durante l’orario di ufficio uccidere – cenare
I processi che bloccano le porte sono em sono
database effing e partizioni del disco loro
persino avere qualcosa chiamato caos Kong
anche se ti parlo di questo
in questo momento mi dà la pelle d’oca che uccide a
tutta la zona di disponibilità del data center su
scopo lo fanno perché lo farebbero
piuttosto scoprire durante le ore d’ufficio quando
Gli ingegneri sono di guardia che sta andando a
lavoro
quindi aspettare fino alle 4:00 del mattino
quando è un’emergenza reale e
nessuno è sveglio quindi dobbiamo capire
lo stesso fatto anche in modo sufficientemente
alta disponibilità del sistema nativo del cloud
un singolo nodo come un’illusione che non lo farà mai
capita invece che devi ottimizzare per
tempo di rimediare a un cloud nativo
l’architettura è quella che è stata costruita per
sopravvivere e prosperare su larga scala e
scala orizzontale una nuvola nativa
l’architettura è anche quella che viene costruita
per capire e facciamo la cosa giusta
in caso di guasto, dobbiamo ottimizzare
per tempo il rimedio quanto velocemente
dal punto di vista del cliente può
otteniamo un nuovo servizio o il carico rimbalzato
a un altro e l’ endpoint o fare
qualcosa in modo che sembri
funziona ancora se costruisci il tuo
domanda per volta il
in mente il risanamento anziché l’ alto
disponibilità di un singolo nodo allora da
la prospettiva del cliente lo farai
avere lo stesso risultato ma questo ha
profonde implicazioni su come costruisci
i sistemi e come architetto così
in questo caso abbiamo già l’80% di questa
funziona bene se lo chiamiamo
servizio a valle e ce n’è uno o
più istanze di quel servizio nel
registro funzionerà è proprio così
non funzionerà se ci sono zero giusto
se ci sono istanze zero questo è
farò saltare pezzi e il nostro povero iPhone
gli utenti stanno ottenendo un grande Java grasso
stack trace nel loro telefono che non è possibile
per far funzionare una ferrovia i miei amici di cui abbiamo bisogno
fare meglio quindi introdurremo
degradazione aggraziata ad alte prestazioni
siti Web fanno questo genere di cose tutto il
tempo diranno oh, beh, hai voluto il
risultati del motore di ricerca, ma quelli non lo sono
disponibile in questo momento, quindi ecco alcuni
raccomandazioni apprese elaborate da
attraverso il web useremo qualcosa
chiamato l’interruttore isterico e
l’interruttore sarà a
componente stateful che aggiungeremo
al nostro servizio potenzialmente traballante
chiamata di servizio quindi se c’è un errore se
c’è un’eccezione in questo metodo
lo faremo chiamare un altro metodo
della stessa firma e informa chiamata
fallback e stiamo solo andando a tornare
una ArrayList vuota
quindi ora c’è questo interruttore
è statico lo vedrà
ci sono abbastanza eccezioni e ci sarà
fermare il traffico e andare direttamente al
fallback dopo un po ‘questo dà il nostro
tempo di servizio a valle per tornare a
vita se stai usando qualcosa come un
piattaforma cloud come Cloud Foundry Cloud
La fonderia muoverà il cielo e la terra tutto
giorno e tutta la notte per riavviare i servizi se
ne hai bisogno se dici che è necessario
essere dieci istanze o 100 istanze
farà in modo che sia vero tutto il
tempo
ma tocca a noi come architetti e
gli sviluppatori di fare la cosa giusta in
software di fronte a topologia e
l’architettura cambia così, quindi questo
è quello che stiamo facendo che stiamo tenendo in considerazione
la possibilità di fallimento che è a
cosa vera così bene va bene
richiede che il percorso felice funzioni
grande ora torniamo al nostro
prenotazione – servizio e poi uccidere il
servizio di prenotazione poveri poveri ci noi
stai succhiando, non è quello?
è esitante alla fine sta andando
timeout ma posso forzarlo a timeout
e costringerlo ad andare direttamente nel
fallback colpendo il comando R ci siamo
vai così ora ogni volta che lo faccio giusto
va dritto al fallback non lo fa
anche provare a chiamare il servizio a valle
stiamo dando il nostro tempo di servizio a valle
per recuperare il tempo di respirare, lo sappiamo tutti
che se un servizio non ti risponde
dovrebbe colpire l’aggiornamento nel browser giusto
fa che funzionano bene non funziona per
sistemi distribuiti o queste date
questo effetto si sbarazza di questo effetto
okay, amici miei, abbiamo solo come
sette minuti e otto minuti così
saremo un po ‘in ritardo probabilmente
otto minuti stiamo gonna uso otteniamo noi
occorre ora occuparsi dell’osservabilità
giusto così ho un’architettura nativa cloud
è uno che è osservabile è uno che
scala in modo corretto ed è uno che
disfa la cosa giusta nel caso di
fallimento si ottimizza per tempo a
bonifica che è i tre inquilini di
un sistema nativo cloud che abbiamo visto
mai così brevemente come costruire un sistema
questo fa la cosa giusta che centralizza
configurazione utilizzare la residenza di servizio
e la scoperta che abbiamo indotto grazioso
degrado nel caso in cui la lettura se io
ho avuto qualche altro minuto che potrei mostrarti
come fare un po ‘di degradazione elegante
nel caso di una scrittura quando pubblichi
dati giusti se pubblichi i dati che desideri
consegnare il messaggio alla fine e per
che puoi usare qualcosa chiamato primavera
flusso di nuvole questo ti dà un ventrale
coerenza c’è un sacco di modi per ottenere
a diversi servizi per concordare il
stato di qualcosa
uno è usare la coerenza finale che
è fondamentalmente che è ciò che siamo
il che implica un altro è usare la saga
modello che descrive un insieme di
interleave Abul che puoi cambiare
le transazioni degli ordini che ciascuna ha
transazioni compensative semantiche
un altro modo è usare un altro
versione sofisticata della messaggistica
chiamato CTRs e sourcing di eventi giusto ma
salteremo tutto questo per ora perché
potrebbero essere altre cinque ore quindi
invece parliamo di osservabilità
c’è nel mio sistema su ciascuno dei miei nodi
Ho l’attuatore che termina il
gli endpoint degli attuatori mi forniscono informazioni
su ciò che l’applicazione sta facendo
se vado al mio servizio di bordo qui 99999
per tali metriche posso vedere le informazioni
su questo host in questo nodo giusto
cache di memoria non-ape dell’heap di uptime della memoria
ecc. Questo è tutto roba abbastanza standard
ora ho anche avuto di Ian ve mi mostra
nel mio ambiente fagioli che mi mostra
gli oggetti nel grafico eccetera ma
questi sono specifici per host e nodi
informazioni voglio vedere l’emergente
comportamento del sistema ricorda la mappa
non è il terreno la mia architettura
il diagramma non è l’architettura che non è
il sistema ha un comportamento emergente
che il tuo sistema ha che sei tuo
il diagramma dell’architettura non lo farà mai
capire o non essere mai in grado di
incapsuliamo quindi abbiamo bisogno di catturare quella
dobbiamo avere l’osservabilità che siamo
useremo alcune cose diverse che vogliamo
guardare il flusso del traffico in questo
circuito che circuito rappresenta a
tessuto connettivo da un consumatore e a
servire un produttore e un certo a
consumatore un cliente e un servizio che
il servizio potrebbe non funzionare correttamente se è a
servizio di terze parti in particolare abbiamo
nessun modo per strumentare quella terza parte
servizio in modo che possiamo usare il circuito
interruttore per aggiungere un tessuto connettivo che
guarda al transito dei dati attraverso
quell’endpoint quindi una cosa che dovresti
avviso è che sono andato al mio si sa a
pochi secondi fa ho riavviato il
servizio di prenotazione e nient’altro e
Ora l’interruttore funziona sia
reintrodotto il traffico in modo che si vide che
il traffico sta funzionando e è tornato indietro
guarito da solo ma potrebbe fallire di nuovo così io
voglio essere in grado di vedere cosa sta succedendo mi
può farlo con la dashboard della cronologia
Dirò il client di configurazione dashboard hystrix
scoperta residente del servizio di eureka lo farò
colpire generare aprirò questo e io sono
Aprirò questo nel mio IDE e lo farò
lo stesso tipo di cosa normale che avrei
fatto prima dell’applicazione delle proprietà
config nuvola di primavera
sei un host locale HTTP HTTP 8888
il nome dell’applicazione hystrix
– proprietà dell’arco puntata in alto
Proprietà hystrix dashboard
e dirò una scoperta capace
cliente e alla fine ho intenzione di dire a
abilitare il cruscotto hystrix ora questo è
andando spin up sulla porta 80 10 e ciò che il suo
aspettarsi è un evento inviato dal server
flusso di un battito cardiaco che ciascuno di
i nodi che hanno un interruttore automatico
emetterà automaticamente questo server inviato
il flusso di eventi può essere multiplexato che puoi
prendi tutti i flussi da tutto il
istanze di servizio e metterli in uno
grande flusso utilizzando la turbina a molla
ma questa è una demo per un altro giorno
amico quindi per ora guardiamo il
caso semplice di questo nodo e questo
un flusso heartbeat in modo localhost 9999
hystrix dot stream ora è questo flusso
infinito è infinito è sempre
in fase di aggiornamento ci sono sempre nuovi dati
è infinito come gli errori nel mio codice
continuerò ad andare per sempre così qualunque tu
fai quello che fai non arricciati
endpoint okay, prenderò quell’URL
Vado ad un T10 per tale Hystrix
HTML stretto lo inserirò in
dashboard che abbiamo appena creato incolla
monitorare aprire questo localhost
i nomi delle prenotazioni ora guiderò
traffico a sinistra e lo vedremo
riflesso nella media mobile che
tendenze sempre al rialzo sulla destra che puoi
vedi che il traffico sta attraversando il
l’interruttore va bene c’è il 30 36
42 ogni volta che chiede tutto è verde
anche se c’è il circuito è chiuso
la vita è bella ok se dovessi uccidere il
servizio quindi questo cert avremmo eventualmente
vedere il circuito sarebbe aperto e io sono
andare al metodo di fallback
direttamente così questo è un modo per ottenere un
visibilità nel comportamento emergente di
l’applicazione l’ altro modo per ottenere
quella visibilità è da usare distribuita
tracciamento tracciato distribuito è in realtà
in teoria molto molto semplice ma in
pratica molto molto doloroso quello che vogliamo
fare i miei amici è strumentare tutti
punto di ingresso e di uscita, cioè
ogni posto dove può arrivare un messaggio
o lasciare un’applicazione di nuvole primaverili
molla MVC il resto primavera modello
il flusso delle nuvole è il finto riposo dichiarativo
basato su client il micro proxy basato su
Zul tutti questi posti dove messaggi
Arriviamo o EXIT vogliamo fare in modo che
noi intercettiamo
li o filtrarli e vedere se c’è un
ID univoco un ID univoco che possiamo usare
correlare il flusso di un singolo messaggio
attraverso l’ intero sistema in distribuzione
tracciando gergo si parla di una traccia
e una spanna una traccia rappresenta il tutto
viaggio dalla A alla Z di una richiesta di a
a Zed una spanna è ogni gamba nel viaggio
da a BB a CC a DD a E ecc. e noi
avere un framework chiamato
spring cloud sleuth quindi dico zip
conservatore Zipkin UI eureka servizio
registri e client di discovery discovery
colpiremo generare ora il taglio di primavera
sooth sta già lavorando al nostro
applicazioni ho questo nella classe
percorso e puoi vedere che lo sta già facendo
qualcosa di utile è la registrazione
informazioni qui questo è l’ ID di servizio
l’ID traccia e l’ID span, quindi se si
avere uno strumento di analisi dei log come lo sai
elasticsearch o paper trail o Splunk
puoi già vedere alcuni dei
informazione mentre scorre attraverso il
sistema ma credo che sia un’immagine a
un’immagine grafica vale più di mille
tracce quindi useremo Twitter
Il servizio Zipkin che costruiremo a
Servizio Zipkin qui ben dire a consentire
I server Zipkin accendono il computer cosa sono
abbiamo problemi con
ho fatto qualcosa di sbagliato
vieni al computer
non c’è motivo di piangere, ma potrebbe esserci
anche se potrebbe venire sul computer
quindi un’applicazione di servizio Zipkin qualcuno
si
Non capisco nemmeno cosa sia successo
questa è la cosa che potremmo avere due
Saranno tre minuti e tre minuti
tre minuti faremo il
opzione nucleare e poi mi attaccherò
il punto di smontaggio riavvierò tutto il
intelligenza e intellij stiamo andando
fai una bella chiacchierata dopo questo okay
Terminare P uccidere è una buona cosa noi
non costruire sistemi di distribuzione su
intelligente okay
quindi i fichi non potevano mai aprire Eureka
servizio aperto servizio di prenotazione aperto
quindi sono andato eh
va bene, sembra un nucleare nucleare
opzione sì male intellij bad okay hold
su sì ci vorrà per sempre lui ha un
punta il mio amico a scannerizzare i file
indice sembra che stia già facendo
qualcosa in tal senso già
servizio di prenotazione figlio qualcuno sì
tipo di servizio fico, voglio solo sapere
andrà tutto bene
Voglio solo sentire sicuro nella mia vita
scelte dovrei aver usato IntelliJ
dovrei averlo usato clip Phoenix
ogni discorso a cui vado è sempre così
una persona che usa Emacs chiedo sempre
chi usa questo grasso nel resto e
c’è sempre lo stesso ragazzo che uso Emacs
dice e poi lascia la stanza e
Penso che stia solo andando alla prossima
paese o continente in cui io sono lui è un
troll quindi config servizi e tu
perché sei così arrabbiato?
zip ti posso bene
Santa Maria
quindi il servizio di prenotazione e attendere
il servizio di configurazione è in esecuzione eureka
servizio prenotazioni okay
vieni su Zipkin
okay, quindi ho risolto il problema con la build
dirai che abilita il client di scoperta
al nome yeah server Zipkin
ok, quindi il servizio di prenotazione è scaduto e
in esecuzione
La riserva di Eureka è funzionante
il cliente non tanto lo vediamo
Tutto sta funzionando felicemente localhost
9999 per tali nomi di prenotazione e poi
il mio server Zipkin ho bisogno di sottolineare che a
le cose giuste così diciamo l’applicazione
di proprietà molla quella nuvola
config che il tuo I è uguale a localhost 8888
molla che il nome dell’applicazione è afghano
servizio abbiamo bisogno di questo per essere bootstrap top
proprietà legate proprietà ok
e vai vai vai
Dai
questo è il servizio di configurazione Eureka
il cliente del servizio sta ora saltando
carico si accende
sì, qui andiamo i nomi delle prenotazioni Reed
Reed Reed Reed andiamo, vieni, vieni
okay , ok bene, sta funzionando ora
zip c’n quindi abbiamo già ottenuto il
tracciamento sulla riga di comando che è
utile ma voglio visualizzarlo così sono
andando aprire la pistola zip che è dove
Ho appena installato Zipkin è un distribuito
server basta leggere un server di traccia da
Twitter è stato aperto nel 2010 e
abbiamo persone nella squadra di primavera del merluzzo
da entrambi Netflix e da Twitter chi
contribuisci spesso così ci hanno aiutato a fare
questa roba è davvero fantastica, quindi eccoci qui
visibilità in due servizi che sono
già registrato andrò a
servizio di prenotazione visibile per esempio
Mi ha colpito trovare tracce e mi faccio vedere
che ho fatto una richiesta meno di un minuto
fa clicco su quella richiesta qui
e vedrò un grafico a cascata che dice
Ho guadagnato ottantotto millisecondi
sugo che non è quello medio lascia
prova un altro che mi faccia sentire
meglio
sei qualcosa ha torto comunque 67
millisecondi la richiesta è stata inserita qui a
I nomi delle prenotazioni HTTP sono quindi fluiti
fuori dal client di prenotazione al
Endpoint di prenotazioni HTTP e quindi
finalmente è arrivato alle 8:00
servizio di prenotazione qui posso fare clic su
queste informazioni per ottenere dettagli su
il flusso del messaggio nel sistema I
può fare clic su questo ad esempio per vedere
tag e mostra il log attuale del
messaggio ora questa è informazione che tu
può usare per correlare le transazioni con
le richieste non fanno errori comunque questo è
non per non per il servizio clienti sei
non dovrebbe usare questo per scoprirlo
cosa ha fatto Jane nel sito due anni
farai al massimo una coppia
di giorni vale la pena di log questo è circa
telemetria online in questo momento quanto
i soldi lo abbiamo fatto nell’ultimo trimestre, no
lo so, ma posso dirti qual è la media
la latenza sul sito web è in questo momento questo
è per quello va bene è osservabilità di
il sistema online in questo momento lo farai
traccia al massimo forse il dieci percento
l’impostazione predefinita la rintracciamo per te
automaticamente lo ho al 100% perché
Faccio una demo che otterrai per impostazione predefinita
Il 10% di Twitter, ad esempio, mantiene 1 di
ogni 6 milioni di richieste 1 su 6
milioni di persone non ne hanno bisogno
quindi i miei amici mi dispiace che non l’abbiamo fatto
arrivare a coprire molto questa volta forse dopo
tempo in cui potremmo effettivamente entrare nel
dettagli se avessi solo un po ‘più di tempo
e se mi limitassi a succhiare
il codice ora vi ringrazio molto per
il tuo tempo voglio che tu faccia pipì oh, spero
lo apprezzi mentre indosso un
t-shirt primaverili e biancheria intima primavera e
Sono un grande fan che non hai preso il mio
parola per questo ci sono piccoli
organizzazioni là fuori che stanno facendo
cose incredibili con questo così diversi
governo mondiale
Alibaba e la Cina hanno fatto 14 miliardi
dollari in un solo giorno l’ anno scorso
usano la nube di primavera forte e
Netflix orgoglioso sta usando la nube di primavera rumorosa
e orgoglioso
Baidu usa la nube di primavera ad alta voce e
orgoglioso giusto queste sono organizzazioni che
avere i soldi
le persone la motivazione e il
risorse per risolvere questo problema
loro stessi e scelgono ancora la primavera
nuvola perché rappresenta di più
modo potente per costruire questo tipo di
sistemi il modo più coeso per costruire
questo tipo di sistemi ti ringrazio molto
molto tempo mi dispiace / grazie
È Campana lo apprezzo Saluti

Please follow and like us: