Press "Enter" to skip to content

GOTO 2015 • Migrating Applications to the Cloud in a Cost Effective Manner • Andy Bennett


quindi sono e andy bennett sono io sono il
CTO in una società chiamata skipjack e
siamo un ref le di recente finanziati
compagnia l’anno scorso e stiamo cercando di
utilizzare tecniche guidate di apprendimento automatico
per capire come distribuire
carichi di lavoro esistenti nel cloud
servizi quindi ho intenzione di dirti cosa
cosa facciamo e cosa stiamo facendo
il modo in cui il modo in cui stiamo facendo e il tipo di
alcune delle conoscenze che siamo venuti
attraverso mentre lo stiamo facendo lo sono
sta per diventare abbastanza tecnico
parla con speranza non ti sentirai come me
Ti ho beccato e non è così
l’intenzione quindi il problema di fondo
che stiamo risolvendo è che si scopre
Quella grande una grande impresa ha pari
anche molto più piccole aziende in questi giorni
hanno un sacco di app che loro erano
scrivono un’app per qualcosa di commit
e poi non va mai via così gente
tendono anche a DevOps
il movimento sta facendo molta trazione e
c’è ancora un po ‘di questo atteggiamento
dove gli sviluppatori costruiranno un’app
e poi lo butteranno contro il muro
alle operazioni e poi resterà dentro
operazioni per un tempo molto lungo la messaggistica unificata
spesso il carico di lavoro cambia nel tempo
e le operazioni fondamentalmente finiscono con molto
app o app scarsamente comprese
non capisco molto bene e app che
sono tipo di fare cose che loro
non erano destinati a fare quando loro
quando furono consegnati per la prima volta e
nonostante tutto ciò di cui hanno bisogno
tipo di flessibilità per implementare questa app
nell’ambiente giusto e così loro
sarebbe ancora efficace nel loro lavoro
anche se anche se non ce l’hanno
gli sviluppatori a disposizione che hanno creato l’app
e per capire l’app in modo che tu sappia
hanno bisogno di questa flessibilità per controllare
la spesa come il costo del costo di
gestire l’infrastruttura e il vasto
la maggior parte delle cose che stanno cercando
dopo è così le app legacy
caduto in apparenza e poi loro
scomparire ad un ritmo più lento rispetto al nuovo
le app vengono visualizzate in modo che risultino
quel qualsiasi punto nel tempo qualunque
tecnologia stai usando il vasto
la maggior parte di ciò che hai è più vecchio
roba e materiale legacy che devi
continua a correre per qualche motivo così loro
devo come ho detto che devono ancora UM
essere efficaci nel loro lavoro e si trasforma
fuori che il modo migliore per farlo è quello di
la sovraproduzione per la visione è il
la norma costa un po ‘più di soldi
ma permette loro di permettere loro di ottenere
ha fatto in fretta e passare a quello successivo
cosa in modo ops ops reparti in
generalmente tipo di vogliono essere agili
quindi alle cose a cui stiamo provando
aiutarli a essere è più agile e più
magro, non ho intenzione di coprire nessuno
roba robusta questo pomeriggio ma loro sono
armati sono interessati ad essere agili
e quello che vogliono fare è ottenere il loro
app in cui sono stati inviati
produzione rapidamente senza manualmente
accordandoli senza molto lavoro manuale
e automatizzando il più possibile e
l’altra cosa che aiuta a voler essere è
che vogliono essere magri così in generale
i reparti operativi sono ancora considerati
come centro di costo nel business e
sono una specie di parte necessaria del
affari ma dopo non sono spesso
contribuendo al nucleo il nucleo
prodotto del business e il nucleo
valore aziendale che l’azienda è
il prodotto sta offrendo così così loro vogliono
ridurre i costi e mantenere i loro costi
giù il più possibile così siamo stati
stiamo provando ad applicare qualche macchina
imparando in questo in questo settore e nel nostro
i clienti tendono ad avere un sacco di Java
carichi di lavoro nella JVM alcune reti alimentari
carichi nel Common Language Runtime
stanno distribuendo su Windows e Linux
e hanno una varietà di app
server e in contenitori e servlet
e questo genere di cose che sono
usando così parlerò sto andando a
illustrare cosa stiamo facendo con il
esempio di un piccolo micro servizio che
per la distribuzione di Amazon ec2
esempio e quello che faremo è prenderemo
il tuo micro servizio e lo faremo
inviare un carico di lavoro di prova ad esso e
caratterizzalo per le prestazioni e poi
lavoreremo su quanto costa
eseguire su istanze cloud di dimensioni diverse
quindi qui signore è il tipo di output che
potremmo produrre e
ciascuno di questi grafici a barre è 11
diverso tipo di istanza tipo forse un
Amazon ec2 come un tè troppo piccolo o m3
grande o come uno di base o forse
anche un cloud privato in vcenter o
qualcosa e le barre più scure sono
ciò su cui abbiamo eseguito il benchmarking della tua app
quell’istanza con il tuo con il tuo test
caricare l’altra linea base come te
l’hai fornito e poi le barre blu
per di più sono le prestazioni extra
che siamo riusciti a uscire dalla tua app
dopo che l’abbiamo sintonizzato con con
il nostro software, quindi quello che facciamo è che siamo
scegliendo di fare una scatola nera
ottimizzazione quindi non ne sappiamo molto
il tuo codice sorgente o il tuo carico di lavoro
non so che non cambiamo nulla
all’interno della tua app ma a cosa stiamo provando
fare è offrire le impostazioni di ottimizzazione per
esempio la JVM o il SO o il
piattaforma in qualche modo e quindi variiamo
questi in modi diversi basati sul
feedback dal test e anche noi variiamo
loro basati su ciò che sappiamo
tipo diverso come diversi tipi di
l’app risponde a diverse quantità di
risorse in diverse aree così il
la barra blu è ciò che accade quando applichiamo
le migliori impostazioni che abbiamo trovato su questo
particolare tipo di istanza e quindi è possibile
vedi questo questo ragazzo qui questo ragazzo è un
è un t2 micros o un t2 t2 medio
in esecuzione in Amazon e stai ricevendo
approssimativamente una valutazione del rendimento di
432 che è una specie di arbitrario
misura di relativo a tutti gli altri in
quello in quel test quindi non c’è
unità particolari per questo, ma è gentile
di transazioni al secondo qualunque sia il tuo
la transazione capita di essere e che costa
se ottieni un prezzo di istanza di riserva
per Amazon uno in una di queste istanze
ti costerà circa trecento e
ventisei dollari all’anno per eseguire il controllo
il prezzo questo pomeriggio da localizzare
il loro prezzo attuale ed è
circa questo dopo l’ottimizzazione è
all’incirca alla stessa altezza di questo
barra che è in realtà un mezzo AWS m3
quale costi costa circa venticinque
Percentuale in più da eseguire e ottieni solo un
Aumento del 15% delle prestazioni effettive
quindi dipende da dove la tua performance
l’obiettivo è che potresti essere in grado di farlo
sposta quel carico di lavoro da un media m3
in un mezzo T2 e ancora
soddisfare tutti i tuoi saggi e requisiti
e se puoi farlo senza veramente
qualsiasi esborso di sforzi da parte di
squadra ops poi poi devi vincere
l’idea con il micro servizio è questa
puoi distribuire molte di queste in modo che tu possa
rifletti sul risparmio del venticinque percento
attraverso tutte le distribuzioni
di quel particolare microservizio nel
cloud quindi quello che facciamo è che facciamo questi test
per tutti i diversi tipi di istanza
e al fine di ottenere un ottimo
lettura delle prestazioni per ognuno di
questi grafici a barre di ghiaia che stiamo andando a
fai una serie di una serie di diversi
test in condizioni diverse su quello
istanza particolare e quindi questo è ciò
una ricerca per uno di quegli sguardi barre
come ognuna di queste linee rosse è a
test che è attualmente in esecuzione ed è
andando ad avere una metrica delle prestazioni
a seconda di quanto è alta la barra e
stiamo andando a variare le cose come
forse le impostazioni del garbage collector o
o forse forse il modo in cui lo stack TCP è
configurato nel kernel o qualcosa del genere
così, quindi distribuiamo i test che facciamo
tutto questo tutte le impostazioni e poi noi
fare la corsa migliore con la cosa migliore
vedere è la migliore configurazione ottimale
per quella particolare piattaforma ora
scopre che è davvero difficile
fai questo questo um o automaticamente che ho
aveva un sacco di conversazioni con un sacco di
i clienti e sono piuttosto eccitati
su questo quando vai e parla con a
lo sviluppatore di questo ne ha meno
eccitati, loro te lo diranno
bene sai che disegno il mio algoritmo e
So esattamente quanta memoria usa così io
sapere come scegliere le dimensioni dell’heap nel
sugo aviatori e conosco il loro accesso
modello e mi piace e quindi capisco come
interagisce con il garbage collector
e loro credono di avere un
davvero buona comprensione di loro
carico di lavoro e penso che probabilmente sia vero
nel caso in cui l’hanno fatto hanno progettato
il loro carico di lavoro e inviarlo a op, quindi cosa
tende ad accadere dopo il dopo il lavoro
quello che va in produzione è quello loro
il carico di lavoro cambia nel tempo forse
cresce nel tempo forse i visitatori sono
facendo cose leggermente diverse con esso
nel tempo e così come la vita
dell’app continua nel modo in cui è stata utilizzata
quando è
prima schierato in questa quantità di
risorse quando viene distribuito per la prima volta
in realtà abbastanza diverso da cosa
può finire per usare nel tempo e questo
risulta che in realtà anche se loro
avere una buona sensazione per il parametro
esca è in realtà enorme avremo questo è
solo un esempio possiamo essere consumati di più
dei parametri jvm c’è circa 18
o 20 di loro forse come tom cat o
websphere o qualcosa ha una manciata di
parametri che stai per provare e
ti garantisco che stai andando a sintonizzare come
beh forse il tuo sottostante operativo
il sistema ha le dimensioni della coda TCP e e
scambia spazio e cpu e IO diversi
programmatori che puoi provare
fuori pure e si scopre se lavori
fuori quante diverse configurazioni
permutazioni ci sono poi c’è persino
con quelli c’è c’è solo 28
diverse dimensioni lì e là
c’è un sacco di possibilità
esplorare questo spazio e anche se questo è
l’ esempio della caratterizzazione del
prestazioni su uno solo dei tipi di
esempio ad Amazon per esempio qui
stiamo facendo un centinaio di test e
anche quello non sta andando a possibilmente coprire
tutto o quasi vicino a quello mio
ragazzo di marketing mi dice che possiamo fare noi possiamo
esplorare un quintilione di quintilioni
diverse possibilità e quindi è solo
non è ragionevole provarli tutti e
non sembra che non lo sia
conveniente in termini di tempo o denaro da fare
per farlo, quindi come lo facciamo?
quindi se tu sto andando a fare un
esempio qui con solo un paio di
parametri se hai un parametro due
parametri con due valori ciascuno o bene
hai due parametri con a
gamma di led chand che si desidera campionare
solo due diversi valori di ciascuno di
loro e quindi coinvolge quattro test e
se vuoi fare altre due prove se tu
vuoi provare altri due parametri per
i parametri sono altri due valori per
parametro 1 si finisce con altri quattro
test che devi fare e ciascuno a
ogni volta che aggiungi una dimensione sei tu
tipo di avere questa esplosione di
combinazioni e quindi ce ne sono due
le cose che facciamo una è che possiamo prendere
abbastanza granulosità grossolana
l’intero spazio di ricerca
e un altro è che possiamo limitare
quello ulteriormente per tipo di intelligenza
scegliendo i punti di intersezione tra
le diverse dimensioni in modo che possiamo
elaborare una dimensione contro un’altra
come variabile indipendente e poi lavoro
la correlazione tra tutti i
diversi parametri che è possibile impostare così
questo è questo qui si chiama a
Ipercubo latino ed è un po ‘
come l’ otto problema del Queens, no
sapere se qualcuno ha familiarità con gli otto
Problema Queens, ma l’idea è che su a
su una scacchiera devi metterti
otto righe e otto colonne e tu
devo mettere lì otto regine del genere
che nessuno di loro sta attaccando nessuno dei
gli altri e c’è quello che c’è
un sacco di soluzioni diverse per
questo e cosa significa che sono loro
finisci con almeno una regina dentro
ogni riga in ogni colonna in modo da entrare
un’intersezione tra questi due
parametri a quel punto e questo è il
senza altri dati di allenamento
questo è il numero minimo di
parametri che è possibile utilizzare per
tipo di avere un’idea approssimativa della misura
della performance su tutto questo
tutto lo spazio quindi facciamo un sacco di test
su ci proviamo e ci proviamo e limitati a
100 o 200 per ogni tipo di istanza e noi
tracciarli per le prestazioni, quindi lavoriamo
cosa hanno fatto bene sul tuo
sulla tua metrica dei clienti di cosa
stanno provando a fare con loro con
il loro carico di lavoro e poi ci adattiamo a una forma fisica
una curva per cercare di capire come
cambia sull’area che tu
puoi eseguire i test in e
da quello possiamo predire altri
punti e magari eseguire un altro test di coppia
due e un verificare o falsificare ipotesi
abbiamo su come la performance
cambiamenti in alcune aree e in cima a
che poi possiamo applicare qualche collina
algoritmi di arrampicata per provare e massimizzare
la prestazione che si ottiene per
quell’istanza particolare ma si gira
fuori questo non c’è non c’è argento
bullet qui la speranza era che forse
sai se imposti la dimensione dell’heap
massimo forse tutto andrà più veloce
sempre si scopre che non è questo il caso
abbiamo fatto uno dei nostri uno dei nostri
le statistiche hanno fatto qualche regressione
e abbiamo scoperto che per la maggior parte la maggior parte
carichi di lavoro nella maggior parte delle situazioni è possibile
venire con cinque o sei parametri ciascuno
di cui contribuiscono un po ‘lì
forse il dieci o il quindici per cento del a
l’elevazione che puoi dare a
in particolare su un particolare carico di lavoro e
quindi la cattiva notizia è che non lo è
davvero possibile farlo manualmente
è qualcosa che devi automatizzare
e la buona notizia è che puoi farlo tu
in realtà può automatizzarlo così anche
scopre che impostare le cose per il
i grandi numeri non sempre ti danno il
il miglior risultato come non è che c’è un?
numero di risultati controintuitivi che
alzati voglio dire forse forse ci
sono un po ‘più ovvi per
persone che hanno fatto un sacco fatto molto in
questa zona ma spesso devi sapere
parecchio sull’app
in particolare per elaborare il
implicazioni di certo certo
parametri così non è spesso il caso
che se aumenti il ​​numero di
discussioni disponibili penseresti che
sarebbe in grado di fare più cose contemporaneamente
e si scopre che spesso se tu se
diminuisci il numero di thread sotto
alto carico porta nella quantità di
tempo necessario per ciascuno
risorsa e quindi il sistema finisce di meno
occupato e posso effettivamente ottenere più lavoro
fatto perché sta facendo sta facendo di meno
contemporaneamente così non lo condivido più
roba e um c’è anche un bel po ‘di
vince facilmente senza molto
di applicazioni perché la maggior parte di esse ha
mai effettivamente stato ottimizzato affatto
spesso sono scritti per /
sviluppatore e poi lo distribuiscono per a
caso d’uso molto specifico e nel tempo esso
cresce in qualcos’altro diventa
diventa un appt importante nel tuo
gli affari e le persone iniziano a fare richieste
con quello che non hanno mai fatto prima
diventa a diventa usato in un caso
dove non è mai che non sia mai stato
ottimizzato per e così puoi finire con
un sacco di app che non hai mai
ottimizzato e quindi c’è spesso abbastanza a
grande guadagno puoi farlo facendo
qualsiasi cosa lasceranno stare
garantendo di avere l’ottimale
risultato ed è anche il caso che quello
il che è la scalabilità di un’app
limitato
e quindi c’è un c’è un teorico
massimo che può fare una determinata app
scala per onorare l’onore su una macchina e
se gli dai una macchina più grande di
che poi non diventerà più veloce
a causa di limiti intrinseci nel
architettura dell’app e il modo in cui
è stato scritto e c’è spesso c’è
spesso teorie su dove c’è
dove questo limite è ma è un po ‘
spesso sconosciuto fino a raggiungere quel limite
e quindi se tu se sei in grado di fare un po ‘
test automatici puoi scoprire dove
quel limite è prima che tu lo raggiunga e questo
ti aiuta a fare pianificazione della capacità e
e e gestione dei costi e fare e
dare la priorità al giusto tipo di sviluppo
e ho paura, quindi non finisci
in una situazione in cui sei il tuo
antincendio quindi è il tipo di a
panoramica rapida della macchina
sito di apprendimento e come lo applichiamo
e il tipo di benefici che possiamo ottenere
dal farlo ovviamente alcuni di noi SAT
ci sta pensando bene che sta correndo come
200 test che non è un piccolo
non è un numero piccolo da eseguire in a
modo convenzionale e questo è dove noi
può davvero approfittare di alcune delle
cose che sono il tipo di clep
offerte più nuvoloso hanno da offrire così
tipo di software definito
infrastruttura dove puoi girare e
giù serve server con con API e
questo genere di cose e sarò anche andare in
un po ‘più di dettagli su come noi come
in realtà eseguire il test stesso così questo è
un grafico di un test particolare il
l’ asse orizzontale è il tempo per cui eseguiamo il test
poco più di un’ora e l’ asse verticale
è il sull’asse verticale a sinistra
sono le transazioni al secondo in
le prestazioni e l’asse verticale sulla
right è in byte quindi questa curva rossa è
l’importante che è la curva rossa
il numero di transazioni al secondo
che la nostra app stava facendo o un micro
il servizio stava facendo in un punto particolare
in tempo e ne ha tre principali
caratteristiche uno è la piccola rampa al
iniziare e poi siamo su
altopiano e poi ci sono quattro principali
caratteristiche quindi la rampa alla fine e
quindi il declino alla fine è il
quarta caratteristica quindi questo è un um questo è
questo è un carico di lavoro del conducente e cosa
succede all’inizio è che il
la linea verde è il carico
stiamo presentando ad esso dal dal
cosa che sta generando il carico di prova
e la cosa rossa è il numero di
transazioni al secondo l’applicazione
sta facendo il test e cosa puoi vedere
è che ci vuole del tempo per tipo di
riscaldare e questo è un ben noto
caratteristica dei carichi di lavoro compilati con jit
nel cosa fa il compilatore Java
come il modo in cui ha funzionato ciò che il caldo
passare attraverso l’applicazione lo sono
li compila nel codice macchina nativo
per quella particolare piattaforma e
li fa andare più veloce e così può farlo
davvero questo può davvero danneggiare la tua misura
di prestazioni se lo misuri al
tempo sbagliato perché se lasci il
caricare stabile per un po ‘si può trovare che
la tua app diventa improvvisamente più veloce senza
avendo fatto qualcosa in modo che la JVM
in sé è abbastanza bravo a
auto-tuning e questa è questa curva blu
che vi mostra la dimensione della dimensione del
regione in cui la JVM sta memorizzando il
codice compilato e puoi vederlo
quando la regione si riempie è circa set
a circa 100 megabyte qui quando
riempie i livelli delle prestazioni e
e quello è il migliore
questa è la velocità di elaborazione ottimale per
quel particolare carico che è stato dato
in verde e così quando siamo sicuri
quella fase è completa e possiamo andare avanti
la fase successiva che è gradualmente
rampa il carico fino a quando non riusciamo a trovare dove
il picco è così come io ho alluso a
un po ‘prima se tu se tu
sovraccaricare il sistema in realtà lì il
la risposta scenderà di nuovo perché
le cose finiscono bloccate in code e
aspettando le cose e così il
aumenta la contesa e poi il
risposta di qualsiasi latenza di qualsiasi
una risposta particolare va giù così come noi
aumentare il carico troviamo troviamo troviamo a
punto di picco qui che è il
qual è il punto ottimale per questo
macchina particolare con quelle particolari
impostazioni che vanno oltre e se
continui ad aumentare il carico ancora
poi ricomincia a decollare e
quello che trovi è che c’è un po ‘di a
c’è un po ‘ di scogliera ci siamo
fondamentalmente quando tu quando arrivi
è la macchina al punto di saturazione
si comporta davvero male e ha anche
Parecchio
jissa vedi quando era nella stalla
prima che fosse bello, piatto e
la varianza nel BLOB è stata abbastanza
piccolo che è un bel posto pieno di
macchina da correre mentre se lo sei
correndo qui, allora non lo sei
davvero così sicuro di quello che sarà
succedendo al tuo carico di lavoro potrebbe essere
alcune cose potrebbero iniziare a fare davvero
molto tempo e cosa troverai?
che queste sono medie che sto tramando
qui ma quello che troverai è quello
probabilmente se siamo difficili perché questo è
una media media normale del cinquanta percento di
i tuoi utenti stanno peggiorando peggio
esperienza peggiore di quella quindi se tu
mantieni quella varianza bella e piccola tu
può fare migliori garanzie riguardo a
In effetti, stai consegnando un bene
servizio a tutti quindi l’idea è
scegli il punto ottimale e non no
dare troppo carico questo grafico qui va
in un po ‘più in dettaglio a riguardo
più grande che il rosso è di nuovo il
eseguire le transazioni al secondo
questo però sta facendo il servizio
e il verde è la latenza il
latenza media per quella richiesta in modo che il
il tempo necessario per a
particolare richiesta di accadere così il
il rosso è il numero del numero di
richieste che stanno finendo al secondo
e il verde è il numero di quello
lunghezza del tempo la lunghezza media di
tempo che ogni richiesta prende così
presume che ce ne sia più di uno in
volo alla volta in modo che se si prende il
punto dove stai ricevendo il massimo
throughput si può trovare che la latenza
non è il più piccolo, quindi puoi farlo
in realtà scambiare questo si può dire
in realtà voglio voglio il mio servizio
essere più scattante per il mio per il mio utente e così
puoi scegliere un punto arbitrario che tu
che vuoi per il tuo servizio
accordo di livello sulla curva di latenza e
puoi muoverti puoi spostare la barra
indietro in modo da poter dire l’ottimale
le prestazioni non sono solo quanto
rendimento che sto ottenendo, ma è a
certa quantità di throughput con a
garantire che la maggior parte delle richieste siano
completando in 50 millisecondi o
qualcosa e quindi puoi muoverlo spostarlo
torna al loro se scegli un punto
all’incirca lì puoi spostare indietro la linea
a lì e poi il tuo massimo
prestazioni per quel particolare
la configurazione diventa così e così tu
stai scambiando un po ‘di
rendimento per tempi di risposta molto migliori
per ognuno di questi e tipo di molto
migliore qualità del servizio per ciascuno di
a quegli utenti tutte le domande che hai finora
sono stato molto tranquillo sto andando troppo veloce o
troppo lento okay, questo è solo l’ aetna
è una specie del ciclo di vita di a
prova singola cosa quando eravamo in realtà
facendo un test devi prendere una macchina
da qualche parte e si scopre che se
ne prendi uno per esempio Amazon tu
può si può acquistare un caso su richiesta
e poi ti fattureranno un’ora sola
in incrementi di un’ora per quello
devi passare un po ‘di tempo a partire
la tua macchina e questo ti costa denaro
e devi passare un po ‘di tempo
installando la cosa su cui si desidera testare
lì e poi è necessario effettivamente fare a
test e il resto di quel tempo fino al
il tick di fatturazione avviene alla fine del
l’ora è sprecata quindi se tu se solo tu
passare 20 minuti a fare il test che sei
giocando per 40 minuti che non hai fatto
usa se passi 61 minuti a fare un test
vai al prossimo periodo di fatturazione e
ti perdi 59 minuti e ce n’è
ci sono vari modi per risolverlo
puoi forse puoi riutilizzare la macchina per
un altro test c’è fondamentalmente il verde
è il modo in cui stai facendo il test
e questo è il valore effettivo per
l’applicazione e tutto il resto del
tempo che quella macchina sta facendo le cose
è solo spese generali e costo per
il test e come ho detto che stiamo facendo
circa 100 o 200 test su a
particolare macchina con diversi
configurazioni in ogni momento e puoi
scambia il tempo necessario per
fai tutta questa ricerca contro il costo
di quella ricerca perché se tu puoi
si può girare su un centinaio di quelli
macchine individualmente e puoi farne una
prova su ciascuno e ottieni il tuo risultato
un’ora perché è approssimativamente come
a lungo ci testiamo e tu ne rifiuti trenta
tre cinquanta per cento del tuo
soldi sul potere di calcolo che non hai mai
usato o si può praticamente raddoppiare
la lunghezza del tempo necessario e come previsto
a test per macchina uno dopo l’altro
e poi puoi aspettare due ore ma
ti costa circa la metà di ciò che intendo
qui c’è un bel po ‘di quantizzazione
perché il periodo di fatturazione su Amazon è
un’ora tu sei diventato piuttosto un
scogliera quando andate nel prossimo
ora hai questo tipo di grande extra
in alto su altre nuvole tali
alcuni come Microsoft Azure hanno
così granularità molto più fine della fatturazione
ti hanno provato per la prima ora e
poi dopo ti fanno pagare solo per
i minuti che usi in quello
periodo così parte di ciò che abbiamo costruito è
alcuni programmatori da affrontare
questo genere di cose se vai a leggere
la letteratura un bel po ‘di persone
come Google e Facebook e le persone lo sono
parlando di come pianificare dove come
condividere i tuoi carichi di lavoro per tipo di cosa
stanno chiamando scala di magazzino
computer dove sono tutti loro
i computer che possono posizionare
carico di lavoro dove vogliono e loro loro
avere il controllo su tutto il tipo di
lo scheduler che abbiamo dovuto costruire è is is
sull’immissione di carichi di lavoro diversi su a
varietà di diverse nuvole in entrambi
nuvole pubbliche e cose come il visto
in quella zona cliente dove altro
altri utenti sono sugli host, quindi potremmo
avere vicini rumorosi e anche noi
ottenere fatturati per in questo esempio che ho
dato così così è un po ‘un po’
diverso tipo di programma ER e il
esempio che ho appena dato è solo per
si assume solo un host in un test
ma in realtà quello che succede è spesso usato
il tuo spin up un host per il micro
servizio e farai girare un host a
consegnare il carico di prova e si potrebbe spin
su un host per il server del database o il
coda di messaggi o qualcosa di simile e
quindi finisci per essere piuttosto complicato
lo scenario di pianificazione in cui potresti avere
un host pronto che può essere il database
ma tu non hai l’host che è possibile
essere la coda dei messaggi e devi
tipo di prova e confezionare il lavoro in come
efficientemente come puoi e prova e
ottimizzare per le cose in conflitto
quali sono i collegamenti di tempo necessari per farlo
il test e il prezzo del test ma esso
funziona piuttosto bene per i micro servizi
perché è possibile che in genere si può ottenere
un bel risparmio complessivo e il costo
del test è generalmente significativo
meno del costo di un’istanza e
con un microsoft teched tendi ad esserlo
ridimensionando un numero di quelli sopra a
più lungo periodo di tempo quindi il costo di
il test finisce per essere abbastanza efficiente
e piuttosto piccola, quindi questo è il materiale che ho
avere e hobby interessati a prenderne un po ‘
domande e mi piace se potessi andare avanti
l’app e fammi sapere dove sei
una sorta di discorso grazie
okay, quindi vado a cercare qui
alcune domande nel frattempo sì
Qualcuno ha una domanda che vorrei
inietti usi sempre il tuo solo tu
metti parametri casuali o lo usi?
cose come la profilazione o la spazzatura
analisi del registro di raccolta che tipo di
cosa per aiutare a informare il tuo tipo di
insieme iniziale di parametri così al
momento in cui possiamo fare due cose si è
è come ho detto di un corso un corso
esame dell’intera superficie quindi se
hai una proprietà continua come
dimensione heap potremmo potremmo provarlo da
Da 0 a 4 gigabyte in blocchi da 100 megabyte
o qualcosa del genere e questo è
abbastanza un ingenuo l’altra cosa noi
fare è provare e adattare questi in usando il
L’ipercubo latino sceglie i punti del lavoro
bene le altre dimensioni e non lo è
particolarmente adatto a forzare molto
di scelta su un particolare parametro tu
in genere può scegliere uno o due e poi
gli altri tipi tendono a inserirsi
luoghi particolari o che richiedono un
grande quantità ordinata di tempo computer
capire dove metterle un’altra cosa
che stiamo cercando di fare come noi raccogliamo
i dati sono in realtà i miei per i dati
diverse app e quindi classificare le app
in te sai che sembra un I / O
tipo di carico di lavoro questo sembra una CPU
tipo di carico di lavoro questo è un database questo
è un sistema di passaggio di messaggi e se noi
quindi puoi classificare le app in quel modo
è possibile applicare gli insegnamenti da
ottimizzando quelle app e un po ‘ di più
lega il costo dell’esplorazione del parametro
spazio attraverso una sorta di una suite intera di
app quindi il numero di test che sono
richiesto per X cubato R sai per ottenere
è ad un certo livello di ottimizzazione
è totalmente dipendente dal numero di
parametri che tu hai o
c’è un qualche tipo di ottimizzazione finita
Lì sono anche come se tu lo sapessi se
Ho dieci parametri da dieci a dieci
piace
infatti 10 alla potenza di 10 sì siamo
parlando dell’inferno molti ospiti, giusto
si, come fai così, ogni volta che lo fai
aggiungi una dimensione o così un parametro è uno
dimensione o aggiungere un nuovo valore al
parametro hai praticamente un potere
rapporto in modo da far esplodere il
spazio dei parametri e quindi non è fattibile
per verificare che molti numero di parametri
usando un sacco di questo tipo di ricerca
metodi con questo tipo di metodo di ricerca
fidati di noi distribuire il punto in modo uniforme
in tutto lo spazio e quando questo è
in fondo è più grande hai bisogno di molto
più punti per riempire l’ipercubo
il metodo in realtà ha funzionato nell’altro modo
intorno a te le dici quanti punti hai
voglio e poi cerca di inserirli
il posto migliore e così puoi sistemare il
numero di punti e proverà e
distribuirli abbastanza regolarmente
in tutto lo spazio ma anche provare e
ottenere questo punto specifico dove pensa
saranno interessanti sulla base di
parametri su come i parametri potrebbero essere indiretti
tempo essenzialmente piacevole oggi x 800
Grazie mandarino viola c’è di nuovo
un muto sì sì sì nella schermata il
conteggio del quadrato il metodo del corso
questo è il caso nell’ipercubo
metodo che puoi dire non mettere i punti
più vicino di 10 megabyte di megabyte
amico potrebbe non metterli così vicino
probabilmente li distribuirà ulteriormente
se affonda non è molto
dimensione interessante in genere lo farai
trovare il tipo di dimensione heap di non è non è
molto liscia così come un po ‘variando
tra 0 e 100 megabyte o 0 e
mezzo gigabyte non è molto interessante
ma variando tra 3 gigabyte e 4
i gigabytes potrebbero essere piuttosto interessanti
un carico di lavoro particolare e quindi cosa tu
puoi fare è puoi mettere il punto
abbastanza costoso e molto discretamente scarsamente
per iniziare e poi tornare indietro e e
quando ci si adatta quando si adatta il
superficie come questa puoi vedere a
discontinuità e quindi puoi farlo
un’altra serie di test per dare un’occhiata a
il posto dove pensi il
la discontinuità è vedere dove si trova il
il punto di flesso è così che ne ho alcuni
alcune domande dall’app arriverò
tu in un secondo sì sì che c’è
bel qualificatore con questo quindi come stai
gestire le previsioni se si dispone di cose
come il software di gestione del cluster come
sciocchezze o me salsa che hanno forse
spostare carichi di lavoro mentre sei
campionamento e poi immediatamente seguito
da parte sua se questa è la NDA, ti preghiamo di ignorarla
non devi dirci che è difficile
è duro come parte della roba nel
lo scheduler alla fine aveva a che fare con il
fatto che stiamo cercando di posizionare
carichi di lavoro su cloud pubblici e quando tu
avere un quando sei un Google o Facebook
facendo i programmatori della scala del magazzino voi
posso mettere quelle cose basandomi sul serio
è comunque un tipo di problema difficile ma
almeno hai tutti i dati che tu
puoi risolvere per le cose che sei
interessato a ci sono un sacco di cose che noi
non può risolvere per e vicini rumorosi è
qualcosa che cerchiamo di minimizzare e
sicuramente le diverse nuvole ti danno
diverse abilità che Amazon è un tipo
di offrire alcune delle migliori caratteristiche
quello su alcuni dei loro più grandi esempi
ora puoi scegliere di essere sulla stessa LAN
segmentare in modo che quando stai spruzzando
il carico di prova sulla macchina che non sei
sarà soggetto a tanti
tanto jitter nella rete come se tu
ho appena ottenuto un rapper in posizionamenti casuali
nella stessa regione e così sì
questo è qualcosa che dobbiamo fare
controllo per ed è parte del
lavoro che facciamo con me quando scriviamo un nuovo
driver per un nuovo tipo di parte del cloud di
il tipo di processo di productization ma
c’è una domanda, come funziona?
curioso se la parte di apprendimento automatico di
questo sta usando algoritmi genetici o
qualcosa di più intelligente da trovare ottimale
configurazioni quindi cosa fa cosa
lo fa penso che sia un bene
domanda per quanto tempo hai così il
l’algoritmo genetico funziona con una specie di
un bel numero di test
e poi un bel po ‘di iterazioni
proviamo e lavoriamo, proviamo e lavoriamo
in altro modo in modo che farà di più
prova in anticipo e poi solo forse a
un paio di giri di iterazione 2 ai miei
le aree locali che pensiamo siano
interessante perché risulta per il nostro
clienti di volta in volta
la gratificazione è abbastanza importante quindi
sono bravi che sono felici di aspettare
forse sono due o tre ore
Non sono felice di aspettare una settimana quindi c’è gentilezza
di un limite alla quantità di feedback che noi
può avere tra test così la maggior parte dei nostri
la maggior parte del nostro apprendimento automatico è sul
sito analitico dove siamo tipo di data mining
estraendo le informazioni in questo noi
già hanno e tipo di fare un po ‘grande
analisi dei dati sulla telemetria
che abbiamo da un sacco di lotti
di prove nel corso del tempo fantastico eccellente sono
andrò a correre qui
microfono quindi la mia domanda è per te
mai avuto grandi sorprese quando
inizialmente hai avuto un test abbastanza scarso
spazio con i loro alcuni ampiamente separati
parametri e poi stringere di più
dì in ordine di antigene e improvvisamente
trovato un importante punto di ottimizzazione
qualcosa in cui le prestazioni sono radicalmente
migliorato che non avresti trovato
Se non lo avessi stretto, è venuto fuori
non è niente per rispondere davvero al
domanda a tua moglie di chiedermi di nuovo dove
è importante ma risulta il migliore
le vincite arrivano da quando scopri bug
l’applicazione così tante cose
questo non è stato testato prima di te
testarlo in questo tipo di uomo di questo tipo
di modo intenso finisci per trovare un
concorrenza ma parecchio e tutto te
finiscono per trovare una scala
bugging alcuni alcuni codici minori che
genera la tabella HTML o qualcosa del genere
e tu lo tiri fuori e ti prendi
conosci migliaia di percento e hai avuto
le tue grandi vittorie dopo quella spesso spesso
ne abbiamo alcuni abbastanza dopo tutti
abbiamo avuto alcune vittorie abbastanza buone per genere
di fare compromessi come spesso
troverai un carico di lavoro
per sovra provisioning o provisioning per
il suo picco di carico e ciò che il picco di carico
può essere un tipo completamente diverso di
carico di lavoro che avviene durante la notte e così via
puoi completamente ignorarlo
ottimizzato per il caso comune che
succede durante il giorno e poi entrambi
riprovare di notte o aggiungere qualcosa se
possibile magari aggiungere uno spazio di swap che
consente di completare la notte
periodo ma forse ci vuole un po ‘di più
rispetto a prima o qualcosa del genere
che dicono che le grandi vincite sono molto di più
fortunati di quanto pensi non siano loro
non sono venti tecnici più piccoli
tipo di più graduale e tipo di
stuzzicare di più sui dati e devono
guarda la correlazione incrociata tra
i parametri e come influenzano
l’un l’altro fantastici e ne sono andati uno
più vedi lo stesso risparmio sui costi
per i servizi che utilizzano stack non JVM lo è
nello specifico nella JVM l’ordine più
del nostro lavoro è sulla JVM e on the
il Common Language Runtime sono entrambi
abbastanza simile ha portato entrambi belli
simile e questo è quasi il nostro
i dati sono al momento, quindi?
cose come se tu avessi qualcosa come andare
c’è un binario collegato staticamente e
porta il suo vm con esso non penso
abbiamo provato qualsiasi tentativo ho paura, okay
grazie mille, davvero fantastico
faremo una breve pausa e
poi torna qui alle cinque
per il keynote di chiusura quindi
tu

Please follow and like us: