
Sto parlando oggi del viaggio verso
micro servizi da una startup
prospettiva e quando parliamo di micro
servizi di cui sentiamo e leggiamo molto
storie di successo da molto grandi
organizzazioni come Netflix Amazon
Spotify di eBay solo per citarne alcuni e quando
guardi a quelle storie di successo te
potrebbe finire per dire bene che è così
bello quello che c’è basta copiarlo
bene il problema è che ciò che funziona
una società potrebbe non funzionare per te
quindi il viaggio verso i micro servizi è
diverso per ogni azienda e come
Adrian Cockroft, l’ex capo Netflix
il nostro architetto di cloud ha detto è se tu solo
copia i risultati che potresti perdere e saltare
il processo dietro e questi risultati e
al fatto che non riceverai
i risultati che tu vuoi
che ti aspettavi così il viaggio verso
i servizi di micro un affare era trade-off
non esiste una regola d’oro veloce che puoi
facilmente applicare e solo per darti un
breve panoramica di ciò che facciamo e di chi sono io
Sono in Susannah Kaiser il CTO di Just
software ci troviamo in qualche santo
Amburgo qui in Germania Nassif Germania
e quello che facciamo è solo software noi
sviluppare solo social che è un prodotto b2b
fornendo app per fornire
collaborazione di comunicazione e un
soluzione integrata per semplificare e
team di supporto che lavorano di più
efficientemente e andiamo prima di me
vai al nostro viaggio andiamo al
inizio e un paio di anni fa quando
abbiamo iniziato la nostra startup e tutto il resto
era davvero piccolo e carino così noi
stavano lavorando con una squadra su una
prodotto di collaborazione che era
implementato come una tecnologia era
quello che era uno
unità di codice all’interno di una pila tecnologica
quindi la cosa è che dopo un po ‘
tutto era in continua evoluzione quindi la nostra squadra
diventati sempre più grandi abbiamo aggiunto di più
caratteristiche per il nostro prodotto e il numero
di utenti aumentano così che dovrebbe
essere molto fantastici ma d’altra parte
abbiamo raggiunto un punto in cui tutto era
sentirsi un po ‘goffo e lento e
dal punto di vista organizzativo che
è stato il caso che ha preso anche tutto
a lungo per fare le cose per esempio il nostro
riunioni o discussioni la nostra decisione
erano più dispendiosi in termini di tempo rispetto a prima e
il fatto è che anche noi davvero
responsabilità ben definite nessuno
sentirsi responsabile, responsabile per
esempio quando è tornato in modo che il
processo stava diventando più lento e più lento
e la nostra produttività ha sofferto mentre
aggiungendo sempre più funzionalità al nostro
prodotto l’usabilità è diventata gentile
complesso e quindi l’usabilità e l’ utente
esperienza sofferta dal continuo
apportare modifiche così invece di risolvere
i nostri utenti i nostri utenti hanno problemi in modo efficiente
eravamo un po ‘a confonderli e anche
relativo alla nostra architettura software
tutto era legato insieme così abbiamo avuto
nessuna opportunità di rilasciare in modo indipendente
e veloce e quando ne abbiamo cambiato uno
parte del sistema potrebbe aver influito
anche l’altra parte del sistema così
c’era una sorta di necessità di evolvere che noi
bisogno di spostare e dividere le cose così noi
aveva divisione che abbiamo poi diviso il nostro uno
app di collaborazione e più piccole
app di collaborazione che si prendono cura di a
problema specifico e risolvere molto questo
bene e così abbiamo creato app separate
per condividere documenti per comunicare
in tempo reale per la comunicazione per
scambiare informazioni sulla conoscenza nelle notizie
quindi l’idea è nata per avere qualcosa di diverso
app di collaborazione per un uso specifico
caso nel frattempo lo faremo anche noi
la nostra unica grande squadra in piccoli più piccoli
squadre e due era un obiettivo lungo era il
obiettivo nel lungo periodo per raggiungere bene
squadre autonome con ben definite
responsabilità perché ciò che vogliamo
raggiungere è che ogni squadra può lavorare su
diverse parti dei sistemi senza
che colpisce l’ altro sistema o senza
che colpisce le altre squadre, quindi e così via
l’abbiamo fatto è che abbiamo assegnato a ciascuno
parti specifiche del team del Pacifica
collaborazione F in modo che possano lavorare
sviluppare indipendentemente a seconda
dipendentemente dal sul prodotto stesso
così, ma ci devo ancora affrontare che abbiamo
hanno ancora un software monolitico
architettura quindi come puoi
riflettere anche che abbiamo raggiunto in
la nostra struttura organizzativa nel nostro
prodotto ora lungo il nostro software
architettura quindi dobbiamo volerlo
diviso poi nel nostro nostro software
architettura e micro servizi perché
dovevamo ricevere l’autonomia che dovevamo ottenere
liberati da tutte le tue dipendenze e così via
per prima cosa sembra abbastanza facile
sì, andiamo avanti facciamolo
introdurre i micro servizi ma il problema
quello che emerge è che il micro servizio ha
vieni con la complessità e questi
la complessità potrebbe non essere ovvia in un primo momento
sguardo perché ora sei tu sei
comunicare in un distribuito
sistema che si sta ora comunicando sopra
la rete e la rete stessa è
inaffidabile e lento quindi la tua richiesta
potrebbe essere molto lento e puoi farlo
esempio aspettare e se sicuramente per a
risposta
potrebbe bloccare le tue risorse e te
può anche può anche fallire in qualsiasi momento
devi aggiungere complessità a non riuscire a d2
gestire il tuo fallimento e anche in a
sistema distribuito
era micro servizi che sei
partizionare i dati significa che
stai perdendo il tuo transazionale
consistenze tra i servizi così
devi affrontare eventuali
coerenza anche e da quando lo sei
ora non si tratta solo di un modulo
ma invece era più parti mobili
i tuoi compiti operativi stanno ottenendo di più
complesso così monitoraggio e distribuzione è
diventando più complesso e piace anche
il debugging è diventato difficile perché tu
devi sapere per capire come hai fatto
per consolidare le serrature delle gambe
confini del servizio e in realtà che tu
quando comunichi attraverso la rete
devi stabilire le API e come
assicurati che queste API non lo facciano
introdurre cambiamenti di rottura in modo che tu
ritorno che non ha comportato un fragile
sistema e insieme a tutti questi
la complessità è che le tue abilità sono e
anche i tuoi strumenti sono diversi da
monoliti quindi è stato proprio così
bene e un’altra domanda che si presenta ok
e la morale è qui sempre ha il
autorizzazione di autenticazione in uno
posto e ora se ti occupi di più
parti dei miei micro servizi come deve il
autorizzazione di autenticazione
l’autorizzazione è gestita e di sicuro a
sviluppare in modo efficiente non si vuole
desidera implementare tutti questi micro servizi
invece nel tuo ambiente di sviluppo
hai bisogno del tuo ambiente di sviluppo
più complesso del mondo monoski lì
non sono solo non le complessità che arrivano
insieme con i micro servizi ma anche
con la fase di trasformazione da
controlla i micro servizi perché io sono
formicolio e mandala è davvero davvero
duro lavoro e richiede molto tempo
quindi il processo di trasformazione richiede molto
più del previsto così quando noi
iniziato con esso
ci è voluto almeno il doppio del tempo che noi
aveva inizialmente previsto e anche noi
mancano le scadenze che erano davvero molto grandi
svantaggio e mi piace anche se hai un
funzionalità di base con un sacco di
dipendenze non è davvero facile
districa quella e una cosa che tu
è necessario considerare è che hai ancora
un sistema in esecuzione è un brownfield
progetto, perché avete il vostro denaro
mulini e devi mantenere e correre
mentre tu lo stai trasformando così tu
devo condividere
risultati in termini di capacità
ma anche nel tempo e che è anche molto
importante è che tutte le parti coinvolte
deve essere dalla stessa parte loro
devi essere d’accordo ed essere a bordo che tu
stanno per fare questo passato che sei
trasformando i tuoi modelli in micro
servizi perché se non lo fai se tu
non sono sulla stessa scheda allora è molto
più tempo
ben riflettendo tutte queste complessità
e sfide che potresti finire per dire
bene è mondo dei servizi di micro o
L’architettura di Microsoft fa bene a me
beh , dipende così decisamente giù
partizione senza una buona ragione ed è
non una buona ragione per presentarlo
perché è trendy e difficile adesso
e devi assolutamente trovare un buono
ragione per dire bene ci piacerebbe
per percorrere questa strada e per noi la ragione
era che noi eravamo guidati dall’organizzazione
perché stiamo dividendo il nostro prodotto
ma anche i nostri o i nostri team e più piccoli
squadre e vogliamo che funzionino
in parte diversa una parte diversa di
il sistema a una velocità diversa e noi
voglio farli vogliamo che li abilitino
che possono prendere le proprie decisioni
come implementarlo e quando
distribuirlo, quindi vogliamo rilasciare le modifiche
rapidamente e indipendentemente senza
interessando bene l’intero sistema quando
hai deciso bene, andiamo questo noi
ho trovato molte buone ragioni per iniziare
con esso
ora la domanda sorge come come iniziare
come hai gli enormi monitor in
davanti a te e come oh Dio come posso
solo tirare fuori era una singola parte di esso
e quello che abbiamo fatto prima di noi che abbiamo avuto
per mantenere alcuni concetti chiave e le menti che
è veramente importante per per fare per
fare il passo perché i concetti chiave
di modellare buoni servizi micro è quello
devi garantire un alto quizon
all’interno del servizio stesso e uno libero
accoppiamento tra quei servizi se tu
non seguire questi concetti chiave di te
non raggiungerà il letto
è di microservizi per avere
parti indipendenti da sviluppare e
anche rilasciato e questo significa per esempio
se cambi una parte del tuo sistema tu
voglio non voler influenzare noi colpiti
altre parti dei sistemi e se tu
termini di alta coesione erano nel
servizio significa che il comportamento correlato
si siederanno insieme così quando cambierai
uno questo comportamento non ti voglio
vuoi modificarlo in un unico posto
non vuoi cambiare il comportamento
è totalmente diversa parte del
sistema perché questo significa che tu hai
ricostruire e ridistribuire l’ID tutto il
servizi che hai cambiato e quindi
il tuo processo di implementazione è legato insieme
di nuovo e questo è esattamente quello è esattamente
l’opposto che vogliamo raggiungere in modo
accoppiamento lasco ed elevata coesione sono
molto importante da tenere a mente
mentre estrae i micro servizi da
il tuo monolite e stavo parlando
alta coesione e comportamento correlato
stare insieme e una cosa sei tu
può quindi provare a identificare i limiti
contesto Immagino ci sia un workshop su
Mercoledì parlando di domanda e
design guidato ed è una specie di a
principio da rimanere guidato design che
cerchi di capire i confini
dove una responsabilità specifica è
seduto in un comportamento specifico è
seduto e vuoi anche creare gentilezza
di capire probabilmente cosa deve rimanere
coerente in quale parte del sistema
possono essere sviluppati indipendentemente così questi
i concetti di limiti sono molto importanti per
estraendo servizi di marker da
immoralista perché forniscono un tipo
di cucitura e dove li tagli la
la parte dei micro servizi proviene da
e per noi il mondo di contesto limitato nostro
applicazioni di collaborazione e così eravamo
pensando bene iniziamo con quello e noi
avere contatti limitati guidati dal prodotto e
quindi abbiamo iniziato con l’estrazione di uno
app di collaborazione e questo era il nostro giusto
guidare
applicazione e quindi quello che abbiamo fatto è il
basta guidare la calibrazione dell’applicazione Eva’s
prendersi cura della gestione dei documenti e
quindi quello che abbiamo fatto è stato stabilito
questo o implementato è come una coesistenza
servizio al monolite e non è un
esatto equivalente all’originale
funzionalità ma invece ne ha di più
caratteristiche e invece ha il suo
diversa interfaccia utente perché eravamo
lavorando all’utente che usa l’interfaccia utente è nuovo
miglioramenti e ha anche un diverso
archiviazione dei dati quindi cosa abbiamo fatto e noi
ricostruito il nostro servizio come coesistente
uno ma da zero che non era buono
a proposito e quindi cosa fai così
è allora che è l’app giusta per guidare
quindi ha una data o autorità sopra il
documenti perché lo scambio
documenti nella nostra app di test drive e it
rimane mantiene l’ autorità dei dati su
i documenti significa che è l’unico
servizio che può leggere, ma anche scrivere su
questo su questi dati e per ogni documento
tu hai un autore e l’autore è
informazioni le informazioni sul profilo è
un estratto delle informazioni del profilo
e per evitare che tu recuperi tutti
tempo in cui stai visualizzando un documento
i dati del profilo dal dal
monoliti perché è quello che
ha un’autorità di dati sul profilo
dati e per evitare lo richieda
informazioni sul profilo ogni quali sono
ogni volta che stai visualizzando un documento
si sta mantenendo una copia ridondante è
non una copia esatta per l’ estratto di esso
così e questo è ok finché non lo fai
minare l’autorità dei dati del
monoliti che è questo è ancora il
uno che modifica i dati del profilo ma
ora hai una nuova complessità perché
devi assicurarti che questi dati siano
e cosa e per fare questo è necessario
stabilire una sorta di meccanismo di collegamento
quello che facciamo è che stiamo usando come un
Stile di comunicazione Cronus tra di loro
e il e il nuovo servizio e c’è
un broker di messaggi aspri , quindi stiamo usando
Kafka per quello e così ogni volta a
profilo è aggiornato nella Monell è
viene pubblicato per il CAF è molto
broker di messaggi e il nostro modello è quindi
abbonarsi a questo evento e aggiornarlo
i suoi dati replicati di conseguenza così bene
è stato buono nella prima parte
ma dopo un po ‘ci è voluto troppo tempo
ottenere questo limitato perché ciò che avevamo
il nostro problema era che lo facevamo anche noi
molti passaggi contemporaneamente così abbiamo stabilito un
nuova interfaccia utente perché stiamo lavorando
sulla nostra UI e UX approvement abbiamo anche
stabilire una nuova struttura dati noi
perché avevamo alcuni requisiti
le nostre strutture dati dei documenti sono obsolete
e dobbiamo aggiungere alcuni nuovi
struttura pure e abbiamo anche introdotto
nuova tecnologia e nel frattempo noi
dobbiamo ancora mantenere il nostro sistema e noi
dobbiamo estendere di conseguenza il nostro set di abilità
spostare troppo tutte queste complessità
quindi è stato molto impegnativo e noi
deciso bene, questo non è il modo in cui noi
può estrarre i nostri servizi è davvero
richiede tempo ed è davvero
frustrante perché non stai ricevendo
risultati molto velocemente, quindi abbiamo seguito
diverse strategie quindi con il
prossima app di collaborazione con cui siamo
dividendoli a passi e noi eravamo
zippandolo dall’alto verso il basso e questo
probabilmente qualcosa che funziona per noi da
noi bene non so se funziona molto
bene
ma anche per quello non era un bene
approccio perché quando noi il prossimo
il servizio su cui ci stiamo concentrando era il
guidare loro il sistema di comunicazione chat
e quello che abbiamo fatto è che eravamo
estrarre l’app Web prima così
introducendo lo spostamento del web client al suo
proprio servizio e introducendo quindi una pausa
cliente e il resto api a voi
recuperare i dati dal monolite così
questo è solo e non è la finale finale
processi è solo l’inizio di
il processo di estrazione e ma
questo ci permette di svilupparci per svilupparci
sull’app Web in modo indipendente e utilizzare
in modo indipendente e iterare su on
l’interfaccia utente indipendente, così otteniamo quattro velocemente
risultati che ci stava aiutando un sacco in modo che il
il prossimo è che siamo allora
zippando un po ‘di più verso il basso e
poi siamo arrivati alla logica Weston e così
quando si estrae la logica di business è così
tipo di più lavoro da fare perché tu hai
per districare la dipendenza dal
monolite e sto dicendo che il
la dipendenza dal monolite significa questo
le interfacce di cui stai parlando
stiamo parlando con te nel tuo nuovo
i servizi devono ora essere indirizzati come API
stand in modo da dover stabilire api e
se è una comunicazione direzionale
stile allora dovete per introdurlo
su entrambe le estremità e così questo tipo di like
sì più lavoro da fare oltre che
estraendo l’interfaccia utente web così ma
quello che vediamo ancora qui è questo passaggio
che condividono ancora gli stessi dati
archiviazione così quando si arriva al passaggio successivo
stavamo estraendo noi stavamo dividendo il
archiviazione dei dati e se lo fai
poi tu come ho detto nel primissimo
iniziando dalla nostra app di guida che desideri
Mi piace mantenere i dati ridondanti perché
non vuoi richiedere i monitor
per ogni informazione dell’altro
dominio in modo sincrono così faremmo
desidera mantenere i dati ridondanti e questo
significa che dobbiamo tenerli dentro
cose che dobbiamo stabilire a
meccanismo per mantenere quei vicoli ciechi in questo modo
in lui di nuovo è un sincrono
comunicazione che abbiamo presentato allora
quando abbiamo diviso l’archiviazione dei dati, ma anche
sai comunicare oltre Kafka
pubblicare eventi di modifica
va bene la domanda in generale sorgere è
come che uno dei propri contesti deve
usiamo prima di estrarre un senso marcatore
di esso e bene ci sono un po ‘come
le regole non sono davvero regole ma simili
idee su come puoi farlo è il primo
uno è come andare per l’impiccagione bassa
frutti ha usato quello che sono facili da
Estratto e questi sono per lo più quelli che
hanno o non così accoppiato nel
modulo stesso che ha pochissimo
dipendenze o che sono già
comunicare come in cronicamente così e
se bene inizi con quelli
sono facili da estrarre , puoi imparare mentre
vai così che significa che puoi prolungare
il tuo bagaglio di lavoro durante l’estrazione
processo e anche diventare raccolta
raccogliendo esperienza in micro
servizi ma anche nella trasformazione
elaborare se stesso quindi un’altra idea per
scegli quelli che sarebbero buoni candidati
per il prossimo passo dell’estrazione
processo è quello che identificate
quelli che ti stanno dando di più
beneficio per esempio questi sono quelli che
per esempio cambiano frequentemente
perché se estrai quelli che puoi
sviluppare e distribuire in modo indipendente
e rilasciare questi cambiamenti questi frequenti
cambia indipendentemente senza ricostruire
e ridistribuire l’intero sistema in questo modo
ti dà un sacco di benefici e l’altro
uno è identificare quei moduli nel tuo
monolite che usano diversi
i requisiti di risorse per esempio sono
questo prendendo un sacco di spazio su disco o
è l’ altro che prende molta memoria
consumo e puoi quindi dividerli
servizi per avere un sistema
si può facilmente scalare perché se si
estraili in un servizio indipendente
puoi quindi ridimensionarlo in modo indipendente
e un’altra cosa è smettere di fare il
modelli più grandi ed è un po ‘come si
molto controllo
Va bene che dobbiamo incontrare una pietra miliare appena
modificare i monoliti e ma il
il problema è qui mentre ti stai ritagliando
il tuo contesto limitato dal modello è
per far sì che questi monoliti si riducano, lo sei
quindi aggiungendo nuove funzionalità in cima
di esso e così il processo di trasformazione
stesso sta rallentando perché il tuo
Manos non sta diventando più piccolo e così
l’approccio potrebbe essere quindi implementare nuovi
funzionalità come micro-service e quando è
ogni volta che è applicabile così e dopo di noi
hai estratto i tuoi servizi che era
anche molto molto importante è che ottieni
il tuo CI e integrazione contingente e
pipeline di consegna di sviluppo continuo
pronto perché devi occuparti ora
con più parti mobili ed è molto
è fondamentale stabilire l’ automazione
collaudo automatico e consegna e così per
per ogni dispiegabile
artefatto che stai creando
oleodotti e gasdotti questo assomiglia
come un monolite ma ciò che siamo
riflettendo in questo monolito e in questo
la pipeline per i micro servizi è il CDC
prova il diverso contratto del consumatore
test e ciò di cui si prendono cura è
sulla tua API perché ora lo fai tu
stanno lavorando in un sistema distribuito e
i tuoi micro servizi stanno funzionando
ogni in API o comunicare su un
API e il problema sulla complessità
quello che potrebbe accadere è che tu
introdurre cambiamenti di rottura inconsciamente
e quindi questo si traduce in un sistema fragile
quindi i test contrattuali orientati al consumatore
ti permettono di identificare la rottura potenziale
cambiamenti e ciò che usiamo è
è un framework di scacchi chiamato detect have
hai sentito parlare di Peck prima di qualcuno
usando la paga va bene
perché Peck ti permette di divinare a
contratto di consumo e un consumatore
contratto è una negoziazione tra
fornitore di servizi consumer e API e questo
contratto di consumo è registrato impatto per
esempio quando esegui il tuo
il consumatore prova automaticamente che cosa
quello che fa è che genera un
fornitore uscire dal consumatore
contratto e consegna le risposte
il consumatore si aspetta che tu possa usarlo
i contratti dei consumatori per aggiungere due diversi
livelli in modo da poterlo utilizzare come fornitore
passo e forniscici sul consumatore
lato ma anche tu stai generando potrebbe
dal lato dell’operatore si potrebbe anche
generare richieste da questi contratti
e per testare quindi stai generando
richiedere e testarlo contro la tua API per
controlla se le risposte sono
consegnato dal fornitore che il
il consumatore si aspetta così mmm un’altra domanda
è dove, per esempio, tieni questo
contratto del consumatore memorizzato potrebbe essere per
esempio parte del tuo repository ma cosa
abbiamo stabilito è un broker PAC che
ti consente di essere una memoria centrale
server di archiviazione spazio possiamo caricare il tuo
contatto con il consumatore e anche tagging e
eseguendo il versioning in modo tale da consentirci di accedere
solo per memorizzarlo ma anche per
recuperarlo dal lato del provider
quindi ciò che è abbastanza diverso per noi e
anche impegnativo per noi e questo è
probabilmente non applicabile per altri
le aziende è che stiamo implementando in a
ambiente poliglotta che significa che noi
stiamo fornendo la nostra soluzione come SAS
soluzione nel cloud ma anche non c’è
il routing è prodotti locali come
bene quindi dobbiamo fare molto dobbiamo
affrontare un sacco di compromessi tra quelli
ambienti perché da una parte noi
può avere un’istanza di servizio per casa
con solo garanzia di isolamento
isolamento per ogni istanza di servizio e
dall’altra parte sulla premessa
soluzione che non vogliamo averlo
perché vorremmo riutilizzare Usiamo
le nostre risorse in modo efficiente dobbiamo
trattare con requisiti specifici o
specifiche restrizioni sulla sulla sulla
soluzione premessa quindi ci siamo dopo
lo distribuisci come servizio multiplo
istanze per host o anche per processo
per esempio se corri diverso
servizi nella tua applicazione Tomcat
contenitore e quindi questi sono un po ‘ come
contraddizione o requisiti e noi
Devo in qualche modo affrontarlo così che noi
stabilire è quindi che stiamo fornendo
pacchetti per Debian e anche per come
pacchetti operativi e cosa noi
questi pacchetti sono quindi in esecuzione
script ansible e questi sono
provisioning rispetto al tuo sistema così
ogni volta che per esempio lo installi
sulla tua soluzione on-premise e tu allora
ansible si prende cura che lo distribuisca
i tuoi micro servizi sullo stesso tomcat
invece di stabilirne uno nuovo
così all’inizio stavo menzionando
come le complessità tra preoccupanti
progettazione per fallimento e così ora otteniamo a
un po ‘nei dettagli perché se
stai comunicando per l’ inaffidabile
e la rete lenta devi prendere
cura che si introduce un timeout
gestione perché non vuoi avere
richieste che stanno aspettando indefinitamente
o bloccare le risorse quindi è necessario
stabilire la gestione del timeout e in
Inoltre è anche un approccio migliore a
fornire borse in termini di quando il tuo
il servizio non è più disponibile
altra altra cosa è che si deve
considera di mantenere il tuo sistema
resiliente è quello di limitare un numero di
richieste in sospeso e questo è un po ‘
come quello di misurare la soglia come
molte richieste in sospeso a uno specifico
soglia quindi si restituisce un fallimento su
una risposta immediata perché è gentile
di indicazione che richieste aggiuntive
i termini saranno inutili e anche
interruttore è come un po ‘
monitorando il tuo tasso di errore ed è
rintracciare il tuo numero di successo
Kressel e la tua richiesta fallita in a
specifico speciale il circuito veloce
l’interruttore dà il via e da quel momento in poi
i tentativi di richiesta aggiuntivi lo faranno
quindi tornare e molto veloce e veloce
fallimento invece di aspettare indefinitamente
così e questo declino si fa poi dopo
un timeout specifico quindi fare recenti
rilasciare le richieste e se sono Were
successo l’interruttore si ottiene
disattivato suona davvero complesso
e con i buoni consigli e tu eri
che esistono librerie per questo e
non devi reinventare la ruota così
è qualcosa che abbiamo anche noi
esperienza come oh dannazione che dobbiamo prendere
dobbiamo prenderci cura di così tanti così tanti
complessità e noi eravamo tipo di
come reinventare la ruota in ogni caso
e poi eravamo
cantando bene aspetta un secondo che non siamo
l’unico ad avere questo problema in modo
ci devono essere librerie in giro così siamo
ora prova a stabilire poi implementare
storia in questo e nel nostro ambiente
non stiamo per iniziare
adesso e quindi sarei molto emozionato
se qualcuno di voi ha già sperimentato
questa biblioteca di business e da condividere
esperienze su questo e come me
menzionato anche una delle complessità
è che i tuoi sviluppatori devono avere
pieno accesso per cadere in una corsa
sistema e dovrebbe essere sì equivalente
al tuo ambiente di produzione e così via
quello che abbiamo fornito è quello per cui siamo
ogni sviluppatore stiamo fornendo un
ambiente di sviluppo composto da
vagabondo e VirtualBox dove ciascuno
microservizi microsomes è stabilito
e implementato in modo da poter ancora
implementare o lavorare sul tuo nel tuo IDE
lavora sul tuo servizio e su tutto il
altri servizi sono già installati così
sai che i tuoi sviluppatori non hanno
per prendersi cura della configurazione di ogni
singolo micro servizio da zero
quindi è un riassunto sì, dovuto al fatto
che abbiamo a che fare con un sacco di
complessità e sfide no
petizione senza una buona ragione e se
per esempio se sei solo una piccola squadra
e distribuisci sempre il tuo
prodotti come un unico pezzo e non lo fai
necessità di dover rilasciare le modifiche rapidamente
allora puoi anche implementare un monolitico
e modulare ma si noti che è un it’s
ragionevole stitute e farlo in questo modo
anche così, ma per noi è stato molto
importante per rilasciare le modifiche rapidamente e
volevamo anche riflettere questo nel nostro
struttura organizzativa e poi a
ritaglia il tuo micro servizio dal tuo
monitora devi identificare il tuo
contesto dominante legante prima quello
ti permette di identificare quei temi che
tu che puoi ritagliare il tuo
parti specifiche del tuo monolite e poi
non fare questo errore che abbiamo fatto nel
cominciando perché piace andare anche tu
molti passaggi contemporaneamente fanno il processo di divisione
e molti passaggi manuali e per esempio come
Ho citato per esempio e zippato da
dall’alto verso il basso iniziando dall’alto verso il basso
e poi e raccogli la tua esperienza
lungo la strada ottenere la consegna dell’edificio
gasdotto pronto per dal primo giorno perché
questo è molto cruciale in generale per
sviluppo non solo per il sito micro
servizi ma perché ora hai a che fare
con più percorsi e parti mobili e
questo è più cruciale di prima e
che è anche come a volte devi
tieni presente che non è solo un
cambiamento tecnico ma è anche culturale
passare alla cultura DevOps e se
non sei disposto a fare questo culturale
lo spostamento pure non funzionerà per noi
o
e quindi non solo un prodotto ma anche un
l’ architettura del software è fatta con
riso di sudore e lacrime per essere onesti e
ora anche le nostre architetture software sono fatte
con micro servizi e grazie mille
grazie mille per il discorso, quindi ci sono
alcune domande dall’app è come
grande era il monolite in linee di codice
meno di un milione avevamo approssimativamente come
trecento a quattrocentomila
migliaia di righe di codice circa
è cool l’ auto stessa è Java è
correndo nella formazione Java va bene e il
la prossima domanda è quanto tempo ha fatto il
la transizione verso i micro servizi è fatta
non ancora finito ci vorrà per sempre così
bene abbiamo iniziato bene è un po ‘come
non c’è un vero calcio d’inizio come ora, facciamolo
fare micro servizi era già iniziato
con quelli piccoli come un anno fa ma se
hai visto come questi come il
le app di collaborazione sono più simili a
sistemi autonomi perché loro
fornire il proprio utente utente
interfaccia hanno la propria attività
logica e fornire la propria archiviazione dei dati
quindi sono molto più grandi parti di
questo e quello che stiamo facendo dal
all’inizio di quest’anno sembra essere la taglia
abbastanza importante quindi quanti sviluppatori
sì, non così tanti undici ok, che biblioteca
stai pensando di usare per
implementando l’interruttore di circuito sì
questa è la storia che siamo ora
di fronte così se qualcuno ha esperienza
non è quello giusto o solo l’ altro
fammi sapere che lo farò
condividiamo le esperienze okay
iniziare a tagliare e incollare il codice dal
controlla i micro servizi per il
chat app si quella successiva ma noi
stanno ora lavorando su di esso che è il
uno che stiamo comprimendo da esso tritato
giù in questo momento quanto è grande la squadra come
quali sono le strade che intendi mi piacciono
dimensioni del team riflettendo micro-servizi è
la stessa squadra quindi siamo entrambi
loro fanno i micro-servizi
trasformazione ma anche io devo
mantenere il sistema attuale che è anche
la complessità che arriva
durante la nostra trasformazione grazie Johnny
quindi sono le 11 persone che eri
parlando prima di sì
puoi elaborare sul confine
contesto sì c’è anche un workshop
il mercoledì circa la mente guidata
design ma e il contesto associato stesso
è come se ti stesse dando un tipo
di modello di dominio di solito consiste in
diversi contesti limitati in cui
è un modello applicabile così e dà
ti piace la responsabilità e con
i suoi confini espliciti intorno ad esso e
è mio parente ovunque tu ne abbia un po ‘
comportamento quindi è coerente
lei rimarrà consistente in un pezzo è
tipo di un simbolo sì o è tipo di
come riflettere che puoi mettere un
contesto limitato attorno ad esso così da questo
uno abbastanza interessante come si gestisce
schieramenti pur mantenendo inter
consistenza dell’API di microservizio che è
dove abbiamo introdotto la struttura del patto
il framework di test che era quello
il test del contratto guidato dal consumatore CDC
quadri di prova e ci assicuriamo
questo quadro che non siamo
introducendo alcune modifiche irrisolte
perché quando per esempio quando tu
esegui un nuovo test e lo presenti
rompendo le modifiche, ad esempio hai rimosso
dati dalla tua API che tu
il consumatore si aspettava quindi il test
fallirà dal lato fornitore perché il
i fornitori afferrano ancora questo consumatore
contratto dal server pec broker e
allora identificherà quello quelli
l’API che ora è attualmente la corrente
stato della scimmia lo stato attuale di
l’API si romperà perché è
diverso dal consumatore
contratto è quello che loro possono mio
atteso, ma intendo la volontà del CDC
ti dico che hai un problema ma come
lo risolvi come risolvere bene
perché siamo noi non siamo così grandi
e stiamo parlando l’un l’altro sì
sembra interessante e insolito parlare
di parlare così per parlare tra
micro-servizi un monolite perché l’hai fatto
usa il resto e non una coda di messaggi che usiamo
entrambi Va bene, probabilmente non mi indico
fuori così non abbiamo solo sincrono
comunicazione e ma anche cronica
comunicazione pure e sì ci sono
ancora un po ‘di riposo è stabilito
tra quelli e di solito dice sì
do sono la comunicazione sincrona tra
oltre i confini e resto questo è
stile di comunicazione sincrono così noi
lo stanno usando ad esempio per il caricamento
documenti dove a volte dove noi
bisogno di avere uno specifico che stiamo aspettando
per risultati specifici sull’altro
servizio tanto più tecnico quanto quanto
memoria o RAM fa uno sviluppatore
workstation ha bisogno di avviare tutto il
macchine vagabonde con cui è fornito
per torta la macchina molto grave va bene
questo è solo un macchina del
caselle di sfondo c’è una macchina
perché mantiene tutto in uno ancora ma
è meglio avere un po ‘più di sei
direbbe mi senti sì grande che
così dalle tue diapositive ti assomigliava
stavano dividendo il monolite basandosi su
confini del prodotto o limiti delle funzionalità
piuttosto che i confini dei componenti e
guardando indietro, pensi che ci fosse un?
buona idea solo per dare un esempio
menzionato questo meccanismo per copiare l’utente
i profili per il nuovo servizio non lo farebbero
è stata una buona idea forse per
isolare i profili utente in proprio
servizio e una volta che è sicuro sì questi
sono solo buoni punti di partenza e poi
puoi da quel momento in poi puoi dividere
in altri in modo che il prossimo
è quindi il servizio profilo che sarà
estratto operativo così che non lo è
è solo solo
si si rispecchiano i nostri progressi ma
non è lo stato finale che tu
voglio raggiungere
Vedo le domande con cui inizierai
micro servizi la prossima volta intorno a tutto questo
dipende dipende da te davvero sul tuo
sul set di abilità che hai se per
esempio tutte le esperienze che abbiamo ora
guadagnato con cui avremmo iniziato
micro-servizi che non pensavano fosse un
prima il modernista perché è sì
anche quello che vuoi ottenere si, va bene
quindi grazie mille per il discorso e
per rispondere a tutte le domande
micro servizi da una startup
prospettiva e quando parliamo di micro
servizi di cui sentiamo e leggiamo molto
storie di successo da molto grandi
organizzazioni come Netflix Amazon
Spotify di eBay solo per citarne alcuni e quando
guardi a quelle storie di successo te
potrebbe finire per dire bene che è così
bello quello che c’è basta copiarlo
bene il problema è che ciò che funziona
una società potrebbe non funzionare per te
quindi il viaggio verso i micro servizi è
diverso per ogni azienda e come
Adrian Cockroft, l’ex capo Netflix
il nostro architetto di cloud ha detto è se tu solo
copia i risultati che potresti perdere e saltare
il processo dietro e questi risultati e
al fatto che non riceverai
i risultati che tu vuoi
che ti aspettavi così il viaggio verso
i servizi di micro un affare era trade-off
non esiste una regola d’oro veloce che puoi
facilmente applicare e solo per darti un
breve panoramica di ciò che facciamo e di chi sono io
Sono in Susannah Kaiser il CTO di Just
software ci troviamo in qualche santo
Amburgo qui in Germania Nassif Germania
e quello che facciamo è solo software noi
sviluppare solo social che è un prodotto b2b
fornendo app per fornire
collaborazione di comunicazione e un
soluzione integrata per semplificare e
team di supporto che lavorano di più
efficientemente e andiamo prima di me
vai al nostro viaggio andiamo al
inizio e un paio di anni fa quando
abbiamo iniziato la nostra startup e tutto il resto
era davvero piccolo e carino così noi
stavano lavorando con una squadra su una
prodotto di collaborazione che era
implementato come una tecnologia era
quello che era uno
unità di codice all’interno di una pila tecnologica
quindi la cosa è che dopo un po ‘
tutto era in continua evoluzione quindi la nostra squadra
diventati sempre più grandi abbiamo aggiunto di più
caratteristiche per il nostro prodotto e il numero
di utenti aumentano così che dovrebbe
essere molto fantastici ma d’altra parte
abbiamo raggiunto un punto in cui tutto era
sentirsi un po ‘goffo e lento e
dal punto di vista organizzativo che
è stato il caso che ha preso anche tutto
a lungo per fare le cose per esempio il nostro
riunioni o discussioni la nostra decisione
erano più dispendiosi in termini di tempo rispetto a prima e
il fatto è che anche noi davvero
responsabilità ben definite nessuno
sentirsi responsabile, responsabile per
esempio quando è tornato in modo che il
processo stava diventando più lento e più lento
e la nostra produttività ha sofferto mentre
aggiungendo sempre più funzionalità al nostro
prodotto l’usabilità è diventata gentile
complesso e quindi l’usabilità e l’ utente
esperienza sofferta dal continuo
apportare modifiche così invece di risolvere
i nostri utenti i nostri utenti hanno problemi in modo efficiente
eravamo un po ‘a confonderli e anche
relativo alla nostra architettura software
tutto era legato insieme così abbiamo avuto
nessuna opportunità di rilasciare in modo indipendente
e veloce e quando ne abbiamo cambiato uno
parte del sistema potrebbe aver influito
anche l’altra parte del sistema così
c’era una sorta di necessità di evolvere che noi
bisogno di spostare e dividere le cose così noi
aveva divisione che abbiamo poi diviso il nostro uno
app di collaborazione e più piccole
app di collaborazione che si prendono cura di a
problema specifico e risolvere molto questo
bene e così abbiamo creato app separate
per condividere documenti per comunicare
in tempo reale per la comunicazione per
scambiare informazioni sulla conoscenza nelle notizie
quindi l’idea è nata per avere qualcosa di diverso
app di collaborazione per un uso specifico
caso nel frattempo lo faremo anche noi
la nostra unica grande squadra in piccoli più piccoli
squadre e due era un obiettivo lungo era il
obiettivo nel lungo periodo per raggiungere bene
squadre autonome con ben definite
responsabilità perché ciò che vogliamo
raggiungere è che ogni squadra può lavorare su
diverse parti dei sistemi senza
che colpisce l’ altro sistema o senza
che colpisce le altre squadre, quindi e così via
l’abbiamo fatto è che abbiamo assegnato a ciascuno
parti specifiche del team del Pacifica
collaborazione F in modo che possano lavorare
sviluppare indipendentemente a seconda
dipendentemente dal sul prodotto stesso
così, ma ci devo ancora affrontare che abbiamo
hanno ancora un software monolitico
architettura quindi come puoi
riflettere anche che abbiamo raggiunto in
la nostra struttura organizzativa nel nostro
prodotto ora lungo il nostro software
architettura quindi dobbiamo volerlo
diviso poi nel nostro nostro software
architettura e micro servizi perché
dovevamo ricevere l’autonomia che dovevamo ottenere
liberati da tutte le tue dipendenze e così via
per prima cosa sembra abbastanza facile
sì, andiamo avanti facciamolo
introdurre i micro servizi ma il problema
quello che emerge è che il micro servizio ha
vieni con la complessità e questi
la complessità potrebbe non essere ovvia in un primo momento
sguardo perché ora sei tu sei
comunicare in un distribuito
sistema che si sta ora comunicando sopra
la rete e la rete stessa è
inaffidabile e lento quindi la tua richiesta
potrebbe essere molto lento e puoi farlo
esempio aspettare e se sicuramente per a
risposta
potrebbe bloccare le tue risorse e te
può anche può anche fallire in qualsiasi momento
devi aggiungere complessità a non riuscire a d2
gestire il tuo fallimento e anche in a
sistema distribuito
era micro servizi che sei
partizionare i dati significa che
stai perdendo il tuo transazionale
consistenze tra i servizi così
devi affrontare eventuali
coerenza anche e da quando lo sei
ora non si tratta solo di un modulo
ma invece era più parti mobili
i tuoi compiti operativi stanno ottenendo di più
complesso così monitoraggio e distribuzione è
diventando più complesso e piace anche
il debugging è diventato difficile perché tu
devi sapere per capire come hai fatto
per consolidare le serrature delle gambe
confini del servizio e in realtà che tu
quando comunichi attraverso la rete
devi stabilire le API e come
assicurati che queste API non lo facciano
introdurre cambiamenti di rottura in modo che tu
ritorno che non ha comportato un fragile
sistema e insieme a tutti questi
la complessità è che le tue abilità sono e
anche i tuoi strumenti sono diversi da
monoliti quindi è stato proprio così
bene e un’altra domanda che si presenta ok
e la morale è qui sempre ha il
autorizzazione di autenticazione in uno
posto e ora se ti occupi di più
parti dei miei micro servizi come deve il
autorizzazione di autenticazione
l’autorizzazione è gestita e di sicuro a
sviluppare in modo efficiente non si vuole
desidera implementare tutti questi micro servizi
invece nel tuo ambiente di sviluppo
hai bisogno del tuo ambiente di sviluppo
più complesso del mondo monoski lì
non sono solo non le complessità che arrivano
insieme con i micro servizi ma anche
con la fase di trasformazione da
controlla i micro servizi perché io sono
formicolio e mandala è davvero davvero
duro lavoro e richiede molto tempo
quindi il processo di trasformazione richiede molto
più del previsto così quando noi
iniziato con esso
ci è voluto almeno il doppio del tempo che noi
aveva inizialmente previsto e anche noi
mancano le scadenze che erano davvero molto grandi
svantaggio e mi piace anche se hai un
funzionalità di base con un sacco di
dipendenze non è davvero facile
districa quella e una cosa che tu
è necessario considerare è che hai ancora
un sistema in esecuzione è un brownfield
progetto, perché avete il vostro denaro
mulini e devi mantenere e correre
mentre tu lo stai trasformando così tu
devo condividere
risultati in termini di capacità
ma anche nel tempo e che è anche molto
importante è che tutte le parti coinvolte
deve essere dalla stessa parte loro
devi essere d’accordo ed essere a bordo che tu
stanno per fare questo passato che sei
trasformando i tuoi modelli in micro
servizi perché se non lo fai se tu
non sono sulla stessa scheda allora è molto
più tempo
ben riflettendo tutte queste complessità
e sfide che potresti finire per dire
bene è mondo dei servizi di micro o
L’architettura di Microsoft fa bene a me
beh , dipende così decisamente giù
partizione senza una buona ragione ed è
non una buona ragione per presentarlo
perché è trendy e difficile adesso
e devi assolutamente trovare un buono
ragione per dire bene ci piacerebbe
per percorrere questa strada e per noi la ragione
era che noi eravamo guidati dall’organizzazione
perché stiamo dividendo il nostro prodotto
ma anche i nostri o i nostri team e più piccoli
squadre e vogliamo che funzionino
in parte diversa una parte diversa di
il sistema a una velocità diversa e noi
voglio farli vogliamo che li abilitino
che possono prendere le proprie decisioni
come implementarlo e quando
distribuirlo, quindi vogliamo rilasciare le modifiche
rapidamente e indipendentemente senza
interessando bene l’intero sistema quando
hai deciso bene, andiamo questo noi
ho trovato molte buone ragioni per iniziare
con esso
ora la domanda sorge come come iniziare
come hai gli enormi monitor in
davanti a te e come oh Dio come posso
solo tirare fuori era una singola parte di esso
e quello che abbiamo fatto prima di noi che abbiamo avuto
per mantenere alcuni concetti chiave e le menti che
è veramente importante per per fare per
fare il passo perché i concetti chiave
di modellare buoni servizi micro è quello
devi garantire un alto quizon
all’interno del servizio stesso e uno libero
accoppiamento tra quei servizi se tu
non seguire questi concetti chiave di te
non raggiungerà il letto
è di microservizi per avere
parti indipendenti da sviluppare e
anche rilasciato e questo significa per esempio
se cambi una parte del tuo sistema tu
voglio non voler influenzare noi colpiti
altre parti dei sistemi e se tu
termini di alta coesione erano nel
servizio significa che il comportamento correlato
si siederanno insieme così quando cambierai
uno questo comportamento non ti voglio
vuoi modificarlo in un unico posto
non vuoi cambiare il comportamento
è totalmente diversa parte del
sistema perché questo significa che tu hai
ricostruire e ridistribuire l’ID tutto il
servizi che hai cambiato e quindi
il tuo processo di implementazione è legato insieme
di nuovo e questo è esattamente quello è esattamente
l’opposto che vogliamo raggiungere in modo
accoppiamento lasco ed elevata coesione sono
molto importante da tenere a mente
mentre estrae i micro servizi da
il tuo monolite e stavo parlando
alta coesione e comportamento correlato
stare insieme e una cosa sei tu
può quindi provare a identificare i limiti
contesto Immagino ci sia un workshop su
Mercoledì parlando di domanda e
design guidato ed è una specie di a
principio da rimanere guidato design che
cerchi di capire i confini
dove una responsabilità specifica è
seduto in un comportamento specifico è
seduto e vuoi anche creare gentilezza
di capire probabilmente cosa deve rimanere
coerente in quale parte del sistema
possono essere sviluppati indipendentemente così questi
i concetti di limiti sono molto importanti per
estraendo servizi di marker da
immoralista perché forniscono un tipo
di cucitura e dove li tagli la
la parte dei micro servizi proviene da
e per noi il mondo di contesto limitato nostro
applicazioni di collaborazione e così eravamo
pensando bene iniziamo con quello e noi
avere contatti limitati guidati dal prodotto e
quindi abbiamo iniziato con l’estrazione di uno
app di collaborazione e questo era il nostro giusto
guidare
applicazione e quindi quello che abbiamo fatto è il
basta guidare la calibrazione dell’applicazione Eva’s
prendersi cura della gestione dei documenti e
quindi quello che abbiamo fatto è stato stabilito
questo o implementato è come una coesistenza
servizio al monolite e non è un
esatto equivalente all’originale
funzionalità ma invece ne ha di più
caratteristiche e invece ha il suo
diversa interfaccia utente perché eravamo
lavorando all’utente che usa l’interfaccia utente è nuovo
miglioramenti e ha anche un diverso
archiviazione dei dati quindi cosa abbiamo fatto e noi
ricostruito il nostro servizio come coesistente
uno ma da zero che non era buono
a proposito e quindi cosa fai così
è allora che è l’app giusta per guidare
quindi ha una data o autorità sopra il
documenti perché lo scambio
documenti nella nostra app di test drive e it
rimane mantiene l’ autorità dei dati su
i documenti significa che è l’unico
servizio che può leggere, ma anche scrivere su
questo su questi dati e per ogni documento
tu hai un autore e l’autore è
informazioni le informazioni sul profilo è
un estratto delle informazioni del profilo
e per evitare che tu recuperi tutti
tempo in cui stai visualizzando un documento
i dati del profilo dal dal
monoliti perché è quello che
ha un’autorità di dati sul profilo
dati e per evitare lo richieda
informazioni sul profilo ogni quali sono
ogni volta che stai visualizzando un documento
si sta mantenendo una copia ridondante è
non una copia esatta per l’ estratto di esso
così e questo è ok finché non lo fai
minare l’autorità dei dati del
monoliti che è questo è ancora il
uno che modifica i dati del profilo ma
ora hai una nuova complessità perché
devi assicurarti che questi dati siano
e cosa e per fare questo è necessario
stabilire una sorta di meccanismo di collegamento
quello che facciamo è che stiamo usando come un
Stile di comunicazione Cronus tra di loro
e il e il nuovo servizio e c’è
un broker di messaggi aspri , quindi stiamo usando
Kafka per quello e così ogni volta a
profilo è aggiornato nella Monell è
viene pubblicato per il CAF è molto
broker di messaggi e il nostro modello è quindi
abbonarsi a questo evento e aggiornarlo
i suoi dati replicati di conseguenza così bene
è stato buono nella prima parte
ma dopo un po ‘ci è voluto troppo tempo
ottenere questo limitato perché ciò che avevamo
il nostro problema era che lo facevamo anche noi
molti passaggi contemporaneamente così abbiamo stabilito un
nuova interfaccia utente perché stiamo lavorando
sulla nostra UI e UX approvement abbiamo anche
stabilire una nuova struttura dati noi
perché avevamo alcuni requisiti
le nostre strutture dati dei documenti sono obsolete
e dobbiamo aggiungere alcuni nuovi
struttura pure e abbiamo anche introdotto
nuova tecnologia e nel frattempo noi
dobbiamo ancora mantenere il nostro sistema e noi
dobbiamo estendere di conseguenza il nostro set di abilità
spostare troppo tutte queste complessità
quindi è stato molto impegnativo e noi
deciso bene, questo non è il modo in cui noi
può estrarre i nostri servizi è davvero
richiede tempo ed è davvero
frustrante perché non stai ricevendo
risultati molto velocemente, quindi abbiamo seguito
diverse strategie quindi con il
prossima app di collaborazione con cui siamo
dividendoli a passi e noi eravamo
zippandolo dall’alto verso il basso e questo
probabilmente qualcosa che funziona per noi da
noi bene non so se funziona molto
bene
ma anche per quello non era un bene
approccio perché quando noi il prossimo
il servizio su cui ci stiamo concentrando era il
guidare loro il sistema di comunicazione chat
e quello che abbiamo fatto è che eravamo
estrarre l’app Web prima così
introducendo lo spostamento del web client al suo
proprio servizio e introducendo quindi una pausa
cliente e il resto api a voi
recuperare i dati dal monolite così
questo è solo e non è la finale finale
processi è solo l’inizio di
il processo di estrazione e ma
questo ci permette di svilupparci per svilupparci
sull’app Web in modo indipendente e utilizzare
in modo indipendente e iterare su on
l’interfaccia utente indipendente, così otteniamo quattro velocemente
risultati che ci stava aiutando un sacco in modo che il
il prossimo è che siamo allora
zippando un po ‘di più verso il basso e
poi siamo arrivati alla logica Weston e così
quando si estrae la logica di business è così
tipo di più lavoro da fare perché tu hai
per districare la dipendenza dal
monolite e sto dicendo che il
la dipendenza dal monolite significa questo
le interfacce di cui stai parlando
stiamo parlando con te nel tuo nuovo
i servizi devono ora essere indirizzati come API
stand in modo da dover stabilire api e
se è una comunicazione direzionale
stile allora dovete per introdurlo
su entrambe le estremità e così questo tipo di like
sì più lavoro da fare oltre che
estraendo l’interfaccia utente web così ma
quello che vediamo ancora qui è questo passaggio
che condividono ancora gli stessi dati
archiviazione così quando si arriva al passaggio successivo
stavamo estraendo noi stavamo dividendo il
archiviazione dei dati e se lo fai
poi tu come ho detto nel primissimo
iniziando dalla nostra app di guida che desideri
Mi piace mantenere i dati ridondanti perché
non vuoi richiedere i monitor
per ogni informazione dell’altro
dominio in modo sincrono così faremmo
desidera mantenere i dati ridondanti e questo
significa che dobbiamo tenerli dentro
cose che dobbiamo stabilire a
meccanismo per mantenere quei vicoli ciechi in questo modo
in lui di nuovo è un sincrono
comunicazione che abbiamo presentato allora
quando abbiamo diviso l’archiviazione dei dati, ma anche
sai comunicare oltre Kafka
pubblicare eventi di modifica
va bene la domanda in generale sorgere è
come che uno dei propri contesti deve
usiamo prima di estrarre un senso marcatore
di esso e bene ci sono un po ‘come
le regole non sono davvero regole ma simili
idee su come puoi farlo è il primo
uno è come andare per l’impiccagione bassa
frutti ha usato quello che sono facili da
Estratto e questi sono per lo più quelli che
hanno o non così accoppiato nel
modulo stesso che ha pochissimo
dipendenze o che sono già
comunicare come in cronicamente così e
se bene inizi con quelli
sono facili da estrarre , puoi imparare mentre
vai così che significa che puoi prolungare
il tuo bagaglio di lavoro durante l’estrazione
processo e anche diventare raccolta
raccogliendo esperienza in micro
servizi ma anche nella trasformazione
elaborare se stesso quindi un’altra idea per
scegli quelli che sarebbero buoni candidati
per il prossimo passo dell’estrazione
processo è quello che identificate
quelli che ti stanno dando di più
beneficio per esempio questi sono quelli che
per esempio cambiano frequentemente
perché se estrai quelli che puoi
sviluppare e distribuire in modo indipendente
e rilasciare questi cambiamenti questi frequenti
cambia indipendentemente senza ricostruire
e ridistribuire l’intero sistema in questo modo
ti dà un sacco di benefici e l’altro
uno è identificare quei moduli nel tuo
monolite che usano diversi
i requisiti di risorse per esempio sono
questo prendendo un sacco di spazio su disco o
è l’ altro che prende molta memoria
consumo e puoi quindi dividerli
servizi per avere un sistema
si può facilmente scalare perché se si
estraili in un servizio indipendente
puoi quindi ridimensionarlo in modo indipendente
e un’altra cosa è smettere di fare il
modelli più grandi ed è un po ‘come si
molto controllo
Va bene che dobbiamo incontrare una pietra miliare appena
modificare i monoliti e ma il
il problema è qui mentre ti stai ritagliando
il tuo contesto limitato dal modello è
per far sì che questi monoliti si riducano, lo sei
quindi aggiungendo nuove funzionalità in cima
di esso e così il processo di trasformazione
stesso sta rallentando perché il tuo
Manos non sta diventando più piccolo e così
l’approccio potrebbe essere quindi implementare nuovi
funzionalità come micro-service e quando è
ogni volta che è applicabile così e dopo di noi
hai estratto i tuoi servizi che era
anche molto molto importante è che ottieni
il tuo CI e integrazione contingente e
pipeline di consegna di sviluppo continuo
pronto perché devi occuparti ora
con più parti mobili ed è molto
è fondamentale stabilire l’ automazione
collaudo automatico e consegna e così per
per ogni dispiegabile
artefatto che stai creando
oleodotti e gasdotti questo assomiglia
come un monolite ma ciò che siamo
riflettendo in questo monolito e in questo
la pipeline per i micro servizi è il CDC
prova il diverso contratto del consumatore
test e ciò di cui si prendono cura è
sulla tua API perché ora lo fai tu
stanno lavorando in un sistema distribuito e
i tuoi micro servizi stanno funzionando
ogni in API o comunicare su un
API e il problema sulla complessità
quello che potrebbe accadere è che tu
introdurre cambiamenti di rottura inconsciamente
e quindi questo si traduce in un sistema fragile
quindi i test contrattuali orientati al consumatore
ti permettono di identificare la rottura potenziale
cambiamenti e ciò che usiamo è
è un framework di scacchi chiamato detect have
hai sentito parlare di Peck prima di qualcuno
usando la paga va bene
perché Peck ti permette di divinare a
contratto di consumo e un consumatore
contratto è una negoziazione tra
fornitore di servizi consumer e API e questo
contratto di consumo è registrato impatto per
esempio quando esegui il tuo
il consumatore prova automaticamente che cosa
quello che fa è che genera un
fornitore uscire dal consumatore
contratto e consegna le risposte
il consumatore si aspetta che tu possa usarlo
i contratti dei consumatori per aggiungere due diversi
livelli in modo da poterlo utilizzare come fornitore
passo e forniscici sul consumatore
lato ma anche tu stai generando potrebbe
dal lato dell’operatore si potrebbe anche
generare richieste da questi contratti
e per testare quindi stai generando
richiedere e testarlo contro la tua API per
controlla se le risposte sono
consegnato dal fornitore che il
il consumatore si aspetta così mmm un’altra domanda
è dove, per esempio, tieni questo
contratto del consumatore memorizzato potrebbe essere per
esempio parte del tuo repository ma cosa
abbiamo stabilito è un broker PAC che
ti consente di essere una memoria centrale
server di archiviazione spazio possiamo caricare il tuo
contatto con il consumatore e anche tagging e
eseguendo il versioning in modo tale da consentirci di accedere
solo per memorizzarlo ma anche per
recuperarlo dal lato del provider
quindi ciò che è abbastanza diverso per noi e
anche impegnativo per noi e questo è
probabilmente non applicabile per altri
le aziende è che stiamo implementando in a
ambiente poliglotta che significa che noi
stiamo fornendo la nostra soluzione come SAS
soluzione nel cloud ma anche non c’è
il routing è prodotti locali come
bene quindi dobbiamo fare molto dobbiamo
affrontare un sacco di compromessi tra quelli
ambienti perché da una parte noi
può avere un’istanza di servizio per casa
con solo garanzia di isolamento
isolamento per ogni istanza di servizio e
dall’altra parte sulla premessa
soluzione che non vogliamo averlo
perché vorremmo riutilizzare Usiamo
le nostre risorse in modo efficiente dobbiamo
trattare con requisiti specifici o
specifiche restrizioni sulla sulla sulla
soluzione premessa quindi ci siamo dopo
lo distribuisci come servizio multiplo
istanze per host o anche per processo
per esempio se corri diverso
servizi nella tua applicazione Tomcat
contenitore e quindi questi sono un po ‘ come
contraddizione o requisiti e noi
Devo in qualche modo affrontarlo così che noi
stabilire è quindi che stiamo fornendo
pacchetti per Debian e anche per come
pacchetti operativi e cosa noi
questi pacchetti sono quindi in esecuzione
script ansible e questi sono
provisioning rispetto al tuo sistema così
ogni volta che per esempio lo installi
sulla tua soluzione on-premise e tu allora
ansible si prende cura che lo distribuisca
i tuoi micro servizi sullo stesso tomcat
invece di stabilirne uno nuovo
così all’inizio stavo menzionando
come le complessità tra preoccupanti
progettazione per fallimento e così ora otteniamo a
un po ‘nei dettagli perché se
stai comunicando per l’ inaffidabile
e la rete lenta devi prendere
cura che si introduce un timeout
gestione perché non vuoi avere
richieste che stanno aspettando indefinitamente
o bloccare le risorse quindi è necessario
stabilire la gestione del timeout e in
Inoltre è anche un approccio migliore a
fornire borse in termini di quando il tuo
il servizio non è più disponibile
altra altra cosa è che si deve
considera di mantenere il tuo sistema
resiliente è quello di limitare un numero di
richieste in sospeso e questo è un po ‘
come quello di misurare la soglia come
molte richieste in sospeso a uno specifico
soglia quindi si restituisce un fallimento su
una risposta immediata perché è gentile
di indicazione che richieste aggiuntive
i termini saranno inutili e anche
interruttore è come un po ‘
monitorando il tuo tasso di errore ed è
rintracciare il tuo numero di successo
Kressel e la tua richiesta fallita in a
specifico speciale il circuito veloce
l’interruttore dà il via e da quel momento in poi
i tentativi di richiesta aggiuntivi lo faranno
quindi tornare e molto veloce e veloce
fallimento invece di aspettare indefinitamente
così e questo declino si fa poi dopo
un timeout specifico quindi fare recenti
rilasciare le richieste e se sono Were
successo l’interruttore si ottiene
disattivato suona davvero complesso
e con i buoni consigli e tu eri
che esistono librerie per questo e
non devi reinventare la ruota così
è qualcosa che abbiamo anche noi
esperienza come oh dannazione che dobbiamo prendere
dobbiamo prenderci cura di così tanti così tanti
complessità e noi eravamo tipo di
come reinventare la ruota in ogni caso
e poi eravamo
cantando bene aspetta un secondo che non siamo
l’unico ad avere questo problema in modo
ci devono essere librerie in giro così siamo
ora prova a stabilire poi implementare
storia in questo e nel nostro ambiente
non stiamo per iniziare
adesso e quindi sarei molto emozionato
se qualcuno di voi ha già sperimentato
questa biblioteca di business e da condividere
esperienze su questo e come me
menzionato anche una delle complessità
è che i tuoi sviluppatori devono avere
pieno accesso per cadere in una corsa
sistema e dovrebbe essere sì equivalente
al tuo ambiente di produzione e così via
quello che abbiamo fornito è quello per cui siamo
ogni sviluppatore stiamo fornendo un
ambiente di sviluppo composto da
vagabondo e VirtualBox dove ciascuno
microservizi microsomes è stabilito
e implementato in modo da poter ancora
implementare o lavorare sul tuo nel tuo IDE
lavora sul tuo servizio e su tutto il
altri servizi sono già installati così
sai che i tuoi sviluppatori non hanno
per prendersi cura della configurazione di ogni
singolo micro servizio da zero
quindi è un riassunto sì, dovuto al fatto
che abbiamo a che fare con un sacco di
complessità e sfide no
petizione senza una buona ragione e se
per esempio se sei solo una piccola squadra
e distribuisci sempre il tuo
prodotti come un unico pezzo e non lo fai
necessità di dover rilasciare le modifiche rapidamente
allora puoi anche implementare un monolitico
e modulare ma si noti che è un it’s
ragionevole stitute e farlo in questo modo
anche così, ma per noi è stato molto
importante per rilasciare le modifiche rapidamente e
volevamo anche riflettere questo nel nostro
struttura organizzativa e poi a
ritaglia il tuo micro servizio dal tuo
monitora devi identificare il tuo
contesto dominante legante prima quello
ti permette di identificare quei temi che
tu che puoi ritagliare il tuo
parti specifiche del tuo monolite e poi
non fare questo errore che abbiamo fatto nel
cominciando perché piace andare anche tu
molti passaggi contemporaneamente fanno il processo di divisione
e molti passaggi manuali e per esempio come
Ho citato per esempio e zippato da
dall’alto verso il basso iniziando dall’alto verso il basso
e poi e raccogli la tua esperienza
lungo la strada ottenere la consegna dell’edificio
gasdotto pronto per dal primo giorno perché
questo è molto cruciale in generale per
sviluppo non solo per il sito micro
servizi ma perché ora hai a che fare
con più percorsi e parti mobili e
questo è più cruciale di prima e
che è anche come a volte devi
tieni presente che non è solo un
cambiamento tecnico ma è anche culturale
passare alla cultura DevOps e se
non sei disposto a fare questo culturale
lo spostamento pure non funzionerà per noi
o
e quindi non solo un prodotto ma anche un
l’ architettura del software è fatta con
riso di sudore e lacrime per essere onesti e
ora anche le nostre architetture software sono fatte
con micro servizi e grazie mille
grazie mille per il discorso, quindi ci sono
alcune domande dall’app è come
grande era il monolite in linee di codice
meno di un milione avevamo approssimativamente come
trecento a quattrocentomila
migliaia di righe di codice circa
è cool l’ auto stessa è Java è
correndo nella formazione Java va bene e il
la prossima domanda è quanto tempo ha fatto il
la transizione verso i micro servizi è fatta
non ancora finito ci vorrà per sempre così
bene abbiamo iniziato bene è un po ‘come
non c’è un vero calcio d’inizio come ora, facciamolo
fare micro servizi era già iniziato
con quelli piccoli come un anno fa ma se
hai visto come questi come il
le app di collaborazione sono più simili a
sistemi autonomi perché loro
fornire il proprio utente utente
interfaccia hanno la propria attività
logica e fornire la propria archiviazione dei dati
quindi sono molto più grandi parti di
questo e quello che stiamo facendo dal
all’inizio di quest’anno sembra essere la taglia
abbastanza importante quindi quanti sviluppatori
sì, non così tanti undici ok, che biblioteca
stai pensando di usare per
implementando l’interruttore di circuito sì
questa è la storia che siamo ora
di fronte così se qualcuno ha esperienza
non è quello giusto o solo l’ altro
fammi sapere che lo farò
condividiamo le esperienze okay
iniziare a tagliare e incollare il codice dal
controlla i micro servizi per il
chat app si quella successiva ma noi
stanno ora lavorando su di esso che è il
uno che stiamo comprimendo da esso tritato
giù in questo momento quanto è grande la squadra come
quali sono le strade che intendi mi piacciono
dimensioni del team riflettendo micro-servizi è
la stessa squadra quindi siamo entrambi
loro fanno i micro-servizi
trasformazione ma anche io devo
mantenere il sistema attuale che è anche
la complessità che arriva
durante la nostra trasformazione grazie Johnny
quindi sono le 11 persone che eri
parlando prima di sì
puoi elaborare sul confine
contesto sì c’è anche un workshop
il mercoledì circa la mente guidata
design ma e il contesto associato stesso
è come se ti stesse dando un tipo
di modello di dominio di solito consiste in
diversi contesti limitati in cui
è un modello applicabile così e dà
ti piace la responsabilità e con
i suoi confini espliciti intorno ad esso e
è mio parente ovunque tu ne abbia un po ‘
comportamento quindi è coerente
lei rimarrà consistente in un pezzo è
tipo di un simbolo sì o è tipo di
come riflettere che puoi mettere un
contesto limitato attorno ad esso così da questo
uno abbastanza interessante come si gestisce
schieramenti pur mantenendo inter
consistenza dell’API di microservizio che è
dove abbiamo introdotto la struttura del patto
il framework di test che era quello
il test del contratto guidato dal consumatore CDC
quadri di prova e ci assicuriamo
questo quadro che non siamo
introducendo alcune modifiche irrisolte
perché quando per esempio quando tu
esegui un nuovo test e lo presenti
rompendo le modifiche, ad esempio hai rimosso
dati dalla tua API che tu
il consumatore si aspettava quindi il test
fallirà dal lato fornitore perché il
i fornitori afferrano ancora questo consumatore
contratto dal server pec broker e
allora identificherà quello quelli
l’API che ora è attualmente la corrente
stato della scimmia lo stato attuale di
l’API si romperà perché è
diverso dal consumatore
contratto è quello che loro possono mio
atteso, ma intendo la volontà del CDC
ti dico che hai un problema ma come
lo risolvi come risolvere bene
perché siamo noi non siamo così grandi
e stiamo parlando l’un l’altro sì
sembra interessante e insolito parlare
di parlare così per parlare tra
micro-servizi un monolite perché l’hai fatto
usa il resto e non una coda di messaggi che usiamo
entrambi Va bene, probabilmente non mi indico
fuori così non abbiamo solo sincrono
comunicazione e ma anche cronica
comunicazione pure e sì ci sono
ancora un po ‘di riposo è stabilito
tra quelli e di solito dice sì
do sono la comunicazione sincrona tra
oltre i confini e resto questo è
stile di comunicazione sincrono così noi
lo stanno usando ad esempio per il caricamento
documenti dove a volte dove noi
bisogno di avere uno specifico che stiamo aspettando
per risultati specifici sull’altro
servizio tanto più tecnico quanto quanto
memoria o RAM fa uno sviluppatore
workstation ha bisogno di avviare tutto il
macchine vagabonde con cui è fornito
per torta la macchina molto grave va bene
questo è solo un macchina del
caselle di sfondo c’è una macchina
perché mantiene tutto in uno ancora ma
è meglio avere un po ‘più di sei
direbbe mi senti sì grande che
così dalle tue diapositive ti assomigliava
stavano dividendo il monolite basandosi su
confini del prodotto o limiti delle funzionalità
piuttosto che i confini dei componenti e
guardando indietro, pensi che ci fosse un?
buona idea solo per dare un esempio
menzionato questo meccanismo per copiare l’utente
i profili per il nuovo servizio non lo farebbero
è stata una buona idea forse per
isolare i profili utente in proprio
servizio e una volta che è sicuro sì questi
sono solo buoni punti di partenza e poi
puoi da quel momento in poi puoi dividere
in altri in modo che il prossimo
è quindi il servizio profilo che sarà
estratto operativo così che non lo è
è solo solo
si si rispecchiano i nostri progressi ma
non è lo stato finale che tu
voglio raggiungere
Vedo le domande con cui inizierai
micro servizi la prossima volta intorno a tutto questo
dipende dipende da te davvero sul tuo
sul set di abilità che hai se per
esempio tutte le esperienze che abbiamo ora
guadagnato con cui avremmo iniziato
micro-servizi che non pensavano fosse un
prima il modernista perché è sì
anche quello che vuoi ottenere si, va bene
quindi grazie mille per il discorso e
per rispondere a tutte le domande
Please follow and like us: