Press "Enter" to skip to content

GOTO 2016 • Advanced Spring Cloud • Joris Kuipers


quello che ho intenzione di far parlare di sé oggi
è nube di primavera e ovviamente come noi
potrei solo vedere con lo spettacolo delle mani a
molti di voi avranno già visto
Il discorso di Joseph su cui stavo davvero contando
questo e puoi anche immaginare probabilmente
è un po ‘impegnativo
segui George a lungo per parlare un po ‘
un po ‘di più sulle nuvole primaverili dopo cosa
hai già visto così cosa sto andando
per parlare di oggi, ho intenzione di farlo
Coprire molto velocemente l’idea della primavera
nuvola ma poi ci vado davvero
immergiti in alcuni dettagli su come alcuni di
le cose che hai appena visto
come funziona davvero perché funziona così
modo e come potresti applicarlo al tuo
proprio progetto quindi in sostanza quando sei
parlando di spring cloud di cosa si tratta
è davvero un insieme di progetti che non è un
singolo progetto è un’intera collezione
e in realtà sta solo diventando di più
e altro ancora con ogni treno di rilascio principale
che ti aiuterà a costruire distribuito
sistemi e questo può essere distribuito
sistemi di qualsiasi tipo e qualsiasi tipo di
la natura ha ragione, ovviamente, molte persone
userà questo e pensando
questo in termini di micro servizi e
questo è sicuramente uno dei più
casi d’uso ovvi ma non è necessario
essere qualcosa che necessariamente corre in a
nuvola per esempio questo dal nome
spring cloud you hai anche nuovi termini
venendo su come i ragazzi di Enoch voi
chiamare cose come auto-contenute
sistemi quelli sono tutti casi d’uso dove
potresti usare alcune cose del genere
Nuvola di primavera anche se hai un grosso grasso
monolite seduto dentro il tuo
organizzazione ma sta chiamando a
sistemi esterni proprio su Internet
forse stai collaborando con altri
organizzazioni che devi consumare
dei loro servizi rilassati per esempio
puoi usare il cloud di primavera per i sistemi
così che cosa voglio coprire
oggi bene per quelli di voi che non l’hanno fatto
partecipa ai discorsi di Josh fondamentalmente alla mia agenda
sta pensando come un servizio come una molla
applicazione cloud ho intenzione di rispondere
tre domande e servizi così solidi
punto di vista la prima domanda lo farò
risponderò a chi sono io giusto
il servizio si riavvia è in fase di boot
si avvia e ha bisogno di sapere chi
potrebbe sembrare un po ‘strano chi sono
ma quello che principalmente intendo è Chi sono io
questa volta perché puoi avere lo stesso
servizio in corso in molto diverso
configurazioni che potresti avere multiple
istanze di esso in esecuzione nello stesso
ambiente in cui potresti effettivamente averlo
correndo su diversi ambienti tu
potrebbe averlo in esecuzione localmente sul tuo
portatile perché stai sviluppando e
parleremo un po ‘di
come puoi scoprirlo e come
può quindi fare cose diverse a seconda
su chi sei e la prossima cosa
ha bisogno di sapere poiché è connesso
servizio giusto di cui stiamo parlando
sistemi distribuiti è dove sono tutti i
altri servizi quali servizi ci sono
dove posso trovare loro come posso parlare
loro fondamentalmente giusto quindi è l’ultimo
punto come parlo con loro ci sono
molteplici modi in genere in un distribuito
applicazione per comunicare i servizi
tra loro due modi principali o affondare
in un lavandino e ho intenzione di parlare un po ‘
un po ‘di quelle cose per quelli di voi
quello ha visto il discorso di Josh che ho fatto a
l’agenda separata in realtà fondamentalmente lo sono
andando a parlare di cosa diavolo solo
è successo proprio questo è un ragazzo che sta andando
davvero veloce mostrandoti tutto lì
è nella nuvola di coldspring del lavello della cucina
ma da intenso non spiegando molto
su di esso quindi spero che dopo questo discorso se
tu eri lì e capiresti
un po ‘di più su come questa roba
funziona davvero così per iniziare con quello
la prima domanda che ho posto come Chi sono
Questa volta stavo davvero parlando
circa qui è la configurazione centralizzata
ogni applicazione si trova in un micro
servizio o no o essere un grande monolite
ha bisogno di una qualche forma di configurazione a
avvio e se hai lavorato con
molla per un po ‘e probabilmente il
modo tradizionale che hai fatto
è attraverso qualcosa come un
file di proprietà che hai inserito
il tuo classpath o accanto al tuo
applicazione da qualche parte sul file system
e tu lo leggi da lì quando siamo
parlando di sistemi distribuiti e
stiamo parlando
occasioni in esecuzione poi in realtà in molti
casi che proveremo di nuovo in
molti casi quello che vorresti sei tu
vorrà prendere quella configurazione
lontano dal solo file system locale di
un singolo servizio per esempio e tu
vorrà metterlo da qualche parte centralmente
quindi questo è per più motivi uno di
la ragione è che se lo hai
qualcosa come 10 diverse istanze
solo per motivi di disponibilità del tuo
servizio che non vuoi veramente copiare
sullo stesso file di configurazione a 10
server diversi per assicurarsi che quando
l’avvio dell’applicazione può farlo
effettivamente trovare la configurazione corretta
per quel particolare ambiente che è
correre in un’altra cosa è quello
la configurazione potrebbe non essere effettivamente
specifico per una singola applicazione
potrebbe avere qualche configurazione condivisa per
un certo numero di ragioni semplici esempio anche
anche se è una buona pratica avere
l’uso dei microservizi ha il suo
database che in realtà non significa questo
avranno tutti il loro DBMS
istanza che gestisce le aziende giuste
in genere spendere un sacco di soldi per l’acquisto
buon hardware con un sacco di dischi veloci
e tanta memoria per far funzionare loro
database quindi probabilmente lo vuoi solo
avere uno schema dedicato lì così
finirai nel caso tu abbia
un sacco di servizi dati pesanti con un sacco
di applicazioni a cui è necessario connettersi
il tuo database ora ho avuto il
caso in una delle applicazioni che sto
lavorando su dove non abbiamo questo
roba sul posto ancora dove il nostro hosting
la compagnia ha detto bene, sai che ti abbiamo creato
felice e piuttosto che avere il vecchio
scatole in là per il mio sequel siamo
eseguendo una configurazione attiva attiva del mio
dopo di che abbiamo sostituito il tutto
cosa con scatole di metallo nudo molto veloce
un sacco di RAM e questo è un nuovo indirizzo IP
e quello che dovevo fare dovevo collegarmi
come una dozzina di servizi e penso di essere io
cambiato oltre due dozzine di configurazione
file per tutti i vari
applicazioni cromo lavori script cose
che avevamo in esecuzione che doveva
in qualche modo connettersi al database giusto così
ha molto senso per tutti questi
casi da dire bene
mettiamolo in un unico posto
e quando cambia, possiamo permettere a tutti
sappi che la stessa cosa ovviamente è vera
per correre in diversi ambienti
proprio su un ambiente di accettazione o
quando stai eseguendo localmente il tuo
macchina che probabilmente avrai
alcuni requisiti diversi da te
quando sei in produzione
potresti persino avere servizi in esecuzione
attraverso uno speciale profilo a molla per
esempio dove vuoi dedicato
configurazione lì e infine se il tuo
la configurazione cambia quindi cosa sono
farai tipicamente se lo sei
usando qualcosa come un file di proprietà
primavera in realtà sei costretta a solo
riavviare l’intera applicazione quando
modifiche di configurazione in modo che significherebbe
anche se hai il centro
configurazione ma solo quella che tu
avrei ancora bisogno di sapere ok ho cambiato
questa chiave di una configurazione ora devo
sapere quali applicazioni sono effettivamente
basandosi su quella chiave e deve trovare
quelle istanze e devo manualmente
riavvialo quindi sarebbe anche bello
essere in grado di spingere fuori la configurazione
risale ai servizi proprio così
spring cloud ha supporto per questo e
hanno supporto in due modi
effettivamente fornire un prodotto che è possibile
utilizzare come configurazione centralizzata
server questo è chiamato spring cloud
server di configurazione e solo brevemente lo ha dimostrato
nel suo discorso precedente ma hanno anche
un’astrazione per i clienti che si connettono
a tale servizio di configurazione e
spring cloud config server non è il
solo il servizio che è supportato ci sono
un paio di altri in realtà così lo farò
essere demo se effettivamente funziona perché
come ho detto che il mio computer si è appena schiantato
non ho idea di cosa sia ancora sul mio file
sistema e ciò che non è così avremo un
guarda ma ho intenzione di dimostrarlo attraverso
un altro prodotto di un’azienda chiamato
hachey Corp ha chiamato console proprio loro
fare un numero di strumenti gratuiti che sono
molto popolare nel cloud e nei servizi
spazio quindi per iniziare prima con quello
console Sto solo andando a avviarlo
localmente qui questa cosa può davvero essere
configurato per esporre un’interfaccia utente
e questo sta per iniziare adesso
eccoci, è un po ‘troppo piccolo, quindi è così
passando alla visualizzazione mobile ci andiamo così
quello che vedi qui è una panoramica che ho
alcuni servizi ma in realtà i miei server
non sono ancora in esecuzione quindi è per questo che tu
vedere un mucchio di cose arancione qui, ma
Ne parlerò più avanti, ma qui
in realtà abbiamo coppie di valori chiave
letteralmente coppie di valori chiave che puoi
semplicemente memorizzato all’interno della console che tu
posso quindi esporre così cosa ho qui io
avere come una directory chiamata config e
sotto che ho un mucchio di sub
directory corrispondenti a un numero di
applicazioni che ho più uno in più
questo è semplicemente chiamato applicazione che
è per la configurazione che si applica a tutti
servizi giusti quindi se diamo un’occhiata qui
ad esempio puoi vedere per esempio
che ho un tasto configurato chiamato a
login dot pattern council dove where
Sto cambiando il modello di registrazione che è
che viene utilizzato da stivali di primavera per
producendo il suo output di logging quando è
scrivendo alla console anche per il
server che sto per iniziare ho
in realtà ha cambiato il livello di registro predefinito
puoi fare questo genere di cose con
avvio a molla abbastanza facilmente sì
dovresti essere ok, quindi è così
il lato server delle cose è qui
possiamo mettere la nostra configurazione ora come fare
in realtà accediamo a questo da un
applicazione ora ho pensato di fare
alcuni live coding in realtà e ora sono
davvero contento di non averlo fatto ma dentro
comunque continuando su Josh viva
la codifica non sarà impressionante
comunque ho un codice impostato qui
e ho un servizio che esporrà
colloqui della conferenza giusto perché siamo dentro
una conferenza e in realtà ne abbiamo alcuni
applicazioni interne che fanno questo genere
di cose quindi quello che ho qui è un
semplice applicazione del Buddha di primavera e il
l’applicazione mostra semplicemente a
numero di discorsi da questo particolare
traccia esposti come risorse restful giusto
c’è un semplice controller per questo
facendo ciò non ho intenzione di andare oltre il
intero codice perché non è in realtà
tutto ciò che è interessante la cosa che è
interessante prima di tutto è quando andiamo
al palmo delle mani qui e guarda il
dipendenze che questa cosa ha ora
a parte solo un normale avvio
configurazione puoi vedere questa cosa
la console di partenza della nuvola di primavera tutto questo
significa che voglio tutto il supporto della console
fornito dal cloud di primavera, quindi cos’è?
bene se clicco su quello che puoi
vedo che in realtà sono due cose che è primavera
Config e avvio della console di avviamento del cloud
la tua console di scoperta così questa cosa è
circa la parte config semplicemente mettendo
questo sul mio classpath lo facciamo avviarlo
scopriremo che dobbiamo connetterci
un server di console per la configurazione
domanda è come fa a sapere
come connettersi alla console proprio così
non è in grado di ottenere la configurazione
da quello dalla console questo è un
problema di bootstrap e come Josh in realtà
ha mostrato già durante il suo discorso c’è
un meccanismo per questo e le nuvole primaverili
dove accanto a proprietà di un’applicazione
file puoi effettivamente avere un bootstrap
file di proprietà e in genere è possibile
immagina questo con due cose che puoi
figura un nome per l’applicazione così
che sa ad esempio cosa chiedere
per dal server di configurazione e
lo configuri con il reale
posizione del servizio di configurazione
ora in un ambiente cloud di sorta
probabilmente otterrebbe questo da un
variabile di ambiente così
ecco perché hai il congegno della pistola finito
URL lì che potrebbe provenire da un sistema
proprietà o una variabile di ambiente ma
sto avendo un fallback qui come predefinito
che è solo la console in esecuzione qui
su localhost quindi cosa farò
qui ho intenzione di iniziare il
un’applicazione come questa ora la ragione per cui sono
farlo qui dalla riga di comando è
che più tardi voglio davvero avere un
seconda istanza in esecuzione accanto ad essa
due console e voglio mostrarti un po ‘
uscita di quello speriamo che cosa sarà
fare è start up troverà il
proprietà di bootstrap configurarlo
si collegherà alla console sarà quindi
trova la sua configurazione e poi usa
quella configurazione farà il boot strap
il resto dell’applicazione della molla così
facciamo un po ‘più grande, eccoci qui
la prima cosa che sta succedendo è che lo è
solo utilizzando potrebbe essere necessario avviare il
l’applicazione lo renderò un po ‘più grande
questo è sì più grandi vi ringrazio molto
quindi vediamo il numero di cose che accadono
qui mi dispiace, si sta rispondendo
molto lentamente così quando penso di esserlo
rendendolo più grande è in realtà diventando
più piccoli ci andiamo che è meglio che vediamo
numero cose cose interessanti sono
succede che c’è un logo di avvio personalizzato
qui non l’ho inserito solo perché
sembra così bello che lo sto effettivamente mettendo
per fare un punto più avanti e poi noi
vederlo partire se si guarda molto
con attenzione puoi effettivamente vedere che il
la registrazione non è stata cambiata non c’è
date di fronte c’è solo il tempo
timbro qui e questo è perché è
ottenendo il suo modello di registrazione da questo
server di configurazione remoto così va bene
Devo credermi ora che funziona così
come faresti a notare davvero cosa?
cosa sta realmente accadendo qui quando noi
fai questo così una delle cose che tu
può fare con l’applicazione di avvio a molla è
è possibile esporre questi punti finali dell’attuatore
e questa cosa sta esponendo un
endpoint attuatore ambiente che lo farà
in realtà mostra tutte le impostazioni che
esso ha
oh, ho perso un aiuto lì mi dispiace così
chiudendo un po ‘di questo qui quello che puoi
vedi qui è che effettivamente abbiamo
diversi set di configurazione qui questi
le cose sono chiamate fonti di proprietà in
molla così in alto possiamo vedere che io
avere qualche configurazione locale per il mio
porta del server che in realtà provenienti da
la mia applicazione che file di proprietà quindi
puoi vedere che c’è una console basata
config / talk service one che imposta il mio
livello di debug e poi vedi che c’è
un’altra applicazione di configurazione a
quindi sovrascrivi quel modello di registrazione
ci sono anche le configurazioni che
l’applicazione può leggere dal sistema
proprietà hai una proprietà di sistema
così come l’ ambiente e poi
finalmente vedi alcune fonti di dati locali
così pure queste cose sono ordinate
in realtà così questo ti dirà esattamente
quale configurazione è la tua applicazione
usando prima di tutto ma anche dove è
prendendolo da destra quindi è un
concetto importante ora un’altra cosa
è interessante che ho avuto una scheda del browser
aperto per quello ma ovviamente tutto
corretto, quindi ti dirò solo io
parlato di rinfrescante e di spinta
aggiornamenti giusti se tu fossi ora a guardare
l’ultima documentazione di spring cloud
e verifichi che la console lo supporti
in realtà dice che la console ha davvero un bel
con il gancio che puoi usare per essere
informato sugli aggiornamenti di configurazione ma
sfortunatamente non lo supportiamo ancora
questo arriverà in una versione futura ora
potresti aver sentito l’espressione di
under-promise e over-consegnare quello
sembra essere esattamente quello che hanno fatto quando
hanno scritto questa documentazione che fa
in effetti lavoro così lascia che ti mostri rapidamente
che se vado qui
e io cambio questo livello di registro qui per
esempio di informazioni e aggiornamento posso andare
qui ed effettivamente quando scorro verso il basso a
un po ‘qui quindi quello che puoi vedere qui può
essere un po ‘ difficile da leggere, ma lo dirò
sei qui è un contesto applicativo
essere chiuso e ricominciato e noi
vedere le chiavi di aggiornamento modificate registrando il
livello per parlare così questa applicazione fa
sapere che la configurazione è cambiata e
si sta riconfigurando ora la finale
cosa volevo spiegare in un po ‘
un po ‘più di dettaglio ecco come funziona
funziona anche perché se sei abituato
per iniziare le applicazioni ma non l’hai fatto
ha lavorato con questo quindi probabilmente lo sai
che in genere quando hai letto
qualcosa come un file di proprietà, facciamolo
start up è giusto queste cose
sono appena incassati nella memoria e l’unico
cosa puoi fare per rinfrescare il tuo
la configurazione è solo riavviare il
intera applicazione in modo che usino un po ‘
trucco per questo ed è anche per questo che tu
Devo dedicare quelli di bootstrap
file di proprietà fondamentalmente ciò che sarà
succede con una molla basata sulla nuvola
l’applicazione è quando lo si avvia
crea un contesto applicativo separato
quindi è come una piccola applicazione di primavera
all’interno della tua applicazione e questo
la cosa è solo responsabile per fondamentalmente
andando al server di configurazione
ottenendo tutta quella configurazione e
creazione di fonti di proprietà personalizzate e
quando hai finito il tuo solito scarpone a molla
l’applicazione inizia con il proprio
contesto applicativo che ha a
riferimento a questa radice basata sul cloud
contesto e quando le cose cambiano come te
vedere qui è quello che finisce
contesto di applicazione basato su cloud
ricreato quindi non è l’intero
l’applicazione che viene riavviata è
solo quella parte dell’applicazione
contesto oltre a quello ma giusto
già lo spettacolo, quindi non ho intenzione di farlo
di nuovo puoi annotare i tuoi fagioli
con a rinfrescarsi e puoi
in realtà hanno oggetti nel tuo
riavvio dell’applicazione anche se
si basano su determinate configurazioni
proprietà che vorresti essere
in grado di cambiare in fase di esecuzione ora c’è
alcune altre cose che puoi fare per la demo
Ai fini come questo in realtà è bello
avere coppie di valori chiave individuali in
console se hai davvero grande
applicazioni che prendono come 50
proprietà che non sta andando davvero a
scala in modo che tu possa effettivamente dirlo
cosa che voglio solo avere una sola chiave
coppia di valori per ogni applicazione in cui
il valore è solo andare a essere il
contenuto di un file di proprietà o a
il file giallo scrive quelle cose sono completamente
supportato puoi persino avere il tuo
configurazione e ottieni ed esegui uno script
chiamato ottenere console che in realtà
esportare tutta la configurazione e
caricarlo in console che penso
ha perfettamente senso, proprio perché
la configurazione è sicuramente qualcosa
vorrete inserire il controllo della versione
quindi anche se in realtà non lo sto mostrando
queste cose sono pienamente supportate così
questa è la parte di configurazione e così via
è bello ora che possiamo iniziare, lo sappiamo
chi siamo dove sono gli altri e
per quelli di voi che erano di Giuseppe
parlare che probabilmente hai già visto
la nube di primavera sostiene la nozione di a
registro di servizio quindi qual è l’idea
lì con il registro del servizio bene
ovviamente quando stai effettivamente costruendo
un sistema distribuito è distribuito
perché queste cose non sono isole
loro stessi hanno bisogno di
comunicare tra loro così il primo
cosa deve fare un servizio quando lo fa
si avvia e ha la sua configurazione
il suo bisogno di pubblicizzare il suo presente
ha bisogno di dire al mondo hey sono qui
questo è il mio nome questo è dove puoi
trovare me e anche cose come questo è
dove puoi controllare se sto bene
quindi ovviamente come cliente ha anche bisogno
per scoprire dove sono tutti gli altri
i servizi sono quelli che vuole connettersi
con ora puoi usare qualcosa come DNS
per quello e per un certo certo
utilizzare casi che funzionano davvero davvero
beh giusto non ho davvero bisogno di sapere
dove altri servizi sono ho solo bisogno di
sapere che il loro logico DNS lo chiama lì
sarà qualcosa che poi mi fornisce
con un vero indirizzo IP e poi roba
così, ma ci sono molti usi
casi per i quali ciò non funziona davvero
un caso di uso ovvio e ancora solo
menzionare questo di passaggio è questo quando
stai scoprendo che ci sono
più istanze di un singolo servizio
e tu vuoi parlare con uno di loro
potresti voler scegliere quale istanza
stai parlando a te stesso piuttosto che a te stesso
lasciandolo fino a qualche middleware basato
bilanciamento del carico che hai assolutamente
il controllo zero su Netflix effettivamente utilizza
questo per esempio per scoprire quale di
le istanze del servizio
che sono raggiungibili sono i più veloci a
parlare con la minor latenza a
il bilanciamento del carico non lo sa perché
un bilanciatore del carico non parla con
servizio stesso è i tuoi clienti che è
parlando con un servizio e ci può essere
tutti i tipi di cose accadono in particolare
in ambienti basati su cloud che hanno causato
per essere più lento o più veloce, quindi se tu
può effettivamente misurare quanto velocemente puoi
la connessione a un servizio, allora si è in
la migliore posizione per farlo davvero
scelta va bene così in quel caso tu
bisogno di una panoramica completa di tutti questi
servizi che ci sono da un
punto di vista operativo anche è
importante avere una panoramica di cosa
i servizi sono effettivamente lì e sono
quei due servizi che ci aspettiamo di essere
lì o c’è qualcosa che manca e se
il servizio è lì come facciamo realmente
controlla che funzioni correttamente
che è completamente operativo
può parlare con il suo middleware come il suo
base di dati come il suo broker di messaggio che
sorta di cosa così che è il controllo della salute
in pratica e con il registro dei servizi
ogni volta che un servizio si registra da solo
può effettivamente parlare al servizio
registro e dire oh dal modo in cui questo è
come puoi controllare se sto bene
giusto così questo è utile ora Netflix
ha in realtà open source il loro servizio
Registro di sistema che si chiama semplicemente Tarika
l’ho dimostrato, quindi non lo farò
di nuovo ma se vuoi eseguire Eureka il
il modo più conveniente per farlo è
attraverso un antipasto speciale che molla
il cloud fornisce e quindi puoi semplicemente eseguire
è un’applicazione di trampolino di lancio
fondamentalmente ovviamente dovresti esserlo
eseguendo queste cose con multipli
istanze perché deve essere altamente
disponibile ma il progetto della console I
appena dimostrato è in realtà anche un
registro di servizio in modo da poter avere entrambi
la tua configurazione e i tuoi servizi in
un posto unico per avere un rapido sguardo
a questo, se attualmente vado qui, posso
effettivamente vedo già che ho un
panoramica qui ma alcune cose sembrano essere
non è così ok ora perché è così
la cosa in realtà sta ricordando cosa
i servizi erano in esecuzione prima che si chiudessero
giù ora tutto si chiude in let’s
dì non così molto pulito in questo momento solo sul mio
computer così dice che ho questi
servizi hanno detto che sarebbero stati
qui non mi hanno mai ufficialmente detto
Vado via ma loro non ci sono
ottenere guasti che in questo caso sono a
buona cosa, lo so, certo
i servizi non sono in esecuzione puoi vedere
che in realtà dovrei avere
due esempi di questo particolare servizio
correndo qui quello che puoi vedere è uno di
i servizi in esecuzione perché è così
non lavorando qui andiamo a uno dei
i servizi in esecuzione sono sulla porta 80 81
saltiamo questo e va bene così
verde ma l’altro in porto al giorno
due al momento non ce l’ha fatta, lasciami risolvere
quello per te quello che farò qui
sto per iniziare un altro
esempio cosa dirò
una porta sguardo server è pari a anche oggi
e poi dire che gli stivali primaverili corrono e nel mio
ID orecchio nello stesso momento che sto andando a
avviare altri servizi perché
quello che ho fatto è che ho scritto a
A proposito, un’applicazione di esempio molto piccola
inserirò un URL sul codice sorgente
Twitter dopo il discorso, così puoi
scarica anche il codice che lo farà
semplicemente bootstrap un numero di servizi
questo è uno e questo è uno
ce ne andiamo è un po ‘pigro ma è così
sarà lì in un secondo ora mentre è
facendo quello che torna qui puoi vedere
questo ancora fallisce sì, dovrebbe essere
in un attimo vediamo se questo è
va tutto bene sta funzionando bene questo
sta funzionando sì è solo un po ‘lento così
solo per anticiparmi un po ‘
e rendere la demo un po ‘più fluente
ha detto che questi servizi possono registrarsi
endpoint del controllo sanitario, ecco come
console in realtà sa se il mio servizio è
lì parlerà con un punto finale
Posso mostrarti il ​​mio punto finale
già installato e funzionante ciò che sembra
così questo è l’endpoint della salute della barra
di default questo è fornito dalla primavera
fai il boot giusto, quindi quello che vedi qui è quello
prima di tutto il mio servizio è in realtà
dicendo che sono sveglio questa è la cosa chiave qui
il servizio stesso sta esprimendo il
Infatti è in arrivo e rispedisce un 200
ok con questa risposta JSON ma è anche
mostrandoti alcune delle cose che ha fatto
controlla che quindi non sta solo dicendo che sono
qui in realtà sta controllando alcuni dei suoi
le proprie dipendenze e così è
ricevuto automaticamente un controllo del database
perché sto usando qualsiasi database di memoria
in realtà controllerà se può
parlare alla console giusto perché questo è se
questo è un client per il tuo servizio
registro bene è meglio essere in grado di parlare
a quel registro di servizio che ha di meglio
spazio su disco rimasto in esecuzione sul dispositivo
che si esegue destra in modo Queste sono alcune delle
i controlli come puoi vedere qui che sono
automaticamente fornito lì ora che
sembra andare nella giusta direzione
quindi nel frattempo fammi controllare se il mio
l’applicazione demo è già attiva e
correndo lì
no non ancora bene sarà lì in a
secondo ti mostrerò un po ‘
un po ‘ più di quel registro di servizio in a
momento nel frattempo parliamo a
un po ‘di più su cosa succede quando
siamo effettivamente registrati e ora noi
voglio parlare con altri servizi
in questo momento, in generale, non lo è
specifico per servizi o cloud o
qualsiasi cosa ci sono due modi in due modi
interazione quando si tratta di parlare
altri due software in esecuzione
da qualche parte puoi farlo in modo sincrono
giusto questo è tipicamente qualcosa di te
farebbe su HTTP per esempio che fai
una richiesta a cui attendi una risposta
torna indietro o puoi farlo
in modo asincrono e questo è in genere
fatto attraverso la messaggistica, sto andando
per inviare il messaggio e non appena il
messaggio ha raggiunto alcuni centralizzati
broker di messaggi che ho finito non devo
aspetta più qualche altro servizio e questo
potrebbe essere un singolo servizio ma potrebbe
essere un sacco di servizi può quindi
elaborare quel messaggio forse lo vogliono
produrre una risposta va bene se loro
vogliono che mi può inviare una risposta indietro
ma lo faranno ancora in qualche Q
e alla fine lo prenderò
messaggio da qualche altro q ed entrambi lo sono
tipicamente molto importante in in
l’architettura dell’applicazione ha così
è sincrona la mia comunicazione di blocco
spesso fatto per cose come le domande giuste
se voglio controllare un database, lo sono
aspettandomi un risultato ora non dico io
vorrei che tu lo capissi e
forse solo più tardi tornerai a
io con i risultati no, in realtà ho un
utente che aspetta questo risultato, quindi lo sono
andando a chiamarlo immediatamente
in modo sincrono altre cose come l’invio
forse un comando a una superficie che dice io
voglio che tu faccia qualcosa ma io sono
disposto ad aspettare il risultato perché
il risultato è molto importante per me e
è elaborato in qualche modo in questo momento alcuni
preoccupazioni che entrano in gioco quando sei
facendo questo è hai intenzione di fare solo a
chiamata di blocco che è in Java almeno
è la cosa più ovvia da fare
di solito stai andando
bloccare le minacce per fare una richiesta XP
per esempio non succederà nulla fino a quando
che ha funzionato o ha tempo
che al giorno d’oggi ce ne sono molte
sforzo in realtà facendo
questo genere di cose che non bloccano così
questa è l’intera cosa reattiva, ora
puoi dire tutto ciò che ti piace di reattivo
ed è una cosa molto importante, ma è così
ancora ovviamente sincrono
comunicazione giusta non pensare che tutto
di fare improvvisamente non bloccando
la comunicazione lo rende un sincronismo
quelle sono due cose molto diverse alcune
le cose che entrano in gioco come ho detto
già sono cose come bilanciamento del carico
giusto se sto chiamando per qualche servizio
esempio che sta per essere e se
quella cosa scende un’altra volta
Probabilmente voglio assicurarmi che io
instrado effettivamente la mia richiesta a quest’altro
ad esempio l’altra cosa e questo è
tipicamente dove tutta la robustezza o
la cosa robusta entra è che voglio
fare in modo che quando chiamo qualcosa e
qualcosa non va allora io non ho intenzione di
essere interessato come un’applicazione me stesso
giusto quindi c’è un numero di cose
là che sono importanti ovviamente
cose come timeout giusto se lo sei
andando a connettersi ad alcuni esterni
servizio non aspettare per sempre il
connessione per venire lì se si dispone di un
connessione e tu in effetti fai il
richiesta non bloccare per sempre fino ad alcuni
la risposta ritorna sul socket
giusto hai bisogno di provare il brivido di questi
cose e in molti casi è in realtà
molto peggio se un servizio che sei
parlare per rispondere solo molto lentamente
piuttosto che è semplicemente completamente
disponibile perché vi accorgerete che
fuori immediatamente ho intenzione di provare
connettersi immediatamente ho intenzione di ottenere un
Eccezione IO non c’è il calcio lì
ma è molto peggio se lo fosse
in realtà risponde ma semplicemente
richiede minuti anziché il nostro anche se
qualcosa va storto, allora non posso
semplicemente fallire, ho bisogno di averne un po ‘
tipo di modo di ricadere e anche io
ho bisogno di essere sicuro di non farlo
sovraccaricare altri servizi forse se per
qualunque sia la ragione del mio servizio tutto a
all’improvviso arriva un carico davvero alto
non voglio semplicemente spingere tutto questo
caricare il resto del sistema e
quindi forse uccidere tutti nel processo
giusto ho bisogno di un modo per strozzarlo
quindi quelle sono alcune cose che entrano in gioco
giocare con inter-servizio sincrono
obiettivi e la cosa interessante è quella
netflix ha open source un’altra libreria
dei loro distretti scolastici che lo faranno
in realtà ti permettono di fare un sacco di questi
cose che ho appena citato, quindi voglio
per mostrarti un po ‘di quello
altre cose che hanno open source
che sono molto usati in tandem con
questo o qualcosa chiamato
nastro questo è un carico lato client
bilanciatore e quindi questa è una cosa in cui
puoi dire che mi piacerebbe fare un
richiesta per un servizio capisci cosa
istanza di servizio e non poteva fare solo
banale bilanciamento del carico round robin che
se la demo di Dio mi permetterà di farlo
ti mostrerò in un momento ma
puoi anche fare cose più fantasiose
per esempio l’esempio che ho citato
dove stai facendo stai facendo il routing
basato sulla latenza misurata e questo è
quel tipo di cose giuste potrebbe essere
tag particolari che vengono impostati
richiesta, così c’è ogni sorta di
opzioni lì e finalmente ma non lo sono
andando a mostrarti questo perché l’ha fatto
che già c’è zul che è a
approccio basato su proxy che ti permette di
dire che ho un sacco di servizi di back-end
e mi piacerebbe esporre loro attraverso un
singolo endpoint HTTP giusto e quello
un singolo endpoint HTTP potrebbe averne alcuni
cose aggiuntive come la sicurezza
requisiti ma dopo quello è giusto
andando a propagare la mia richiesta a quelli
servizi bancari quindi cosa sto andando a
prima di tutto ti mostri nella storia
qualcosa chiamato interruttore
l’interruttore è uno schema che dice
se scopro che qualche servizio che sono
parlare con non c’è o non lo è
rispondendo correttamente non lo farò
Continueremo a provarci destra ho intenzione di
rinunciare dopo un po ‘che sto per
ricorda il fatto che questo servizio è stato
non lì e poi per un configurabile
periodo di tempo semplicemente non ci provo
fallirà immediatamente se qualcuno ci prova
chiamare il servizio e chiedere scusa
merita al momento non c’è e
dopo un po ‘proverò di nuovo lo farò
prova una volta e poi se quella richiesta
funziona davvero, dico ok, siamo tornati
ma se non lo fa, immediatamente lo è
solo andando a ricordare che questo non è
andando da qualche parte fammi controllare prima se
le cose hanno già caricato
oops
no, semplicemente non è ancora iniziato
va bene così così quello che ho fatto nel
nel frattempo lascia che ti spieghi rapidamente
istituito qui abbiamo due istanze di a
talk service abbiamo una istanza di a
servizio di revisione che mi permetterà di
scoprire se ci sono recensioni per
colloqui particolari che abbiamo nel
sistema e hanno una singola applicazione web
di fronte a quei due o tre servizi
l’applicazione web dovrà parlare con
entrambi i servizi e lo farà
in una questione sincrona ad esempio bene
le cose sono davvero molto lente qui
sì, ci siamo
quindi quello che ho qui è un servizio nel
applicazione web giusta quindi questa cosa è
parte della mia applicazione web e ha un
il metodo qui chiama tutti i discorsi che semplicemente
restituisce tutti i discorsi che sono
disponibile nel sistema per questo
conferenza particolare o questo particolare
traccia e lo fa utilizzando una pausa
modello qui che dice prendimi quell’URL
lì e sta parlando per battere le chiacchiere
servizio ora che non è un nome DNS che è
il nome del servizio dice cosa questa cosa
farà all’avvio è sta andando a
connettersi alla mia console e quando
tutto è attivo e funzionante dovrebbe
presentarsi qui ma mi sembra di averne un po ‘
problemi qui quindi vediamo se questo
funziona davvero
Sì, eccoci qui, quindi, prima richiesta in realtà
fallisce come puoi vedere qui ora ottengo a
pagina in modo che la mia app web funzioni, ma non c’è
niente lì quindi quello che è successo qui bene
a quanto pare questo metodo è diventato freddo ma
c’era un problema a parlarne
servizio di assistenza telefonica avviso che lì
è un’annotazione del comando delle storie degli annunci
qui con un attributo di fallback quindi cosa c’è
quel detto è che se in qualche modo fallisci
per completare con successo questo metodo
l’esecuzione là è qualche eccezione solo
chiama invece il metodo dei talk cast
questo metodo può avere qualsiasi visibilità ma
oltre a ciò ha bisogno di avere il
stessa firma del metodo all’originale
metodo e quello sta andando
restituisce una versione memorizzata nella cache di tutto il
parla ma da quando non ho mai fatto un
richiesta riuscita ancora la mia cache è vuota
quindi attualmente non sto vedendo nulla
mi preoccupa un po ‘ovviamente
che non vedo niente di simile
si spera che fosse solo una parte del
lentezza sì, eccoci qui , ora vedi
che sta facendo un altro tentativo ed è
vedere le cose ok è il backup che posso ora
chiamare questi servizi e posso fare clic
attraverso e posso per esempio scoprire
alcune informazioni sui discorsi di josh e
è davvero interessante che lui abbia la strada
Riassunto di presentazione più lungo di tutti
gli altoparlanti in questa traccia che è
probabilmente perché parla così velocemente
quindi questa è la mia applicazione ora dal
cosa volevo davvero mostrarti
perché quella era la demo che avevo preparato
è questo se guardi qui in basso
puoi vedere le mie due istanze dello stesso
talk service in esecuzione a destra sulla porta
80 81 one on port 80 day too now if
la console è stata rilevata correttamente
il fatto che queste cose siano entrambe
correndo che sto avendo dei dubbi
a tale proposito vedremo quindi cosa dovremmo
vedere ora è carico automatico
bilanciamento con nastri così sto facendo un
prima richiesta e quella era sulla destra
dice che tornare a parlare è tutto
spuntato sto facendo un altro oh quello era
sulla sinistra che sto facendo un altro sulla
a destra a sinistra a destra
left right quindi questo è ribbon in action
quindi questa è una combinazione di sicurezza
che abbiamo un registro di servizio in atto
che abbiamo isterismi sul posto e questo
abbiamo il nastro sul posto ed è semplicemente
una questione di mettere questa roba sul
classpath mettendo un Ettin a
l’annotazione in là e questo è il
comportamento che ottieni ora se ora uccido
un boom di servizi e ne faccio un altro
richiesta qui allora questa prima richiesta è
già fatto ma non sto realmente vedendo
qualsiasi cosa lì ora questo va lì
oh niente oh, di nuovo, non rimbomba nulla
quindi non sa ancora che quest’altro
il servizio non è più lì che troverà
fuori molto rapidamente e questo è giusto
instradamento di tutte le richieste alla cosa
a sinistra ma se effettivamente guardi
l’output della mia applicazione web ora
ecco allora quello che vedrai è quello
ci sono in realtà alcune eccezioni qui
perché stava cercando di connettersi a un
servizio che ho semplicemente ucciso ma noi
non ho visto errori o eccezioni in
l’ applicazione web è perché se
stai guardando alcuni dei risultati
qui puoi vedere che a volte dice
parlare del servizio non disponibile sto tornando
i contanti parlano bene, quindi questo è il
interruttore in azione lì ora
tornare a questo molte persone a pensare a
interruttori automatici come caratteristica principale di
la storia ha ragione, questa è la cosa che
tutti dimostrano questo è da un ragazzo chiamato
Ben Christensen ha usato per essere uno dei
capo architetti di Netflix e lo era
responsabile di molte cose
Ti sto mostrando qui oggi che è
attualmente lavora su Facebook ma ha
detto in passato che in realtà circuito
i demolitori sono altamente sopravvalutati che potremmo
lasciatelo dalla storia x quasi per niente
la cosa più importante è in realtà
limiti di concorrenza o intestazione collettiva a destra
quindi questa è un’altra caratteristica e questo è
qualcosa che non molte persone penso
parlare di così ho pensato che sarebbe stato
interessante per mostrarti almeno un
un po ‘ una paratia è qualcosa
stanno usando le navi per proteggerlo
affondare se c’è una perdita, quindi se c’è
una perdita in questa nave solo un compartimento
sarà effettivamente inondazione con l’acqua, ma il
resterà il resto dei compartimenti
pieno di aria e la nave rimarrà
a galla è tutta l’ idea, quindi come va?
questo si traduce in software, lasciatemi fare
ti mostro qualcosa, terrò questo
per esempio, va bene per ora cosa
Ho intenzione di fare è che ho intenzione di fare
alcune richieste alla mia domanda è
attualmente ancora in esecuzione, ma ho intenzione di farlo
fallo usando una piccola generazione di test
strumento dal benchmark di Apache quindi vado
per dire fai mille richieste 10
richieste concorrenti
Voglio farli a localhost 8080
ora questo dovrebbe funzionare bene
tutto è in esecuzione puoi vedere un sacco
delle uscite dal mio controller di ritorno
tutti questi discorsi e poi in a
momento che questa cosa dirà che ho
appena fatto mille richieste era tutto
okay, come possiamo vedere bene?
in realtà un’applicazione che espone il mio
circuito di stato dell’interruttore ecco che abbiamo
sentito richieste 0 a destra così
tutto funziona come previsto non lo è
terribilmente eccitante realtà ma voglio
mostra qualcos’altro ora mentre questo
cosa sta avviando vediamo cosa?
succede se proviamo di nuovo la stessa cosa
come abbiamo appena fatto facendo mille
richieste ma questa volta stiamo andando a
aumentare il livello di concorrenza 2 15
piuttosto che 10 là si genera la generazione
via quasi fatto e ora da quella parte
tutto sembra ok proprio perché
ogni richiesta che in realtà lo rende a
il mio servizio di talk è gestito bene
va bene, ma ora a destra se questo
cosa completa nel momento in cui tu
vedrà che in realtà ha un sacco di
gli errori ora sono interessanti perché
sta ricevendo errori il mio servizio è
correndo ho isterico configurato I
avere un ripiego ma ancora in questo caso
vediamo dove è stato completato l’errore
tosto sì ce n’erano cento e
quindici richieste fallite, ecco cos’è
nemmeno come alcune richieste, proprio così
una parte molto significativa delle richieste
completamente fallendo e senza successo
la caduta indietro, quindi cosa sta succedendo qui
bene si scopre che se stai usando
cronologia x in realtà stai ricevendo un
seconda caratteristica ed è una caratteristica ma
devi saperlo altrimenti è così
un libro e cosa sta succedendo
fare è limitare l’ammontare di
richieste simultanee che sei autorizzato
fare a qualsiasi superficie sorvegliata da a
interruttore
Bene, puoi vedere che questo è qui
la cronologia x cruscotto sull’occhio può
guarda i miei interruttori qui, quindi il mio vecchio
parla ad esempio ma posso anche vedere il
pool di thread sotto quello e questo è
in realtà il grosso titolo in azione ora
oh, in realtà posso vederlo già
aumentare leggermente la dimensione della piscina ma
ancora questa cosa ha una dimensione fissa della piscina
e questo è per impedirti di farlo
sovraccaricare altri servizi e il diritto
il valore predefinito nella cronologia è solo 10
ottieni un pool di thread di 10 minacce
non può mai fare più di 10 minacce a
lo stesso tempo per un servizio se lo sei
cercando di fare un’altra richiesta mentre
quelle 10 richieste sono già in azione
è solo andare a fallire completamente
immediatamente e non lo farà nemmeno
passare attraverso il tuo fallback perché il
l’idea è che ti stai sovraccaricando di cui hai bisogno
per dire a qualunque cliente tu abbia quello
semplicemente non sei disponibile perché il
il sistema è troppo occupato impedisce questo
intero sistema da effettivamente andando giù
ed essendo sovraccaricato ma se non lo fai
sappi che è molto facile dirlo
ho configurato tutto io
penso di poter andare in produzione e poi
prima che tu lo sappia stai facendo un diniego
di servizio su te stesso perché sei
solo permettendoti di guadagnare tempo
chiedere a tutti se stai sostenendo
servizi allo stesso tempo proprio così per
configurare questa roba e questo è davvero
cosa volevo mostrarti nel mio discorso
servizio qui puoi fare cose come
configurare la dimensione di questo pool di thread
scusa vieni qui che puoi vedere che ho impostato
le proprietà del pool di thread qui impostate
il corso come 220 ora anche quello non lo è
abbastanza giusto se sto usando uno strumento che io
come uno strumento di bilanciamento del carico ero solo
usando persino dicendo 15 quelle richieste arrivano
in così veloce che anche una minaccia per amare 20
qui non è abbastanza, ma questo è
qualcosa di cui essere consapevole e che puoi vedere
la cosa sta andando giù se lo faccio di nuovo se
ora andiamo a questa dashboard, qui puoi
vederlo sembra a posto per un po ‘ma
poi BOOM tutto diventa rosso e tu
può vedere che il pool di thread un sacco di
i fili stanno diventando attivi è
iniziando a fare la fila e dopo a
mentre le cose basta andare in tilt poi
torna indietro di nuovo a destra modulo di richiesta a
sono fatti puoi davvero fare un
mille richieste davvero veloci se tu
lascia che falliscano immediatamente
a quanto pare, ma questo è molto
qualcosa di cui essere consapevole è un
caratteristica importante, ma se tu se tu
non so della funzione che le cose faranno
solo pausa ora finalmente c’è anche a
messaggistica malata attraverso il nostro supporto per a
sink messaging e questo è in genere
usato per cose come eventi di trasmissione
giusto se qualcosa è successo nel tuo
applicazione e vorresti altro
applicazioni per sapere che non è necessario
dillo loro uno per uno esplicitamente
succede qualcosa ma ti piacerebbe
fare è semplicemente trasmettere un messaggio e
questo è particolarmente adatto per il messaggio
i broker richiedono anche risposte dove voi
in realtà non devi bloccare e aspettare
per la risposta perché non c’è
utente che esegue una richiesta HTTP per
esempio che è necessario per te
può solo inviare una richiesta e poi
ogni volta che la risposta ritorna fare
dì ok grazie per la risposta di questo
processo è perfetto per un lavandino ora
ci sono molti prodotti là fuori
ci sono molti protocolli diversi
che puoi usare per questo ma ci sono
un numero di schemi comuni che puoi
avere un messaggio point-to-point dove
stai inviando un messaggio a uno solo
ricevitore singolo o si può fare pub / sub
dove puoi iscriverti ad un argomento e
allora qualunque sia un messaggio inviato a
argomento ogni sottoscrizione di esso è possibile
dire che ho una coda quando ne ho multipli
applicazioni che ascoltano quel prelievo
messaggi per distribuire il carico di lavoro per
esempio chiamato competizione
i consumatori e questi modelli sono ora
essendo supportato da un altro membro della
famiglia di nuvole primaverili chiamata Springs loud
in streaming ora non ho il tempo di farlo
demo più che ma c’è il codice in
i miei codici demo che come ho detto metterò
su Twitter dopo le presentazioni
puoi verificarlo da solo
supporta queste nozioni è in un
astrazione dove non c’è bisogno di
in realtà configurare il broker reale
più così non stai usando JMS direttamente
o amqp direttamente o qualche client Kafka
direttamente o un cliente rossiccio direttamente
in realtà puoi dire che vorrei solo
avere un’idea di qualche argomento che
Posso pubblicare e qualcosa che io
puoi ascoltare e lo capirà
per te ne supporta ancora un po ‘
partizionamento di concetti di fantasia per esempio
significa che il produttore in realtà etichetta certi
messaggi e poi lo faranno sempre
arrivare con lo stesso consumatore in competizione
questo è bello per cose come i dati del sensore
giusto se tengo traccia di un movimento
media di certo
risposte davvero non voglio il mio sensore
informazioni per finire con un sacco di
ascoltatori diversi perché lo faranno
non ho le informazioni precedenti così tu
può davvero prenderlo così sempre
raggiunge lo stesso o puoi farlo
sicuro che se un consumatore va via
temporaneamente continuerà a ricevere il
messaggio giusto, quindi questo è abbastanza nuovo
Inoltre come ho detto a corto di tempo
per dimostrarlo in realtà ma solo per te
sappi che è lì quindi questo ti dà
speriamo un po ‘ più di intuizione
nei componenti principali della primavera
le nuvole sono le cose di configurazione
la registrazione dei servizi e il
invocazione sincrona attraverso tutti
le librerie di netflix ovviamente lì
sono molte altre cose che entrano in gioco
gioca bene quando stai costruendo un
applicazione distribuita come se
qualcosa è veramente lento ciò che è
in realtà rendendolo lento forse e se io
devo fare cose come oh ben pensato
inviato occasione ho bisogno di effettivamente
propagare tali informazioni ai servizi bancari
o se voglio sapere dell’altro
istanze di servizio del mio servizio e io
voglio sapere quanti sono lì
altri significativi quindi c’è c’è
progetto anche per questo, quindi c’è questo
roba sciolta che è per distribuito
tracciando lì c’è qualcosa chiamato primavera
cloud bus che in realtà consentirà
propagare comandi ai servizi che ci sono
una parte che si integra con sicurezza
40 in particolare e c’è qualcosa
chiamato cluster di spruzzi per il coordinamento
giusto quindi questa è una grande area tematica
ovviamente non è qualcosa che puoi
coprire in qualsiasi profondità in 45 minuti ma io
ti incoraggio a controllarlo se lo sei
interessati anche a tornare a
odore di trackhoe qui e per favore ricorda
valutare questa sessione quando lasci il
stanza o preferibilmente prima di lasciare il
stanza mi dispiace che alcune delle cose
che ho intenzione di fare non ha funzionato ma
è stato un po ‘stressante qui con tutti
lo schiantarsi e la lentezza qui ma io
spero che tu impari qualcosa che spero di vedere
lasciate bene l’ultimo keynote di oggi
Simon Singh, in realtà sto guardando molto
molto avanti a questo se ne hai
domande lasciate abbiamo tempo ora
c’è una prima volta per le domande va bene
bene ci sono alcune domande dal
dal pubblico e uno penso sia un
breve uno la tua prima richiesta in precedenza
fallito è inteso che ogni prima
richiesta non riesce
no, questa è stata una lentezza
problema di stranezza sul mio portatile che solo
recuperato da un incidente che non lo era
aspettato che cosa è questo fallback suggerito
se la configurazione remota non lo è
disponibile quando si esegue il boot di un servizio I
direi che dipende normalmente dal telecomando
la configurazione dovrebbe essere disponibile correttamente
dovrebbe essere altamente disponibile
componenti così normalmente lo farà
basta impedire l’avvio del servizio
puoi effettivamente configurarlo per ignorarlo
quel server remoto è ora in corso
disponibile e quindi puoi ricominciare
alcune impostazioni predefinite locali che sono completamente
supportato ma è più destinato a
scopi di sviluppo piuttosto che per
scopi di produzione quindi la mia raccomandazione
sarebbe se l’altamente disponibile
dovrebbe renderlo altamente disponibile
il servizio di configurazione non è presente
questo è in realtà una ragione sufficiente per semplicemente
fail e startup config server stesso
potrebbe effettivamente ottenere certe cose se
stai usando qualcosa come la nuvola di primavera
server di configurazione che è supportato da un git
repository fa un clone del telecomando
git repository quindi il repository git
in sé non ha davvero bisogno di essere
altamente disponibile userà una copia ma
per i tuoi clienti di servizio vorrei solo
fallire nella produzione penso che sia così
si guarda al momento quindi grazie yo
Haskett e grazie

Please follow and like us: