Press "Enter" to skip to content

GOTO 2017 • It’s Not Continuous Delivery If You Can’t Deploy Right Now • Ken Mugrage


[Musica]
okay, il mio discorso non è continuo
consegna se non è possibile schierare in questo momento
fondamentalmente l’ idea qui è che tu lo sai
le parole hanno significati e potrebbero fare
Veramente un buon edificio automatizzato ti mette alla prova
sai cosa hai ma se non c’è un?
sistema a cui è possibile accedere e premere a
pulsante in questo momento per la distribuzione in produzione
consegna quindi non del tutto continua ancora
okay so chi sono io sono una tecnologia
l’evangelista per il pensiero funziona che semplicemente
significa che vengo pagato per volare in giro e
fai questo che è fantastico è fantastico
lavoro voglio dirti che questo è
sarà piuttosto supponente, quindi vengo
da una società molto supponente
alcuni dei libri scritti da corrente e
ex dipendenti, quindi ho intenzione di entrare
alcune cose e dire questo è il modo in cui io
pensare che dovrebbe essere fatto non significa
è l’unica risposta giusta, no
in un modo giusto non penso, ma è così
modi che hanno funzionato davvero bene
per noi va bene così perché questo discorso così penso
pensavamo che funzionasse poco più di otto
anni ed è stato come il nostro continuamente
leggere i prodotti per tutto il tempo per
la maggior parte quindi ho visto molto
pipeline di distribuzione e CI e CD e
così avanti nel mercato e lo farei
sento abbastanza spesso così abbiamo preso una canoa
pipeline di liquami ‘nessun problema ho appena
per darlo alla squadra di sicurezza e poi
tre mesi dopo posso schierare o cosa
hai te e quindi era ancora molto silenzioso
era ancora lo sai meglio
integrazione continua non del tutto
consegna continua e quindi il punto di
questo discorso è lì per dimostrarti che lo è
sarà abbastanza alto perché
copriremo un sacco di cose ma
ecco alcuni tipi di test che tu
potrebbe non farlo nella tua pipeline di CD
ecco alcune strategie di gestione del codice
potresti pensare a qualcuno
strategie di implementazione che potresti non essere
pensando di non andare a andare terribilmente
in profondità su qualsiasi um essere nel complesso
due giorni vogliamo andare più in profondità, ma
l’idea è che il tuo takeaway è wow I
non pensavo che avrei dovuto farlo
tipo di test come parte della mia automazione
lo sai perché hai davvero lo scopo
di una condotta di consegna continua è a
uccidere un candidato alla liberazione non può
dimostrare che qualcosa è buono ma puoi farlo
assolutamente provare che è male, quindi se codice
se faccio un commit
questo è un candidato per il rilascio e se tutto il mio
i test passano
sii così sicuro della mia pipeline che se io
volevo poter spingere a suonare questo è il
scopo di una pipeline CD um e giusto
perché vogliamo fare una cosa di Star Wars
perché io sono un geek , è vero, ecco cosa
Voglio dire, non c’è una via di mezzo ma
non c’è mai stato fatto così da fare
queste cose è una cosa continua, no
prova solo a farlo, quindi perché continuo
consegna così prima di quello che ho intenzione di fare
perché lo facciamo in un certo modo perché lo è
importante per noi un sacco di persone familiari
con il manifesto agile di Allister è qui
molte persone non hanno letto la seconda pagina
è divertente il termine consegna continua
è comunemente attribuito solo umile
e Dave Farley che ha scritto un libro dal
stesso titolo e infatti viene da
pagina 2 del manifesto e quindi se andiamo
fino a quando sei agile, conosci il nostro
l’obiettivo doveva essere continuo
consegna di software prezioso ma noi come
un’industria ha messo in buone prove di costruzione
come le pratiche di CI e abbiamo avuto il nostro rilascio
candidato e poi è stato consegnato
qualcun altro, quindi in realtà non
fornire software ai clienti e così via
penso che la consegna continua sia
in qualche modo conosci la cultura DevOps
è una specie di finitura di ciò che è stato avviato agile
e proprio per questo ho tirato fuori un
scivolo che ho usato per un allenamento agile
circa 15 anni fa
perché fare CD perché parzialmente fatto potrebbe
essere ancora utile ci potrebbe essere
funzionalità che ho fatto
fare uso e fare soldi fuori di più
di noi ci sono in questo tipo di
organizzazioni e quindi questo è letteralmente a
scivola da un allenamento agile in cui tu
non dipingere la Mona Lisa in questo modo
dipingila in questo modo costruisci continuamente
RHE è la stessa cosa se posso ottenere
caratteristiche nelle mani dei clienti presso
molto presto posso diventare reale
feedback su questo sta andando nel modo giusto
vuoi divertirti non ho fatto una diapositiva
ne guarda una radiografia dell’uomo blu
è un dipinto famoso ma non è così
x-ray per mostrare tutte le versioni del
dipingere prima che arrivasse quello che è adesso
è uno di quei 20 milioni di dollari
dipinti ma non è iniziato
cos’è, quindi vogliamo ottenere valore
prima questo motivo sembra essere un hacker
non stanno andando via sai che sta arrivando
peggio e così se ho un sistema in cui io
posso entrare e aggiornare una biblioteca se posso
entra e aggiorna OpenSSL ed entra
la produzione in 20 minuti è molto
buona cosa e tu devi essere sicuro
tutto il resto è giusto nel tuo
pipeline prima che tu possa davvero dire
lo facciamo quando ciò accade quando si sente il cuore
uscì un paio di anni fa un sacco di
le aziende, oh mio Dio, hanno effettuato l’accesso
produzione e hanno aggiornato il loro SSL
librerie e così ora sono al sicuro ma
le loro applicazioni non hanno funzionato perché
il cambiamento non ha attraversato tutto il
testare è solo con qualcuno registrato
in produzione
non avrai radice e me ne andrò
più nella notte capitale che conosce la notte
capitale solo una coppia andrò a
capitale notturno in un minuto come una ragione
perché dovresti avere questo così voglio
parla un po ‘di continuo
integrazione che non puoi fare in modo continuo
consegna se non stai facendo veramente bene
integrazione continua . quindi aggiustalo
prima se non lo stai facendo ancora noi
abbiamo parlato molto di qualcosa che siamo noi
chiama il teatro CI , questo è dove sai che io
ho un server CI e ho qualche unità
prova e tu sai okay qua e là
ma non sto davvero facendo tutte le cose
quindi ho intenzione di andare in quello che le cose
sono qui un po ‘ così tu sei
probabilmente non sta davvero facendo progressi
integrazione abbiamo effettivamente fatto uno studio a
un paio di anni fa, dove siamo andati
fuori e intervistato un gruppo di persone
e hai detto che stai facendo? Sì, okay, andiamo
parla del tuo processo solo il 10% di
la gente potrebbe anche riconoscerti tutto me stesso
avere un server CI devo sai andare CDR
Ho Jenkins ho bambù che siamo
fare CI avendo un prodotto e facendo
integrazione di vapori o due diversi
le cose vanno bene
e quindi ci sono cose che devono essere
fatto qui intendo e sai che torna indietro
ai principi di programmazione estremi è
programmazione di coppie di sviluppo test-driven
è quel genere di cose per farlo
solido un paio di quelle pratiche
chiunque porti frutta cruda, spero di no
non buttarmelo addosso, vado
in alcune cose supponenti ora se
stai facendo feature branching che sei
non fare integrazione continua okay
potresti fare davvero un buon automatismo
costruire e testare e questo potrebbe funzionare alla grande
per te e ok va bene, ma
integrazione continua significa costruire
fuori dal tronco principale di sviluppo del tronco
sviluppo cosa hai ed è
importante per contenere la sua integrazione
vedrai perché stiamo per essere implementati
metodologie, ma io voglio entrare
questo un po ‘ perché questo è
controverso quindi qui abbiamo professore
prugna e reverendo verde se professore
la prugna sta lavorando al suo codice e lei lo è
facendo alcune cose e stiamo facendo
correzioni di bug su mainline e stai portando
quelli dentro e questo sta funzionando bene
il reverendo è laggiù e lui è lì
lavorando sulle sue cose , lo porta dentro
richieste di bug e tutto è buono e
poi alla fine uno di loro finisce
prima e così la fine del professore finisce
si ricongiunge al master principale della linea principale
qualunque cosa tu voglia chiamarlo
va tutto bene, quindi Reverend Green
non si tira e abbiamo avuto questo enorme
unire conflitto mi piace scherzare al
termine tecnico per quella grande palla di
fango ora sappiamo tutti che ci sono davvero
buoni strumenti di unione di conflitto là fuori mi
può trovare le differenze di testo e dire
scegli questo e quello che conosci
ecc. ma non guardano intenzionati
non dire questo è il motivo per cui il codice è cambiato
o sai che quella persona è americana così
hanno usato i piedi e da quella persona
Europa quindi usano i metri o cosa hanno
non parlano di intenti e così
crediamo fermamente nel modo giusto di fare
questo sta spingendo e tirando a
maestro, almeno una volta al giorno in modo da lavorare su
il mio codice l’ ho commesso per master principale
linea di nuovo tutto ciò che si desidera chiamare
l’integrazione continua include
il server di consegna sta guardando che no
guardando tutti i rami futuri
necessariamente potrebbe ma i rami
sì si potrebbe lavorare su di esso per pochi
settimane ma stai spingendo le tue modifiche
padroneggia ogni singolo giorno che abbiamo rubato
questo termine molto ma Benjy è stata la prima volta
L’ho visto che potrebbe essere stato usato ulteriormente
così quando ognuno ha il proprio ramo
nel loro lavoro e cosa-abbiamo-noi noi
chiama quell’isolamento continuo così tu
può eseguire tutti i test ma è davvero
integrazione non continua perché il
integrazione di parole significa codice integrato
quindi da un punto di vista dell’IC ciò che realmente
voglio incoraggiarti a fare è impegnarsi
più spesso intendo almeno una volta a
giorno e più e più veloce è meglio di te
sappi se io se mi sto impegnando costantemente
e ci sono cose che dobbiamo fare nel
codice per farlo in modo che possiamo farlo e
i test falliscono molto meno
codice da esaminare per scoprire perché ha fallito
qualcosa ha sentito farlo più spesso
di nuovo io abbiamo sottolineato basati tronco
sviluppo molto ho dimenticato di mettere il
collegatevi lassù ma se andate al bagagliaio
sviluppo basato com
così non abbiamo creato ma va
molto in un sacco di dettagli sul perché e
come puoi farlo e alcuni dei
benefici e strategie ecc. è da a
signore che lavorava per noi
ma ha fatto questo con molto grande
progetti e funziona davvero e poi
automatizzare tutte le cose così con quello e
ha detto che si muove velocemente, ma avrò
domande alla fine dal modo in cui io
menzionato all’inizio che c’è
un sacco di cose che la gente dice oh noi
non lo consideriamo dobbiamo solo dare
a questa squadra oa quella squadra in cui vivo
Seattle negli Stati Uniti e io ero
a un cliente e ho detto sì, distribuiamo
una volta alla settimana e questo è abbastanza veloce per
noi come freddo quindi se dovuto cambiare in
il tuo codice oggi sarebbe una settimana per
ottenere una buona produzione sapere che c’è un
sei mesi di tempra, quindi loro
schierato una volta a settimana ma era dev
completa da sei mesi fa, quindi non lo fa
Conta abbastanza su chi potrebbe ottenere il codice
produzione oggi se dovessi essere fantastico
questo è il modo in cui va bene
Mary Poppendieck hai iniziato a farlo
domanda che sta facendo colloqui magici cinque
o dieci anni fa e nessuno poteva farlo
in un giorno tutti hanno avuto reclute che chiudo
e cosa hai così sul tuo continuo
server di consegna dei team di integrazione
ci sono alcuni test che potresti non essere
facendo ciò si potrebbe voler considerare così
prima di tutto è la sicurezza quante persone fanno
test di sicurezza che fanno parte di loro
automazione in CI CD sì, solo cinque
forse per cento c’è un sacco di cose
le cose che puoi fare ora non mi capiscono
sbagliato c’è che ho un amico Jason che
siede da solo in una stanza buia e fa penna
test e non si vuole sostituire
Jason è davvero molto bravo
questo, ma ci sono un sacco di cose che si
può automatizzare c’è in realtà pre-commit
cose c’è un prodotto open source I
Penso che si chiami talismano e lo farò
pubblicare tutti i riferimenti a proposito
che gli sviluppatori pianificano da soli
macchina e puoi fare commit ma quando
fai un po ‘di spintone , corre talismano
contro di esso e se hai una chiave Amazon
o di quella roba lì non è
essere spinto perché se qualcosa
tocca Github che hai fatto quella chiave
da sostituire se è lì per a
millisecondo hai finito e quindi prova
quella
mettere gli sviluppatori perché errori
capita oops è andato a uno troppo dispiaciuto
quindi il tipo Sona è un’azienda che funziona
Maven centrale quindi se c’è qualche Java
sviluppatori che usano Maven e il tuo
progetto hanno fatto uno studio che il più
delle persone che utilizzano Maven così la gente
usare un materiale java open source era 106
componenti in media 24 di loro avevano
vulnerabilità conosciute che erano state
ma quando installazione maven fissi essi
detto prendi questa versione di libreria 2 e ottieni
quella versione di libreria 3 e nel frattempo
libreria versione 12 è stata fuori per
anni ma loro non lo sanno e così io
significa che sai cos’è quasi il 20 22
% 20% è spaventoso Voglio dire che ci sono strumenti
per questi sto cancellando quelli di
Java ma se stai usando Ruby e gem
i file si chiamano break man se lo fai
richiama la richiesta sul prodotto su cui lavoro
github gli strumenti CI che eseguiranno tutti
unit test puoi guardare tutto questo ma
nel frattempo stiamo facendo break man make
certo che non hai usato gemme che sono
che hanno questo problema, quindi puoi farlo
che scusa la formattazione è un po ‘
un po ‘cambiato ma c’è anche molto
strumenti ora che possono fare una base e
possono fare iniezioni successive in
scripting cross-site e tutto il resto
automatizzato questi strumenti non è aperto
quelli di origine non lo sono gli strumenti commerciali
quello costoso dipende dalla tua scala
definizione di costosi questi sono tutti
cose che dovrebbero essere nella tua pipeline
va bene così ogni codice commette diventa sicuro
testato qualcuno che esegua test delle prestazioni
nella loro pipeline ancora meno di
sicurezza sì Amazon ha fatto uno studio e
Amazon ha 300.000 dipendenti in questo momento
stanno per colpire una capitalizzazione di mercato con a
trilioni di dollari quindi sono un po ‘buoni
a quello che fanno ma hanno capito
quel mezzo secondo in tempo di risposta
fa un costo del 50% del business così è
il sito si sa che rallenta
molte persone se ne vanno e andranno a comprarlo
altrove
le prestazioni sono enormi per il tuo business
il successo lo prova
questi saranno davvero rudimentali
per chiunque abbia fatto qualsiasi tipo di
test delle prestazioni ma voglio andare
alcuni di loro sono molto veloci perché
alcuni di questi sono più facili da fare su a
pipeline rispetto ad altri quindi caricare test è
proprio quello che sai, sai cosa puoi
ho questo molti clienti che faccio l’accesso
cosa è successo sai che guardi la CPU
la percentuale è carina, è facile
lo stress test è un po ‘più difficile
lo stress test è fingere un
app basata sul web solo perché fingere di essere noi
avere la nostra app e faccio dieci clienti 20 50
100 200 300 500 crash ok il mio stress test
Dice che posso fare fino a 550 quindi se sto andando
per lanciare un nuovo prodotto a novembre è
nella parte occidentale del mondo I
probabilmente è necessario saperlo e avere il
la pianificazione pasady è pronta per questo
tutto ciò che può essere automatizzato non ho mai
visto questo in una conduttura al di fuori di
il pensiero funziona impregnare prova eseguire qualcosa
per due o tre giorni e vedere se c’è
una perdita di memoria prova questo tipo di cose
ok ora se stai facendo continuo
distribuzione che è definita come impegno
codice un sacco di automatizzato rigido
corre e se tutto passa va a
produzione quindi probabilmente non vuoi
fare un test di immersione di tre giorni okay, ma se
stai facendo una consegna continua che
è il mio codice può essere distribuito in qualsiasi momento
e un umano fa la scelta va bene se
sei un prodotto on-premise un cellulare
prodotto qualcosa di simile che non siamo
spingendolo ogni giorno puoi mettere il sapone
prova che non ha intenzione di immergere test ogni
cambia perché sta per fare un cambiamento
si unirà a tre giorni di test
e poi il prossimo gruppo di cambiamenti
sai, ecc. non vuoi farlo
prima-prima volta che vuoi afferrare tutto
le cose per l’ultima ma tu
può farlo in una pipeline e poi spike
il test di nuovo dipende dal tuo settore
questo potrebbe non essere importante ma ne hai dieci
clienti che conosci, ne fai mille
e guarda cosa succede ora ecco il
cosa diciamo tutti quelli di noi che ti fanno
conoscere i discorsi di consegna continua DevOps
feedback rapido l’intero punto di questo è
fallire velocemente per ottenere un feedback molto molto
veloce e così le persone sono come noi ci limitiamo a testare
ik giorni e questo richiede almeno
ore e ho intenzione di rallentare il tutto
Pipeline giù sai che non posso farlo
Non ho intenzione di dirti che posso averlo
produzione in Kotov si sa in codice
in produzione oggi non se ho un
test di tre giorni o ammollo che mi dispiace
dovresti essere in grado di fare queste cose dentro
parallelo okay quindi faccio qualche test unitario
che costruisce la mia unità di base e dispiegabile
quindi su ambienti separati
automaticamente metterlo sul funzionale
prova il carico prova il picco che è il
cose veloci e io non puoi vedere il
le frecce molto bene ma sai quelle sono
dicendo che questi tre devono passare tutti
o i miei schieramenti di stadiazione non stanno andando a
corri ok ma lo scopo di una messa in scena
la distribuzione è di testare la distribuzione su
produzione come hardware quindi se lo sei
distribuire a Solaris in un cluster usando
Oracle quindi il tuo ambiente di staging
deve essere Solaris in un cluster usando
Oracle potrebbe essere solo tre server
invece di mille ma è necessario
sembra lo stesso posso dirti che se
quel lavoro lo aveva fatto su un progetto I
non nomineremo nel 2006 il continuo
il server di consegna sarebbe ancora prenotato
mi scusi non esisterebbe che eravamo
costruire un progetto Java tutto il
gli sviluppatori non avevano laptop Windows
prendi le macchine Solaris che erano le
ultimo obiettivo di schieramento fino alle sei
mesi in hanno ottenuto le macchine schierate
il software non ha funzionato , non intendo
aveva problemi di distribuzione che non poteva
inizia scopre che hanno usato un modo per
accedere al file system che NFS e
Solaris non ha giocato bene e quindi se
avevano avuto un server di staging con
Solaris su di esso avrebbe salvato
letteralmente vale la pena di rielaborare ora questo
è una prova semplicistica la nostra visione semplicistica
di questo può diventare piuttosto complicato
quello è uno screenshot di un vero e proprio
pipeline sai che c’è otto fonte
codice che riposa un numero qualsiasi di altri
oleodotti che hanno dipendenze in
tra loro questo particolare è un
prodotto open source e così c’è
certe cose che facciamo su ogni tiro
richiesta, ma ci sono altre cose che
solo noi controlliamo e hey aggiorneremo il
test funzionali perché quelli sono
più difficile da aggiornare e abbiamo capito e così se
fai un PR per questo prodotto che puoi
attestare il passaggio o prendiamo andare via
ma se quelli passano allora e solo allora
va oltre e alla fine lo fa
ottiene il test funzionale se non lo fanno
passeremo a correggerli ma lo facciamo
perché in un repository di codice sorgente separato
usando materiali separati ma questo è tutto
un unico prodotto una cosa divertente su questo è
se lo zoom alla fine è davvero
importante credo di lasciare che la tua squadra
decidere che cosa è la cosa migliore da fare per
li dal punto di vista del rischio questo
un particolare progetto non lo so 12
o 15 mila test automatici e così se
abbiamo una cosa davvero cattiva
si presenta lì
abbiamo segnalato e loggato come
tempo necessario per eseguire il test funzionale
e si vede lì che questo è successo
più a lungo in modo che sappiano che facciamo il grande
test delle prestazioni dopo la produzione ok
quella prova costò seimila dollari a
corri perché sta usando un sacco di
come macchine Amazon che funzionano per molto
molto tempo in ecc e quindi questo prodotto
rilascia una volta al mese è on-prem
prodotto così più di quello non sarebbe
non sarebbe accettabile siamo stati
guardando i grafici di quanto tempo il
test funzionali siamo carini
fiducioso nella prestazione e così noi
esegui quel test solo una volta al mese
il giusto profilo di rischio per questo va bene se
sei in competizione con Amazon che non lo è
il giusto profilo di rischio ma dovresti esserlo
in grado di decidere e consiglio vivamente
lasci che la tua squadra decida qual è il
il meglio per la loro app mobile è diverso
requisiti di un’app CRM interna
per esempio anche non aver paura di fare
piccole cose nascoste va bene così bene
ci dicono i controlli di sicurezza che ho citato
sicurezza già un po ‘ma ancora
questo è un vero prodotto open source
è in fase di costruzione se si esegue il commit di codice
costruisce Linux e Windows e mentre
sta succedendo che stiamo facendo funzionare l’uomo delle rotture
per vedere se ci metti qualche gemma lì dentro
stanno andando a causare no c’è più grande
test di sicurezza più tardi, ma questo è
qualcosa che per la nostra architettura noi
potrebbe fare rapidamente proprio all’inizio
quindi pensa a cose come quelle che sono
le cose che puoi fare sono solo
un passaggio senza pass se si rompe questo sapere
non passerai
a destra al primo sapete che c’è, se si
guarda come il libro di consegna degli esami o
blog o qualsiasi altra cosa dicono unità
prova poi test funzionali quindi bla bla
bla bla che il primo stadio ha un tutto
un mucchio di test funzionali al selenio
sono veloci ci dicono quello di cui abbiamo bisogno
per sapere cosa diamine
metterli nella prima fase non lo fai
devi farlo nell’ordine del libro
o qualunque blog o cosa ti dica
per fare ordine ti dico di farlo farlo dentro
qualunque ordine tu voglia, così ho parlato
sullo sviluppo basato sul tronco che conosci
distribuire mettendo tutto il codice in
base di codice tutto il tempo ma ho anche detto
devi essere in grado di schierare in questo momento
bene se ho una caratteristica che è la metà
fatto bene come faccio a farlo non posso
distribuire una funzione a metà
ci sono molti modi per farlo e
per fortuna questi stanno diventando sempre di più
Comune
quindi non penso che molto di ciò stia andando
essere un grande shock, quindi prima voglio
per distinguere tra schierare e
rilasciare sono due cose diverse
va bene schierare significa mettere il software
i server o sull’App Store o
qualunque versione significa fare il software
la funzione disponibile per gli utenti o
i clienti posso avere un software che è
distribuito con funzionalità disattivate e così via
è schierato ma non è rilasciato okay
e poi posso dire su un grande vacanza ho
dire offerto per qualunque motivo io voglia
per annunciare una cosa il 10 giugno che va a
Posso avere il software distribuito settimane
fa, ma qualcuno potrebbe entrare e girarlo
e ora con un grande annuncio
credimi, la Apple non si schiera
il loro nuovo negozio quando rilasciano un
iPhone è tutto pronto per andare a lanciare a
router uno dei modi più comuni di fare
questo è importante se lo fai
cose come lo sviluppo basato sul tronco è un
il concetto chiamato funzione alterna ed è
interessante perché se lo sei se lo sei
annotare gli URL o scattare foto
ci sono diverse diapositive su questo ma il
L’URL cambia perché viene da aa
blog che Martin Fowler ha fatto nel 2010 e
fondamentalmente quello che dice è che sto andando a
lavorare su una nuova funzione la prima cosa che ho
fare è creare un file di configurazione che lo dice
sputa il sondaggio dell’animale domestico vero o falso e poi
nel mio codice dico se è vero ecco il
roba va bene così se io se il mio file di configurazione
dice fuori e distribuisco quel codice animale domestico
il sondaggio non viene visualizzato se è su di esso
si accende in modo che possa essere in esecuzione in CI
Posso non avere parametri o comunque
è il tuo CI
sistema che dice va bene per questo impostarlo
accendi e spegni questa serie di test
potrebbe non voler fare tutti loro, ma io sono
controllando il codice ogni volta che questo
può ottenere un ragazzo molto avanzato con il nome di
Pete Hodgson ha fatto un articolo di follow-up
quest’anno o l’anno scorso abbiamo parlato
su alcuni dei modi in cui usiamo
funzione alterna su progetti reali e noi
fai passare i router in modo che i database lo faranno
fare cose su cui prendono decisioni basate
geografia o browser letterale o altro
così puoi diventare incredibilmente dinamico con
questi e diventano non solo un modo per
essere in grado di fare sviluppo basato su tronco
ma anche un modo per testare la tua attività
Posso attivare questa funzione per alcuni
percentuale dei miei clienti e vedere se
le vendite salgono o scendono se salgono
lavorando su feature mentre scendo mi giro
fuori sai che vogliamo fare un pareggio
cosa per il business e questo è uno
Il modo per farlo è molto diverso
le cose che usiamo alterna per carina
comunemente così sembra dispiaciuto
le dinamiche e la longevità sono così basse
lasciato c’è il rilascio commuta così
questi sono quelli di cui sto parlando siamo
avere una funzione che non è ancora stata eseguita e
quando è finito , vogliamo accenderlo
vedere se fa aumentare o diminuire le vendite
le vendite vanno giù, spegniamo quelle no
vivere a lungo e sono molto
dinamico ora voglio essere chiaro qui
questo è il debito tecnica costa di più
attuare una funzione di accendere un
funzioni limitanti alterna solo al fare
la funzione senza di loro e tu a questo
punto una volta che decidi, sì, sto vendendo
più widget in cui dovresti andare e
refactoring e spostiamo quel codice e così via
quella funzione non è attiva
c’è più ma ti permette di
davvero prova le tue ipotesi e così via
avanti e menzionerò solo di nuovo la notte
capitale che tornerò alle notifiche
ci sono alcuni esperimenti che sono molto
dinamico così di nuovo su cui si possono basare
geografia questo tipo di cose che voglio
fare un esperimento e vedere come questo
gioca nei Paesi Bassi contro la Germania e
fai metriche ed è tutto nel codice
potrebbero esserci permessi di attivazione o
le operazioni si alternano
quindi tutti sono Netflix grande qui io
scusiamo Dovrei conoscere la risposta a
questo e per sempre lo raccolgo è a
Netflix streaming video cosa hai
hanno levette dinamiche per
degrado delle prestazioni quindi se ottengono a
prestazione ancora qualcosa succede
spegneranno automaticamente le funzionalità
una delle cose che fa il sistema è
quando si accede in esso raccomanda hey you
potrebbe piacere questa raccomandazione del film
i motori la prima cosa che ti spegne
può accedere e trasmettere la cosa che è
già nella tua playlist ma non lo è
andando a fare il calcolo richiesto per
raccomandare qualcosa e lo fanno
automaticamente basato sul carico sul
sistema in modo da poter fare questo tipo di
cose ed è solo un interruttore che c’è
anche alcune autorizzazioni le cose lì così
il carico sul sistema è 96 nessuno può
anche accedendo a flip l’interruttore di autorizzazione
sono ammessi solo persone provenienti da Amsterdam
per accedere ora puoi entrare intendo
ci sono tutti i tipi di cose che puoi fare
per queste cose sono così le levette
nel codice se le dichiarazioni se lo fanno se
fuori va bene, dove viene
da questa è tutta un’altra storia, quindi questo è
buono per le funzionalità, ma che dire come
l’architettura cambia per quanto riguarda lo sai
librerie di base o cosa hai lì
un altro concetto e il titolo il nome
il concetto è davvero poco conosciuto
chiamato ramo per astrazione, ma è
non in realtà un ramo quindi l’idea sei tu
avere un componente che si desidera aggiornare
quindi diciamo che è il bene qui prendere uno
che in realtà abbiamo fatto su un progetto noi
avere un progetto che usi Ruby on Rails
era rotaie 2.3 e volevamo
aggiornalo alle rotaie 4 che è un enorme
upgrade sicuramente non puoi farlo
tronco tranne che abbiamo fatto così quello che fai
hai i tuoi consumatori così tuoi
diverse parti dell’applicazione che
stanno parlando con la cosa e tu metti un
strato di astrazione nel mezzo così
invece di parlare direttamente di questa cosa
parlano con questo strato di astrazione
che poi parla alla cosa e al
prima potrebbe essere un ok uno-a-uno
allora puoi aggiungere il nuovo componente in
lì e ora ha nuove funzionalità
qualunque logica per parlare solo il nuovo
la vecchia funzionalità del componente utilizza il vecchio
componente e così puoi farlo nel tempo
fai questo le patate il prodotto che ero
parlare di era nel bel mezzo di
un binario – a Rails per l’ aggiornamento che io
non ci sono degli sviluppatori di Ruby qui dentro
questo è un sacco di cambiamenti irrisolti
proprio nel mezzo di questo quando a
enorme sicurezza che non ricordo era
Heartbleed era uno degli OpenSSL
ne sono usciti enormi che sono riusciti a ottenere
una nuova uscita in pochi minuti perché
hanno aggiornato un file di configurazione
aggiornato la versione di una cella eseguita
attraverso l’intero binario del gasdotto per
è stato spento e non è andato se tu
sono se hai scaricato quel particolare
prodotto e modificare la configurazione e
c’è un file di configurazione che non era
anche un router perché era su Prem
modifica del prodotto sono le configurazioni
fuori come i binari per e riavviato
sarebbe venuto fuori metà della roba era rotta
non è stato fatto ma sarebbe venuto e
così puoi farlo che abbiamo fatto lo stesso di base
cosa per un livello di database sul nostro
diversi prodotti questi sono modi in cui
puoi fare cose dove puoi solo
sposta ciò che devi spostare adesso adesso
Voglio anche incoraggiarti a pensare
sul tuo profilo di rischio va bene così sai
se stai facendo un sito web dove le persone
andando a fare voti su di te lo sai
i ristoranti è un affare importante
ma non succederà davvero niente se
sai che la funzionalità va giù o qualsiasi altra cosa
quindi devi pensare al tuo rischio e
quindi voglio gente questa gente ha noi
sappi questo, ma fallo
va bene così tempo medio tra i fallimenti
significa che voglio ottimizzare per renderlo così io
quasi mai fallire significa tempo di recupero
significa che voglio ottimizzare in modo che quando io
non fallire se riesco a recuperare molto
rapidamente persone che sono veramente torinesi
consegna continua quasi mai
rollback perché le modifiche sono così
piccolo che posso rotolare in avanti così faccio a
distribuzione ho un problema lo aggiusto
che potrebbe significare in realtà fissarsi in esso
potrebbe prendere quel codice ma poi io
fare una nuova versione, quindi ho rilasciato la versione
12 fallisce Non torno a lievitare I
distribuire 13 potrebbe essere identico al codice
11 ma è un roll forward quindi ora ho
la storia che ho il test è fallito io
vedere cosa è successo come una pista di controllo
i revisori apprezzano questo tipo di cose
ora se stai lavorando su un aereo
sistemi come qualcuno che vola bene oltre a
per centinaia di migliaia di miglia all’anno, per favore
tempo medio tra l’errore va bene se lo fai
nelle recensioni dei ristoranti intanto
Il recupero è probabilmente ok così è
qualcosa da tenere a mente c’è anche a
tutta una serie di modelli di implementazione che
possiamo fare per questo e ancora so che lo è
veramente veloce ma cose a cui puoi guardare
fai in modo che nessuno abbia mai sentito parlare di canarino
Rilasciando freddo così questo nessuno lo farebbe
alzare la mano tre o quattro anni fa
ma era già molto popolare
dove si distribuisce un certo numero di sistemi
con i nuovi convertiti il nuovo software lo prova
e assicurarsi che funzioni e se funziona
vai più a destra più persone lo fanno
con lo spiegamento effettivo , quindi vado
per distribuire la nuova versione a cinque
la percentuale dei miei server esegue alcune metriche
eseguire alcuni test vedere una volta che funziona, ecc
e poi magari distribuirlo al resto tu
può anche farlo con le levette delle funzioni così
Potrei schierarli a tutti ma faccio il
canary attraverso alterna è un po ‘
più sicuro un po ‘più facile e dove tu
andare al buio il lancio è interessante
cosa la mia storia di lancio oscura preferita
è Facebook così pochi anni fa Facebook
ha introdotto una nuova funzionalità in cui instant
messaggistica in cui è possibile inviare messaggi e
avanti ai tuoi amici ecc. e hanno avuto un
problema come si carica test 200 milioni
gli utenti si scambiano messaggi l’un l’altro è una specie di
difficile
questo è un test di prestazioni costose
la risposta è che non puoi davvero così hanno ottenuto
a un prodotto minimo vitale e il
funzione era in ogni versione di Facebook
hai già effettuato l’accesso a Facebook
messenger era disponibile da circa un anno
quasi era davvero lì
c’è javascript nel browser che
verrebbe eseguito e invierà un messaggio X
percentuale dei tuoi amici e X
percentuale di loro avrebbe risposto a voi e
così hanno iniziato facendo rotolare in
Silicon Valley ai dipendenti di Facebook e
poi più grande e tutto attraverso passa da
la strada e così alla fine per quasi
tre mesi ogni singolo utente su
Facebook ogni volta che hanno effettuato l’accesso
messaggistica il 30% dei loro amici
o X percento potrei sbagliarmi in
percentuale e alcuni di quelli erano
rispondendo così sono stati testati i carichi
produzione quando emergerebbe un’anomalia
loro lo riavvolgerebbero lo aggiusterebbero loro
fallo di nuovo, lo arrotolano e riparano
lo ha fatto uh e così hanno fatto un enorme
flash e messenger sono fuori e tutti
a livello globale ora ha facebook Messenger e
è stato perfetto funziona per tutti
e un sacco di persone in IT siamo come il
diamine hanno fatto che lo hanno fatto
perché lo hai usato per intero
il tempo è buio, è divertente
uno è relativamente nuovo, quindi tutti
focus mode github right spera di ottenere
probabilmente quello più usato
le funzionalità di Get si fondono se lo sono
facendo lo sviluppo di lease tronco io che se
Di questi tempi non faccio molto codice
devo ammettere, ma quando faccio il primo
la cosa che faccio è ottenere il checkout – essere filiale
nome ma hai appena detto tronco sto andando
per spingerlo indietro al master, ma sto andando
lavorare su una filiale e così quando ho avuto I
andando a fonderlo di nuovo, quindi unisci
è qualcosa che la maggior parte degli sviluppatori
usare molto ma era anche molto male
scritto un’enorme percentuale di github x ‘
le risorse erano dedicate esclusivamente alla fusione
non era affatto efficiente quindi loro
necessario per risolvere il problema ma è anche qualcosa
che molti di noi usano molto e così loro
non possono fare alcun degrado del servizio loro
non posso renderlo così qualcosa che era solito
il lavoro non funziona più che c’è
solo nessuna tolleranza per quello così loro
fatto è che hanno costruito la versione 2.0 o il
biblioteca e c’è un’intera cosa lì
su github engineering comm slash move –
velocemente costruiscono un virtuale diverso
libreria e li hanno eseguiti in parallelo
ora non prendi quella e alcune persone
ottenere questo ogni passaggio è andato attraverso
sia quello che effettivamente è stato fuso è stato il
vecchia biblioteca che cosa faceva la nuova biblioteca
catturare un sacco di metriche e a
un sacco di test e quanto più veloce era
e ha funzionato su questo conflitto e
ha funzionato su quel conflitto loro
in realtà ha trovato un bel po ‘ di margine
casi nel client originale unito
non sapevano esistessero, hanno provato a fondersi
qualcosa con 512 conflitti di fusione parla
su un ramo di lunga vita, ma in ogni caso
e ha funzionato anche sul vecchio client
sebbene ci siano stati 512 conflitti nell’unione
attraversato
si è scoperto che c’era qualcosa in
lì di qualsiasi base di 256 il vecchio
il cliente non prenderebbe il lato strano di Irene
caso, ma il punto è che si tratta di ordini
di grandezza più veloce che stavi usando tutti
se usi Github e quando lo sono
fatto davvero, poi si sono appena capovolti
li sopra e ora il tuo amico ha preso il nuovo
uno e così ancora è qualcosa che tu
avere un business che è il nucleo di qualcuno
qualcuno ha bisogno di questo per funzionare ogni volta
lo gestiscono quindi non un profilo ad alto rischio
puoi usare anche cose come questa
voglio incoraggiarti quando stai facendo
tutte queste cose per creare utili
feedback loop va bene così una pipeline tutto
queste cose il punto è dare il
squadra il feedback di cui hanno bisogno per fare il loro
lavoro questo test fallito questo test no
il business è salito perché lo sai
ecc. che richiede registrazione utile ok
l’acquisto fallito non è utile sei tu
conoscere l’eccezione dalla carta di credito
gestore
sai che è cetera quindi sì, ne ho visto uno
dei precedenti discorsi parlavano di te
conoscere la giusta quantità di registrazione ecc
che deve essere utile
la registrazione non ha paura di eseguirne alcuni
i tuoi test in produzione se sei quello
tipo di ambiente in cui puoi fare
che se sei un’app web o SAS o
sai cosa hai dopo aver fatto il tuo
l’implementazione esegue alcuni dei tuoi aspetti funzionali
test che sai non fare attenzione a creare
dati e tu sai quel tipo di cose ma
ci sono un sacco di cose che puoi
prova e produzione che tu solo tu
sapere lancio scuro che basta anche
il miglior ambiente di staging che hai appena
davvero non posso duplicare il mondo reale e così via
fallo alla pari con il tempo spiacente
sia per un clicker nuovo che per un vecchio click ok
alla pari con la registrazione assicuratevi anche il vostro
gli avvisi sono utili quindi disegno un forte
differenziale tra le operazioni di dev che io
credo sia la cultura, non penso che tu possa
DevOps e consegna continua quali
sono le pratiche tecniche che fai io
spesso dire programmazione estremo è troppo
agile come DevOps è pulire le tue partenze
controller suo DevOps mi dispiace parte del
tutta la cultura dei ceppi morti sei tu che ti conosci
costruiscilo corri
così ora persone che non erano abituate a ottenere
paginato alle 3:00 del mattino o ricevendo
paginato alle 3:00 del mattino
se ricevo il paging alle 3:00 del mattino
dice il 5% dei miei cluster di produzione verso il basso
ma le prestazioni sono ancora dov’è
dovrebbe essere quella è una pagina inutile
Non ho intenzione di andare a fare nulla al riguardo
giusto, quindi mettiamo la logica nella tua
sistema di avviso anche che dice cosa sono
le cose che ho effettivamente bisogno di svegliare
qualcuno per e una delle cose
che non sono utile il rischio di capitale notturno
gestione giusta così ho menzionato quella
delle cose su funzionalità alterna è
che è un debito tecnologico e devi andare
pulirli non hanno capitale notturno
è una società commerciale che ha fatto un numero basso
di scambi di alto valore così normalmente quando
parli con un sistema commerciale se
qualcuno sta facendo trading su NASDAQ o sul
Borsa di Londra o altro
sono tutti su quante transazioni
al secondo posso fare loro non importava
okay, la loro cosa era che stiamo facendo un basso
numero di transazioni relativamente
parlando ma sono un grande valore così
hanno deciso di costruire una funzione
guarderei le azioni che erano
fare trading e dire se cambia X
percentuale di tempo avvisare qualcuno
possono fare ho bisogno di comprare te stesso fare
una decisione basata sull’informazione
problema era di sei anni fa hanno usato il
stesso nome di commutazione per una funzione che
eseguirebbe automaticamente alcuni ordini
hanno distribuito il nuovo software a sette
dalle loro otto macchine l’ottavo
uno ha iniziato a fare trading con azioni reali per 4 milioni
esecuzione 154 scorte 3 o 97 cose in
il tempo che ho impiegato per fare questo parlare come
molti soldi pensi che abbiano perso
qualcuno si è chiesto che cosa quel numero
è tutto il tempo in 45 minuti
capitale della notte ha perso quattrocento e
quaranta milioni di dollari la loro capitalizzazione di mercato
se ne andarono quattrocento altre persone vennero
dentro e ha preso l’azienda sopra se avessero
un test automatico che ha testato alterna
mai sarebbe successo okay
avevano un profilo di rischio che significava tutto
i loro test di sicurezza tutti i loro interruttori
prova tutto il necessario per essere eseguito ogni
singola volta e non l’hanno fatto e a
sacco di gente ha perso un sacco di
soldi uno dei keynotes per dire era
riguardo al trascinare i veicoli con qualunque denaro
è cattivo qualcuno che corre su un albero
perché l’auto non si è svolta è peggio
okay, il codice uccide in questi giorni che dobbiamo fare
queste cose riassumono se non hai
un sistema che puoi andare a colpire
letteralmente in questo momento non continuo
consegna ancora non significa in un viaggio
va bene
ci sono assolutamente fondamentali abitudini
Devono averli caratteristica sono i pulsanti
in un modo l’ altro è ecc

Please follow and like us: