Press "Enter" to skip to content

GOTO 2017 • Pragmatic Microservices for Organisational Scalability • Friso van Vollenhoven


[Musica]
la mattina è interessante questa è una
stanza davvero grande quindi cosa succede normalmente
quando tu abbiamo una stanza che è fuori
taglie la folla e poi ottieni un’uniforme
distribuzione delle persone sul
sedili proprio questo accade naturalmente e
va bene, ma questa stanza è troppo grande
Ora è tutto got me chiedo che cosa sono
le proprietà distributive del
la folla è diversa se la stanza piace
enormemente fuori misura la folla forse quello
dovrebbe essere l’argomento del prossimo discorso
a volte quindi, in ogni caso, benvenuto
Freezer e io sono qui per parlare di bene
micro pragmatici servizi per
la scalabilità organizzativa dice il mio cappello
sembrava davvero carino quando ha chiesto
io per il titolo in astratto che
come sai per conferenze come queste
è mesi fa e poi quando inizi a
in realtà prepararsi a parlare che è
ovviamente ore fa e tu guardi a quello
di nuovo ok, è interessante perché
questa è una cosa divertente in movimento
alle conferenze che conosci come a
osservatore attento che potresti aver notato
e forse anche come non molto attento
osservatore che fondamentalmente vanno a
conferenze come un circo itinerante di a
core team di relatori che sono sempre
lì e poi quando fanno a
conferenza che emendano con una coppia
di gente del posto quindi la bella proprietà
su questo è che se vai al
i discorsi delle persone locali si ottengono davvero
materiale fresco quindi spero che vi piaccia e
la città del commercio di moda nel settore della moda
Ne parlerò un po ‘più tardi
Il CTO come tutti sapete in startup significa
che sai se pensi che sia
interessante e tu vuoi essere
forse unendomi a quella società, allora è così
la persona con cui parlare è così
significa che non è un acronimo per
tutto ciò che sono anche l’orgoglioso proprietario del mio
i miei tre personaggi Twitter e
è stato nel momento in cui ho capito che il
ultimo rimanente tre caratteri uno e
sì, ho scritto una sceneggiatura per capirlo
e il fatto che inizi con una F
come il mio nome è pura coincidenza
anche su LinkedIn ho 22 testimonianze
per Awesomeness
questa è una sfida per il tuo commercio di moda
è una start-up qui ad Amsterdam
lavorando sulla moda business-to-business
piattaforma all’ingrosso in sostanza che significa
che se tu hai un negozio di vestiti tu
bisogno di comprare vestiti da marchi come
Levi’s o qualcosa del genere che puoi fare
che attraverso il commercio di moda e poi il nostro
il dipartimento marketing lo chiama
semplificare all’ingrosso in modo da poter connettere
commerciare e far crescere questo discorso non è molto
su cosa fa il commercio di moda come a
affari solo per darti un’impressione
meno sembra molto simile
e-commerce perché ovviamente lo è
e-commerce quindi perché siamo a
compagnia di moda ne abbiamo un paio
attribuisce ciò che forse richiede
una spiegazione prima di tutto questo è
il frigo che abbiamo in ufficio
e questa è la prima compagnia che ho
mai entrato che ha un frigorifero che si veste
è meglio di me nonostante il fatto
che sto persino indossando la mia maglietta nuvola
oggi anche per i nostri stimati
dipartimento di marketing ho un leggero
modello per tutti i mazzi che sono
dovrei usarlo come hai notato
la diapositiva del titolo conferisce maggiore enfasi a
il logo della società rispetto al titolo di
la presentazione così da sistemare che metterò
c’è di nuovo pragmatico micro servizi
per la scalabilità organizzativa così
pragmatismo anche se non strettamente
definito qualcosa che possiamo probabilmente
tutti avvolgono la nostra testa e ha un
molto a che fare con il fare le cose e
allora si può ottenere più formale su di esso
ma non penso allo scopo di
o wasto Kivar
La nostra vita è davvero importante da ottenere
in fondo a ciò che è il pragmatismo
la scalabilità organizzativa lo è comunque
più ingannevole quindi cosa significa per lo più
quando guardi all’avvio dicendo di essere
passando attraverso una crescita particolare allora
specialmente da fuori lo sai
di solito assomiglia molto a questo
di colpo la compagnia che conosci
attrae un certo ammontare di finanziamenti e
e quindi di solito nell’ordine di due a
sei settimane dopo sono i reclutatori
in tutto il posto che conosci e tutto il
il risarcimento sale e e e il
i vantaggi diventano più interessanti e il
i pranzi migliorano e il biliardino
i tavoli diventano più grandi e tutti questi
le cose quindi tu assumi più persone
perché chi non vuole pranzi migliori
e fornisci alle persone un
MacBook Pro nuovo di zecca che dà loro
tutti i tipi di problemi complicati quando
Fanno un discorso in conferenza perché nessuno
ha un connettore USBC ovunque e poi
qualcosa ti succede all’improvviso
avere questa organizzazione che è in grado di
sfornare più funzioni proprio perché
quello era il punto di ridimensionamento del
organizzazione in modo che si guarda bene a destra
possiamo farlo perché siamo tutti
sviluppatori di software o ingegneri o
qualunque parlata ti attira così noi siamo
persone intelligenti e scopriremo il
cosa al centro tutto bene, quindi è così
cosa fai così questa è la crescita reale
del team di sviluppo un commercio di moda
nell’ultimo anno sai se riesci a leggere
l’abilità è davvero grande se io
guarda quello schermo ma è questo
circa un anno e il titolo del
i grafici sono membri attivi del team a settimana
questo significa che in ogni data settimana
questo è il numero di persone che
codice contribuito basato sul nostro ottenere
impegna
così vedi che scende anche a volte
perché prima di tutto le persone non se ne vanno
persone che abbiamo assunto ma abbiamo lavorato
con un bel po ‘ di imprenditori a
avvia la compagnia quindi è naturale
che loro lasciano in favore del nostro
i propri assunti e poi anche questo
immergere per un lungo periodo di tempo
da qualche parte alla fine di BK e l’ultimo
anno di inizio di quest’anno e questo è
probabilmente proprio nel momento in cui il
squadra ha raggiunto la soglia in termini di dimensioni
il CTO non esegue più il commit del codice
dopo scusami per quello così così va
su e giù un po ‘nel tempo, ma nel
finisce ancora la squadra cresce così al fine di
raggiungere la nostra scalabilità organizzativa
obiettivi che ho detto personalmente bene
ci sono due cose che sono davvero
importante per me prima di tutto se lo sei
assunzioni e intendi continuare
farlo per un bel po ‘e poi
c’è un enorme vantaggio nell’ottenere nuovi
le persone della squadra molto produttivamente
veloce che ha senso giusto
perché non appena qualcuno diventa
produttivo sul codice base che significa
anche lì a quel punto c’è
meno interferenze con il resto del
squadra in termini di capire come vanno le cose
lavorare e alzarsi e correre e poi
in secondo luogo ho detto bene che il dingus è più grande
allora abbiamo bisogno di sapere collettivamente essere
più produttivo dobbiamo essere in grado di
produrre di più sì quindi il segno è il
proporzionalità è un po ‘strano qui
perché stiamo usando la versione PDF di
le diapositive invece di quelle in Google
diapositive che sembrano davvero scivolose e giuste
ben fatto quindi non volevo davvero metterlo
enfasi sul segno di proporzionalità
dovrebbe essere solo
quindi dovrebbe essere la produttività dello sviluppo
proporzionale alla dimensione della squadra e
va bene perché perché è
semplice possiamo mantenere semplici metriche
perché se ci pensate
scalabilità organizzativa e voi
guarda forse le linee guida che sono fuori
c’è circa il raggiungimento di questo e
cosa devi fare per riuscirci
sarà solitamente comune lungo le linee di
200 pagine con almeno due o due
tre dozzine di cose che devi ottenere
giusto per far funzionare tutto
e quindi come risultato è molto facile andare
nella trappola di te sai tenere traccia
su tutte quelle cose individuali
dovresti lavorare secondo il
prenotare senza mai guardare se
il risultato è la tua organizzazione
in realtà scalabile quindi metriche così semplici
sono un buon onboarding veloce di un nuovo
sviluppatore per cosa significa questo
noi è semplice , vogliamo avere qualcuno
produttivo in uno o due giorni così sul tuo
secondo giorno al commercio di moda è il
l’ultimo che avresti dovuto fare a
la produzione utile si impegna così a qualcosa
quello è stato effettivamente schierato così abbiamo detto
su come usciamo e facciamo questo e
ovviamente abbiamo detto bene che useremo micro
servizi perché dovrebbe funzionare
per la scalabilità organizzativa e poi
quando guardi i micro servizi e
quindi architetture di micro-servizi
ovviamente come ho appena detto che hai
questi conosci i libri che ti dicono
se vuoi fare micro servizi
correttamente devi fare tutto questo
le cose e, una volta eseguite tutte, fanno
senso in un contesto particolare e e
e per ragioni particolari ma ma ancora
ricorda che c’è una trappola che quando
inizi a fare tutte quelle cose tu
potrebbe perdere la cognizione del fatto che lo siano
effettivamente risolvendo il tuo problema, quindi cosa?
sono in realtà risolvere i nostri problemi
qualcosa che arriveremo alla fine del
parlare ma prima mi tufferò nel modo
noi
la nostra architettura e come i micro-servizi
sono nei sera sera perché so che userò
microservizi ma poi quello giusto
ci sono un paio di cose che noi
in realtà bisogno di prendersi cura di prima
che anche da remoto inizia a lavorare e io
Ho elencato quella lista qui perché
questi sono tipo di tutti i singoli
cose che in qualche modo sono legate insieme e
e crea la tua piattaforma come a
piattaforma di distribuzione come obiettivo
infrastruttura fondamentalmente su cui lavorare
Certo che devi automatizzare tutto il
dispiegamenti giusti ma lo abbiamo già fatto
che comunque è un po ‘
diverso e ti dirò un po ‘
a questo proposito più tardi si vuole centralizzato
logging vuoi un monitoraggio centralizzato
per le metriche ma anche tu devi aver cura di te
sull’autenticazione centralizzata di tutto
un improvviso perché se ne hai 25
diversi servizi di gestione da qualche parte
hanno bisogno di avere lo stesso concetto di
l’utente e un ruolo che ci sono se
hai quei 25 diversi servizi
correndo da qualche parte poi dall’esterno
deve ancora apparire come una cosa
deve essere il commercio di moda calmo nel nostro
caso in cui il routing API è una vera preoccupazione
non è necessariamente noto a te
soddisfazione da parte di qualcuno di più
popolare o ospitato o open source
soluzioni che sono là fuori e poi se
ci sono servizi quindi quei servizi
bisogno di avere una sorta di inter superficie
comunicazione sia sincrona che
asincrono ed è apparentemente
difficile quindi l’essenza di avere questi
liste e ci arriveremo più tardi
è, ma bisogna rendersi conto che se si
voglio dire in realtà lo so
useremo i micro servizi allora
devono essere pronti a fare tutti questi
cose perché non c’è davvero un
scorciatoia e non c’è davvero
qualcosa che puoi lasciare qui dentro
per farlo funzionare in una produzione
ambientazione
non c’è nessuna versione leggera di
questo per quanto ho potuto
discernere in modo da conoscere il dispiegamento come me
ha detto che è sempre stato automatizzato perché è così
più difficile ora sai, ricorda i giorni
quando si può solo costruire i manufatti
e SCP è finito su una macchina che era
il server e poi forse lo farebbe
ricaricare o riavviare lì e lo farebbe
lavoro e questo processo è molto semplice
giusto così hai costruito la distribuzione
artefatto e lo sposti verso il bersaglio
ambiente e lì lo si avvia e
corre e quelli sono semplici passaggi e
poi abbiamo detto che è necessario automatizzarlo
e abbiamo bisogno di mantenere gli ambienti noi
dobbiamo mantenere quelli coerenti così siamo
non lo costruirò sul locale
sviluppatore lo costruiremo
su un server di build e quello da lì
si muoverà in modo automatico
alla nostra successiva non accettazione
la produzione di qualunque ambienti che abbiamo
ma è difficile con i nostri servizi
perché loro sono facilmente come più
rispetto alle 2025 tecnologie coinvolte nel solo
ottenere qualcosa da eseguire in produzione
comunque e ovviamente ci sono più
ambienti target per la superficie e
e abbiamo distribuire a bonitas chiave e la
cubano questi primitivi sono troppo bassi
livello per firfer per iniziare rapidamente
quindi se io avessi qualcuno di nuovo su
squadra e devo spiegare loro che a
dispiegamento e un ingresso è e poi
che superficie è in contrasto con un percorso
o un contenitore prima che possano farlo
qualcosa di utile
allora non colpirò quell’obiettivo giusto io
non colpirò quella semplice metrica, non lo sono
andando a trovare qualcuno da schierare
qualcosa da produrre sul loro primo
o secondo giorno perché non impari
tutto ciò il giorno uno in combinazione
con la nostra base di codice in combinazione con
le nostre convenzioni quindi come risultato noi
descrivere le distribuzioni in un modo più alto
livello
perché se stai prendendo la tua stecca
bonitas sì la maggior parte dei manifesti e
mettere quelli con la superficie e rendere tale
la tua lingua franca per la distribuzione
poi il primo giorno c’è qualcuno
imparare spunto benitez invece di sapere
codifica quindi la distribuzione è dichiarativa come a
risultato vi mostro i dettagli più tardi
c’è quest’altra cosa che vuoi
per parlare con un’altra superficie i suoi resti
semplice, tutti sanno riposare ma poi
scopre che ci vuole davvero bene
molte forme e in cima a quello che puoi
avere un gazillion diversi modi di
realizzandolo dal lato del cliente e
e una volta che iniziare a fare che come si fa
sposare la tua autenticazione centralizzata
in tutti questi e poi quando questo
altro servizio è lì sai come funziona
fa il log in contrasto con il tuo servizio
su cui stai lavorando così lo sai
uno degli argomenti popolari per micro
servizi puoi dire hey se vuoi
costruisci questa cosa in Python e questo
altra cosa in Java e questo e altro
cosa in forse Scala se vuoi andare
in fondo a quella strada puoi scrivere e
è davvero forte, ma se lo vuoi
scala un’organizzazione se vuoi metterla
un po ‘ di nuovi sviluppatori al lavoro
molto rapidamente quindi allargando il
spettro di lingue che permetterete
o che tu usi leggerà molto velocemente
portare a convenzioni ridotte attraverso il
bordo e di conseguenza diventa veramente
difficile rendere le persone molto produttive
rapidamente perché le convenzioni fanno
produttivo e questo significa che se tutto il
chiamate di servizio da un altro aspetto del servizio
lo stesso è davvero facile individuarli
e poi se lo sai questo in questo
in modo particolare non devi preoccuparti
sull’autenticazione, quindi siamo
in realtà abbastanza forte su convenzioni e
non abbiamo un sacco di diverso
lingue, nonostante il fatto che abbiamo
esegui questa piattaforma di servizio così da te
sapere per fare qualcuno
produttivo al loro primo o secondo giorno
devi nascondermi molto
cose sotto il cofano e non lo è
anche strano, vero
chiunque può spingere qualcosa di utile
Heroku più o meno all’istante e
internamente sì, vuoi raggiungerlo
puntare troppo per poter rampa
questo significa che le distribuzioni devono essere
dichiarativo perché in realtà sta dicendo
Kieran è quello che deve fare , non scalare
un punto di vista organizzativo lo farai
bisogno di astrazioni su cose comuni e
avrai bisogno di convenzioni che facciano
cose riconoscibili ci sono molti di voi
conoscere il principio della meno sorpresa in
Là
quindi questo è l’aspetto della distribuzione
per noi quando hai un servizio di cui ha bisogno
al file di finestra mobile e al file di finestra mobile
ovviamente come risultato della volontà di costruzione
produrre un’immagine del contenitore e questo
questo è il tuo artefatto a cui lo distribuiamo
comunità e prima che iniziamo tutti
questo file è tutto questo
non quello importante o almeno no
squadra per la parte non esclusivamente importante
la parte importante di quel file quando
arriva allo spiegamento per noi è questo
è essenzialmente un numero di etichette che
inserisci il tuo file locale che lo farà
dì alla nostra infrastruttura e implementazione
imposta cosa fare con il tuo servizio e
ha le cose lì come il percorso e
Il routing del prefisso DNS ha cose in
ci piacciono i numeri di porta che tu
esporre all’interno e all’esterno e
può avere molte più cose lì dentro
può avere cose lì dentro come questo
particolare servizio ha bisogno della chiave API per
il provider di posta elettronica disponibile come questo e
questo e lontano e poi succederà
perché c’è una gestione segreta
accadendo da qualche parte nel geruth e
quel segreto sarà esposto al tuo
servizio come variabile ambiente esso
tutto ciò che puoi anche lasciare suggerimenti
qui sul consumo di risorse che
ti aspetti che il tuo servizio abbia
ma qualunque sia la pipeline di distribuzione
in realtà usa quello e come lo usa
non è di tua competenza come sviluppatore a
quel punto e così sono lì c’è
molte di queste cose aggiuntive che puoi
ma l’essenza è che questo è un
dichiarativo diciamo linguaggio per
distribuire il servizio in base a questo
metadati e abbiamo uno strumento internamente
costruito
si chiama Metatron perché riguarda
metadati e ciò che Ron viene
e sostanzialmente astrae tutto il
kubernetes cose durante la distribuzione
pipeline che questo strumento esegue e crea
tutti quegli animali di energia umana che
è necessario ottenere un servizio attivo e funzionante
lì e nel frattempo permette anche
noi per gestire la risorsa aiuti di Kuban
Gestione a un livello diverso dal
sviluppo del servizio effettivo noi qualcuno
può notare che un consumo di risorse
la prima superficie sta uscendo fuori da un
particolare larghezza di banda e può effettivamente
risolvi ciò che sai durante lo spiegamento
livello o ridistribuendo senza avere
per rendere la commessa effettiva
servizio questo è bello proprio perché se un
la preoccupazione operativa inizia a tradursi
un impegno per la superficie reale allora
porta ad alcune contese di richieste semplici
con lo sviluppo di funzionalità deve essere
un giorno si sono fusi di nuovo in modo brutto
e poi quando il servizio è lì tu
anche vedere in questo metadata ti dice
cose su routing quindi il gateway
mappatura sul fondo delle due linee
ha un segmento di percorso diverso da un prefisso DNS
e questo in pratica significa quelle due linee
che questo particolare servizio sarà
distribuito su API adult fashion trade comm
slash PIM PIM è sinonimo di prodotto
gestione delle informazioni che è abbastanza
concetto specifico del dominio per noi
e poi ci sono bambini e bambini
è il nostro gateway API quindi quale gate gate
non fa altro che sta andando a tirare la
cluster di kubernetes in fase di esecuzione
per questo stesso i metadati che viene fornito con
il servizio e aggiorna lo stato del routing
basato dinamicamente su quello perché
lo stato del routing è stato di runtime giusto e
ogni volta che succede qualcosa in un runtime
e devi riconfigurare in un proxy
e riavviato quello che è solitamente per
automazione fragile quindi invece cosa noi
sapevo è che questa cosa ha bisogno di
basta vedere cosa c’è realmente lì perché
se tu come parte della tua implementazione o
riconfigura il tuo gateway API, ma poi
tutto ad un tratto per qualsiasi motivo il
resto la distribuzione non riesce quindi anche
questa informazione di routing sarà
ancora così invece i poli guarda il
Cuban è cluster e quindi ci si prende cura
di quel routing oltre a quello anche
si occupa delle autorizzazioni inviate
non autorizzazione che è un livello di superficie
preoccupazione ovviamente perché coinvolge è
l’utente con questo ruolo ha permesso di fare
questa azione particolare , ma cancello porta
basterà scaricare il principio
dalla richiesta in arrivo non lo fa
importa al servizio back-end se
quel principio è arrivato attraverso la chiave API
o autenticazione di base non che noi
supportalo ma diciamo o un cookie
è stato stabilito che è ciò che in realtà
utilizzare così la superficie a monte internamente
possiamo semplicemente fidarci di un paio di intestazioni
dì che questa richiesta proviene da un utente in
quel ruolo così alla fine leghiamo tutto
insieme
sembra che io pensi questa cosa
ha un laser freddo non ho mai usato un laser
in una presentazione prima così il nostro fuori
il traffico arriva attraverso il carico di Google
il bilanciamento è ciò che facciamo SSL
offloading e poi colpisce la nostra API
gateway e attualmente lo fa
autenticazione di un routing di superficie in seguito
su quello sarebbe anche il candidato per
implementare cose come a / b testare a
limitare se vogliamo che allora il
richieste interne che sono già
autenticato e il cancello il
Anche il gateway sarà a quel punto
sai dare loro l’appropriato per a
uno per una richiesta che fondamentalmente non lo è
anche permesso di colpire una superficie interna
le superfici interne sono distribuite al
dati i cluster di ITA ne usiamo tre
superfici di persistenza differenti una è
Google Cloud Datastore per chi no
familiarità con Google è come la dinamo
ma poi Google allora in cima a quello
usiamo la ricerca elastica usiamo Kafka
perché il commercio di moda il nostro schieramento
l’infrastruttura è ovviamente basata su
Jenkins perché c’è Jenkins I I’m a
grande fan della tecnologia noiosa giusta
Jenkins sembra brutto ed è stato in giro
per sempre , questo significa che deve essere così
estremamente utile che nessuno ha dovuto
aggiornare l’interfaccia utente, al fine di venderlo I
pensa che sia buono
autoblog usiamo Java usiamo Python
perché questi sono così bassi gli ecosistemi
e possiamo risolvere i problemi con
quelli che è con questo stesso approccio
sicuramente ti permettono di schierarne altri
sai affiorare in base a diversi
lingua runtime il resto del nostro
infrastruttura necessaria per dire
controllare quale implementazione ma anche
registri di contenitori di manufatti di biblioteca
tutti questi tipi di cose
tutto eccetto Jenkins lì dentro
qualcosa che abbiamo ospitato nel cloud così
non eseguiamo il nostro registro NPM
per il nostro JavaScript front-end
pacchetti o tutti quei tipi di cose
sono preoccupazioni abbastanza semplici che
loro sono ben pensati da
diverse società e forniscono
buone soluzioni per quello stesso vale per
monitoraggio e registrazione questo è aggiornato
questo leggermente spostato da Google
strumento interno chiamato stack driver noi
ho altre soluzioni lì ora lo farò
parlarne un po ‘più tardi
ma questo è essenzialmente il
paesaggio che corriamo che vedi anche tu
ecco quello
il nostro provider di autenticazione il reale
nome utente password di gestione e archiviazione
è qualcosa che non facciamo noi stessi
o così allora arrivi a questi
preoccupazioni giuste, ho un servizio
schierato perché ero in grado di scrivere
come dodici righe di file docker e
quindi stanno registrando così per tutti i nostri
Servizi back-end basati su Java di cui hai bisogno
aggiungi questo snippet alla tua configurazione
e farà il logging e poi vedrai
questo e questo a cui si fa riferimento
lì e quello esce dal gestito
segreti in discipline umanistiche che esce
tutta la nostra infrastruttura di distribuzione
che a quel punto non è necessario
sapere su ancora metriche stanno monitorando
simili i nostri server Java sono basati su a
quadro o osservare ha qualche bello
caratteristiche per le metriche e abbiamo scritto
questo questo un piccolo plugin che
tutti usano ovunque per essere sicuri
che se metti questo piccolo frammento dentro
la tua configurazione quindi ottieni le metriche
e monitoraggio su tutto il servizio
chiama il tuo servizio che non devi
fare qualcosa di più di così ecco il
lista di cose che abbiamo costruito abbiamo costruito questa API
gateway noi stessi e sono consapevole di molto
di altre iniziative lì e aperto
iniziative di origine lì e e
soluzioni cloud-based lì e ancora noi
costruiamolo noi stessi abbiamo costruito Metatron
che è la nostra traduzione dal
distribuzione dichiarativa all’attuale
distribuzione runtime che è cue Benitez
costruiamo la generazione del codice swagger personalizzato
modelli per assicurarci di avere un
API coerente su tutte le superfici per
chiamate sul lato client e che corrispondono
il nostro uso di HTTP asincrono e quello
anche loro abbinano i nostri particolari idiomi
come fare il codice asincrono in generale in Java
perché ci sono alcune soluzioni
anche lì e ci uniformiamo su uno
costruiamo l’appender di registrazione personalizzato per
per il nostro drop Izzard setup così centralizzato
la registrazione funziona e abbiamo fatto lo stesso
per metriche e monitoraggio e anche noi
creare un jenkins abbastanza complesso
dove jenkins corre anche sul suo dedicato
cluster umanistico e
docker ha costruito schiavi costruiti e tutti
queste cose e tu non devi
creare manualmente i lavori ovviamente perché
quando crei un nuovo repository in git
e finisce in – superficie allora quella cosa
diventerà una superficie e verrà costruita
pipeline e distribuire pipeline per il
diversi ambienti di destinazione in modo da essere
consapevole che in realtà devi fare tutto
queste cose quindi ce ne sono alcune
altre cose che facciamo installiamo e
e e questo è ovviamente dove si ottiene
al punto in cui mai il
scalabilità organizzativa di ciò che voi
fare non è solo dettato dal
la tecnologia che usi abbiamo il codice
linee guida di stile analisi estetica
regole e abbiamo davvero davvero
ampie linee guida di riposo che sono a
documento davvero lungo e ne abbiamo alcuni
librerie di linee rapper che si assicurano
che a livello di codice un sacco di cose
che facciamo un sacco guardare sempre lo stesso in
per fare questa abilità e lavorare
appropriatamente il trabocchetto che molti
delle aziende più grandi cadono in è il
conosci l’intuizione che queste cose
davvero aiutare ad accelerare le cose perché
tutti sono sulla stessa pagina ma poi
la svista che devi avere
un corpo dedicato di governance su questi
le cose e questo è quando diventi il
Enterprise Architect o il principale
architetto o questo genere di cose
chi sarà ogni tanto solo per divertimento
cambia le linee guida sullo stile del codice così
tutti potranno fare qualcos’altro dopo
settimana giusta ed è proprio così
fastidioso
se devi essere consapevole del fatto
che tutte le cose che vuoi
assicurati che siano incorporati e conosci
per convenzione in via di sviluppo
l’organizzazione è anche il prodotto del
organizzazione di sviluppo quindi qualsiasi cosa
quello che fondamentalmente detta il
modo di lavorare in qualsiasi misura è
formalizzato nuovamente nei repository git e
l’unico modo per cambiare
creando una richiesta di pull e averlo
per la revisione tra il resto del
squadra
non c’è nulla contro il voler
cambia la lunghezza massima della linea da I
non so da 170 a 250 ma devi andare
attraverso il processo di revisione e quello
coinvolge ovviamente colui che quello
la richiesta pull viene assegnata ma anche
chiunque altro abbia un’opinione perché
è per questo che ce l’abbiamo lì così così è
questo è davvero importante, quindi lo sono
molte di queste decisioni sono il risultato di
processo e non il risultato di un ruolo no
un risultato di qualcuno che porta un
ruolo particolare e in virtù di
che essere in grado di cambiare le cose che
include me e io non so cosa sia
la lunghezza massima della linea è probabilmente
qualcosa così ci sono le cose
non abbiamo costruito e questo a volte
Difficile difendere bene perché la gente vuole
per costruire queste cose voglio creare un
cluster di ginocchio okay, perché poi posso dire
che ho preparato un ginocchio ok cluster III
vuoi creare Prometeo perché è così
questa prossima bella cosa e io voglio
esegui il nostro cluster di kubernetes e e
e anche io voglio scrivere un
fornitore di autenticazione mi fido di me
davvero noioso scrivere un’autenticazione
fornitore e poi quando vedi tutto
le cose che avete fatto di sbagliato e come
risolverli diventa ancora molto di più
noioso quindi ci difendiamo davvero
contro la costruzione di questo genere di cose
Google ha ospitato la coda benitez funziona
molto bene usiamo in hosta teal’c uno stack
non funziona molto bene, ma posso
attesta che funziona e anche il
probabilità che funzioni mentre tutti
le nostre altre cose stanno rompendo è
ovviamente molto più grande di quando noi
lo ospiteremmo noi solo per semplicità
statistiche giusto riguardo
di qualsiasi cosa gli eventi siano correlati o
non ma se qualcuno sta gestendo
quello più vicino e sto gestendo il mio allora
la probabilità che entrambi si rompano al
stesso tempo è sostanzialmente di meno
rispetto a quello che sto gestendo sia e che
questo è un grande vantaggio e sono stato dentro
molti ambienti che ogni volta che lei ha
difendere il cluster di registrazione è il primo
cosa che si rompe e non puoi vedere
qualsiasi cosa più
lo stesso con le promesse, quindi usiamo i dati
dock che è un monitoraggio basato su salsa a
soluzione matrix e funziona davvero bene
per noi e poi sai che potresti avere
raccolto da quello che stavo dicendo lì
era un filone di tenere le cose noiose
più o meno così abbiamo costruito questa roba
in Java e facciamo tutte le chiamate HTTP il
allo stesso modo e facciamo tutto allo stesso modo
facciamo tutto allo stesso modo, quindi no
che realmente sconfiggere lo scopo è avere
questi servizi comunque in misura sì
se non permetteresti mai qualcos’altro
certo facciamo cose negli altri
linguaggi di programmazione abbiamo servizi
da implementare anche in Python e lo sono
piuttosto sicuro che quando guardi
il tuo da ora ne avremo un paio
altre lingue in là pure ma il
cosa devi tenere a mente in ordine
per introdurre una nuova lingua tu ancora
non può prendere nessuna delle scorciatoie come fare
costruisci un contenitore che contiene il
applicazione in quella lingua e poi
come si fa a renderlo convenzionale e
semplice per qualcuno in quella lingua
runtime per aggiungere il centralizzato
monitoraggio per aggiungere il centralizzato
accedere per aggiungere il servizio interno
obiettivi se stiamo facendo Python, creiamo
un nuovo modello di swag o cogenerazione per
quella lingua in modo che ci assicuriamo che
qualcuno fa un servizio interno alla moda
sembra sempre lo stesso perché
altrimenti è solo riposare e poi
ottieni in 500 pacchetti diversi
Python che hai per riposarti
bello così tante lingue e più
cose ma se appare una superficie Python
selvaggiamente diverso da un altro nel
la stessa compagnia quindi rallenterà
giù in termini di scalabilità
perché le persone si trasferiranno sempre in altro
squadre e passare ad altri sforzi e
quando arrivano è solo un
gioco sostanziale la mia roba sembra la stessa
è così bello e abbiamo fatto tutto questo
quindi funziona così potresti chiedere di averlo fatto
questi due semplici obiettivi voglio proprio
fare veramente veloce onboarding e voglio farlo
fare in modo che quando aggiungo le persone al
organizzazione che inizierà a produrre
più software come conseguenza di così per
l’onboarding sì fino ad ora tutti
chi è entrato ha fatto il loro primo utile
la produzione si impegna al primo o al secondo
giorno e da quel momento in poi diventa
apparentemente abbastanza velocemente come fare le cose
a causa della convenzione a causa di
documentazione e per il fatto
che tutto sembra un po ‘lo stesso
anche quando ti sposti in una squadra diversa
o quando ti muovi attraverso un altro
un servizio particolare su cui lavorare e poi
quello che succede è gradualmente nel tempo
la gente saprà raccogliere i dettagli
su come tutto sotto il cofano
funziona davvero sai come la nostra build
la pipeline funziona davvero e poi il
altra cosa e questo è più difficile a destra
così ha fatto l’abilità organizzativa in termini
di produttività siamo diventati effettivamente
sai che abbiamo guadagnato larghezza di banda caratteristica
fondamentalmente questo è quello che ti interessa e
questa è una domanda complicata perché ciò che è
produttivo e poi e questo torna indietro
alla discussione che conosci molte persone
avuto su squadre di software e così per
organizzazioni e come faccio a sapere come
Misuro l’output
misurare in modo affidabile l’output di a
team di software quindi le cose semplici
quello che viene in mente non è ovviamente una storia
Punti che facciamo stima puntuale storia per
primo sprint planning e apparentemente
significa qualcosa quindi lo facciamo noi
ovviamente sappiamo quanto spesso ci impegniamo come
molte richieste pull facciamo quante linee
di codice sì, non lo sappiamo o a
Almeno potremmo sapere che non l’ho fatto
contato se nient’altro
diciamo che le quest del bullo sono le più
cosa importante qui perché ogni volta
fai una richiesta di pull contro master e
che viene unito e in realtà qualcosa
viene schierato in un ambiente e quindi
quando è schierato in quell’ambiente
la persona che l’ha scritta sarà brevemente
dare un’occhiata e se tutto sembra
soddisfacente spingerà un pulsante e così
viene promosso alla produzione e questo è
quindi diamo un’occhiata a prima cosa
il numero giusto di repository
nel tempo questo è il numero
di repository git che abbiamo che potrebbe essere
qualsiasi cosa, dalla documentazione a due
a uno a cose che vengono fuori
i giorni di hackathon e in realtà
a volte vedi questo piccolo picco e
di solito è quando c’è stato un
giorno hackathon perché poi le persone creano
questi one-off ma sì, sì, va bene
nelle mani giuste
quindi facciamo più cose e altre volte
si appiattisce un po ‘e si muove
di nuovo bene
allora se guardi il numero di
superfici nel tempo che probabilmente sono più
interessante perché le superfici in realtà
dovrebbero fare qualcosa
feature-wise all’interno della piattaforma e
che sale anche all’inizio
era più o meno esponenziale e poi
appiattito un po ‘e poi esso
è diventato di nuovo esponenziale e questi
le cose in realtà lo conosci abbastanza facilmente
per spiegare quando guardi la nostra funzione
progressione allora questo ha senso che lo siamo
iniziando a fare nuove funzionalità aggiuntive
abbiamo ottenuto un buon numero di servizi
c’è la cosa del punto di storia hmm
quindi questo è il numero di punti storia
che andava da qualsiasi cosa alla settimana
secondo la nostra istanza JIRA così
sembra squallido al meglio c’è questo enorme
picco che significa qualcuno
cambiato il processo e poi ha fatto un grosso problema
aggiornamento di qualcosa o qualcos’altro
succede che è difficile da spiegare
senza essere nel contesto ancora così
sai senza tuffarti in
i dettagli di come tutto questo
funziona penso che sia sicuro dire che no
la stima del punto di storia è qualcosa
questo è ciò che sai davvero difficile
utilizzare in modo affidabile come parametro e quindi
successivamente se dovessimo usarlo su
sforzi in realtà è andato giù il numero
del numero di punti che consegniamo a settimana
perché
forse siamo diventati più lenti forse le cose sono andate
più complesso forse stiamo lavorando di più
funzionalità complesse ora non so se tu
guarda in questo modo così quello che hai sul
l’asse orizzontale qui è la dimensione della squadra
e sull’asse verticale è un numero di
campioni che conosci così la dimensione della squadra di
10 abbiamo avuto questo per un bel po ‘
tempo che hai visto all’inizio
quel grafico e quindi abbiamo il massimo
campioni per le dimensioni della squadra di 10 e se
devi giudicare questo in qualsiasi tipo di
modo che dovresti dire bene e
organizzazione di 10 a 11 persone che lavorano
sullo sviluppo è forse il più
produttivo e chiunque aggiunga dopo
che in realtà non aiuta e come
deludente giusto perché abbiamo fatto tutto
questo lavoro e abbiamo impostato tutto questo
micro emersione e tutto questo e ora
aggiungere persone non aiuta quando tu
vedi questo è strano quindi vai in giro per il
ufficio e parli con le persone e dici
hey erano più persone di quanto eravamo prima
pensi che stiamo facendo più lavoro sì?
sì, stiamo facendo molto più lavoro, ok
è bello quindi forse stiamo spingendo di più
caratteristiche o almeno sempre di più
cambiamenti dovuti alla produzione quindi questo è il
richiama richieste invece della storia
punti e vedi qui che il 10 11 sembra
ottimo anche se la variazione è molto
più grande di allora quando si tratta di
stime del punto di storia, ma poi
Successivamente ottiene ancora peggio va bene
quindi ora stiamo predicando meno cambiamenti con
maggior numero di persone nella squadra secondo
questo così così come funziona perché
la gente ha ancora detto no no, stiamo facendo di più
lavoro e anche in questo modo
sembra così
con ogni probabilità lo sapremo se
si guarda in questo modo potremmo non essere
guardando le cose giuste che faccio
abbiamo davvero stime coerenti o
certo non perché la squadra è
cambiando tutto il tempo ci sono nuove persone
e e poi li creiamo
dispone di piastre proprio qui con quattro
persone e poi all’improvviso eri
dieci persone che non sta andando essere in un
single resisti con dieci persone così tu
fai una suddivisione di funzionalità e dividi alcune
le persone a fare le loro piccole squadre così
questo cambia continuamente, quindi la storia
la stima puntuale è probabilmente la peggiore
cosa da dare dato dato che abbiamo
ci sono stato solo per un anno con
i team in costante cambiamento fanno un prepotente
ricerca ha un valore medio costante
consegnare le cose non diventano più grandi che hai
più cambiamenti tecnici hai di più
più profondità tecnica per lavorare via così
questo cambia tutto il tempo e e non
tutti hanno committenze ugualmente dimensionate così
ci sono troppe dinamiche da fare
effettivamente fare qualcosa di utile con quello
quindi se pensi invece dall’altra parte
in giro quindi qual è la cosa che conta
giusto se metti un gruppo di persone in un
società e hanno bisogno di iniziare a fare così
lontano e hanno bisogno di essere ciascuno di loro
individualmente il loro più produttivo così
indipendentemente dalle preferenze personali su
un tipo di musica di stile in modo particolare
ombra di illuminazione e e qualunque cosa o
non hanno questo o questo o questo tipo
di una scrivania dove puoi andare a piedi a dormire o
strisciare non lo so
ma nonostante tutto quello che c’è
due cose che conosci in termini di
scalabilità che e che crediamo
conta davvero ed è il sollievo di
contesa quindi se sto lavorando su questo può
Ci lavoro senza essere bloccato
da qualcos’altro che succede e se
Ho intenzione di fare un lavoro per un giorno intero possibile
Ho passato quella giornata intera a fuoco o altro
o meno una singola cosa
così che
in realtà porta a metriche che potremmo
essere in grado di sapere misurare utilmente ciò che è
la contesa caratteristica che voglio è
focus sugli sviluppatori quindi questo è il risultato di
quello che ha qui è solo orizzontale
il numero di repository di superficie che
abbiamo e sul verticale c’è tempo
e su è più recente e down è più lungo
fa e cosa significano i colori è che se
è verde che significa su quel particolare
giorno c’era una ricerca di pulley singolo
contro quella superficie che era quella
master combinato e distribuito alla fine
è entrato in produzione se è un altro
colore che verde ad eccezione di
il bianco ovviamente significa che c’erano
in un solo giorno ricerca di pulegge multiple
andare contro una singola superficie ed è
il bluegrass è iniziato da diversi
persone giuste o gruppi diversi di
persone o qualcosa del genere così
significa che c’è contesa su questo
servizio che significa che c’è
fondamentalmente le persone cercano di spingere lo stesso
alla stessa parte della tua piattaforma e
allora sai perché succede quello che ho
molte ragioni a volte è come un
correzione semplice di cui ha bisogno un’altra squadra
questa cosa e tu puoi semplicemente spremerla
attraverso ma molto spesso è o un
errore architettonico per te non ha fatto
la funzione corretta divisa o o o peggio
di quello è solo concettualmente
completamente sbagliato e poi hai questo
una superficie qui dove succede tutto
il tempo
quindi questo è il nostro front end e basta
in realtà una singola app di reazione monolitica
quindi ha senso ed è bello
perché poi anche questo ha un senso e
il front-end è che in realtà stai aspettando
l’uno per l’altro costruisce più a lungo
spesso di chiunque altro, quindi dovremmo
probabilmente lavorerai per aggiustarlo, quindi è così
bello abbiamo qualcosa che possiamo guardare
e possiamo dire che questo dovrebbe essere principalmente
verde e se non è che abbiamo bisogno di risolvere
quello e poi abbiamo l’ altra cosa
quello dice è una persona che lavora su uno
cosa alla volta
quindi quello che dice è il popolo sul
orizzontale senza i nomi
così sono diventati numeri scusate persone e
ho ancora tempo e là dice se
è verde che significa che lo si commette a
singola superficie in quel giorno e se lo è
qualsiasi altro colore significa che eri
impegnarsi su più superfici su a
singolo giorno e che non è il focus invest un a
molto nel setup per i micro servizi
perché non ci sono scorciatoie che puoi
fare la metà di esso al fine di ottenere solo
iniziato quindi se non si può fare che non fare
è tutto quando hai questo
l’architettura può aiutarti a scalare il
organizzazione ma tutto il resto lo è
ancora molto attenta considerazione
il posto della squadra nella funzione si divide
sono davvero attenti a pianificare per essere sicuri
le persone possono lavorare in contese e in
focus grazie
[Applausi]

Please follow and like us: