
rispondere ai cambiamenti nella domanda dei clienti
cambiamenti nel mercato e a
rispondere a minacce e opportunità e
quindi dobbiamo essere in grado di adattarci rapidamente
e questo non è stato il segno distintivo dell’IT
organizzazioni per un po ‘di tempo
purtroppo così che cosa ha fatto abbiamo usato per fare
per quelli di voi che sono stati in giro
abbastanza a lungo si possono riconoscere alcuni dei
queste cose ricordano il componente basato
riutilizzare come avremmo avuto questi
squadre architettura meravigliosi che sedevano in
il loro bel ufficio torre d’avorio e
capito come tutti nel complesso
l’organizzazione userebbe questi affari
componenti e sarebbero riutilizzati e
alcuni di questi sfortunati architetti
sono stati persino valutati nelle loro prestazioni
valutazione sul numero di volte il loro
i componenti sono stati riutilizzati ora purtroppo
perché erano così disconnessi
quale sviluppo stava effettivamente accadendo
per loro era molto difficile da capire
fuori come scrivere questi componenti in
in modo tale che chiunque potrebbe effettivamente
voglio usarli ricordano l’integrazione di
banche dati questo è il modo che abbiamo usato per fare
cose che hai questo grande grande hunking
database con tutti i tipi di cose in esso
e tutti hanno queste applicazioni
circondando i dati e ovviamente il
capriccio sempre popolare di
architetture orientate ai servizi
le architetture orientate ai servizi hanno cercato di
dire che potrebbero ottenere quello che era
stavamo cercando di ottenere ora come on
un modo ha ottenuto alcune cose giuste e il
prima cosa che ci ha veramente giusto era
iniziato a permettere alle organizzazioni di pensare
che tutto non deve essere un
monolite in cui potresti avere cose
pezzi più piccoli ha anche iniziato le persone
pensare di più su di te può avere
integrazione tra queste funzioni piuttosto
di un accoppiamento a cui puoi pensare
middleware puoi pensare ai messaggi
puoi pensare a qualcosa di più sciolto
approcci ha incoraggiato un maggiore
accettazione di questa nozione di finale
coerenza per lungo tempo la regola DBA
i dati erano questa preziosa risorsa e
era il lavoro dei DBA per proteggere questo e
tutto era relazionale tutto era
transazionale e ogni volta che ho detto
ho bisogno di persistere è come se tu fossi a posto
è necessario inserirlo in un database relazionale
e non c’erano domande e tutto
aveva piena transazione tutto il
capacità di quelli relazionali
database è così che tutto era e
so8 ha iniziato la conversazione
che forse c’è un altro modo in cui noi
potrebbe pensare a costruire sistemi in
in un modo diverso dal mana elenca questo
stavamo costruendo in passato, quindi è così
alcune delle cose che SOA ha avuto ragione
Sfortunatamente SOA ha ancora fatto un sacco di cose
errori e probabilmente il più grande è
i servizi dei mostri quando inizi
guarda alcuni dei servizi che erano
costruito sotto questi modelli si ottiene questi
servizi enormi che forse non sono come
grande come l’ intero modello se ma sono
ancora molto grande molto difficile da
cambiare molto difficile da schierare accendi
e parte del motivo per questo sono loro
tendeva ad essere servizi guidati dal produttore
e quello che intendo è quando tu
Pensa che sto per scrivere il
servizio clienti e questo è il
informazioni che ho intenzione di rendere disponibili
alle persone come io sono il produttore di questo
informazioni suppongo di sapere come
le persone vorranno usarlo
più o meno allo stesso modo in cui sono tornati gli architetti
i giorni di riutilizzo dei componenti che stiamo cercando di
capire come le persone avrebbero voluto
per farlo erano tutti guidati dal produttore
e molto spesso venivano dall’IT
organizzazione al contrario del business
e stavano pensando alle cose da
il contesto dei sistemi piuttosto che
le applicazioni il business
applicazione c’era molto lavoro
smarrimento ssin e la distinzione che voglio
disegnare qui è la differenza tra
orchestrazione e coreografia quando tu
pensa a un’esibizione da orchestra tu
avere un direttore davanti e lui è
guidando l’intera orchestra che è
impostando il tempo che sta avendo il volume
cambia tutto
che ha il controllo e ogni singolo
la persona in quell’Orchestra sta pagando
attenzione a ciò che è quel conduttore
fare e se per qualche motivo hai bisogno
due cose che accadono si hanno due
conduttori ci sono alcune sinfonie
dove a volte ne hai due diversi
conduttori qualcuno è sempre in carica
la coreografia d’altra parte pensa
su una performance di danza che a
il coreografo fa è il piano
visione di ciò che è che questo pezzo è
dovrebbe raggiungere e ogni individuo
conosce la parte che dovrebbero
giocare e come dovrebbero
interagire con gli altri giocatori ma in
la performance che il coreografo non è
fuori davanti che punta alle persone e al fare
certo che stanno facendo la cosa giusta a testa
degli individui sa cosa sono
dovrebbe fare sa come sono
supposto per interagire e quindi se
qualcosa va storto hanno un’idea
di come potrebbero rispondere così questo è il
la differenza quindi era tutto circa
orchestrazione che ti dà un sacco di
centralizzazione del controllo ed è spesso
molto difficile testare molto gli strumenti
spesso ci mettevamo nel modo in cui avevamo tutto e io
pensa parte di ciò che è stato fatto così fa
terribilmente sbagliato
era il fatto che avevamo tutti questi
venditori di strumenti che erano convinti che se
abbiamo appena avuto i servizi giusti che potevamo
veramente avere quella visione del business
persona seduta nel suo ufficio con il
doodle , lo sappiamo, riconfigurando tutto
dei loro processi aziendali e quello
davvero non è ancora arrivato ma il
gli strumenti stavano cercando di farlo accadere
e così hai avuto strumenti che sono stati progettati
per una categoria di utenti che erano
usato da persone diverse e
sfortunatamente quello con cui siamo finiti
cose che erano ancora più difficili da cambiare
di quanto lo fossero prima, naturalmente
non era quello che stiamo cercando di ottenere
queste cose erano anche molto più difficili da fare
test di cui parlerò
microservizi in una certa misura è possibile
pensa ai microservizi come se fossero fatti
giusto stiamo parlando di servizi noi
stiamo parlando di un architettonico
approccio che guarda ai servizi come
la loro unità fondamentale SOA rappresenta
architettura orientata ai servizi
quindi forse è così – ma avevamo bisogno di noi
bisogno di un nome diverso e parte del
la ragione si chiama questo è che vogliamo
concentrare le menti delle persone, tra l’altro
le cose non producono il mostro
servizi quindi questa è una citazione dal
articolo che James Lewis e Martin
Fowler ha scritto descrivendo i micro servizi
e fondamentalmente ciò che stiamo dicendo è noi
prenderanno la nostra singola domanda
stiamo andando a una scomposizione in
componenti più piccoli ciascuno in esecuzione nel suo
proprio processo comunicando su a
meccanismo leggero potenzialmente HTTP
ma l’attenzione è un meccanismo leggero
andiamo quindi quali sono le caratteristiche
di questi micro servizi bene il primo
uno è ovvio che sono piccoli ora cosa
costituisce piccolo che ovviamente varia
ma tu vuoi pensare a queste cose
dal punto di vista di queste cose
è necessario essere più piccoli piuttosto che più grandi
vuoi costruirli intorno agli affari
capacità uno dei trappole che noi
cadi dentro mentre sviluppiamo le cose siamo noi
pensa alle cose dal punto di vista
dei sistemi ma i nostri utenti ci pensano
che nel contesto dal business così
dobbiamo cominciare a pensare piuttosto che
capacità e sistemi dei sistemi
frontiere quali sono gli affari
capacità e vogliamo iniziare
organizzando il nostro lavoro intorno a questo perché
il modo in cui i nostri utenti aziendali stanno andando
concepire la riconfigurazione della propria attività
processi sarà nel
unità fondamentali di come pensano
sugli affari a cui non importa come
è implementato a loro non importa cosa
i sistemi sembrano pensare
questa cosa dal punto di vista del
concetti di business e quindi dovremmo costruire
attorno a quelle capacità di business queste
le cose sono dispiegabili in modo indipendente
il che significa che puoi sostituirne uno
servizio senza dover necessariamente
toccane un altro finché non tocchi
il contratto c’è molto poco
gestione centralizzata e parte di cosa
questo significa che è per queste cose
sono schierabili indipendentemente lì dentro
cena
processi possiamo iniziare a rompere il
anche la dipendenza dagli stack tecnologici
è più facile per noi iniziare a pensare
riguardo sto per usare la chiusura qui
a causa dell’analisi che voglio
ma ho intenzione di usare un altro
lingua qui perché forse perché
del modello di oggetto forte di cui ho bisogno
per modellare i miei concetti di dominio non siamo
più legato a stack tecnologici perché
queste cose sono indipendentemente
dispiegabile vogliamo avere intelligente
endpoint e tubi stupidi fondamentalmente lo è
più facile da riconfigurare le cose se il
le cose su entrambi i lati di quel tubo
quelli che stanno rafforzando il
ipotesi che stanno facendo il
convalide piuttosto che dover
rejigger cosa sta succedendo nel tubo
quando voglio spostare le cose così
endpoint intelligenti e tubi stupidi e a
mancanza di un database condiviso centralizzato
una delle cose che iniziamo a pensare
circa quando stiamo rompendo questi
monoliti è quello che dovrebbero i dati
l’architettura sembra quello che sono il cosa
sono le unità di dati che vogliamo queste
servizi diversi per essere efficacemente il
maestro di chi sarà responsabile
per il mantenimento delle informazioni relative a a
particolare concetto di business e forse
altre applicazioni richiedono un qualche tipo di
cache di quello ma ma abbiamo un molto
vista diversa dell’architettura dei dati così
quali sono alcune delle implicazioni di
questo bene prima di tutto la granularità
la domanda è cruciale quando si tenta di
decidere quale dovrebbe essere il limite del servizio
è che è probabilmente il singolo più grande
decisione progettuale che farai
un’architettura di microservizi e tu
voglio bilanciare avere qualcosa che è
un insieme coeso con la quantità di
l’accoppiamento ora è interessante internamente
abbiamo in vari punti nel tempo
conversazioni su bene sono a questo
posto e ne hanno un paio di centinaia
servizi e voglio unire i servizi
insieme e un altro gruppo sarà
dicendo che sono da qualche parte e in realtà siamo
cercando di separare i nostri servizi che è
una delle cose che hai intenzione di fare
fare molto sta dividendo e
fusione in particolare fino a te
capire quali dovrebbero essere quei confini
essere e tornerò a quel punto
più tardi queste cose sono indipendenti
scalabile che ti dà molto di più
flessibilità in termini di come stai andando
distribuire quindi se ho bisogno di ridimensionarne uno
servizio a causa del suo profilo di calcolo
questo non significa che devo scalare
tutto il resto il monitoraggio di questo è
critico se hai un monolite di
definizione hai una cosa da guardare
o una cosa in ogni data center
quando sostituisco quel monolito con
più servizi devo iniziare
guardando come tutti quelli diversi
i servizi stanno funzionando sono tutti
funzionano tutti funzionano correttamente
e quindi ho bisogno di un molto più sofisticato
monitoraggio del regime di quanto io faccia se ho
loro hanno solo un monolite e noi dobbiamo
progettare per guasti che non abbiamo
pensare a quando siamo in un monolite
dobbiamo pensare ok bene, che cos’è
la conseguenza per questo business
processo che probabilmente è composto da
diversi microservizi indipendenti se
questo particolare servizio fallisce abbiamo
un sacco di scenari di fallimento che abbiamo solo
non dobbiamo tener conto se lo siamo
trattare con un monolite e perché noi
stanno distribuendo molte cose diverse
e abbiamo un molto più complicato
paesaggio di quello che abbiamo con un monolite
vogliamo davvero guardare cose come
automazione dell’infrastruttura automatica
distribuzione automatizzata di tutte le cose
che vanno con consegna continua e
naturalmente il lato negativo della flessibilità in
la tua piattaforma è che puoi avere un
proliferazione di tecnologie ci sono
tempi in cui si realizza una tecnologia diversa
la scelta è la cosa giusta da fare perché
della maggiore efficienza sta andando
per darti in quel componente ma tu
non voglio averlo fuori
controllo Ero su un progetto una volta alle
un punto avevamo 11 diversi XML
analizzando le librerie 11 ora ce ne sono due
modi fondamentali per analizzare XML in modo che potessi
tipo di capire 211 erano solo persone
essere pigri e quindi abbiamo bisogno di avere
qualche forma di gestione attorno a questo
piattaforma in modo che non abbiamo tutti
linguaggio di programmazione Sotto il sole e
tutti i database sotto il sole, ecc appena
perché possiamo così abbiamo bisogno di tenerne un po ‘
livello di controllo su quale sia la nostra piattaforma
le pile sembrano e poi ovviamente
la consistenza finale deve essere gestita
non appena iniziamo a distribuire i dati
attraverso questi diversi servizi che abbiamo
per cominciare a pensare a che cosa fa che
significa in termini di propagazione di
Informazioni Una conseguenza di questa di
Certo è che dobbiamo spiegare al nostro
utenti aziendali quale consistenza finale
significa e come ho sottolineato
a volte pensano che possa essere
solo possibilmente coerente piuttosto che
alla fine arriverà così abbiamo
iniziare a pensare a quali sono i
conseguenze di alcuni di questi stati
situazioni in cui potremmo entrare
a causa dell’esistenza dell’eventuale
coerenza e di nuovo se ne hai uno
grande database relazionale hunking voi
non devi preoccuparti di questo così
ci sono molte cose in questa lista
siamo molto più complicati noi
dobbiamo pensare a cose che abbiamo solo
non c’è bisogno di pensare a se abbiamo un
monolite e quindi dovrebbe iniziare
stai pensando bene perché allora dovrei farlo
vogliamo fare in modo che ci accingiamo
per ottenere i benefici di essere in grado di
vai il più velocemente possibile per giustificare il pagamento
il costo per cui stiamo pagando qui
dovrebbe anche dirti che i micro servizi
non dovrebbe essere solo qualcosa che esci
e dire ah, ho intenzione di fare micro
i servizi ora non sono così meraviglioso
sarà uno dei ragazzi fantastici e di
Ovviamente l’ interfaccia deve essere cambiata
essere gestito
in particolare quando stai cercando di ordinare
fuori da quelli che quei confini dovrebbero essere te
potrebbe effettivamente avere molti di quelli
contratti che stanno cambiando e di cui abbiamo bisogno
pensare a cosa significhi
e per quelli di voi che hanno visto James
parlare che cambierà a seconda di
su quanti confini ci sono
queste interfacce stanno andando oltre come
da vicino le squadre sono collegate
perché è facile cambiare il servizio
confine quando la persona seduta accanto a
tu sei quello che sta scrivendo l’altro
servizio è molto più difficile se sono la metà
un continente lontano o mezzo mondo di distanza
Va bene così questi sono alcuni dei
implicazioni di fare questa scelta e
alcune delle cose che stiamo andando
dobbiamo pensare e i problemi
che dovremo risolvere se noi
scendere questo percorso microservizi così abbiamo
ha due possibilità
il primo è Greenfield, lo adoriamo tutti
quando si arriva a sviluppare un’applicazione
con niente senza l’eredità di sorta che
succede ancora occasionalmente ma è così
raro e una delle cose che Martin è
sta per pubblicare un post su questo
presto la cosa che stiamo raccomandando
in generale non si inizia a sviluppare a
applicazione greenfield usando micro
servizi che probabilmente non conosci abbastanza
circa il dominio anche avvicinarsi a
i confini del servizio e quindi iniziare
costruendolo come un monolite prova a fare un
prova modulare per renderlo facile a
separare queste cose ma non iniziare
con i micro servizi fino a quando non si ha a
vera comprensione di dove
i confini dovrebbero essere così generici
parlando stai per essere rotto
un monolite potrebbe non essere un ASCII tu
conosce il grande monolito del fango ma
probabilmente stai per iniziare
qui a prescindere e così la prima cosa
è pensare a questo dal
prospettiva di un contesto limitato e
questa è la nozione di Eric Evans
Domain Driven Design che cosa è che si
può disegnare un cerchio coeso intorno a questo
autosufficiente
e e questo rappresenta qualcosa che
ha senso nel dominio aziendale in cui
sono quei contesti limitati e questo è
sarà un indicatore di ciò
probabilmente sarà ragionevole
confine di servizio per te, così questo è il
prima cosa a pensarci e andare
torna a quello che stavo dicendo prima di te
avere una buona comprensione di
il tuo dominio per essere in grado di prendere decisioni
come questo e tu sai che lo sappiamo tutti
questi modelli di dominio tendono a evolversi
tempo mentre impariamo di più sul
applicazione che stiamo cercando di costruire
e quindi ciò che costituisce un limite
il contesto nella tua mente potrebbe effettivamente cambiare
così anche questo è il primo
suggerimento su cosa dovrebbero essere i confini di un servizio
sembra che provi a pensarlo dal
prospettiva del design guidato dal dominio e
contesto limitato di nuovo a pensare
capacità di business quali sono il valore
flussi che esistono nell’organizzazione
quali sono i prodotti o servizi che
vengono consegnati da questo sistema pensa
su di esso da quella prospettiva e e
che ti guiderà anche nel pensare
circa ok, ciò che ha senso in termini di
pensare a un confine di servizio
di cosa hanno bisogno i consumatori piuttosto che
provare questi contratti guidati dai produttori
fai un tentativo di pensare a questo da
la prospettiva di ciò che è l’utente di
questo servizio andrà a volere e costruire
tali contratti pensano di esso dal
prospettiva dei consumatori prima perché poi
stai rispondendo ad un vero piuttosto che a
un bisogno percepito e pensare al
modelli di comunicazione quali servizi
potrebbe usare o quali parti del
il sistema potrebbe utilizzare gli stessi dati
quale potrebbe come dovrebbero
collaborare per raggiungere un particolare
risultato aziendale cosa fanno quelli
gli schemi di comunicazione sembrano perché
una delle cose che stai per essere
il bilanciamento è se divido un processo attraverso
a due servizi ho una comunicazione
confine lì e che introduce il tempo
che introduce il potenziale per i fallimenti
quindi devo pensare a tutti i tipi di
fallimenti quindi pensa a come quelle cose
stanno per comunicare quando tu
decidere se vuoi o meno
combinare questi due in un unico servizio o
tenerli separati e pensare al
l’architettura dei dati persone spesso
pensa a cose come quello che è il
politica di conservazione quali sono i
protezioni che sono necessarie ciò che è
quali sono gli impatti di cose come
eventuale consistenza come si pensa
i dati e quali sono i corretti
anche l’organizzazione per i dati
qualcosa che sta per indicare a
sei un limite ragionevole del servizio
potrebbe essere perché i servizi possiedono i loro dati
non pensiamo più ai servizi
che stanno fluttuando attorno a un grande
database che abbiamo separato
negozi di persistenza per ognuno di questi
anche i servizi considerano correlati
modelli di cambiamento se due parti del
imprese tendono a cambiare insieme che è
sta per essere un’indicazione che forse tu
voglio unire quelli in un unico servizio
quindi pensa ai probabili cambiamenti che
stanno per essere preparati però
per sbagliare, preparati , potresti
devo unire i servizi insieme
potrebbe dover ripartire i servizi
di nuovo e dato il fatto che abbiamo
dati separati che potrebbero essere suddivisi
dati che potresti avere se un servizio è
ora sarà il maestro in termini di
aggiornando i dati forse l’altro
il servizio avrà bisogno di memorizzarlo nella cache
dati se si sta andando a unirle
devi fare i dati
migrazione quindi di nuovo i confini del servizio
non sono qualcosa che vuoi cambiare a
molto perché cambia quei confini
ha implicazioni significative pure e
essere un lettore tollerante una delle cose
che cerchiamo di fare e questo è questo è
una delle connessioni all’evoluzione
architettura non possiamo farcela così
non devi mai fare un cambiamento di rottura
questo non è possibile ma ciò che possiamo fare
è garantire che dobbiamo solo cambiare
quando non c’è altra scelta e
il lettore tollerante è un modo per garantire
che l’ unica volta che devi cambiare
il tuo servizio è quando stanno cambiando
qualcosa di cui hai bisogno così quando eravamo
guardando questo questo permetterà a quelli
interfacce per cambiare un po ‘di più prima
dobbiamo effettivamente cambiare la nostra
implementazione okay quindi quali sono alcuni di
le altre connessioni evolutive
architettura bene quando parlo
l’architettura evolutiva ci sono molti
di diversi principi che io
penso che siano critici e perché penso
le architetture evolutive sono in realtà
così importante e queste sono alcune delle
principi che esibiscono i microservizi
prima di tutto l’intera ragione
stiamo parlando di micro-servizi è
perché vogliamo essere in grado di rapidamente
cambia il sistema in modo che la messa a fuoco il
motivo che stiamo facendo è quello di servizi di micro
permettono che noi cambiamo il più rapidamente
possibile è un’architettura evolutiva
tutto su come rendere l’evoluzione uno dei
quelli di prima classe illa di che T
gli architetti si preoccupano non solo di
manutenibilità ma evolve capacità e
parte dell’abilità evoluta non lo è
predire il futuro è essere in a
posizione per rispondere ai cambiamenti
indipendentemente dal fatto che tu fossi intelligente
abbastanza per pensare a loro o non così
spesso in passato era il riutilizzo dell’evoluzione
sempre concentrato sul fatto di essere intelligente
abbastanza per capire tutto il diverso
possibili modi in cui questo potrebbe cambiare e io
scrivi tutti i tipi di cose per questo
scenario ipotetico che ci sono possibilità
non viene mai a passare e così micro
i servizi sono focalizzati sull’evolversibilità di noi
voglio pensare all’evoluzione del
sistema come un talento oggetto di prima classe
lettore di cui ho già parlato ma
ovviamente il lettore tollerante è un altro modo
che ci rendono possibile cambiare
le cose il più possibile ma prima di noi
in realtà devi rompere qualcosa
sfruttando la legge di Conway stiamo cercando
a come strutturiamo le organizzazioni e
cosa significa per i sistemi quello
risultato se abbiamo il giusto tipo di
proprietà dei servizi all’interno di una squadra con
il giusto tipo di
concentrati quindi su ciò che ottieni sono questi
liberamente accoppiato indipendente se vuoi
servizi e hai un forte senso
di proprietà molte aziende che hanno
adottato qualcosa come servizi di marcatori
avere un modello in cui non hanno un
supporto e manutenzione separati
organizzazione più le persone che
scrivi i servizi sono quelli che sono
portando i cercapersone e così ovviamente
hanno un interesse acquisito nel fare
sicuro che quel codice sia solido come
possibile perché non vogliono essere
sono disturbati di sabato sera
responsabile e quel senso di proprietà
porta avanti nella loro gestione
di questi servizi accoppiamento appropriato
uno dei modi in cui guardiamo
l’architettura evolutiva è ciò che è il
giusto livello di bilanciamento dell’accoppiamento
le prestazioni e le complessità e
tutto ciò contrasta in uno dei modi
che permettiamo diverse parti di a
il sistema per evolvere indipendentemente è da me
sapendo quale ipotesi stai facendo
sul mio servizio alcuni dei migliori
architetti d’impresa che abbia mai conosciuto
sono quelli che portano in giro nella loro
testa tutti quei piccoli funky
connessioni tra sistemi che
tutti si dimenticano sempre del
cose di cui questo sistema ha bisogno quest’altra
sistema di fare che in realtà non fa
alcun senso
ma sanno che quelle cose esistono
utilizzando contratti e questi automatizzati
strumenti di test di test contrattuali che possiamo iniziare
per documentare l’ipotesi che
diverse parti del nostro sistema stanno facendo
l’uno sull’altro e così posso dare
tu i miei test e poi posso andare e fare
qualunque cosa sia, voglio essere sicuro e il
conoscenza che quando quello che quando quello
interruzioni di test che sono il tuo innesco per a
conversazione tu mi chiami e detto
okay, dobbiamo parlare perché io solo
rotto una delle tue ipotesi alcune
il cambiamento che sto facendo sta andando
richiedere un cambiamento da parte tua fino a quello
succede che non ho bisogno di sapere niente
su quello che stai facendo non ti serve
per sapere una cosa su quello che sto facendo noi
può andare completamente indipendente e così
questo questo livello di documentazione in a
test
che quindi sappiamo che sarà
tenuto aggiornato ci dà questo
flessibilità e quella rete di sicurezza da essere
capace di fare cose queste cose
indipendentemente e quindi è per questo che questi
questi contratti tra i micro servizi
sono altrettanto importanti e, ovviamente
Sono di pensieri, questo è un discorso
quindi devo parlare di
testability ma ma uno dei
cose interessanti che abbiamo trovato è
se non fai nient’altro in termini di tuo
architettura se ti concentri su come
è facile testare il tuo sistema
finire con un’architettura più pulita e
se ci pensi questo ha un senso
qualcosa che è facile da testare ha un
descrizione ben definita che non hai
per dire che ho bisogno di testare questo e questo e
questo e questo e questo tu hai
qualcosa anche se è molto alto
livello come un test end-end che hai
qualcosa che sinteticamente descrive il
le cose comportamentali sono facili da testare quando
sono visibili quando hai il
manopole di destra per accendere sei carino
separazione e in generale abbiamo trovato
che basta prestare attenzione a qualsiasi cosa
livello stai parlando di se sia
livello di codice o pensiero a livello di sistema
sui test ti dà una migliore
architettura e quindi questo concentrarsi su come
è facile testare questi individui
servizi quanto sia facile comporli
com’è facile quindi capire cosa
è l’ aspettativa di comportamento end- end con
tutti questi diversi servizi pensano
sulla testabilità e finirai
con una migliore architettura e in generale
parlando di un’architettura che è molto
più facile da cambiare a causa del modo in cui il
i confini sono definiti quindi quindi quale regola
la consegna continua deve giocare dentro
tutto questo bene prima di tutto
I servizi di Micra sono molto più difficili da fare
correre in produzione di un monolite e
sarà un onere molto più grande
il tuo reparto operativo ci sono
più cose da dispiegare ci sono di più
cose da monitorare ci sono più cose
sbagliare
hai più database così hai
più cose per il backup separatamente e tutto
di quelle cose che devi pensare a te
li ha moltiplicati e quindi lo farà
aumentare l’onere per le operazioni o
le cose distribuiscono più cose da monitorare e
quel monitoraggio e il recupero degli errori
il modo in cui porti indietro un sistema è molto
più complicato ne hai molti di più
permutazioni di come le cose falliscono in a
architettura di micro-servizi che ho messo
fondamentalmente sconsigliato sulla diapositiva
credo che sia borderline irresponsabile
se non del tutto irresponsabile provare a
micro architettura dell’architetto di servizi se
non hai una forte cultura DevOps
se devi gettare il muro
mentalità tra il tuo team di sviluppo
e il tuo team operativo sta andando
per essere un disastro ce ne sono così tanti
cose che possono essere fatte
correttamente che devono essere capiti e
se non si dispone dei potenti DevOps
cultura il tuo team ops sta per finire
odiarti è anche sconsigliabile senza
molti dei rigori che vengono con
consegna continua quando iniziamo
guardando l’ automazione delle infrastrutture noi
vuoi essere in grado di ricreare in modo affidabile
ambienti quando si hanno tutti questi
errore di possibilità di errore diverso
scenari la tua capacità di eseguire il debug è
critico e se non lo sai davvero
di sicuro in che versione è in esecuzione
produzione come sei nel mondo
andando a fare il debug e così il rigore che
vieni con consegna continua sono anche
critico per superare alcuni dei
problemi o alcune delle implicazioni di
usando i micro servizi così infrastruttura
automazione dell’implementazione dell’automazione e di
corso di test di automazione che vuoi essere
in grado di capire come questi diversi
i servizi interagiscono tra loro
hai un test molto più complicato
paesaggio anche il percorso felice è un tutto
molto più complicato figuriamoci pensare
su tutti i diversi scenari
di avere solo un grande monolite così tu
voglio pensare all’automazione dei test come
bene, così come faccio a iniziare
come ho detto quello che stiamo vedendo è se tu
se inizi a pensare che lo sei
andando a costruire microservizi e lo fai
quello che è giusto al di fuori delle possibilità del cancello
avrai il tuo servizio
i confini sbagliati e tu otterrai
te stesso nei guai e così fa di più
senso per iniziare davvero a costruire un
monolite costruiscilo bene con esso
buona separazione con un bene
comprensione di ciò che sembra il codice pulito
come, ma inizia con il monolite e
poi mentre avanzi mentre inizi
capire di più sul dominio
concetti che puoi iniziare a rompere alcuni di
quelle cose fuori ma all’inizio
costruire un’architettura di micro-servizi
a meno che tu non sia molto familiare
il dominio è probabilmente un errore e
certamente non è quello che vorrei fare il
la prima volta che costruisci un
sistema di micro-servizi che non vuoi
inizia quel greenfield e questo è un po ‘
tempo che sembra controintuitivo
perché se iniziamo con a
monolite abbiamo tutto questo accoppiamento
tutte quelle supposizioni che sono
fatto ma le complicazioni che arrivano
dall’iniziare con un microservizio
l’architettura è tale che le persone semplicemente
sembrano di non sbagliare più spesso
e così è più sicuro per arrivare a un particolare
livello di comfort con il dominio e
con alcune delle implementazioni
ti sfida sta andando a correre in con
quella particolare tecnologia in questo
dominio particolare prima di iniziare
separare ciò che è ovviamente da dire
no non è un proiettile d’argento che siamo
vedendo molto successo con
architetture di microservizi ma lì
ci sono problemi da considerare adesso
di queste cose di cui ho parlato
consistenza finale e dover affrontare
con esso
questi scenari di fallimento distributivo
questo non è qualcosa che non sappiamo
come fare abbiamo fatto cose come
questo per lungo tempo che so come
gestire un processo un processo di business che
si estende su più processi
cosa succede se una cosa fallisce, lo sappiamo
come fare comunicazione sappiamo come
fai tutte queste cose diverse è
non che non sappiamo come farlo è
solo che è più complicato di
la scatola
tuttavia fatto bene quello che hai allora è
la capacità di fare abbastanza radicale
cambia a parti particolari del tuo
sistema generale è possibile completamente
ridisegnare qualche aspetto particolare del tuo
affari ed essere al sicuro nella conoscenza
finché non ne hai violato nessuno
di quei test contrattuali il resto del
sistema non ha bisogno di cambiare avete
confini forzate che renderà
molto più facile per te cambiare la tua
il processo di business introduce nuovo
la funzionalità ha introdotto nuove convalide
trattare con ulteriori normative
requisiti tutti diversi
cose perché quelle sono le cose che
stanno cambiando più rapidamente non appena uno
la persona su un sito di social media si spegne
qualche nuova funzionalità ora tutto a un tratto tutto
i siti web devono avere questo nuovo
caratteristica sono le aspettative del cliente
cambiando quella normativa rapidamente
l’ambiente sta cambiando più rapidamente
i tempi di vita del modello di business stanno diventando
più breve, tanto meno tutto il pensare che
le persone ora stanno iniziando a fare qualcosa
sicurezza e privacy dei dati e cosa sono io
davvero facendo e quanto è sicuro
le informazioni che la mia banca sta mantenendo
quindi tutte queste cose diverse sono
mettendo questa pressione su di noi per essere in grado
cambiare i nostri sistemi più rapidamente e
microservizi è un approccio a questo ma
arriva con un costo in arrivo così
saperne di più ancora uno ci andiamo così
c’è un libro sulla costruzione di micro
servizi in realtà iniziato come a
libro sulla consegna continua e io
pensa una delle cose interessanti
A proposito di servizi di micro se ci pensate
questo è il primo grande elemento architettonico
paradigma che è arrivato da allora
la consegna continua è iniziata
qualcosa che era
camminato su nel settore e credo
puoi vedere quello di cui stiamo parlando
circa dal punto di vista il
microservizi non è qualcosa che vorresti
tanta voglia di fare a meno che non si aveva
qualcosa di simile a erogazione continua così ho
penso di non pensare che sia affatto un
coincidenza che questo tipo di
lo stile architettonico non è arrivato
prima d’ora perché anche nel vecchio SOA
giorni in cui non avevi il numero di
servizi che la granularità era
molto diverso che era in realtà uno dei
i problemi che abbiamo avuto perché quelli
i servizi erano troppo grandi e poi ovviamente
continua la consegna continua
prenotare perché entrambe queste cose sono
importante insieme ripeterò il tuo
Il reparto operazioni ti odierà se
lo fai quando hai un separato
dipartimento operativo che sei
Anche buttare il codice oltre il muro è necessario
coinvolgerli in questo perché loro
processi di come monitorano le cose come
fanno il recupero degli errori e così sono
sarà molto diverso quindi grazie
molto
tu
cambiamenti nel mercato e a
rispondere a minacce e opportunità e
quindi dobbiamo essere in grado di adattarci rapidamente
e questo non è stato il segno distintivo dell’IT
organizzazioni per un po ‘di tempo
purtroppo così che cosa ha fatto abbiamo usato per fare
per quelli di voi che sono stati in giro
abbastanza a lungo si possono riconoscere alcuni dei
queste cose ricordano il componente basato
riutilizzare come avremmo avuto questi
squadre architettura meravigliosi che sedevano in
il loro bel ufficio torre d’avorio e
capito come tutti nel complesso
l’organizzazione userebbe questi affari
componenti e sarebbero riutilizzati e
alcuni di questi sfortunati architetti
sono stati persino valutati nelle loro prestazioni
valutazione sul numero di volte il loro
i componenti sono stati riutilizzati ora purtroppo
perché erano così disconnessi
quale sviluppo stava effettivamente accadendo
per loro era molto difficile da capire
fuori come scrivere questi componenti in
in modo tale che chiunque potrebbe effettivamente
voglio usarli ricordano l’integrazione di
banche dati questo è il modo che abbiamo usato per fare
cose che hai questo grande grande hunking
database con tutti i tipi di cose in esso
e tutti hanno queste applicazioni
circondando i dati e ovviamente il
capriccio sempre popolare di
architetture orientate ai servizi
le architetture orientate ai servizi hanno cercato di
dire che potrebbero ottenere quello che era
stavamo cercando di ottenere ora come on
un modo ha ottenuto alcune cose giuste e il
prima cosa che ci ha veramente giusto era
iniziato a permettere alle organizzazioni di pensare
che tutto non deve essere un
monolite in cui potresti avere cose
pezzi più piccoli ha anche iniziato le persone
pensare di più su di te può avere
integrazione tra queste funzioni piuttosto
di un accoppiamento a cui puoi pensare
middleware puoi pensare ai messaggi
puoi pensare a qualcosa di più sciolto
approcci ha incoraggiato un maggiore
accettazione di questa nozione di finale
coerenza per lungo tempo la regola DBA
i dati erano questa preziosa risorsa e
era il lavoro dei DBA per proteggere questo e
tutto era relazionale tutto era
transazionale e ogni volta che ho detto
ho bisogno di persistere è come se tu fossi a posto
è necessario inserirlo in un database relazionale
e non c’erano domande e tutto
aveva piena transazione tutto il
capacità di quelli relazionali
database è così che tutto era e
so8 ha iniziato la conversazione
che forse c’è un altro modo in cui noi
potrebbe pensare a costruire sistemi in
in un modo diverso dal mana elenca questo
stavamo costruendo in passato, quindi è così
alcune delle cose che SOA ha avuto ragione
Sfortunatamente SOA ha ancora fatto un sacco di cose
errori e probabilmente il più grande è
i servizi dei mostri quando inizi
guarda alcuni dei servizi che erano
costruito sotto questi modelli si ottiene questi
servizi enormi che forse non sono come
grande come l’ intero modello se ma sono
ancora molto grande molto difficile da
cambiare molto difficile da schierare accendi
e parte del motivo per questo sono loro
tendeva ad essere servizi guidati dal produttore
e quello che intendo è quando tu
Pensa che sto per scrivere il
servizio clienti e questo è il
informazioni che ho intenzione di rendere disponibili
alle persone come io sono il produttore di questo
informazioni suppongo di sapere come
le persone vorranno usarlo
più o meno allo stesso modo in cui sono tornati gli architetti
i giorni di riutilizzo dei componenti che stiamo cercando di
capire come le persone avrebbero voluto
per farlo erano tutti guidati dal produttore
e molto spesso venivano dall’IT
organizzazione al contrario del business
e stavano pensando alle cose da
il contesto dei sistemi piuttosto che
le applicazioni il business
applicazione c’era molto lavoro
smarrimento ssin e la distinzione che voglio
disegnare qui è la differenza tra
orchestrazione e coreografia quando tu
pensa a un’esibizione da orchestra tu
avere un direttore davanti e lui è
guidando l’intera orchestra che è
impostando il tempo che sta avendo il volume
cambia tutto
che ha il controllo e ogni singolo
la persona in quell’Orchestra sta pagando
attenzione a ciò che è quel conduttore
fare e se per qualche motivo hai bisogno
due cose che accadono si hanno due
conduttori ci sono alcune sinfonie
dove a volte ne hai due diversi
conduttori qualcuno è sempre in carica
la coreografia d’altra parte pensa
su una performance di danza che a
il coreografo fa è il piano
visione di ciò che è che questo pezzo è
dovrebbe raggiungere e ogni individuo
conosce la parte che dovrebbero
giocare e come dovrebbero
interagire con gli altri giocatori ma in
la performance che il coreografo non è
fuori davanti che punta alle persone e al fare
certo che stanno facendo la cosa giusta a testa
degli individui sa cosa sono
dovrebbe fare sa come sono
supposto per interagire e quindi se
qualcosa va storto hanno un’idea
di come potrebbero rispondere così questo è il
la differenza quindi era tutto circa
orchestrazione che ti dà un sacco di
centralizzazione del controllo ed è spesso
molto difficile testare molto gli strumenti
spesso ci mettevamo nel modo in cui avevamo tutto e io
pensa parte di ciò che è stato fatto così fa
terribilmente sbagliato
era il fatto che avevamo tutti questi
venditori di strumenti che erano convinti che se
abbiamo appena avuto i servizi giusti che potevamo
veramente avere quella visione del business
persona seduta nel suo ufficio con il
doodle , lo sappiamo, riconfigurando tutto
dei loro processi aziendali e quello
davvero non è ancora arrivato ma il
gli strumenti stavano cercando di farlo accadere
e così hai avuto strumenti che sono stati progettati
per una categoria di utenti che erano
usato da persone diverse e
sfortunatamente quello con cui siamo finiti
cose che erano ancora più difficili da cambiare
di quanto lo fossero prima, naturalmente
non era quello che stiamo cercando di ottenere
queste cose erano anche molto più difficili da fare
test di cui parlerò
microservizi in una certa misura è possibile
pensa ai microservizi come se fossero fatti
giusto stiamo parlando di servizi noi
stiamo parlando di un architettonico
approccio che guarda ai servizi come
la loro unità fondamentale SOA rappresenta
architettura orientata ai servizi
quindi forse è così – ma avevamo bisogno di noi
bisogno di un nome diverso e parte del
la ragione si chiama questo è che vogliamo
concentrare le menti delle persone, tra l’altro
le cose non producono il mostro
servizi quindi questa è una citazione dal
articolo che James Lewis e Martin
Fowler ha scritto descrivendo i micro servizi
e fondamentalmente ciò che stiamo dicendo è noi
prenderanno la nostra singola domanda
stiamo andando a una scomposizione in
componenti più piccoli ciascuno in esecuzione nel suo
proprio processo comunicando su a
meccanismo leggero potenzialmente HTTP
ma l’attenzione è un meccanismo leggero
andiamo quindi quali sono le caratteristiche
di questi micro servizi bene il primo
uno è ovvio che sono piccoli ora cosa
costituisce piccolo che ovviamente varia
ma tu vuoi pensare a queste cose
dal punto di vista di queste cose
è necessario essere più piccoli piuttosto che più grandi
vuoi costruirli intorno agli affari
capacità uno dei trappole che noi
cadi dentro mentre sviluppiamo le cose siamo noi
pensa alle cose dal punto di vista
dei sistemi ma i nostri utenti ci pensano
che nel contesto dal business così
dobbiamo cominciare a pensare piuttosto che
capacità e sistemi dei sistemi
frontiere quali sono gli affari
capacità e vogliamo iniziare
organizzando il nostro lavoro intorno a questo perché
il modo in cui i nostri utenti aziendali stanno andando
concepire la riconfigurazione della propria attività
processi sarà nel
unità fondamentali di come pensano
sugli affari a cui non importa come
è implementato a loro non importa cosa
i sistemi sembrano pensare
questa cosa dal punto di vista del
concetti di business e quindi dovremmo costruire
attorno a quelle capacità di business queste
le cose sono dispiegabili in modo indipendente
il che significa che puoi sostituirne uno
servizio senza dover necessariamente
toccane un altro finché non tocchi
il contratto c’è molto poco
gestione centralizzata e parte di cosa
questo significa che è per queste cose
sono schierabili indipendentemente lì dentro
cena
processi possiamo iniziare a rompere il
anche la dipendenza dagli stack tecnologici
è più facile per noi iniziare a pensare
riguardo sto per usare la chiusura qui
a causa dell’analisi che voglio
ma ho intenzione di usare un altro
lingua qui perché forse perché
del modello di oggetto forte di cui ho bisogno
per modellare i miei concetti di dominio non siamo
più legato a stack tecnologici perché
queste cose sono indipendentemente
dispiegabile vogliamo avere intelligente
endpoint e tubi stupidi fondamentalmente lo è
più facile da riconfigurare le cose se il
le cose su entrambi i lati di quel tubo
quelli che stanno rafforzando il
ipotesi che stanno facendo il
convalide piuttosto che dover
rejigger cosa sta succedendo nel tubo
quando voglio spostare le cose così
endpoint intelligenti e tubi stupidi e a
mancanza di un database condiviso centralizzato
una delle cose che iniziamo a pensare
circa quando stiamo rompendo questi
monoliti è quello che dovrebbero i dati
l’architettura sembra quello che sono il cosa
sono le unità di dati che vogliamo queste
servizi diversi per essere efficacemente il
maestro di chi sarà responsabile
per il mantenimento delle informazioni relative a a
particolare concetto di business e forse
altre applicazioni richiedono un qualche tipo di
cache di quello ma ma abbiamo un molto
vista diversa dell’architettura dei dati così
quali sono alcune delle implicazioni di
questo bene prima di tutto la granularità
la domanda è cruciale quando si tenta di
decidere quale dovrebbe essere il limite del servizio
è che è probabilmente il singolo più grande
decisione progettuale che farai
un’architettura di microservizi e tu
voglio bilanciare avere qualcosa che è
un insieme coeso con la quantità di
l’accoppiamento ora è interessante internamente
abbiamo in vari punti nel tempo
conversazioni su bene sono a questo
posto e ne hanno un paio di centinaia
servizi e voglio unire i servizi
insieme e un altro gruppo sarà
dicendo che sono da qualche parte e in realtà siamo
cercando di separare i nostri servizi che è
una delle cose che hai intenzione di fare
fare molto sta dividendo e
fusione in particolare fino a te
capire quali dovrebbero essere quei confini
essere e tornerò a quel punto
più tardi queste cose sono indipendenti
scalabile che ti dà molto di più
flessibilità in termini di come stai andando
distribuire quindi se ho bisogno di ridimensionarne uno
servizio a causa del suo profilo di calcolo
questo non significa che devo scalare
tutto il resto il monitoraggio di questo è
critico se hai un monolite di
definizione hai una cosa da guardare
o una cosa in ogni data center
quando sostituisco quel monolito con
più servizi devo iniziare
guardando come tutti quelli diversi
i servizi stanno funzionando sono tutti
funzionano tutti funzionano correttamente
e quindi ho bisogno di un molto più sofisticato
monitoraggio del regime di quanto io faccia se ho
loro hanno solo un monolite e noi dobbiamo
progettare per guasti che non abbiamo
pensare a quando siamo in un monolite
dobbiamo pensare ok bene, che cos’è
la conseguenza per questo business
processo che probabilmente è composto da
diversi microservizi indipendenti se
questo particolare servizio fallisce abbiamo
un sacco di scenari di fallimento che abbiamo solo
non dobbiamo tener conto se lo siamo
trattare con un monolite e perché noi
stanno distribuendo molte cose diverse
e abbiamo un molto più complicato
paesaggio di quello che abbiamo con un monolite
vogliamo davvero guardare cose come
automazione dell’infrastruttura automatica
distribuzione automatizzata di tutte le cose
che vanno con consegna continua e
naturalmente il lato negativo della flessibilità in
la tua piattaforma è che puoi avere un
proliferazione di tecnologie ci sono
tempi in cui si realizza una tecnologia diversa
la scelta è la cosa giusta da fare perché
della maggiore efficienza sta andando
per darti in quel componente ma tu
non voglio averlo fuori
controllo Ero su un progetto una volta alle
un punto avevamo 11 diversi XML
analizzando le librerie 11 ora ce ne sono due
modi fondamentali per analizzare XML in modo che potessi
tipo di capire 211 erano solo persone
essere pigri e quindi abbiamo bisogno di avere
qualche forma di gestione attorno a questo
piattaforma in modo che non abbiamo tutti
linguaggio di programmazione Sotto il sole e
tutti i database sotto il sole, ecc appena
perché possiamo così abbiamo bisogno di tenerne un po ‘
livello di controllo su quale sia la nostra piattaforma
le pile sembrano e poi ovviamente
la consistenza finale deve essere gestita
non appena iniziamo a distribuire i dati
attraverso questi diversi servizi che abbiamo
per cominciare a pensare a che cosa fa che
significa in termini di propagazione di
Informazioni Una conseguenza di questa di
Certo è che dobbiamo spiegare al nostro
utenti aziendali quale consistenza finale
significa e come ho sottolineato
a volte pensano che possa essere
solo possibilmente coerente piuttosto che
alla fine arriverà così abbiamo
iniziare a pensare a quali sono i
conseguenze di alcuni di questi stati
situazioni in cui potremmo entrare
a causa dell’esistenza dell’eventuale
coerenza e di nuovo se ne hai uno
grande database relazionale hunking voi
non devi preoccuparti di questo così
ci sono molte cose in questa lista
siamo molto più complicati noi
dobbiamo pensare a cose che abbiamo solo
non c’è bisogno di pensare a se abbiamo un
monolite e quindi dovrebbe iniziare
stai pensando bene perché allora dovrei farlo
vogliamo fare in modo che ci accingiamo
per ottenere i benefici di essere in grado di
vai il più velocemente possibile per giustificare il pagamento
il costo per cui stiamo pagando qui
dovrebbe anche dirti che i micro servizi
non dovrebbe essere solo qualcosa che esci
e dire ah, ho intenzione di fare micro
i servizi ora non sono così meraviglioso
sarà uno dei ragazzi fantastici e di
Ovviamente l’ interfaccia deve essere cambiata
essere gestito
in particolare quando stai cercando di ordinare
fuori da quelli che quei confini dovrebbero essere te
potrebbe effettivamente avere molti di quelli
contratti che stanno cambiando e di cui abbiamo bisogno
pensare a cosa significhi
e per quelli di voi che hanno visto James
parlare che cambierà a seconda di
su quanti confini ci sono
queste interfacce stanno andando oltre come
da vicino le squadre sono collegate
perché è facile cambiare il servizio
confine quando la persona seduta accanto a
tu sei quello che sta scrivendo l’altro
servizio è molto più difficile se sono la metà
un continente lontano o mezzo mondo di distanza
Va bene così questi sono alcuni dei
implicazioni di fare questa scelta e
alcune delle cose che stiamo andando
dobbiamo pensare e i problemi
che dovremo risolvere se noi
scendere questo percorso microservizi così abbiamo
ha due possibilità
il primo è Greenfield, lo adoriamo tutti
quando si arriva a sviluppare un’applicazione
con niente senza l’eredità di sorta che
succede ancora occasionalmente ma è così
raro e una delle cose che Martin è
sta per pubblicare un post su questo
presto la cosa che stiamo raccomandando
in generale non si inizia a sviluppare a
applicazione greenfield usando micro
servizi che probabilmente non conosci abbastanza
circa il dominio anche avvicinarsi a
i confini del servizio e quindi iniziare
costruendolo come un monolite prova a fare un
prova modulare per renderlo facile a
separare queste cose ma non iniziare
con i micro servizi fino a quando non si ha a
vera comprensione di dove
i confini dovrebbero essere così generici
parlando stai per essere rotto
un monolite potrebbe non essere un ASCII tu
conosce il grande monolito del fango ma
probabilmente stai per iniziare
qui a prescindere e così la prima cosa
è pensare a questo dal
prospettiva di un contesto limitato e
questa è la nozione di Eric Evans
Domain Driven Design che cosa è che si
può disegnare un cerchio coeso intorno a questo
autosufficiente
e e questo rappresenta qualcosa che
ha senso nel dominio aziendale in cui
sono quei contesti limitati e questo è
sarà un indicatore di ciò
probabilmente sarà ragionevole
confine di servizio per te, così questo è il
prima cosa a pensarci e andare
torna a quello che stavo dicendo prima di te
avere una buona comprensione di
il tuo dominio per essere in grado di prendere decisioni
come questo e tu sai che lo sappiamo tutti
questi modelli di dominio tendono a evolversi
tempo mentre impariamo di più sul
applicazione che stiamo cercando di costruire
e quindi ciò che costituisce un limite
il contesto nella tua mente potrebbe effettivamente cambiare
così anche questo è il primo
suggerimento su cosa dovrebbero essere i confini di un servizio
sembra che provi a pensarlo dal
prospettiva del design guidato dal dominio e
contesto limitato di nuovo a pensare
capacità di business quali sono il valore
flussi che esistono nell’organizzazione
quali sono i prodotti o servizi che
vengono consegnati da questo sistema pensa
su di esso da quella prospettiva e e
che ti guiderà anche nel pensare
circa ok, ciò che ha senso in termini di
pensare a un confine di servizio
di cosa hanno bisogno i consumatori piuttosto che
provare questi contratti guidati dai produttori
fai un tentativo di pensare a questo da
la prospettiva di ciò che è l’utente di
questo servizio andrà a volere e costruire
tali contratti pensano di esso dal
prospettiva dei consumatori prima perché poi
stai rispondendo ad un vero piuttosto che a
un bisogno percepito e pensare al
modelli di comunicazione quali servizi
potrebbe usare o quali parti del
il sistema potrebbe utilizzare gli stessi dati
quale potrebbe come dovrebbero
collaborare per raggiungere un particolare
risultato aziendale cosa fanno quelli
gli schemi di comunicazione sembrano perché
una delle cose che stai per essere
il bilanciamento è se divido un processo attraverso
a due servizi ho una comunicazione
confine lì e che introduce il tempo
che introduce il potenziale per i fallimenti
quindi devo pensare a tutti i tipi di
fallimenti quindi pensa a come quelle cose
stanno per comunicare quando tu
decidere se vuoi o meno
combinare questi due in un unico servizio o
tenerli separati e pensare al
l’architettura dei dati persone spesso
pensa a cose come quello che è il
politica di conservazione quali sono i
protezioni che sono necessarie ciò che è
quali sono gli impatti di cose come
eventuale consistenza come si pensa
i dati e quali sono i corretti
anche l’organizzazione per i dati
qualcosa che sta per indicare a
sei un limite ragionevole del servizio
potrebbe essere perché i servizi possiedono i loro dati
non pensiamo più ai servizi
che stanno fluttuando attorno a un grande
database che abbiamo separato
negozi di persistenza per ognuno di questi
anche i servizi considerano correlati
modelli di cambiamento se due parti del
imprese tendono a cambiare insieme che è
sta per essere un’indicazione che forse tu
voglio unire quelli in un unico servizio
quindi pensa ai probabili cambiamenti che
stanno per essere preparati però
per sbagliare, preparati , potresti
devo unire i servizi insieme
potrebbe dover ripartire i servizi
di nuovo e dato il fatto che abbiamo
dati separati che potrebbero essere suddivisi
dati che potresti avere se un servizio è
ora sarà il maestro in termini di
aggiornando i dati forse l’altro
il servizio avrà bisogno di memorizzarlo nella cache
dati se si sta andando a unirle
devi fare i dati
migrazione quindi di nuovo i confini del servizio
non sono qualcosa che vuoi cambiare a
molto perché cambia quei confini
ha implicazioni significative pure e
essere un lettore tollerante una delle cose
che cerchiamo di fare e questo è questo è
una delle connessioni all’evoluzione
architettura non possiamo farcela così
non devi mai fare un cambiamento di rottura
questo non è possibile ma ciò che possiamo fare
è garantire che dobbiamo solo cambiare
quando non c’è altra scelta e
il lettore tollerante è un modo per garantire
che l’ unica volta che devi cambiare
il tuo servizio è quando stanno cambiando
qualcosa di cui hai bisogno così quando eravamo
guardando questo questo permetterà a quelli
interfacce per cambiare un po ‘di più prima
dobbiamo effettivamente cambiare la nostra
implementazione okay quindi quali sono alcuni di
le altre connessioni evolutive
architettura bene quando parlo
l’architettura evolutiva ci sono molti
di diversi principi che io
penso che siano critici e perché penso
le architetture evolutive sono in realtà
così importante e queste sono alcune delle
principi che esibiscono i microservizi
prima di tutto l’intera ragione
stiamo parlando di micro-servizi è
perché vogliamo essere in grado di rapidamente
cambia il sistema in modo che la messa a fuoco il
motivo che stiamo facendo è quello di servizi di micro
permettono che noi cambiamo il più rapidamente
possibile è un’architettura evolutiva
tutto su come rendere l’evoluzione uno dei
quelli di prima classe illa di che T
gli architetti si preoccupano non solo di
manutenibilità ma evolve capacità e
parte dell’abilità evoluta non lo è
predire il futuro è essere in a
posizione per rispondere ai cambiamenti
indipendentemente dal fatto che tu fossi intelligente
abbastanza per pensare a loro o non così
spesso in passato era il riutilizzo dell’evoluzione
sempre concentrato sul fatto di essere intelligente
abbastanza per capire tutto il diverso
possibili modi in cui questo potrebbe cambiare e io
scrivi tutti i tipi di cose per questo
scenario ipotetico che ci sono possibilità
non viene mai a passare e così micro
i servizi sono focalizzati sull’evolversibilità di noi
voglio pensare all’evoluzione del
sistema come un talento oggetto di prima classe
lettore di cui ho già parlato ma
ovviamente il lettore tollerante è un altro modo
che ci rendono possibile cambiare
le cose il più possibile ma prima di noi
in realtà devi rompere qualcosa
sfruttando la legge di Conway stiamo cercando
a come strutturiamo le organizzazioni e
cosa significa per i sistemi quello
risultato se abbiamo il giusto tipo di
proprietà dei servizi all’interno di una squadra con
il giusto tipo di
concentrati quindi su ciò che ottieni sono questi
liberamente accoppiato indipendente se vuoi
servizi e hai un forte senso
di proprietà molte aziende che hanno
adottato qualcosa come servizi di marcatori
avere un modello in cui non hanno un
supporto e manutenzione separati
organizzazione più le persone che
scrivi i servizi sono quelli che sono
portando i cercapersone e così ovviamente
hanno un interesse acquisito nel fare
sicuro che quel codice sia solido come
possibile perché non vogliono essere
sono disturbati di sabato sera
responsabile e quel senso di proprietà
porta avanti nella loro gestione
di questi servizi accoppiamento appropriato
uno dei modi in cui guardiamo
l’architettura evolutiva è ciò che è il
giusto livello di bilanciamento dell’accoppiamento
le prestazioni e le complessità e
tutto ciò contrasta in uno dei modi
che permettiamo diverse parti di a
il sistema per evolvere indipendentemente è da me
sapendo quale ipotesi stai facendo
sul mio servizio alcuni dei migliori
architetti d’impresa che abbia mai conosciuto
sono quelli che portano in giro nella loro
testa tutti quei piccoli funky
connessioni tra sistemi che
tutti si dimenticano sempre del
cose di cui questo sistema ha bisogno quest’altra
sistema di fare che in realtà non fa
alcun senso
ma sanno che quelle cose esistono
utilizzando contratti e questi automatizzati
strumenti di test di test contrattuali che possiamo iniziare
per documentare l’ipotesi che
diverse parti del nostro sistema stanno facendo
l’uno sull’altro e così posso dare
tu i miei test e poi posso andare e fare
qualunque cosa sia, voglio essere sicuro e il
conoscenza che quando quello che quando quello
interruzioni di test che sono il tuo innesco per a
conversazione tu mi chiami e detto
okay, dobbiamo parlare perché io solo
rotto una delle tue ipotesi alcune
il cambiamento che sto facendo sta andando
richiedere un cambiamento da parte tua fino a quello
succede che non ho bisogno di sapere niente
su quello che stai facendo non ti serve
per sapere una cosa su quello che sto facendo noi
può andare completamente indipendente e così
questo questo livello di documentazione in a
test
che quindi sappiamo che sarà
tenuto aggiornato ci dà questo
flessibilità e quella rete di sicurezza da essere
capace di fare cose queste cose
indipendentemente e quindi è per questo che questi
questi contratti tra i micro servizi
sono altrettanto importanti e, ovviamente
Sono di pensieri, questo è un discorso
quindi devo parlare di
testability ma ma uno dei
cose interessanti che abbiamo trovato è
se non fai nient’altro in termini di tuo
architettura se ti concentri su come
è facile testare il tuo sistema
finire con un’architettura più pulita e
se ci pensi questo ha un senso
qualcosa che è facile da testare ha un
descrizione ben definita che non hai
per dire che ho bisogno di testare questo e questo e
questo e questo e questo tu hai
qualcosa anche se è molto alto
livello come un test end-end che hai
qualcosa che sinteticamente descrive il
le cose comportamentali sono facili da testare quando
sono visibili quando hai il
manopole di destra per accendere sei carino
separazione e in generale abbiamo trovato
che basta prestare attenzione a qualsiasi cosa
livello stai parlando di se sia
livello di codice o pensiero a livello di sistema
sui test ti dà una migliore
architettura e quindi questo concentrarsi su come
è facile testare questi individui
servizi quanto sia facile comporli
com’è facile quindi capire cosa
è l’ aspettativa di comportamento end- end con
tutti questi diversi servizi pensano
sulla testabilità e finirai
con una migliore architettura e in generale
parlando di un’architettura che è molto
più facile da cambiare a causa del modo in cui il
i confini sono definiti quindi quindi quale regola
la consegna continua deve giocare dentro
tutto questo bene prima di tutto
I servizi di Micra sono molto più difficili da fare
correre in produzione di un monolite e
sarà un onere molto più grande
il tuo reparto operativo ci sono
più cose da dispiegare ci sono di più
cose da monitorare ci sono più cose
sbagliare
hai più database così hai
più cose per il backup separatamente e tutto
di quelle cose che devi pensare a te
li ha moltiplicati e quindi lo farà
aumentare l’onere per le operazioni o
le cose distribuiscono più cose da monitorare e
quel monitoraggio e il recupero degli errori
il modo in cui porti indietro un sistema è molto
più complicato ne hai molti di più
permutazioni di come le cose falliscono in a
architettura di micro-servizi che ho messo
fondamentalmente sconsigliato sulla diapositiva
credo che sia borderline irresponsabile
se non del tutto irresponsabile provare a
micro architettura dell’architetto di servizi se
non hai una forte cultura DevOps
se devi gettare il muro
mentalità tra il tuo team di sviluppo
e il tuo team operativo sta andando
per essere un disastro ce ne sono così tanti
cose che possono essere fatte
correttamente che devono essere capiti e
se non si dispone dei potenti DevOps
cultura il tuo team ops sta per finire
odiarti è anche sconsigliabile senza
molti dei rigori che vengono con
consegna continua quando iniziamo
guardando l’ automazione delle infrastrutture noi
vuoi essere in grado di ricreare in modo affidabile
ambienti quando si hanno tutti questi
errore di possibilità di errore diverso
scenari la tua capacità di eseguire il debug è
critico e se non lo sai davvero
di sicuro in che versione è in esecuzione
produzione come sei nel mondo
andando a fare il debug e così il rigore che
vieni con consegna continua sono anche
critico per superare alcuni dei
problemi o alcune delle implicazioni di
usando i micro servizi così infrastruttura
automazione dell’implementazione dell’automazione e di
corso di test di automazione che vuoi essere
in grado di capire come questi diversi
i servizi interagiscono tra loro
hai un test molto più complicato
paesaggio anche il percorso felice è un tutto
molto più complicato figuriamoci pensare
su tutti i diversi scenari
di avere solo un grande monolite così tu
voglio pensare all’automazione dei test come
bene, così come faccio a iniziare
come ho detto quello che stiamo vedendo è se tu
se inizi a pensare che lo sei
andando a costruire microservizi e lo fai
quello che è giusto al di fuori delle possibilità del cancello
avrai il tuo servizio
i confini sbagliati e tu otterrai
te stesso nei guai e così fa di più
senso per iniziare davvero a costruire un
monolite costruiscilo bene con esso
buona separazione con un bene
comprensione di ciò che sembra il codice pulito
come, ma inizia con il monolite e
poi mentre avanzi mentre inizi
capire di più sul dominio
concetti che puoi iniziare a rompere alcuni di
quelle cose fuori ma all’inizio
costruire un’architettura di micro-servizi
a meno che tu non sia molto familiare
il dominio è probabilmente un errore e
certamente non è quello che vorrei fare il
la prima volta che costruisci un
sistema di micro-servizi che non vuoi
inizia quel greenfield e questo è un po ‘
tempo che sembra controintuitivo
perché se iniziamo con a
monolite abbiamo tutto questo accoppiamento
tutte quelle supposizioni che sono
fatto ma le complicazioni che arrivano
dall’iniziare con un microservizio
l’architettura è tale che le persone semplicemente
sembrano di non sbagliare più spesso
e così è più sicuro per arrivare a un particolare
livello di comfort con il dominio e
con alcune delle implementazioni
ti sfida sta andando a correre in con
quella particolare tecnologia in questo
dominio particolare prima di iniziare
separare ciò che è ovviamente da dire
no non è un proiettile d’argento che siamo
vedendo molto successo con
architetture di microservizi ma lì
ci sono problemi da considerare adesso
di queste cose di cui ho parlato
consistenza finale e dover affrontare
con esso
questi scenari di fallimento distributivo
questo non è qualcosa che non sappiamo
come fare abbiamo fatto cose come
questo per lungo tempo che so come
gestire un processo un processo di business che
si estende su più processi
cosa succede se una cosa fallisce, lo sappiamo
come fare comunicazione sappiamo come
fai tutte queste cose diverse è
non che non sappiamo come farlo è
solo che è più complicato di
la scatola
tuttavia fatto bene quello che hai allora è
la capacità di fare abbastanza radicale
cambia a parti particolari del tuo
sistema generale è possibile completamente
ridisegnare qualche aspetto particolare del tuo
affari ed essere al sicuro nella conoscenza
finché non ne hai violato nessuno
di quei test contrattuali il resto del
sistema non ha bisogno di cambiare avete
confini forzate che renderà
molto più facile per te cambiare la tua
il processo di business introduce nuovo
la funzionalità ha introdotto nuove convalide
trattare con ulteriori normative
requisiti tutti diversi
cose perché quelle sono le cose che
stanno cambiando più rapidamente non appena uno
la persona su un sito di social media si spegne
qualche nuova funzionalità ora tutto a un tratto tutto
i siti web devono avere questo nuovo
caratteristica sono le aspettative del cliente
cambiando quella normativa rapidamente
l’ambiente sta cambiando più rapidamente
i tempi di vita del modello di business stanno diventando
più breve, tanto meno tutto il pensare che
le persone ora stanno iniziando a fare qualcosa
sicurezza e privacy dei dati e cosa sono io
davvero facendo e quanto è sicuro
le informazioni che la mia banca sta mantenendo
quindi tutte queste cose diverse sono
mettendo questa pressione su di noi per essere in grado
cambiare i nostri sistemi più rapidamente e
microservizi è un approccio a questo ma
arriva con un costo in arrivo così
saperne di più ancora uno ci andiamo così
c’è un libro sulla costruzione di micro
servizi in realtà iniziato come a
libro sulla consegna continua e io
pensa una delle cose interessanti
A proposito di servizi di micro se ci pensate
questo è il primo grande elemento architettonico
paradigma che è arrivato da allora
la consegna continua è iniziata
qualcosa che era
camminato su nel settore e credo
puoi vedere quello di cui stiamo parlando
circa dal punto di vista il
microservizi non è qualcosa che vorresti
tanta voglia di fare a meno che non si aveva
qualcosa di simile a erogazione continua così ho
penso di non pensare che sia affatto un
coincidenza che questo tipo di
lo stile architettonico non è arrivato
prima d’ora perché anche nel vecchio SOA
giorni in cui non avevi il numero di
servizi che la granularità era
molto diverso che era in realtà uno dei
i problemi che abbiamo avuto perché quelli
i servizi erano troppo grandi e poi ovviamente
continua la consegna continua
prenotare perché entrambe queste cose sono
importante insieme ripeterò il tuo
Il reparto operazioni ti odierà se
lo fai quando hai un separato
dipartimento operativo che sei
Anche buttare il codice oltre il muro è necessario
coinvolgerli in questo perché loro
processi di come monitorano le cose come
fanno il recupero degli errori e così sono
sarà molto diverso quindi grazie
molto
tu
Please follow and like us: