Press "Enter" to skip to content

GOTO 2015 • Docker as the Building Block for Datacenter-Scale Applications • Benjamin Hindman


quindi parlerò molto
sul progetto di sorgente principale di Apache
tipo di iniziare un po ‘con alcuni
pensieri di containerizzazione e tipo di
le tendenze dei micro-servizi che sono
succede ma la maggior parte delle presentazioni possono
essere fuori dalla salsa di Mesa a chiazze e poi a
alla fine un pochino parlerò
su parte del lavoro che stiamo facendo
in una sfera di Mesa quindi è un emergente
tendenza che penso che siamo tutti visto che è
davvero una specie di ciclica su se stesso e
molte organizzazioni si stanno muovendo
ai servizi di micro e un sacco di
le organizzazioni stanno adottando idee alle spalle
containerizzazione e quando dico micro
Il servizio è qui che conosci uno dei
cose che sono davvero interessanti
i micro servizi ci fanno davvero tornare indietro
per costruire applicazioni con una coppia
di proprietà veramente veramente belle, una
che possiamo focalizzare la nostra attenzione
applicazioni questi servizi sul fare uno
cosa e farlo bene che è correlato
la filosofia UNIX che ci consente di comporre
queste cose davvero davvero bene
ci consente anche di costruire un’organizzazione
le domande si impegnano individualmente
codice di applicazioni in isolamento lo farai
detesto i singoli pezzi in
l’isolamento può essere effettivamente distribuito
li isolano separatamente
pezzi in isolamento e questo davvero
cattura molto dell’organizzazione
struttura che un sacco di squadre hanno
o lavorando in modo distribuito o
in parallelo, davvero bene , non significa
che è un pranzo gratis c’è ancora
un bel po ‘di lavoro che devi fare
quando inizi a spostarti su micro
organizzazioni ma molti dei benefici
superano i contro e così di più
le organizzazioni stanno facendo uno dei
le cose che penso sono piuttosto interessanti
A proposito di servizi di micro in particolare, è
che l’ architettura orientata ai servizi
che tipo di micro servizi predatori
aveva molte di queste stesse idee e questo
un po ‘come vediamo sempre in Computer
Scienze la rigenerazione di molti
quelle idee così un’organizzazione che io
era a quell’offerta che ha fatto il grande cambiamento
ai servizi di micro era Twitter dove noi
usato per eseguire l’opposto di un micro
servizio e non orientato al servizio
architettura un gigante monolitico
applicazione scritta in Ruby
Rotaie che abbiamo affettuosamente soprannominato il
monorotaia e il tipo di monorotaia fatto
tutto dalla presentazione del routing
logica praticamente tutto ciò che è
archiviazione che era l’unico altro servizio
che il Monte
Rell stava davvero comunicando con e
la transizione che abbiamo fatto su Twitter
siamo passati da questo gigante monolitico
applicazione delle rotaie a un mucchio di micro
servizi che stavano comunicando tutti
tra di loro
la maggior parte di queste cose erano in realtà
scritto anche in Scala Java e
tipo di allo stesso tempo quello che ha iniziato
prendere forma
in un posto come Twitter e poi ora
sta succedendo nel settore generale
le persone hanno iniziato a passare meno e
meno dal modo in cui configurano
e gestire le loro macchine individuali è
con cose come rpm o quando vai
lancia la tua applicazione usando qualcosa
come arrivare in realtà tirare il tuo repo e
costruiscilo e si stanno muovendo di più e
più di due cose che hanno meno movimento
parti così solo barattoli interi è il barattolo
tutto il tuo intero pacchetto che tu
deploy o tarball è il tarball
tutto ciò che serve tutta la tua
dipendenze un binario statico che è mio
piccola gif binario statico o uso
cose come la finestra mobile e penso di cosa si tratta
davvero interessante, qui lo sai
i giorni di utilizzo di cose come RPM e
ottenere per fare un sacco della nostra configurazione
l’implementazione della gestione dei pacchetti ci sono stati
molto più parti in movimento quindi quando le cose
fallito erano difficili da debugare e loro
fallito più spesso perché c’è solo
solo più parti mobili e questo
movimento in questo regno di containerizzazione
si tratta davvero di meno parti in movimento quando
ci sono meno parti mobili c’è di più
garanzie deterministiche penso a uno di
le cose che sono piuttosto interessanti
ecco l’approccio binario statico
uno che non ottiene molto amore ma
per quelli di voi che scrivono e vanno
ovviamente si ottengono i binari statici
la scatola e questo perché su Google
con il modo in cui erano in realtà
distribuendo le loro applicazioni loro
non stavano usando un RPM che non stavano usando
non stavano usando la finestra mobile
usando i binari statici e così erano
in realtà quando sono stati creati per la prima volta, hanno detto
beh , assicuriamoci solo che possiamo
crea binari statici ma per impostazione predefinita
va bene così la cosa interessante di sorta
della containerizzazione dei microservizi
che stanno creando questo rafforzamento
tendenza sulle azioni di Morgana non solo usando
micro servizi e containerizzazione ma
anche iniziando a fare la gestione del cluster
quindi la gestione del cluster tra virgolette a
Twitter nel 2010 consisteva davvero
usando tecnologie come burattini per fare
la configurazione
gestione dei pacchetti e strumenti come
Capistrano per fare il nostro schieramento noi
effettivamente costruito uno strumento sopra
Capistrano che abbiamo chiamato omicidio
riferendosi a un omicidio di omicidio di corvi
ed è stato proprio quello di ottenere Capistrano
scala per il numero di macchine che
in realtà stiamo usando ce n’era uno
mi manca davvero una parte importante in
gestione dei cluster qui ed è per questo che io
metti la parola cluster management e it
era gente la gente era quella
stavano in realtà scrivendo un sacco di
script per eseguire puppet facendo un sacco di
operazioni molto molto manualmente e
non erano solo poche persone , era molto
la gente là era molta gente quello
Erano lì che stavano facendo cluster
gestione i primi giorni su Twitter così
perché dovevamo avere così tante persone
fondamentalmente su Twitter cosa sarebbe
sembra che prendiamo tutte le nostre macchine
e andremmo davvero e lo faremmo
partizionare staticamente le macchine umane
noi andiamo e loro diviserebbero staticamente
e gestisci i cluster dicendo okay
prendiamo questa collezione di macchine
e andiamo avanti e lanciamo MySQL su di loro
prendiamo qualche altra collezione di
macchine andiamo avanti ed eseguiamo a
memcache
prendiamo un’altra raccolta di
macchine andremo avanti e correremo
rotaie ci sai finalmente Cassandra
e Hadoop destra quindi questo è questo è il
cosa standard che stavamo facendo
abbiamo intenzione di indossare carta statica
partizionamento raccogliendo le nostre macchine e
dicendo va bene queste macchine che sono
solo andando a essere utilizzato per l’esecuzione di questi
applicazioni e questo è dove come
organizzazione su Twitter abbiamo iniziato
incontrando un sacco di sfide e
perché la gestione dei cluster si è evoluta davvero
Twitter quindi il primo era giusto
affrontare i fallimenti quindi questo è un problema
è in realtà una vera e-mail dal 2010 dove
qualcuno ha dovuto riavviare una macchina in uno
dei data center e hanno chiesto a
domanda molto naturale che è ehi siamo
ci sono servizi di produzione in esecuzione
questa macchina così è come fanno gli umani
gestione dei cluster che si occupa dei guasti
e poi altri umani in realtà stanno immaginando
come ottenere indietro i servizi
installato e funzionante okay, sai cosa
Non ti sembra nel data center
le macchine del pozzo falliscono per tutti i tipi di
ragioni tutto il tempo e gli umani dovevano farlo
in realtà in realtà conto per quello il
prossima grande sfida che noi come un
l’organizzazione su Twitter ha davvero dovuto
affrontare era manutenzione e
manutenzione mi piace molto chiamare
fallimenti programmati perché efficacemente
stai inducendo un fallimento
nel sistema sai esattamente quando
quel fallimento sta per accadere e così
è possibile pianificare per esso
c’è molta manutenzione
in realtà accade nei nostri data center no
solo in un data center privato on-prem
ma anche nel cloud uno dei più grandi
quelli in realtà sta aggiornando il kernel noi
tutto a un certo punto è necessario aggiornare il
kernel che significa che stiamo andando essere
spegnere le nostre macchine che allevano
altre macchine o portando quella macchina
eseguire il backup con un kernel aggiornato ma di
Certo che sta sostituendo le macchine come
sostituzione di switch PDU in movimento regioni
se qui nel cloud pubblico c’è molto
di manutenzione diversa come eventi
che potresti fare quella causa possibile
causare un sacco di umani a correre
in giro a comunicare tra loro a
prova a capire come possono realmente
fai questo in un’organizzazione come
La gente di Twitter purtroppo ha avuto il
esperienza in cui hanno fatto la manutenzione sulla
dì che i rack sono i commutatori del rack topper
che erano sul lato più lontano di questo
diagramma che abbatte tutti i memcache
‘e naturalmente questo significa che
nessuno sta twittando okay
l’ultima sfida che voglio
indirizzo è davvero l’utilizzo così per
alcune organizzazioni questo non è quasi come
un importante ma per un gruppo di
organizzazioni soprattutto all’inizio
Soltanto a sempre più macchine che
diventa sempre più importante quindi basta afferrare
un po ‘d’acqua dall’uso
prospettiva quando le applicazioni sono
correndo hanno esigenze diverse
per i bisogni computazionali
risorse di cui hanno bisogno durante il corso
di loro in realtà eseguendo il loro
applicazioni così quando abbiamo sorta di farlo
partizionamento statico e dividiamo il
risorse tra i diversi tipi
di sistemi che stiamo cercando di gestire noi
finire per ottenere una situazione come questa così
qui ho appena diviso il cento per cento
fino a un terzo ciascuno, così diventa memcache
1/3 Hadoop ottiene 1/3 e i binari ottengono a
terzo e questo è ora che conosci i binari
usando sai durante durante certi
parte il giorno in cui non così tante persone
sono tweeting c’è tutti quelli gratis
risorse potenzialmente utilizzate
qualche altra applicazione come Hadoop
e il tipo di memcache segue un simile
andare in bicicletta a qualcosa di simile alle rotaie davvero
cosa ci piacerebbe fare e cosa finiscono gli umani
su facendo finiscono per andare e dire
okay, come possiamo ottimizzare il numero
di risorse che dovremmo essere
allocazione queste applicazioni oltre
o diversi periodi della giornata o
tempi diversi in modo che potessimo arrivare
qualcosa di simile, così Hadoop potrebbe dire
scalare e utilizzare quelle risorse che
alternativamente significa che potremmo comprare di meno
macchine o eseguire più applicazioni così io
pensa a cosa è veramente interessante
queste sfide sono meno che esse esistano
e più che per affrontare queste cose
gli umani finiscono per giocare davvero alla grande
parte del processo in modo che gli umani entrino
e iniziano a dover pianificare
fallimento sai come vogliamo
effettivamente eseguiamo la nostra applicazione in modo che possiamo
piano per il fallimento e ecco un altro
email interna email da Twitter dove
Ho ripulito di nuovo alcuni nomi e il
la parte importante è davvero in fondo
dove dice che conosci qualcuno sta dicendo
hey preferibilmente questa cosa che sto cercando di
corsa è su diversi interruttori cremagliere e
alimenta che sono completamente
ridondante scrive che questo è umano
in pratica facendo in modo efficace la pianificazione
di applicazioni per cercare di capire come
trattare e pianificare un fallimento per
le sfide che non hanno eseguito roba
e l’ utilizzo è ancora più difficile perché
una cosa è pensare a come possiamo
Condividi le macchine tra diverse app
tirare le macchine tra diversi
applicazioni è un’altra cosa da pensare
su come possiamo effettivamente condividere una coppia
di risorse su una singola macchina così
una macchina individuale può essere veramente
applicazioni multi-tenancy in esecuzione da
da più applicazioni sul
stessa macchina allo stesso tempo così dentro
circa 2010 su Twitter abbiamo esaminato
in realtà sempre un gestore cluster non
avendo fatto la gestione dei cluster
umani, ma in realtà hanno un blocco morbido
software cluster manager così cluster
gestione per me ce ne sono davvero due
cose che identificano veramente quale cluster
la gestione è tutto e il primo
uno è il suo quando si fa il cluster
gestione tramite software a cui inizi
smettere di trattare le vostre macchine come animali domestici ma
li tratti come animali che sono
macchine arbitrarie metti una base a
piccolo sistema operativo di base semplice su
tutti loro e in ultima analisi, si finisce per
eseguire queste applicazioni containerizzate
dove potrebbe essere l’applicazione containerizzata
un’immagine docker in piena regola o potrebbe
basta essere una palla di catrame o un barattolo che ha
tutto ciò di cui hai effettivamente bisogno, okay
e il secondo davvero più importante
La cosa è che si inizia ad automatizzare
tutto ciò che stai facendo nei dati
centro con software e non umani così
ti occupi di te, lascia che sia il programma del software
altro software o ti occupi di te
gestire i fallimenti e il puro utilizzo
gestione e tutta quella roba lo fai
lo fai con loro con il software uno di
le cose che penso sia davvero
è interessante la gestione del cluster
quella
non è un vecchio scusa, non è una novità
argomento è un argomento molto vecchio
ci sono stati molti gestori di cluster
esistevano alcuni di quelli che hanno
ancora stata utilizzata fin dai primi anni
Anni ’90 cose come Mobs coppia PBS
sistema di programmazione batch portatile uno di
le ragioni per quello era quello in
accademico il tipo di applicazioni che
sono stati costruiti e gestiti nel mondo accademico
erano cose come il passaggio di messaggi
interfaccia dove volevano eseguirlo
in un gran numero di macchine mentre
il tipo di applicazioni che stavamo correndo
un settore tendeva ad essere un po ‘di rete
server forse alcuni altri server one-off
e nel mondo accademico che avevano già
centinaia di macchine che erano in grado
collaborare per eseguirli effettivamente
le cose e nell’industria erano un po ‘
lavorando con dieci decine di macchine e
alla fine questo ha portato a un sacco di
gestione del cluster come tecnologie
in costruzione e sorta di accademico e
lo spazio del laboratorio in tutto il mondo e in
settore che usiamo SSH o altro
strumenti che abbiamo sviluppato e che aiutano
risolvere i problemi come il burattino
Capistrano e ansible ma in questi giorni
quello che penso sia interessante è quello
stiamo tutti convergendo sempre di più entrambi
tra mondo accademico e industria in corso
un numero simile di macchine siamo tutti
correre sempre di più e più macchine
e in generale anche se non stiamo correndo
come molte macchine nell’industria come alcune
laboratori governativi o super super computer
stanno correndo
stiamo facendo funzionare abbastanza macchine che è
abbastanza di un dolore nel sedere per davvero
gestirli noi stessi ora uno dei
cose che sono specialmente
interessante sulla gestione dei cluster come
è stato fatto in scusatemi nel mondo accademico è stato
che i grappoli dei manager erano
davvero focalizzato sul calcolo in batch
erano davvero pensati per renderlo più facile
eseguire calcoli batch quindi cosa cosa
quello che abbiamo fatto su Twitter è che siamo finiti
costruire un nuovo gestore di cluster
chiamato Apache mesos che è davvero un
moderno un gestore di cluster generico
questo non è solo focalizzato sul lotto
calcolo ma in realtà è focalizzato su
eseguire qualsiasi tipo di sistema distribuito
o le applicazioni containerizzano i carichi di lavoro
qualunque cosa tu voglia correre così
intendo con ciò intendo quel labirinto
è stato progettato per eseguire questo tipo di
sistemi distribuiti come nativi
le applicazioni in cima a maysa ora non lo sono
andando a passare troppo tempo in
presentazione almeno non adesso
in questo momento parlando di quello che serve
eseguire qualcosa come questi sistemi su
Maysa
ma passerò un po ‘ di tempo
parlando specificamente del tipo di
sistema che abbiamo costruito sopra meso s–
per funzionare, ma l’ applicazione di Twitter che
tutti questi micro servizi sono ok?
quindi sicuramente vero, quindi ciò che è stato particolarmente
interessante su questo il twitter
l’applicazione è se hai guardato
questa immagine di nuovo c’era un sacco di
cose che volevamo eseguire quali erano
questi servizi apolidi che tipo di
seduto tra le cose stateful il
applicazioni di archiviazione e tipo di alcuni di
la roba molto front-end e lì
sono tonnellate di loro e stavano crescendo
ogni giorno perché nuovi nuovi sviluppatori in
l’organizzazione stava costruendo un nuovo
servizio micro tutto il tempo ok così noi
introdotto a meso quindi cos’è meso
scanner da centomila piedi così
può supporre che sia un gestore di cluster è
ha ottenuto un’architettura master slave così il
l’idea è che ci sia una certa collezione
di maestri che corrono e gestiscono tutti
di loro gestiscono tutte le macchine in
il data center e gestiscono un agente
processo su ciascuno dei singoli
macchine ok ora davvero davvero
parte importante di meso che
lo distingue dagli altri grappolo
manager in particolare quelli del passato
questa idea che maysa ha questa nozione di
cose chiamate programmatori che si connettono
ai Maestri si registrano con il
Maestri e loro sono le cose che sono
responsabile della gestione effettiva di
lavori e le attività nel data center ok
e ho un paio di altre diapositive
più tardi che parla un po ‘di
circa su come funziona così bene il
lo scheduler era un punto davvero critico
quello lo differenzia davvero come
una tecnologia architettonica da alcuni di
gli altri ok così di nuovo ci stiamo arrivando
di nuovo a questi servizi apolidi e allora
abbiamo fatto su Twitter, abbiamo costruito un
molto specifico scheduler che si corre su
in cima a maggio si cuce uno scheduler di servizio così a
il servizio di pianificazione che abbiamo costruito era
veramente responsabile per essere in grado di
orchestrare tutti questi micro servizi
che le persone stavano cercando di correre nel
centro dati ok, quindi sto andando a
differenziare qui ora cosa intendo
tra l’orchestrazione e la pianificazione così
quando costruisci qualcosa come un
scheduler in cima al mesos c’è a
API programmatica che quel pezzo di
il software utilizza per comunicare effettivamente
con maggio
quindi è al fine di eseguire le sue applicazioni
al fine di eseguire i suoi compiti in modo un servizio
scheduler è un software che
comunica con altri software può
cuce per eseguirne effettivamente il suo
applicazioni superiori al servizio
lo scheduler espone un’API di livello superiore
che un umano consuma o qualcuno
il lavoro di integrazione continua consuma e
ecco dove qualcuno direbbe di scrivere a
specifiche sui tipi di lavoro
vogliono correre e poi inviarlo
dire efficacemente al programma di servizio
qui orchestrare questo lavoro per me e
quindi usa mesas per pianificare effettivamente
quei lavori vanno bene così uno dei
orchestratori che voglio parlare
il primo è uno che abbiamo costruito a Mesa
Sfera chiamata maratona, quindi questo tipo di
questi tipi di programmatori di servizi che hanno
ha un paio di ruoli che devono
concentrati su ma i due che sto per essere
chiamare esplicitamente qui è davvero
sai come farai il tuo
configurazione e gestione dei pacchetti a
effettivamente eseguire la tua applicazione e e
allora sai cosa effettivamente cosa fa
la distribuzione sembra davvero così se tu
usare qualcosa come la maratona di maggio così così
come sviluppatore quello che fai sei tu
crea la tua applicazione e poi tu
containerizzalo così ancora una volta
containerizzalo incollandolo in a
tarball
o usando qualcosa come un simile
finestra mobile per creare effettivamente un’immagine a
immagine docker che è quindi possibile eseguire
dopo, okay, dopo averlo fatto tu
mettere i bit che si desidera
corri da qualche parte così prendi il tuo asciugamano
barra la tua immagine docker se sei su
qualcosa come AWS puoi lanciarlo
s3 se hai qualcosa come HDFS
in esecuzione o qualche altro file distribuito
sistema puoi lanciarlo nel
file system distribuito e quindi o se
tu stai usando la finestra mobile, certo che puoi
puoi usare il registro ok così è
è il primo passo che fai
gestione dei pacchetti di configurazione quando
stai cercando di eseguire servizi in modo che
il secondo passo è quindi il dispiegamento Zen e
quello che sembra è quello di nuovo il
lo sviluppatore va e loro lo descrivono
applicazione che stanno cercando di eseguire
quando nella maratona si usa un JSON
specifica che scrivi che JSON
specifica e quindi lo invii
specifica jason json alla maratona
quale maratona quindi usa per orchestrare
l’effettiva esecuzione della tua applicazione
comunicando
e programmare i lavori direttamente con meso
s– quindi ci sono i casters della maratona
un resto alcuni punti finali che puoi usare
c’è anche un CLI okay e questo è giusto
tipo di un rapido esempio di ciò che un
esempio un contenitore di talker di
la maratona di iya sembra che qui sia il JSON
specifica ed è piuttosto semplice per te
effettivamente stanno descrivendo il contenitore
se ci sono particolari volumi locali
volumi che vorresti montare in te
conosci le risorse che stai consumando e poi
infine in fondo il comando effettivo
che correrai bene così uno di questi
le cose che sono davvero interessanti
su cosa stiamo facendo alla sfera di Mesa
e il modo in cui erano i Maestri
effettivamente costruito è che ci sono
diversi modi in cui si potrebbe desiderare
per orchestrare i tuoi contenitori e
è una cosa fantastica quindi allo stesso modo
che puoi usare qualcosa come la maratona
per correre a correre, esegui i tuoi contenitori in cima
di mesas potresti anche usare kubernetes
quindi so che il discorso di Kubernet era giusto
prima di me così è fantastico
quindi in quel caso il modo in cui funziona di nuovo
le due cose che come sviluppatore tu
devo pensare a come farai
la tua configurazione e il pacchetto
gestione e poi qual è il tuo
la distribuzione sembra la più grande
la differenza qui è quella per
configurazione e gestione dei pacchetti
stai solo creando immagini docker
o presto app vedi le specifiche e poi lo sei
pronto a scrivere nello script di distribuzione
anche in questo caso in JSON e poi
sottomettendolo a Kubernetes e poi
kubernetes sta comunicando direttamente
con maysa di nuovo per programmare quelli
quelle attività in tutto il strutturato
il data center va bene così una delle cose
è davvero interessante su Mesa in
il modo in cui il post di Mesa è effettivamente costruito
è questa idea che potresti effettivamente eseguire
più di questi programmatori allo stesso
tempo così attraverso lo stesso centro dati
potrei essere entrambi in maratona e tu
potrebbe essere in esecuzione kubernetes quindi perché su
terra sarebbe eventualmente vuole essere
fare qualcosa del genere quindi c’è un
un sacco di motivi per cui perché potresti
voglio farlo le persone che conosciamo
quello che stanno facendo è perché loro hanno
una parte dell’organizzazione che ha
hanno deciso che stanno per essere costruiti
alcune cose usano una specifica
lingua e un’altra parte del
organizzazione che utilizzerà un
linguaggio delle specifiche diverse da
la nostra prospettiva lo vediamo tipo
browser c’è Chrome e c’è
Firefox
e c’è internet explorer che penso
e se voi ragazzi volete usare qualsiasi
diversi tipi di queste orchestrazioni
gli strati in cima è fantastico per noi così uno
le ragioni specifiche per cui un sacco anche se
di persone finiscono per usare qualcosa di simile
come base qui è in realtà quando
in realtà vuoi eseguire più di
stesse istanze di un particolare
scheduler in cima quindi c’è un sacco di
ragioni per cui le organizzazioni fanno questo come
bene in quel luogo meso finisce per tipo di
diventando come un cloud privato per il tuo
data center o perché le persone vogliono
garanzie molto molto dure a diversi
organizzazioni per il singolo servizio
scheduler che stanno fornendo in cima
l’altro che abbiamo visto fare alle persone
anche se è solo perché loro
voglio eseguire più versioni di esso così
inizieranno a eseguire una versione di
sistema e poi inizieranno a funzionare
la versione più recente del sistema e una volta
quello si è indurito, allora possono solo
inizia a spostare tutto verso il
versione più recente e in questo modo non l’hai fatto
devo andare e girare un intero nuovo
cluster per provare a eseguire la nuova versione
si potrebbe utilizzare qualsiasi dove
risorse disponibili nell’attuale
cluster che avevi già cresciuto così
dalla prospettiva di Mesas il
cosa che vediamo sempre più spesso
anche se meno persone sono in esecuzione multiple
scheduler in questo modo e più persone
eseguire più programmi in questo modo
dove i tipi di applicazioni che
stanno costruendo in cima e correndo via
in alto sono cose come dire analitica
servizi di stato e così ora vado
per andare ancora più in profondità nella presentazione
e su come funziona la mia fonte per descrivere
come tutto questo roba tutto
va bene insieme, quindi stiamo andando più in profondità
quindi ho un paio di diapositive dove andiamo
più profondo e ad un certo punto diventiamo belli
in profondità su come Sosa possa effettivamente funzionare
e quindi spero di non perdere tutti ma
Penso che sia roba davvero interessante
quando si tratta della vera architettura
del sistema ok così andando più in profondità
più scheduler quindi per
effettivamente fare questo lavoro nel mese di maggio cuce mia
la salsa è costruita attorno a un concetto chiamato
programmazione a due livelli, quindi maysa ha
davvero influenzato dal multi-livello
pianificare le idee che esistevano in
sistemi operativi host tradizionali per
cose come la pianificazione a livello utente e
attivazioni dello scheduler e in questo modo
è stato progettato davvero meno come un cluster
manager e in realtà più simile a
kernel del sistema operativo e così via
in realtà perché chiamiamo Mesa come a
kernel di sistemi distribuiti o veramente a
kernel del data center quindi cosa intendo con
che bene come un colonnello del centro dati questi
scheduler quando in realtà vogliono
eseguono le loro applicazioni che usano questo
syscall come API a livello di programmazione a
effettivamente lanciare le loro applicazioni a
in realtà corri corri qualunque cosa siano
cercando di eseguire nel data center così
ciò che è interessante nel mettere questo
livello di indiretta tra il
schedulatori e tutte le risorse e
nel data center è il primo bene
rende facile per noi effettivamente eseguire
più sistemi di distribuzione allo stesso
tempo giusto e se tu ancora se pensi
di nuovo ad alcune delle sfide che noi
voleva superare con il software
è che il software può programmarne altri
software software in grado di gestire il software noi
può effettivamente aumentare la risorsa
utilizzo nel nostro nel nostro cluster e
uno dei modi in cui possiamo farlo
è avendo questo livello di riferimento
quale può supporre nei dati nel
centro dati per andare a eseguire più a
sistemi distribuiti allo stesso tempo e
fallo dinamicamente così l’ altro
cosa però che ci fa davvero passare
attaccare il livello di fessura di riferimento indiretto
maysa tra gli scheduler e
le macchine stesse sono quelle
maysa può ora iniziare a fornire informazioni comuni
funzionalità primitive che per il
la maggior parte parte ogni nuovo sistema di distribuzione
quello che viene costruito finisce per essere reimplementato
giusto e e dai primitivi uno dei
le cose di cui sto parlando si espongono così
concetti come principi utenti e ruoli
esponendo il primo livello avanzato
programmazione e condivisione equa
algoritmi che consentono cose come alto
disponibilità da fare più facilmente per
i sistemi di distribuzione in esecuzione
in cima a fare cose come la risorsa
monitoraggio introducendo concetti come
volume di prelazione e di trasferimento
le prenotazioni di gestione sono un tutto
mazzo di primitivi che possiamo effettivamente
fornire onestamente i più semplici
basta eseguire questa attività da qualche parte nei dati
centro ti prendi cura di ottenere questo
compito da qui a lì e il lancio
e quando fallisce mi dice quando
cosa è in realtà lanciata mi scusi ha
in realtà non è andato bene così e uno dei
cose veramente interessanti quando eravamo
prima costruzione maysa eravamo noi
riconoscendo che tu sai molto
tutti quando costruiscono un nuovo
sistema distribuito
finiscono tutti per reinventare la ruota
e volevamo davvero provvedere da
dallo strato di astrazione meso un modo per
fallo in modo che le persone non dovessero farlo
reinventare la ruota ma potrebbero costruire
i loro nuovi sistemi di distribuzione direttamente su
top va bene e io amo solo questa immagine
Adoro l’idea di realtà cercando
usare una bicicletta del genere va bene così
altra cosa che è davvero
interessante su come costruire effettivamente il tuo
distribuire i sistemi in cima a maysa è
che lo rende può renderlo molto
più facile per le persone effettivamente utilizzare il tuo
il tuo software quindi cosa intendo con questo
beh , probabilmente siamo tutti a conoscenza
roba del genere andiamo e cerchiamo di usare
qualche sistema distributivo che è stato
costruito da qualche organizzazione ed è così
complicato da usare e così complicato da
configurare e il software non può fare molto
del suo stesso materiale perché siamo arrivati
configurarlo su ogni macchina se una macchina
scende abbiamo avuto modo di entrare e affare
con i prossimi pezzi che finiamo
ricevendo un’intera industria di libri
come eseguire effettivamente le esecuzioni su
software quindi se si può effettivamente sfruttare
un’API e si può effettivamente costruire il
software direttamente in cima possiamo farlo
più facile per le persone effettivamente eseguire il tuo
applicazioni nello stesso modo in cui
in effetti è piuttosto facile in questi giorni
scarica un’applicazione sul nostro sul nostro
macchine desktop e basta eseguirlo
va bene
quindi c’è stato un bel a
alcuni di questi tipi di distribuito
sistemi che sono stati costruiti direttamente sul
top of mesas SPARC è un grande dato
Era il framework di analisi Apache Aurora
in realtà l’orchestrazione di un servizio
programma che abbiamo costruito su Twitter
apriamo un paio di anni fa
maratone quello che ho citato è Cronos
un polo distribuito con dipendenze
come lo scheduler quindi è molto simile a
cron su una singola macchina tranne Chrono
Attraversa l’intero data center e poi
c’è stato anche un sacco di questi
framework che sono stati portati in cima
di mesas quindi cose come la tempesta di Hadoop
Jenkins e stiamo lavorando attivamente
fare una porta di Cassandra o lavorare davvero
bene e poi naturalmente è mesas
effettivamente utilizzato in un gruppo questi
organizzazioni che stanno usando una manciata
di questi questi due questi due diversi
sistemi distribuiti in cima ovviamente io
parlava di un Twitter
ci sono state anche altre organizzazioni
quello che chiamerò più di recente
come Apple Apple in realtà di recente
ha annunciato che loro
usando un presunto per far funzionare tutta la Siria
in alto e hanno effettivamente costruito un nuovo di zecca
sistema distribuito in cima a mesas
gestire esattamente come vogliono correre correre
La Siria, internamente, va ancora più in profondità
okay, prendo un po ‘d’acqua
va bene così andando ancora più a fondo così la strada
mazza era in realtà funziona sotto il cofano
così dentro a Mesa, se lo sei davvero
costruendo uno di questi distribuiti
sistemi in alto o l’attuale API
il dell’API che la maggior parte delle persone finiscono per
l’utilizzo è ciò che viene chiamato un’offerta di richiesta
API e così il modo in cui funziona è quello
quando uno scheduler vuole effettivamente essere eseguito
un’applicazione possono eseguire una
richiesta di risorse puoi dire queste
sono alcune risorse che vorrei usare
per essere effettivamente in grado di eseguire il mio
l’applicazione va bene e una richiesta è davvero
è un sottoinsieme semplificato di tipo di a
specifica per ciò che vuole eseguire
sono solo le risorse di cui ha bisogno
quel punto nel tempo va bene ora che cosa
quello che maysa fa allora è che prende tutto
le richieste nel sistema e ci vuole
qualunque altra informazione che sa
e crea ciò che viene chiamato
offerte e offerte sono efficaci
allocazioni a cui fa ritorno
gli scheduler si basano su ciò che alcuni
gli orari potrebbero aver bisogno di eseguire i loro
applicazioni i meso smashers
in particolare l’allocatore e il mesas
il maestro dice che va bene, ecco alcuni
risorse che posso assegnarti a te
può effettivamente usare questi per eseguire il tuo
applicazioni e ovviamente non lo siamo
solo facendo una singola offerta o facendo
molte molte offerte allo stesso tempo così
che cosa fa allora il programma viene utilizzato
queste offerte usa queste allocazioni
decidere quali compiti effettivamente vuole
per correre e questo è davvero dove questo
la pianificazione a due livelli entra così se il
il primo livello è la salsa che sta davvero facendo
le decisioni di assegnazione circa
risorse ai singoli quadri che
potrebbe essere lo stesso tipo di struttura appena
più istanze di esso e poi e
poi quelle quelle strutture in particolare
lo scheduler e le strutture sono
decidere quali sono i compiti che loro loro loro
in realtà sta andando a eseguire quali lavori sono
effettivamente andando a correre in base al
risorse disponibili che possono utilizzare
ok una volta una volta scelgono un compito
loro vogliono correre e loro dicono ok questo è
un’attività che voglio eseguire, quindi verrà inviata
questo compito torna a Emmaus e dire
ecco il
Voglio correre e ancora questo è dove
la maggior parte dei sistemi di distribuzione finisce per doverlo fare
costruisci questo pezzo dove sono loro
sapere se si desidera eseguire alcune operazioni su
qualche altra macchina che hanno dovuto costruire
nella componente per ottenere i compiti
l’ altra macchina prende la macchina
quel compito e in realtà iniziare a iniziare
eseguire qualunque cosa sia necessaria per l’esecuzione
in questo caso possono solo dire qui
ecco il mio compito eseguirlo e andare bene così
è un paio di modi diversi che puoi
effettivamente eseguire le attività di esecuzione in maggio cuce così
puoi semplicemente dare un compito con un comando
in comandi shell arbitrari e
a seconda di come hai effettivamente impostato
l’immagine di base sul tuo data center
comando potrebbe o potrebbe non funzionare se si esegue a
testare con un comando è piuttosto semplice
dice qui ecco il compito che voglio eseguire
Di nuovo loro come ho detto c’è un
processo agente su ciascuna delle macchine
che ottiene l’incarico quando viene assegnato
ad esso e poi solo quello che lancia
il compito va bene e ovviamente puoi correre
più attività sulla stessa macchina voi
puoi anche se puoi puoi lanciare
compiti attraverso ciò che chiamiamo un esecutore
a Mesa quindi è questo livello extra di
Indiretta che lascia che ti lasci come
qualcuno che sta cercando di costruire un
sistema distribuito essere in grado di specificare
esattamente come vuoi che i tuoi compiti
in realtà funziona così come funziona
di nuovo vai a lanciare un compito ma tu
specificare un esecutore è un esecutore
la prima cosa che eseguiamo realmente
e poi passiamo attaccati all’esecutore
e l’esecutore può decidere come
in realtà vuole eseguire i suoi compiti e
di nuovo un tipo di esecutore di più attività
quindi il motivo per cui questo è davvero davvero
interessante è perché ti permette di
effettivamente inviare compiti a qualcosa su un
macchina individuale che non richiede a
exec for fork completo quindi se lo si desidera
diciamo costruisci un sistema distribuito dove tu
voglio solo fare più cose, per dire
generare thread o allocare memoria
potresti fare qualcosa di simile in questo
modello quindi volevamo specificamente costruire
qualcosa così se stavi cercando di costruire
un sofisticato sistema di distribuzione che
non volevo dover dire completamente 4k
exec per fare un compito molto piccolo come
dire tirare fuori qualcosa da una coda e
elaborarlo che potresti effettivamente fare
qualcosa del genere va bene
quindi di nuovo se stai correndo se lo sei
correndo con l’esecutore x ‘che puoi
anche essere sulla stessa macchina in esecuzione solo
solo i compiti di alto livello vanno bene così che cosa finiamo
fare su ognuno dei singoli
le macchine sono isolate con un contenitore
isoliamo il singolo esecutore Zoar
i compiti vanno bene così com’è questo è
qui abbiamo lanciato un executor è
ha un compito in esecuzione a un livello superiore
compito e abbiamo messo un contenitore in giro
ognuna di queste cose diverse così
sono isolati da una risorsa
prospettiva da utilizza uno di un altro
risorse e la tecnologia che noi
in realtà effettivamente usare per fare questo è il
stessa tecnologia che è sottolineata docker
gruppi di controllo linux e spazi dei nomi così
prima che esistesse la finestra mobile questo è il modo
che lo abbiamo fatto e questo è uno dei
ragioni per cui ho menzionato all’inizio
un sacco di persone che usano la salsa Mesa in
i primi tempi avevano solo tarball o
file jar perché non c’era un intero
immagine di cui avevano bisogno avevano appena avuto
i loro pezzi in quella forma che abbiamo costruito
il contenitore intorno a loro e poi loro
spacchettato la loro tarball un bene della
cose che sono davvero interessanti
questo modello anche se specificamente con
esecutore z– è che da quando abbiamo messo questi
contenitori intorno a loro puoi facilmente
passare più compiti all’esecutore e come
in realtà passiamo più compiti all’esecutore
aumenterà le dimensioni del contenitore
in modo dinamico quindi aggiungeremo di più
risorse per il contenitore così per
quelli sono veramente familiari con
verticale contro orizzontale ridimensionandolo
in realtà ti consente di eseguire il ridimensionamento verticale
direttamente sulle macchine e di
portata ad altre macchine okay e
naturalmente quando le macchine si abbassano
effettivamente scala in scala verticale il
contenitori giù bene e poi finalmente di
Certo che se non lo fai non stai inviando
noi un tarball o oo gzip puoi inviare
noi un’immagine di docker e noi eseguiremo semplicemente il
immagine docker direttamente va bene così uno dei
cose del genere che vengono fuori molto
quando le persone si tuffano davvero nel profondo
di come sono d’accordo è ciò che è
alta disponibilità elevata disponibilità
effettivamente sembra nel sistema così
è stato progettato dal primo giorno per lasciare tutto il
diversi componenti del sistema falliscono
indipendentemente e non c’è davvero
che molti componenti i componenti principali
ancora come ho detto sono i maestri e
gli schiavi e l’altro componente
è zookeeper che attualmente utilizziamo per
un’elezione di leader ma quelli sono i
tre tre componenti principali di cui hai bisogno
effettivamente gestirà un cluster di mesas così
quando qualcosa come un maestro fallisce
tuttavia lo scheduler otterrà solo
reindirizzato tramite zookeeper a
comunicare con un altro maestro che è
eletti e tutti i compiti che sono stati
eseguire tutto ciò che è stato lanciato volontà
continua a correre
va bene la stessa cosa con uno schedulatore se
un programma di pianificazione capita di andare giù allora
un altro schedulatore può essere eletto e e
si riconnetterà ai Maestri e questo
scoprirai qualcuna delle sue attività
che avrebbe potuto dire fallito mentre lo era
giù così questo in realtà è piuttosto carino
interessante una cosa piuttosto interessante
che abbiamo costruito quando abbiamo costruito per la prima volta
la nozione di failover dello scheduler noi
in realtà ha dato un time out che si
potrebbe specificare prima quando un programma di pianificazione
registrato per decidere di sapere quanto tempo
volevi aspettare per fallire potenzialmente
oltre e se è trascorso questo lasso di tempo
e vorremmo solo ripulire per te e
avremmo tipo di uccidere tutti i vostri tutti i
i tuoi compiti sotto le coperte, quindi cosa era
davvero interessante di questo è stato il
la prima volta che lo mettiamo a posto a
Twitter quando stavamo eseguendo il
Il programma di servizio di Aurora in primo piano credo
pensavamo che avessimo avuto una durata di cinque ore
timeout di failover e poi abbiamo avuto un noi
ha avuto un’interruzione che era come quattro ore
e 30 minuti e così abbiamo quasi ucciso
ogni singola attività nel cluster
perché non avevamo lo schedulatore
riconnettersi al master entro i cinque
ore e così il failover avrebbe avuto
stato trascorso quando avrebbe ucciso
tutto così poi dopo che abbiamo detto oh
beh, facciamo 24 ore, quindi ci siamo imbattuti
fino a 24 ore e poi una coppia
settimane dopo abbiamo avuto un failover noi
non è stato possibile ottenere il programma per riconnettersi
entro circa venti due ore e dopo
che l’abbiamo appena superato per raddoppiare al massimo
quindi a questo punto il modo in cui lo scheduler
failover funziona davvero per la maggior parte delle persone in
le organizzazioni lo tengono sempre
in esecuzione o quando quando è il primo
disconnette arrestare tutti i miei compiti che
sono in esecuzione ma ancora abbiamo il
funzionalità e ed e e tu puoi
decidere cosa vuoi fare lì così
l’ultimo tipo di alta alta disponibilità
che abbiamo nel sistema è ciò che noi
effettivamente chiamare schiavo failover così nuovamente
abbiamo questo processo agente che è
in esecuzione che gestisce gli schiavi e
in realtà abbiamo la capacità di farlo
processo che gestisce le attività vanno via
e se le attività se questo processo va
di distanza e uno nuovo esce allora sarà
raffinato o ricollegherà uno qualsiasi dei
altri compiti o uno degli altri
contenitori o qualsiasi altra finestra mobile
contenitori che è stato effettivamente lanciato
quindi questo è stato davvero molto importante per noi
perché i tipi di servizi che
le persone in realtà vogliono finire per correre
in produzione sono cose come memcache
o Redis
o altri servizi dove se ogni singolo
tempo in cui il nostro processo è morto
in realtà abbiamo ucciso tutti i contenitori
quello che stava funzionando sarebbe davvero
davvero sfortunato ora, naturalmente, noi
non vogliono il nostro processo di morire molto
perché lo renderemo robusto
possibile ma c’è una volta quando
stiamo andando sempre essere abbattere
il processo e questo è quando siamo
effettivamente facendo manutenzione o un aggiornamento
dello stesso livello maysa e quindi cosa noi
stavamo incontrando era stiamo correndo dentro
sostituire al caso in cui ci sarebbe
voglio aggiornare può salsa nei dati
centro e quello che dovremmo fare è
devo andare a una macchina che dovremmo
svuotare efficacemente i compiti
uccidi i compiti e poi aggiorna il tuo
sapere aggiornare la macchina e così e poi
Metti, metti, Metti, Metti, Nuovi, Nuovi
binario su e poi sai che le cose possono
ottenere riprogrammato su quella scatola che è
bene quando hai una manciata di macchine
e quando inizi a entrare
centinaia di macchine per garantire il
SLA che vuoi quando inizi
uccidere le attività e farli migrare a
altre macchine può iniziare a prendere giorni
se non settimane se non mesi per effettivamente
aggiornare un cluster quindi era un bel
caratteristica critica abbiamo messo in bene, quindi sono
andando ad andare un po ‘ più in basso
la tana del coniglio ma sto per farcela
salta un po ‘perché ci arriviamo
piuttosto in profondità e arriviamo abbastanza in profondità
il foro di coniglio con un con la
diverse caratteristiche di mesas così
Sto per saltare parlando di come
Effettivamente facciamo la nostra allocazione di primo livello
e salterò su altri più in alto
i concetti di livello vanno bene, quindi ne abbiamo alcuni
altri grandi fantastici grandi concetti in Mesa
salsa che abbiamo dovuto introdurre
in particolare per eseguire questa roba in
produrre la coppia che voglio
menzione brevemente sono la prima coppia
quelli che voglio citare è davvero
prenotazioni di risorse
quindi è questo concetto di base che puoi
entra e puoi dire di sapere per cosa
alcuni quadri che eseguono per
alcuni programmi che eseguono I
in realtà vuole fare in modo che
le risorse sono garantite per essere assegnate
a questi quadri in modo da poter ottenere
garanzia così puoi farti sentire bene
di notte quando vai a dormire e tu
sappi che ci sarà un sacco di
fallimenti che è almeno se c’è questo
molte risorse saranno queste molte risorse
essere garantito a diverse applicazioni
quindi il modo in cui la prenotazione è in realtà
lavorando in Mesa è possibile specificare il
prenotazioni sulle singole macchine
e puoi dire che sai che voglio
creane alcuni
dimensioni del contenitore pre-specificate quattro per
alcuni dei lavori che voglio eseguire
in alto in modo da poterlo fare staticamente quale
è fantastico quello che ti dà veramente
questa nozione di forti garanzie ma il
la parte sfortunata è che ha
essere impostati da un operatore quando sono
iniziando quando stanno iniziando lo schiavo
per la prima volta e in realtà
mutabile perché una volta impostato il
le prenotazioni devi effettivamente drenare
tutto fuori se lo vuoi che vuoi
per cambiare le prenotazioni, quindi cosa abbiamo
recentemente introdotto in maysa è questo
concetto di prenotazioni dinamiche che
sono piuttosto fantastici è questa idea di base
che quando un quadro quando quando a
programma all’interno di un framework sta cercando di
eseguire un’applicazione la prima volta
ottiene risorse assegnate a
quando va a farlo funzionare davvero
compiti che non possono semplicemente dire lanciarli
compiti ma può anche dire di riserva quelli
risorse per me quindi sono garantito
tali risorse saranno ridistribuite a
me non importa cosa dopo che la macchina va
giù per manutenzione dopo aver fallito dopo
c’è una partizione di rete per molto tempo
periodo di tempo e alla fine sai
hai chiuso il mio processo verso il basso qualunque esso sia
quindi una volta che otteniamo effettivamente il
risorse e i compiti per il
macchine individuali facciamo il
le prenotazioni ci sono quindi prenotazioni
grandi perché forniscono la bella
garantisce che tutti noi vogliamo quando
in realtà stiamo correndo in una produzione
ambientazione ma davvero a costo di
utilizzo in modo da sapere quando finisci
avendo una grande fetta di risorse che sono
riservato per un particolare per a
organizzazione particolare potrebbero essere
usando pochissime di quelle risorse
che tipo va contro il tutto
idea di come stiamo usando un cluster
manager in realtà essere in grado di guidare
per aumentare l’utilizzo delle risorse in genere
a che fare con che noi e questo altro
concetto può supporre che in realtà
chiamare risorse revocabili e il concetto
punto ha scritto risorse revocabili c’è
risorse che possono essere utilizzate da diversi
quadri in cima che possono effettivamente essere
ripreso dagli scheduler che hanno
ha avviato le attività con loro in modo che questo finisca
presentando una cosa veramente bella
proprietà per le persone che stanno cercando di
costruire nuovi sistemi di distribuzione che è
il modo in cui possono pensare
la prelazione nella loro testa è quella
la prelazione avviene in realtà tramite Reve
occasione quindi non abbiamo la nozione di
priorità nel sistema che non ci piacciono
indovina chi ha una priorità leggermente più alta
e quale semantica vorrà dire
in pratica significa che se stai usando
risorse a cui è riservato
tu o no contrassegnato come revocabile non lo siamo
andando a prenderli da te e se
stai usando le risorse che sono
revocabile
tu sei è molto probabile che
i tuoi compiti saranno anticipati per ottenere
le loro risorse tornano a posto
quindi una delle cose davvero fantastiche
con cui stiamo effettivamente lavorando
le risorse davvero interessanti in questo momento sono finite
abbonamento quindi finisce per accadere e
molte di queste organizzazioni sono loro
iniziare a eseguire i loro compiti e gli utenti vengono
e dicono che i miei compiti richiedono 8 CPU
e 8 giga di RAM e utilizza 2 CPU e
2 concerti di ram e ora abbiamo tutto
queste risorse che sono state assegnate
ma in realtà non vengono utilizzati, quindi cosa
possiamo fare è possiamo prendere quel rimanente
6 CPU e 6 giga di RAM e possiamo
offrire loro fuori fuori per altre cose
che stanno cercando di eseguire nei dati
centri come revocabili possono usare quelli
risorse e, naturalmente, se prima
applicazione che stava cercando di utilizzare tutti gli 8
Le CPU e le 8 date di RAM scalano di conseguenza
in realtà recupererà le risorse
okay , ancora una volta scusami
questa garanzia occasione Reeve che abbiamo
davvero fornire però qual è quello
le attività non verranno uccise, a meno che non lo sia
usando risorse revocabili è difficile
fornisci sempre uno dei più difficili
luoghi quando è difficile da fornire
è quando potremmo voler dire deframmentazione
il cluster perché il modo in cui roba
è stato programmato nel tempo che conduce
ad un utilizzo meno utile che se noi
potrebbe effettivamente mettere insieme alcune cose
e chiudere alcune macchine o
nello specifico quando non siamo quando vogliamo
per fare effettivamente manutenzione così alcuni di
gli ultimi primitivi che siamo stati
introducendo in più di recente il nostro
primitivi che stiamo effettivamente facendo
deallocazioni in modo che possiamo possiamo
introdurre la manutenzione come un software
concetto nel sistema in modo da conoscerne uno
modo in cui possiamo effettivamente fare
la manutenzione è che possiamo ancora andare in giro
e possiamo uccidere macchine o spegnere
macchine o drenaggio scarico scarico uh compiti
per le macchine e poi non lo sapranno
su di esso faranno solo pensare che ci
è stato un fallimento e poi passeremo da
lì ma potremmo davvero fare di meglio così
abbiamo questo concetto davvero interessante
in e può salsa che chiamiamo un inverso
offrire dove un’offerta è un’assegnazione di
risorse che ti sono state inventate
l’offerta è un’assegnazione di risorse D
dove diciamo hey ci piacerebbe questi
risorse indietro specificamente vorremmo
con queste risorse torna in questo periodo
di questo momento e per questo
periodo di tempo perché dire che stiamo andando
per spegnere la macchina durante questo
periodo e quindi non è possibile eseguire in qualsiasi momento
su di esso va bene così così che è abbastanza bello noi
può inviare un’offerta inversa e poi
il quadro può dire grandi cose
riconosci che prenderai il mio
risorse via e chiuderò il mio
risorse così che ci permette di introdurre
qualcosa come la manutenzione in davvero
modo programmatico così cominciamo da
inviando offerte inverse poi noi
in realtà una volta che abbiamo inviato tutto il
offerte inverse possiamo continuare a inviare
fuori altre assegnazioni ma segnate semplicemente il
risorse che sono per l’uso
lì come revocabile e poi finalmente una volta
tutte le attività si sono fermate in esecuzione su
le macchine possiamo rimuoverle dal
cluster e fare qualunque manutenzione che
in realtà vogliamo fare bene così sai
questo esce spesso quando si parla di
gestione dei cluster , ma per quanto riguarda il mio
dati persistenti come eseguo il mio stato
servizi su gestori di cluster e così via
per questo introduciamo anche un concetto
recentemente abbiamo chiamato volumi persistenti così
l’idea dietro i volumi persistenti è
di nuovo quello di questi quadri
attraverso l’API programmatica quindi software
può andare e può creare persistente
volume per qualsiasi compito esso sia
cercando di correre bene e così fa
quando ottiene un’allocazione di risorse
attraverso un’offerta quando va al varo
qualsiasi tastic e dire dal modo in cui anche io
vuoi che crei un volume persistente
per questo compito su questa macchina e di
Certo che me ne parli in futuro se
la macchina si guasta mai o il mio compito fallisce
o una qualsiasi di queste altre cose accadono e
di nuovo propagiamo il volume persistente
informazioni fino in fondo
schiavo in modo che possa così registrare
informazioni e possiamo occuparci di tutto il
scenari di fallimento di cui ho parlato
prima
quindi quali sono i volumi persistenti
sembra come sulla macchina individuale
è proprio come un tipo di dinamica
Le prenotazioni hanno i contenitori preimpostati
abbiamo creato questi contenitori con
cose come volumi che sono preimpostati per
quei contenitori così quando un compito va a
eseguirlo può effettivamente utilizzare uno qualsiasi dei
volumi persistenti che sono stati
assegnato per esso ma naturalmente che
l’attività fallisce quindi il persistente
i volumi andranno in giro e il
la prossima volta che proverai a eseguire un’attività
usando quella forma persistente lo farà ancora
essere lì così penso che il più grande
l’immagine di molte di queste caratteristiche è
che stiamo cercando di costruire queste cose
nello specifico in modo da poter durare a lungo
quadri di stato quindi non solo tutto il
servizi elenco di stato che ho davvero parlato
circa prima le cose che abbiamo seguito
un attacco quando abbiamo iniziato a farlo
questo su Twitter
ma anche le cose stateful e
davvero questa combinazione di prenotazioni
offerte inverse e volumi persistenti
ci dà davvero i primitivi da fare
qualcosa del genere
va bene solo un altro paio di diapositive e
allora prenderò alcune domande così tu
conoscere questi giorni è un momento molto divertente
tutti i nostri altri computer sono
efficacemente i data center che possiamo creare
valore dei centri dati molto
molto facilmente su qualsiasi nuvola pubblica
o li abbiamo appena a nostra disposizione a
le nostre organizzazioni esistenti e tu sai
qui da data center ho davvero solo dire
qualche raccolta di fisica o virtuale
macchine che stavano raggruppando e
e trattando come un unico grande dato
centro computer perché davvero i dati
il centro dovrebbe essere solo un’altra forma
fattore
proprio come i nostri computer portatili un fattore di forma e
e compresse un fattore di forma e il
i telefoni cellulari sono fattori di forma e se
maysa è davvero questo kernel del data center
che stiamo cercando di costruire il naturale
la domanda è pure quali sono i dati
sistema operativo centrale come e
questo è quello che stiamo facendo a Mesa
la sfera sta cercando di costruire ciò che chiamiamo
la base per il funzionamento del data center
sistema così da guardare quella pila da guardare
a tutto ciò di cui ho parlato
prima nella presentazione che cosa
finisce per sembrare come se tu avessi questo
kernel come layer che chiamiamo meso s–
e poi hai una sorta di questa API
strato in cima e poi di nuovo è possibile
o usare direttamente qualcosa del genere
maratona per lanciare le tue app o Chronos
per avviare le tue app o puoi andare e
puoi costruire il tuo schedulatore e
distribuire il sistema utilizzando l’SDK maysa
in cima e una delle cose belle qui
è che sai quando finisci quando
finisci per costruire il tuo software in cima
di questo sei lontano dal se
stai correndo su bare metal o se
si sta eseguendo su su una delle nuvole
e ancora come ho detto prima della maratona
in realtà finisce per essere una sorta di init
per il sistema operativo del data center
è la cosa che usi per il lancio
il tuo primo compito e Chronos finisce davvero
essere una sorta di cron per il
inoltre per il data center operativo
sistema ok una delle cose che abbiamo costruito
quando quando siamo a volte in realtà
costruzione di questo è open source
la CLI DCOs quindi la prima è la prima
le cose che abbiamo effettivamente costruito erano una CLI
che è solo per interagire con questo
dati del computer del centro dati ovviamente
sistemi operativi centrali operativi
i sistemi hanno bisogno di interfacce utente così
la prima cosa che abbiamo costruito è la CLI e lo è
piuttosto bello con cui puoi agganciarlo
uno qualsiasi dei sistemi distribuiti
stai cercando di correre sopra come
qualcosa
Kassandra e tu puoi davvero farlo
qualcosa come l’ installazione del pacchetto DCOs
Cassandra e in realtà ottenere un
implementazione di Cassandra in esecuzione
sul centro dati senza dover
in realtà toccare tutto ciò che è un che
è molto molto bello e allo stesso tempo
abbiamo alcuni ganci ancora più stretti nel nostro
CLI con alcune applicazioni
come la scintilla, quindi se vuoi correre
un lavoro scintilla che non devi installare
scintilla puoi solo andare avanti e fare a
Scintilla DCOs run – run run spark
applicazioni direttamente sui tuoi dati
il centro va bene così ho parlato per circa 46
I minuti mi fermerò ora e mi piacerebbe
per prendere qualsiasi domanda, sì, lo farò
ripeto , ripeterò la domanda se
tutti hanno sentito così ho parlato
in realtà essere in grado di fare verticale
ridimensionamento su una singola macchina e
quindi ovviamente possiamo raggiungere un picco
delle nostre risorse quindi non puoi non puoi
basta prendere arbitrariamente forum su
la macchina e devi effettivamente
pianificare le attività all’interno del contenitore
che hai in realtà lanciato per AT
per noi in realtà salire verticalmente
il contenitore quindi se non ci sono if
tutte le risorse sono effettivamente assegnate
ad altri contenitori o altri compiti o
altri dirigenti che sono in esecuzione quindi
non lo faremo
loro non saranno assegnati loro loro loro
non sarà utilizzabile quindi non lo sarai davvero
qualsiasi cosa all’interno di quel contenitore così
le risorse sono contabilizzate quindi è il TLDR
che le risorse sono contabilizzate in
esattamente come se lo fossero
correndo fuori dal container , solo noi
lascia che tu esegua il compito dentro e poi
scala il contenitore da lì
che rispondi alla domanda II vedi così così
la domanda è se tu potessi
le risorse sono eterogenee che di
il modo in cui è quasi sempre il caso che
c’è una collezione eterogenea di
sai forme di base macchina può uh possibile
tu e hai detto allora che la domanda è possibile
tu se stai facendo funzionare una macchina puoi
un po ‘come se tu di solito non lo facessi
quello che sta succedendo è se stai eseguendo un
compito su una macchina e in realtà tu
voluto scalare verticalmente ma tu
solo non potrebbe mai stare su quell’individuo
macchina dovresti chiudere l’attività
e quindi eseguire l’attività su un diverso
macchina ma se ci sono le risorse
a disposizione
puoi scalare verticalmente e verso il
nello stesso tempo, una volta che hai usato quelle
risorse che puoi scalare verticalmente
quindi le applicazioni che finiscono per prendere
vantaggio di questo il più tendono ad essere
cose come l’ analisi continua
integrazione cose cose che sei tu
conosci i compilatori che stanno costruendo cose
spesso sono questi più brevi vissuti
le applicazioni che mi scusi potrebbero prendere
vantaggio del fatto che tu abbia
ho già iniziato a fare calcoli
da qualche parte e quindi se puoi semplicemente correre
un po ‘di roba lì adesso
sarò in grado di farlo molto più velocemente allora
allora se ne dovessi portare un altro
orizzontalmente da qualche altra parte e poi da e
poi vai da lì e così è
questo è precisamente il motivo per cui entrambi noi
di cose in cose come la scintilla per
esempio ne approfitta esplicitamente
questo gira su meso s– e quando
vai a eseguire un’altra attività e innescare RT
ha alcuni dei dati in memoria su questo
su una macchina particolare su cui eseguirà l’operazione
quella macchina verrà scalata verticalmente
userà le cose in memoria e poi
quando è fatto e più in scala verso il basso
e poi sai che le risorse sono
di nuovo libero e sai che ti salva
un tempo significativo e gestendo i tuoi lavori
e portalo su da qualche altra parte
domande domande grandi come si fa
dare la priorità a diversi carichi di lavoro su
Stesso cluster di mezzos, fai scoppiare i lavori di meno
forse anche più orgoglioso della maratona
all’interno dello schedulatore va bene così alcuni
delle diapositive II saltate nel coniglio
la parte del buco era specificatamente come facciamo noi
primo livello di assegnazione e di Mayo e
quella allocazione di primo livello è come noi
scegliere quali risorse allocare
alcuni dei diversi scheduler che
stanno correndo sopra così l’idea di base
nel sistema siamo noi al primo livello
scheduler il primo livello di default
i programmi che abbiamo sono qualcosa che noi
chiamare un equità di risorsa dominante e
ed è un algoritmo di condivisione equo ma è così
ha pesi in modo da poter effettivamente allegare
pesa su cose come un’istanza di scintilla
o istanza di Hadoop o maratona o
kubernetes o qualunque cosa tu sia
cercando di correre a dare preferenzialmente
quelle strutture che funzionano di più
risorse così sai per esempio te
può infatti
puoi eseguire tre istanze di qualcosa
mi piace come la scintilla e puoi farcela
istanza con un livello veramente alto
peso e gli altri con davvero
pesi veramente bassi e che cosa
abilita efficacemente lo sai
con il peso elevato può essere il tuo
produzione che ottiene sempre il
risorse e quello con il basso
i pesi possono essere solo quelli che conosci
che butti via così questa è solo una parte
di esso, però, perché non ci può essere ancora
circostanze in cui le cose vengono programmate
in questo modo di condivisione equo che non lo fa
in realtà soddisfare i bisogni del
organizzazione e questo è specificamente il motivo
abbiamo introdotto il concetto di
le prenotazioni sono perché le prenotazioni
Facciamo davvero un operatore che sta funzionando
il cluster sia in grado di dire a una certa parte
della sua organizzazione voglio una garanzia
avrai almeno 300 CPU
e 400 giga di ram e così sto andando a
metti questa prenotazione in atto o sei tu
andando a metterò questa prenotazione
posto ma si sta andando a riempire
basato dinamicamente su quando in realtà
gestisci le cose ed efficacemente cosa
fa è solo dà migliori garanzie
allora sai con cosa condividere equamente
pesi, ecco perché abbiamo introdotto
quegli altri concetti sì io e molto a
molte delle cose che hanno
influenzato queste decisioni hanno
specificamente andato e guardando
il modo in cui il nostro host tradizionale opera
i sistemi svolgono questi stessi ruoli e
poi e poi introducendo concetti che
sono suscettibili al data center
ambiente al sistema distribuito
ambiente o in alcuni casi sono esattamente
esattamente lo stesso
tu

Please follow and like us: