
Voglio parlare un po ‘di
storia e come siamo arrivati qui e poi
dove penso che stiamo andando e come Nomad
può risolvere quei problemi e
in particolare, come è diverso rispetto al
altri programmatori di cui abbiamo sentito parlare
Apache mesas e kubernetes così il mio nome
è fargo sud sono il direttore di
Evangelismo alla corte di haji sono un ingegnere
dal commercio quindi ho precedentemente lavorato a
numero di società di ingegneria voi
potrebbe riconoscere la mia faccia dallo chef
comunità ho fatto un sacco di lavoro lì
e più recentemente mi sono trasferito in una specie di
questo ruolo a tempo pieno di evangelizzare tutto
degli strumenti aziendali Hashi quanti
le persone hanno familiarità con quanto chic o
mi piace quando i numeri salgono
perché questo significa che sto facendo il mio lavoro per
quelli di voi che non hanno familiarità con
hashey core facciamo un certo numero di
strumenti open source siamo open source
compagnia quindi facciamo vagabondo che è un
strumento veramente popolare per automatizzato
ambienti di sviluppo Packer che è
uno strumento per la costruzione di macchine automatizzate
immagini surf e console che sono nostre
scoperta di servizi e distribuzione
quadri di valori-chiave costruiti sopra
zattera e pettegolezzi terraforma che è la nostra
fornitura di infrastrutture e
strumento di gestione quindi la nostra infrastruttura
codice volta segreto gestione nomade
di questo parlerò oggi
è la nostra applicazione distribuita
scheduler auto che è il nostro parere
assumere tutti i nostri altri strumenti e Atlas
che in realtà non è open source
il nostro prodotto commerciale ma come ho detto io
voglio parlare di nomade oggi e allora?
è nomade di quante persone ne hanno sentito parlare
nomade, non so se tu abbia questo
ancora, ma mi piace l’impegno quindi potrei chiedere
per alzare la mano un sacco di volte
va bene grazie per aver sopportato
quindi Nomad è distribuito globalmente
programmatore ottimisticamente concorrente e
abbiamo sentito questa parola un numero di volte
ora programmatore ma come non l’abbiamo mai fatto
veramente definito nel contesto di
tecnologia quindi voglio fare un passo indietro
e se guardi come il dizionario
comm, di cui sai la fonte
qualunque cosa
definizione di uno scheduler che dice
è un programma che organizza lavori o
operazioni del computer in un appropriato
sequenza così ho pensato che fosse troppo
specifica così ho preso un passo indietro, anche
oltre e volevo ottenere il
definizione di uno schedulatore
nel mondo reale quindi uno scheduler è un
persona o macchina che organizza o
mantiene gli orari così è carino
gli scheduler piuttosto standard sono solo un
modo di mappare una serie di lavori su un insieme di
risorse quindi questo è uno schedulatore
Microsoft Excel circa prima che io nascessi
e al livello di base a
spreadsheet è uno schedulatore che fornisce a
modo per noi di mappare i valori avvolgere le risorse
sui valori quindi non so perché il mio
clicker ha un comportamento anomalo così tradizionalmente
se facciamo un passo indietro come negli anni ’90
per un po ‘ tutti avevano il loro
centro dati e ho usato la parola aria
cita lì perché alcuni dei dati
i centri erano come l’ armadio nel
ufficio e hai dato tutti i tuoi server
nomi perché dovevi farlo perché lo avevi
per riferirsi a loro così in questo caso che ho
scelta di guerre stellari a tema
hai sempre scelto un tema come parti di
l’occhio o il tuo film preferito in questo modo
potresti ricordarli così in questo caso
abbiamo quattro server che abbiamo Skywalker
Vader Leia e Solo e tu o un
operatore metterebbe applicazioni su
quelle macchine così in questo caso che abbiamo
alcuni Python e ne abbiamo un po ‘e poi
conosci Ruby e node.js
occupano molto più memoria così hanno
per ottenere il proprio server ma anche tu
avere questo come te personificato questi
server quindi ad esempio lo sapevi
che Vader non era buono, così anche tu
hai il tuo piccolo foglio di calcolo che conosci
il tuo foglio di calcolo Excel o se lo fosse
come un piccolo blocco note e lo hai registrato
fino al muro e hai l’IP
indirizzi e gli indirizzi MAC e poi
quella nota colonna e come in questo caso
Vader uccide solo casualmente le applicazioni
non ho davvero capito perché no
avere davvero il tempo di affrontare il problema
ma sappiamo solo che succede così quando a
server va offline o prende fuoco il
l’operatore era responsabile per
riprogrammare tale domanda e / o
fissando la macchina minimizzando i tempi di fermo macchina
quindi in questo caso potremmo riprogrammare il
Applicazione Ruby a Skywalker noi
potrebbe ripianificare l’applicazione Python
che no
applicazione e l’applicazione di pitone a
da solo sai che non ci siamo ancora
massimizzazione delle risorse ma non abbiamo
tempi di inattività più allora quando quel server
viene riparato quindi se è sostituito o
riparato dobbiamo assicurarci che noi
aggiorna il foglio di calcolo perché è
sta per avere un nuovo indirizzo IP e poi
diciamo come sai ricostruito su di te lo sai
420 2016 e quindi possiamo iniziare
pianificazione delle applicazioni di nuovo in cima a
quello e questo flusso di lavoro era abbastanza comune
e poi abbiamo poi imparato che se tu
dare a questi operatori i cercapersone che diventano
altamente disponibile e non hai
i tempi di fermo più
quindi questo ovviamente non lo scala
non in scala, nel 1990 non scala in
l’infrastruttura informatica moderna di oggi
ma non scala ancora peggio perché
siamo entrati nell’era del cloud noi
spostati nell’era della domanda
applicazioni abbiamo visto molti discorsi
circa come lambda e serverless
architettura quindi avere un operatore
prendere una decisione su dove un
l’applicazione dovrebbe vivere non in scala
l’architettura di oggi quindi parliamo di
scheduler che sono stati in giro per a
davvero tanto tempo quindi penso che sia stato
portato in anticipo ma una CPU lo chieda
come lo schedulatore della CPU una parte del tuo
il sistema operativo è responsabilità è
così da mappare particolari processi a una CPU
qui abbiamo una macchina a quattro core che ho
quattro processi ho il kernel stesso
Apache reticent bash e basta
ottimo ma facciamo finta di avere come un
due core machine quindi non abbiamo più
una mappatura uno-a-uno
invece abbiamo quelle risorse che sono
gareggiare per lo stesso core quindi è il
Responsabilità degli schedulatori per stabilire le priorità
quelli così in questo caso cosa ha il
la più alta priorità che qualcuno vuole prendere a
indovina il kernel giusto perché se il
il kernel non è in esecuzione né lo è
qualsiasi altra cosa , in tal caso il kernel
potrebbe ottenere un nucleo dedicato e potremmo
si sta spostando tra gli altri tre
applicazioni sul secondo nucleo ma noi
potrebbe anche spostare le operazioni dei kernel
al secondo nucleo ad un certo punto perché
questo è ciò che fa questo schedulatore e il
modo si rende tale decisione è fino a quel
particolare schedulatore nei vincoli
questo è dato
quindi gli scheduler non sono un nuovo concetto
sono stati in giro per un periodo piuttosto lungo
tempo così gli scheduler della CPU mappano i thread in questo modo
il lavoro che devono fare è discussioni
li mappano su nuclei fisici nel
contesto di come ec2 o stack aperti Nova
stiamo mappando le macchine virtuali sul lavoro
è una macchina virtuale e stiamo mappando
quello su un hypervisor nel caso di
come il filato Hadoop stiamo mappando i lavori in grande
MapReduce i lavori su una serie di nodi
e poi più recentemente dove iniziamo
vedere la parola schedulatore pop up sembra
come se fosse stato definito un po ‘di più
è un programmatore di cluster e questo è dove
stiamo mappando applicazioni come
contenitori docker o una libreria golang o
un vaso Java su una serie di macchine o
server alcuni dei vantaggi di a
lo scheduler è molto semplice quindi
utilizzo elevato delle risorse come fa a
lo scheduler realizza risorse elevate
utilizzo ben all’interno del contesto di a
Scheduler del cluster che aumenta la risorsa
l’utilizzo è fatto usando tecniche
come bin imballaggio oversubscription e
avendo una coda coerente per i lavori il
secondo e tipo di cosa più importante
è quello che fa lo scheduler per noi
dissociare il lavoro dalle risorse così
tutti parlano sempre di superiore
utilizzo delle risorse perché è il
il modo più semplice per vendere un programma di pianificazione che puoi
entra nel tuo manager e dì che siamo
taglia il tuo costo del 60% e lo sono
come se fosse bello farlo accadere e loro no
preoccuparsi del reale tecnico
compromessi nel fare ciò che scheduler
ci hanno effettivamente permesso di fare è
disaccoppia il nostro lavoro dalle risorse
loro stessi così non stiamo più operando
sistema dipendente siamo particolari
il versioning dipende invece dagli scheduler
forniscici un’astrazione del lavoro
che deve essere fatto e quello
l’astrazione è importante perché è
coerente con qualsiasi tipo di lavoro, quindi
non importa se stai facendo un
grande lavoro MapReduce o esecuzione di un singolo
binario statico non importa se
stai facendo un lavoro batch che è
elaborare alcune informazioni di fatturazione
è relativamente di breve durata o se tu
avere un servizio di lunga durata come Redis
o MongoDB che deve essere attivo
il tempo
include anche alcuni contratti API
e la standardizzazione tra di loro così uno
delle grandi cose che la docker ha portato
per la comunità è la standardizzazione
intorno ai contenitori che forniscono una coerenza
e affidabile API wrapper around
container e scheduler stanno facendo il
lo stesso vale per le applicazioni giuste
stanno fornendo quell’API standard
su come implementare e gestire un
applicazione su larga scala e infine e
un po ‘intangibilmente è la migliore qualità di
servizio e questo è qualcosa che è
davvero difficile da misurare
tutti parlano di 9s quanti ne fanno 9
hai quanti nove hai?
giusto ma ci sono cose intrinseche
che non possiamo misurare con la qualità di
servizio come sai il 99 °
latenza percentile o come fa il tuo
l’applicazione si comporta per un utente in mi piace
Africa subsahariana che ha 56 kilobyte
al secondo possono accedere al tuo
applicazione come si misura questo e
gli scheduler ci forniscono una soluzione migliore
qualità del servizio unita alle cose
come CD finisce dove siamo in grado di scalare fuori
globalmente per assicurarci che il nostro
le applicazioni sono accessibili in tutta
il mondo lo facciamo fornendo lavoro
priorità così prima ho dato l’esempio
di Redis contro qualche fatturazione
l’architettura è un lavoro batch
corre per forse 15 minuti uno è un
processo di lunga esecuzione che è fondamentale per
l’applicazione senza priorità a
lo scheduler non può prendere la decisione di
che è più importante quindi sarà solo
scegli o fai casualmente qualsiasi cosa
è stato presentato per primo e questo è ovviamente
non ideale perché come operatore o un
ingegnere sei a conoscenza del fatto che MapReduce
lavoro che sta facendo tutto il fatturazione
potrebbe probabilmente aspettare un giorno o un’ora o
anche 10 minuti se significa che il
Il lavoro redis o il lavoro MongoDB può
continuare a correre perché l’applicazione
l’ applicazione rivolta al cliente o il
applicazione commerciale che è
critico deve essere attivo e funzionante e così via
fai tutte le sue dipendenze quindi se a
lo scheduler non ha la capacità di
specificare la priorità e dire a a è di più
importante di B poi quelle decisioni
non può essere fatto in modo adeguato e non è possibile
fornire una migliore qualità del servizio
il secondo è l’isolamento delle risorse, quindi tu
non voglio che le tue applicazioni vadano a pezzi
uno sopra l’altro e questo era un
problema che è stato vissuto molto in
negli ultimi 20 anni è il motivo per cui
strumenti come lo chef
burattino e ansible e sale sono così
popolare o perché abbiamo dovuto installare
come 20 diverse applicazioni su a
macchina e senza contenitori o finestra mobile
contenitori o container è asiatico
abbiamo avuto più versioni di Ruby multiple
Le versioni di Python che gestivano tutto ciò erano
abbastanza un incubo e questo è dove
la gestione della configurazione è diventata davvero
popolare perché gestendolo a mano
era programmatori e contenitori difficili
e VM ci forniscono quel livello di
isolamento delle risorse, quindi non dobbiamo
preoccupati per la tua conoscenza di Ruby 192
in conflitto o tramite B 193 ed è nostra
l’applicazione che utilizza la versione corretta è
il nostro Ruby e in conflitto con il sistema
versione giusta questi sono tanti
domande che sono venute e
gli scheduler stanno davvero risolvendo quelli
anche i problemi per noi scheduler non sono un
nuovo concetto penso che siano un nuovo
concetto a ciò che chiamo livello intermedio
organizzazioni ma non sono nuove
concetto di organizzazioni su larga scala così
abbiamo già parlato di ec2 e
Nova essendo uno schedulatore è una VM
scheduler ma Amazon ha anche ECS che
è il loro contenitore di pianificazione di Google ha
borg e poi alcune delle ricerche
google ha fatto anche per passero che il nostro
berkeley ha fatto anche per passero e
poi twitter e netflix netflix ha
Twitter stretto ha il suo
scheduler allora questi sono stati in giro
per un tempo abbastanza lungo sono più
recentemente essere evangelizzato e
reso popolare perché stanno diventando
più rilevante man mano che passiamo al cloud
architettura architettura senza server e
iniziamo a concentrarci sulle applicazioni
invece delle macchine stesse così quando
parliamo di nomade e questo potrebbe essere un
un po ‘ridondante ma anche i nomadi no
da solo nel mercato degli scheduler così tu
hanno mubus kubernetes come sfera meso
nave porta-container all’i / oe un numero di
altri scheduler sono continuamente in corso
creato la differenza principale è Adrian
detto tra nomade e tutti questi
altri scheduler è che Nomad è un
programmatore Noma non ti fornisce
scoperta del servizio che non ti fornisce
con tutti i bit e le parti quindi
La ragione per cui Nomad è molto popolare è
guadagnando popolarità è così
davvero facile da adottare nel tuo esistente
organizzazione senza prendere un intero
morso di una torta particolare, così puoi
adotta Nomad e continua a usare il tuo
strumento di individuazione del servizio se questo è
console che capita di essere qualcosa
che facciamo o qualcosa come il guardiano dello zoo
le integrazioni ci sono per te così
può adottare puramente un programmatore evitando
quel venditore si blocca ed evita tutti
il refactoring che potrebbe aver bisogno di verificarsi
di portare le applicazioni nel
era moderna un’altra differenza fondamentale
tra i nomadi e questi altri strumenti sono
i tipi di applicazioni che possono essere
programmato e ci entrerò in quello a
un po ‘di più quindi ci sono tre principali
punti di nomade che voglio discutere
il primo è la parte di scheduling del cluster
il secondo sono le distribuzioni e poi
le specifiche del lavoro stesso così è
le specifiche del lavoro e ci pensiamo
è ciò che distingue Nomad da molti
i concorrenti abbiamo un molto umano
configurazione amichevole è JSON
compatibile in modo da poter generare questo come
In effetti, JSON e il parser Nomad funzioneranno
leggilo come JSON, così puoi ancora farlo
macchina leggibile e uscita macchina ma
abbiamo una configurazione molto amichevole che
sembra molto simile a nginx se lo sei
familiarità con le coppie di valori chiave molto
supporto umano amichevole per i commenti molto
controllo di versione amichevole e sono
progettato per essere controllato in versione
controllo perché i tuoi file di lavoro sono
davvero la descrizione del tuo
architettura in questo esempio abbiamo a
lavoro chiamato Redis nel data center che
vogliamo eseguire Redis in e il compito
specifica come vogliamo eseguirlo dove noi
vuole ottenere da quale driver che vogliamo
da usare e l’insieme di risorse
opzionalmente che sono richiesti così in questo
caso stiamo specificatamente dicendo questo
contenitore docker che sta appena tirando
l’ultima immagine redditiana di Redis ha bisogno
1/2 di una CPU e 256 megabyte di RAM
con una rete minima di 10 megabit
al secondo le specifiche del lavoro
dichiara cosa deve essere eseguito e quindi nomad’s
la responsabilità è determinare come e
dove eseguirlo
quindi in questo modo è responsabile Nomad
astrazione del lavoro dalle risorse
loro stessi
quindi una delle cose veramente interessanti
di nomade è il design e il
architettura perché è simile ma
anche molto diverso da alcuni dei
altri programmatori là fuori così
capire gli obiettivi e i vincoli
di un problema sono super importanti quando noi
considera il design alla curva di Hashi che siamo
una società focalizzata sul white paper accademico
abbiamo idee e poi ogni volta che siamo
pronto a costruire qualcosa, usciamo e
ricerca tutte le più recenti e migliori
studiosi di studi accademici che stanno scrivendo
su questi argomenti particolari per nomade
avevamo un numero di requisiti e
questi includevano il supporto da più parti
data center e multipli regionali
implementazioni abbiamo voluto la flessibilità necessaria per
supportare qualsiasi tipo di carico di lavoro quindi non solo
contenitori docker non solo VM noi
già parlato delle priorità del lavoro
erano così importanti che volevamo usare il
ultimo e più grande imballaggio del contenitore
algoritmi e doveva essere in grado di
supportare un twitter su larga scala
scala in scala Facebook su scala di Google ma è così
anche bisogno di essere operativamente semplice
in modo tale da poterlo alzare e
correndo in uno o due comandi quando noi
ho parlato di ridimensionamento che volevo
meglio definire il ridimensionamento a cui vogliamo i nomadi
essere in grado di scalare fino a migliaia di regioni
con decine di migliaia di clienti per
regione con migliaia di posti di lavoro per cliente
e parlerò del milione
contenitore di sfida in un po ‘e
come si comportavano i nomadi, ma se lo fai tu
la matematica è un milione di lavori in fase di progettazione
nomadi ci rivolgiamo alla nostra esperienza
primo
quindi la corte Hashi fa il console di surf
che sono sistemi distribuiti che funzionano
su scala in produzione oggi dà surf
noi membri del cluster di gossip basati
rilevamento dell’appartenenza peer-to-peer
rilevamento guasti senza un singolo punto
di fallimento o TTL
e fornisce un evento basato
sistema di distribuzione funziona a livello massiccio
scala decine di migliaia di macchine in a
unico centro dati la sua produzione
indurito per un certo numero di anni ora utilizzato
da alcune delle più grandi aziende sul
internet ed è semplice da usare
la console è costruita su surf ed è così
la nostra scoperta di servizio lo inquadra
consente un archivio di valori-chiave distribuiti
anche su e include anche un numero di
caratteristiche che sono importanti in a
sistema distribuito come centralizzato
meccanismo di bloccaggio e utilizza un
architettura per server centralizzati e
clienti distribuiti
la console stessa è a conoscenza di più datacenter
usa la zattera per il consenso che ha anche
stato testato su scala incredibilmente grande
ed è molto duro per la produzione, quindi naviga
e console ci forniscono i pettegolezzi e
livelli di consenso e ci sono anche molto
librerie mature con un design potente
modelli il problema è che tutti loro
mancava la logica di programmazione e in Hoshi
Corp crediamo nella filosofia UNIX
che dovresti fare una cosa e tu
dovrebbe farlo molto bene e non lo fa
ha senso per una scoperta di servizio
quadro di cui essere responsabile
pianificazione proprio come non fa
senso per uno schedulatore di essere un servizio
quadro di scoperta così per questo ci rivolgiamo
per il mondo accademico volevamo all’avanguardia
tecnologia che volevamo all’avanguardia
ricerca nel campo della programmazione e
principalmente siamo stati guidati dal lavoro svolto da
Google e amp lab di Berkeley quindi a
numero di persone ha parlato di Borg
già ma Borg è interno di Google
scheduler Penso che anche una parte di Borg funzioni
Google cloud platform e poi Berkeley
Sparrow stava uscendo da Berkeley che
era un programmatore simile così facendo a
indagine sull’attuale mondo accademico a
gli schedulatori di tempo sono entrambi
ottimista o pessimista in base al loro
concorrenza e scelgono se loro
vogliono gestire lo stato internamente o se
vogliono spingerlo a qualcosa
come sed o qualche altro servizio e poi
sono sia single che multi level quindi
Borg è fisso nella sua logica di scheduling così
come gli scheduler costruiti in Borg
mentre Omega ha un innesto
l’architettura in modo da poter portare il proprio
scheduler alcuni programmatori sono altamente
ottimizzato per carichi di lavoro batch in modo da fatturare
elaborando lavori unici a loro piacevano cinque
dieci minuti di lavoro mentre altri
sono più ottimizzati per longevi
servizi Applicazione java del database Redis
ecc. Quindi alla fine il nomade è più ispirato
da Omega che è passero è
ottimisticamente concomitante che consente
per prendere decisioni di programmazione in
parallelo su molti dei server
usa lo stato interno per il coordinamento
sia per la velocità che per renderla più
operativamente semplice non volevamo il
primo passo fuori dalla scatola per essere andare
installa questo altro strumento in modo che possiamo
stato del negozio che volevamo che fossimo
operativamente semplice fuori dalla scatola noi
concentrarsi su entrambi i servizi e la laurea
Abiti
e stiamo andando a sostenere un innesto
architettura per i conducenti molto presto in
iniziando la progettazione del sistema a cui ci rivolgiamo
console console è molto familiare che sapevamo
è ridimensionato questa è l’architettura delle console
ad un livello molto alto così in alto
puoi vedere tutti i clienti
i clienti comunicano tra loro su
RPC sul pettegolezzo LAN che comunicano
con i server quei server sono
responsabile di tre cose sono
responsabile della risposta a RPC
chiede che siano responsabili per il leader
elezioni e poi sono responsabili
per inoltrare richieste al leader se
nel caso in cui sono un seguace all’interno
un centro dati i nodi parlano al loro
server locali ma il server è anche
partecipare alla vittoria pettegolezzi o il
pettegolezzi pubblici su internet
così attraverso più data center il
i server comunicano con ciascuno
altro sull’Internet pubblica o su alcuni
somiglianza di Internet pubblica in
questa architettura è il fallimento
isolato il dominio di errore è isolato
al centro dati quindi il tuo fallimento
il dominio è il data center stesso e
questo perché ogni data center è
completamente isolato dal suo pari
l’architettura di know-how è molto simile
ma abbiamo introdotto questo concetto di a
regione quindi una regione è una raccolta di
data center e ha un solo set
di server così mentre in console ciascuno
il data center ha una collezione di server
nei nomadi ogni regione ha una collezione
di server e ogni regione è a
raccolta di data center così come un
esempio potresti aver conosciuto Francoforte
Francoforte in Irlanda e io non lo so
Scandinavia come i tuoi tre data center
giusto quelli sono dove i vostri centri dati
si trovano fisicamente in quella regione
essere Europa quindi la regione è solo una più alta
livello di astrazione di un data center e
la ragione di ciò è quella programmazione
le decisioni in genere non sono fatte al
strato di centro dati che sono fatti al
livello regionale così come mi piace
descriverlo è che mi piace pensare
data center come paesi e regioni o
continenti che ovviamente non mappa
uno a uno ma ti dà un buono
rappresentazione nella tua mente nel multi
l’architettura della regione è la regione
dominio di errore e il server all’interno
quella regione comunica tra loro
quindi se la regione degli Stati Uniti va giù
il dominio di errore è isolato da quello
continente la regione europea
non è influenzato, quindi la regione è il
dominio di fallimento questo permette di entrare
più data center per regione dando il
utente la flessibilità per eseguire un singolo
regione per data center o centinaia di
migliaia di regioni o centinaia di
migliaia di data center per regione come
se il mondo fosse una regione globale
la regione è anche il limite di programmazione
quindi non puoi pianificare un lavoro
più regioni in una presentazione voi
può programmarlo ma sono isolati
lavori sono indipendenti l’ uno dall’altro
altrimenti ciò avrebbe rotto il fallimento
isolamento quindi è importante parlare
di
modello di dati nomadi e questo è fondamentale
per capire come funziona il sistema
funziona davvero
quindi gli utenti inviano il lavoro sotto forma di a
lavoro o un file di lavoro e questo può essere
fatto tramite l’API in modo da poter costruire il tuo
possedere gli strumenti attorno ad esso o puoi usare il
riga di comando direttamente i nodi client
sono uniti per eseguire i compiti e poi il
mappatura delle attività da un lavoro a un
il nodo è fatto con quello che è chiamato un
allocazione che è un termine di glossario e
queste allocazioni sono create solo da
valutazioni una valutazione è fondamentalmente a
cambiamento di stato nel sistema quindi alcuni
le valutazioni di esempio sono come ho aggiunto a
nuovo nodo client un nodo è andato giù ho
cancellato un lavoro ho creato un lavoro o un
allocazione fallita, che significa in precedenza
l’allocazione di successo sta fallendo e
potrebbe essere come diciamo
qualcuno ha strappato un disco rigido da un
dati fisici del data center fisico
nodo centrale e ora hai meno disco
spazio che hai originariamente fatto
fa sì che una riallocazione si verifichi così dentro
in questo modo se vogliamo ottenere tecnici a
lo scheduler può essere modellato in modo funzionale
notazione come una funzione che accetta un
valutazione e restituisce un insieme di
aggiornamenti di allocazione o un array di
aggiornamenti di assegnazione e tali allocazioni
gli aggiornamenti sono creati o aggiornati o
cancellato e che la stessa valutazione può
essere un sistema specializzato in modo che possa essere un
servizio lavoro un lavoro batch un lavoro di sistema
qualunque cosa possa essere in questo modo
consente alla nostra architettura di essere inseribile
quindi questo significa che rende nomade un
programmatore di classe omega lo consente
supporta gli scheduler collegabili con
logica personalizzata ma fa uso del
coordinamento interno e sistema statale
il molto ispirato
l’architettura del consiglio lo permette
supporta più regioni e più
data center molto facilmente e al massimo
scala in termini di client no mat is
scritto in go e si basa sui clienti
per eseguire effettivamente le attività del client
supporta un’ampia gamma di operazioni
sistemi inclusi Windows Linux FreeBSD
e Darwin, i clienti fanno uso di
impronte digitali che se sei familiare
con uno chef o un burattino simile è molto
simile a Ojai o Factor
raccogliere dati sul sistema che è
utilizzato nelle decisioni di pianificazione e
spinge quell’informazione fino al Nomad
server quindi ecco alcuni esempi di
impronte digitali quindi per esempio il
versione del sistema operativo kernel del sistema operativo
Hardware quanta CPU abbiamo entrambi
disco di memoria totale e disponibile
capacità del sistema stesso è
più scuro installato è installato Java è
console installata e quindi il
ambiente stesso è una tonnellata Ibis è
su GCE è su OpenStack ecc
è l’informazione dalle impronte digitali
fornito ai server per vincolare
Posizionamenti di attività e imballaggio del contenitore di supporto
quindi per esempio in termini umani lo faresti
dì che questa attività richiede Linux e poi come
un risultato implicitamente docker e PCI
hardware conforme e tutto ciò che è
espresso come un vincolo nel lavoro
il file è codificato è in versione
controllo quando dici che il mio compito ha bisogno
mezzo concerto di ram e esattamente una CPU
core che è espresso come una risorsa chiedere
nel file di lavoro nuovamente codificato in
controllo di versione si ottiene lo stesso tipo di
collaborazione che hai
applicazioni sui cambiamenti infrastrutturali
i driver di attività vivono sul client e
sono responsabili dell’esecuzione delle attività
e fornendo così l’ isolamento delle risorse
in questo momento Nomad ha il supporto per la finestra mobile
e razzo sul livello di containerizzazione
ma una delle cose che imposta Nomad
a parte alcuni degli altri programmatori
sul mercato è che supporta di più
oltre alla docker supportiamo virtualizzati
carichi di lavoro con kimu e KVM e noi
supporta binari statici standalone come
come Java jar o go binari quindi quando il tuo
unico requisito è che hai bisogno della JVM o
hai bisogno di qualcosa che sia capace
gestire un nomade di elfi binari può pianificare
quello direttamente per te senza il
in alto nel buio più senza la necessità di
installare la finestra mobile sul sistema gratuitamente
risorse aggiuntive per massimizzare
utilizzo stiamo anche lavorando attivamente
su supporto per contenitori Windows Server
Xen e hyper-v e c-sharp standalone
applicazioni in modo questi sono alcuni dei
cose che si potrebbe vedere in
Alla fine, il gasdotto Nomad è progettato per
essere incredibilmente flessibile e lo fa
con l’architettura collegabile
i driver delle impronte digitali e il lavoro
il formato delle specifiche è un singolo
binario come quasi tutto il nucleo di hashing
prodotti in modo da arricciare si sposta e
user local bin e tu lo dai
eseguibile e lo hai installato
di solito sono quattro righe di codice bash o
100 linee di burattini e non c’è
dipendenze assolutamente nessun livello di sistema
dipendenze ed è altamente disponibile
quindi una delle ultime cose di cui voglio parlare
circa e l’ho accennato prima è il
Nomad milione contenitore sfida come
molte persone hanno visto il milione
container challenge cool one person so
abbiamo recentemente fatto una cosa in cui noi
programmato un migliaio di posti di lavoro con a
migliaia di compiti per lavoro su 5.000 host su
Google compute engine e loro
gentilmente fornito che gratuitamente così se
fai i conti ci sono un milione
capita di essere contenitori docker
in esecuzione su 5.000 host su Google
piattaforma cloud e abbiamo aggiunto vincoli
a tutti i lavori alcuni di loro
arbitrario solo per rendere più pianificazione
difficili i padroni di casa stessi avevano tutti
diverse risorse in modo un po ‘erano come al
mega i nostri due gigabyte di RAM da qualche parte
64 gigabyte di RAM solo per fare il
programmare il più duramente possibile in modo che il
i risultati sono stati piuttosto sorprendenti che puoi
vedere da questo grafico nomadi in programma
oltre un milione di contenitori parlano del perché
oltre un milione in un secondo in poco meno di
cinque minuti quindi se non puoi vederlo
sono duecentosessantasette
secondi è quando tutti i contenitori
sono stati programmati ciò che è interessante
nota che Nomad è effettivamente programmato
questo è più di un milione di contenitori
a causa di quella scala che ti piace
guasti hardware reali come macchine
letteralmente morto abbiamo anche trovato un bugger per
nel demone più scuro che da allora
stato risolto in quella scala enorme
ha causato condizioni di gara quando Nomad
rileva che un lavoro non è più in esecuzione
ripianifica quello che è uno dei
responsabilità di un programmatore, quindi questo
non sta mostrando solo la scala
quali nomadi possono operare ma anche a
quella scala è ancora in grado di fare
decisioni fondamentali di pianificazione fed
come se questo lavoro continuasse a non funzionare
Ho intenzione di iniziare di nuovo
Nancy così negativa dice sempre nessuno
avremmo mai bisogno di pianificare un milione
contenitori come se qualcuno ci stesse pensando
chi lo stava pensando sì qualcuno lo era
pensando così sto per mostrarti un
video e questo è un video di uno stress
test eseguito su un Airbus a320 così
quello è un aeroplano come puoi vedere
le ali si piegano significativamente oltre
qualsiasi volo tradizionale avrebbe mai
incontrare
tuttavia c’è praticamente maggiore sicurezza
e fiducia e sapendo che questo
ali di aeroplani possono piegarsi a penso che sia
come 39 gradi o qualcosa oltre
il loro parallelo destro è carino
fantastico ti mostrerò un altro video
ora quindi questo è un video di un altro tipo
di aereo forse ce ne andiamo
questo è un altro tipo di aereo che
scatta l’ala a circa 17 gradi
pendenza in modo da questo entrambi questi chiedo
gli scenari sono altamente improbabili ma quali
l’aereo preferiresti volare in modo da farlo
bisogno di pianificare un milione di applicazioni
no, ma quale programmatore preferiresti
usa quello che può solo pianificare un
mille o quello che può programmare un
milioni su scala ed essere altamente
performante come con tutto ciò che facciamo
hashey Corp è Nomad è open-source e
così è il contenere il milione di contenitori
sfida così ciao dovrebbe Corp tagliare c1m on
github è il milione di container
sfida tutti gli script sono
open-source sei libero di eseguirlo
contro Nomad o qualsiasi altro programmatore no
solo Nomad quindi per concludere no Mehta è un
distribuito globalmente in modo ottimistico
schedulatore simultaneo utilizza l’obiettivo
era in definitiva per consentire agli utenti di
aumentare drasticamente le loro risorse
utilizzo
d accoppiare applicazioni da risorse o
lavorare con risorse per migliorare la propria
qualità generale del servizio, ecco tutto
Ho una demo davvero veloce ma
Non so se avrò tempo oh tu lo faccia
hai tempo ok guarda che ero
sperando di aver detto no grazie Adrienne alla grande
quindi quello che ho qui è davvero piccolo
dimensione del carattere quindi quello che ho qui è un nomade
server in esecuzione da qualche parte su un
nuvola da qualche parte quindi ho questo lavoro
è in esecuzione l’ app web in codice e io no
andando a tuffarsi nel file di lavoro, ma è
solo un contenitore docker ce ne sono due
contenitori docker uno è un proxy H
load balancer e one’s a Apache –
servire una pagina web statica e lo è
attualmente in esecuzione se chiedo di più
informazioni in modo che possiamo vedere che possiamo
vedi che ho rovinato tutto questo
volte perché hai l’intera storia del lavoro
ma puoi vedere che è attualmente
correndo su ho fatto scorrere troppo lontano è
apparentemente correndo su questo particolare
nodo qui così nodo qualunque DC qualunque
e lo sto facendo intenzionalmente senza
scoperta del servizio quindi se ci fosse
Console installato su queste macchine
li scopriremmo automaticamente per noi
ma lo sto facendo come puro nomade
quello che posso fare è che posso chiedere il
lo stato di quel nodo dal suo ID così posso
vedere tutto ciò che ne sa di nomade
questo nodo quindi ha attualmente ciò che 750
megahertz della CPU è attualmente
allocati 512 megabyte di memoria 600
megabyte di disco e ci sono 0 IO
operazioni attualmente in corso così
quello che voglio mostrarti è così
correndo su 1000 11 questo è dove ho
per imbrogliare e accedere alla console AWS a
ottenere l’indirizzo IP di questo nodo cosa sono
Lo farò, ucciderò questo nodo e
Sono spettacolo gonna che quando questo nodo
va giù nessuno lo scoprirà
e riprogrammalo su un’altra macchina così
cosa ho detto che era 111
Va bene, è Tina
Non lo so, penso che si, non vedo
un amministratore di sistema va bene così che la nota è ora giù
ed è l’arresto e, non appena
Nomad è reso consapevole di quei nodi
partenza dal cluster e questo era
un contenitore docker quindi dobbiamo anche
attendere che la finestra mobile riporti che il file
il servizio non è più in esecuzione e
sfortunatamente è un modello basato sulla trazione
ora spinga il modello basato ora così facciamo
aspettare che il nodo lasci il
cluster una volta che il nodo lascia il cluster
i nomadi lo programmeranno automaticamente
lavoro su un’altra macchina e lo farà
fallo usando lo stesso contenitore
farò un’altra allocazione così quando noi
esegui nuovamente lo stato vedremo un altro
l’allocazione avrà luogo che si formerà
un’altra valutazione e spero che lo farà
programmalo su un’altra macchina, quindi facciamolo
dare un’occhiata a questo stato di lavoro chiedere
lo stato totale quindi dice che il lavoro è
correndo quindi chiediamo lo stato di
il lavoro webapp quindi non so se
ti ricordi, ma 9dc8 20 era il
nodo in esecuzione precedente che era il
nodo che abbiamo ucciso ora capita di essere
in esecuzione su un nodo 3 7 2 4, ad esempio
se eseguo lo stato di un nodo nomade con no
argomenti puoi vedere che ciò accade
corrispondere al nodo 57 in realtà non lo è
avere un nome o qualcosa di speciale così è
questo ultimo nodo della lista si possono vedere
che nessuno sta riportando il nostro originale
il nodo è inattivo quindi non lo è più
accessibile e questa applicazione è stata
riprogrammato su quel particolare
macchina in questo caso 57 quindi se colpiamo
57 nel e di nuovo sto facendo questo
senza servizio di scoperta, ma se lì
è stata la scoperta di servizi che sarebbe stata in grado
per usare sai DNS o qualche tipo di
interfacciare per interrogare questo ma questo è
in realtà quell’applicazione stessa così
è l’applicazione che è stata riprogrammata
su questo contenitore docker host 2 o 3
è in esecuzione dietro un bilanciatore del carico così
niente di veramente speciale non ho un
demo davvero fantastica ma penso che sia super
bello per mostrare cosa succede quando un
l’applicazione muore e lo scheduler è
responsabile di maggio
assicurati che sia ancora disponibile per
cliente è tutto quello che ho domande
ci sono domande sì schifo quindi c’è
una domanda qui sul supporto di Windows
va bene
hai detto che sono tutti diversi
le applicazioni girano su Windows ma fanno
avete qualche esempio di esso in esecuzione
aziende in esecuzione su Windows in
produzione e su larga scala sicuramente
non su larga scala per nomade che abbiamo
un paio di aziende che ne gestiscono alcune
piccole cose su Windows the the
client nomad gira su Windows ma il
server di nomadi deve essere eseguito su un Linux basata
sistema operativo in questo momento
qualcosa che stiamo cercando di liberarci
di così possiamo programmare il lavoro su a
Macchina Windows ma in questo momento non lo è
possibile eseguire il server su Windows
ci sono alcuni ismi UNIX in profondità nel
nucleo che dobbiamo rimuovere prima di noi
posso versarlo a Windows che non ho
qualsiasi esempio di aziende che sono così
lo sto facendo che posso davvero parlare
ma abbiamo un repository di esempi
è open source su github dove puoi
vedere alcuni dei file di lavoro e cose
che sono come Windows specifico
ok così vedi un futuro per
gestione della configurazione come chef e
burattino , io penso che quel pupazzo da chef
sale ansible Penso che giochino ancora a
Penso che sia un ruolo molto vitale in questo spazio
questo ma un ruolo diverso sì, penso
sono solo andando giocare una molto diversa
ruolo Credo che mentre ci muoviamo verso
containerizzazione questa nozione di avere
più applicazioni su un sistema
senza alcun tipo di isolamento delle risorse
da uno schedulatore o da un contenitore
il motore si spegne, quindi cose come lo chef e
fantoccio diventa cruciale per il provisioning
la costruzione di sistemi iniziali come questi
macchine cluster più grandi i client
se stessi che conosci i gigabyte
di memoria gigabyte di RAM
conosci lo spazio e il provisioning del disco della CPU
quelle istanze iniziali non penso
stiamo andando li vediamo come popolare in come
il cron basato o sai che gestisci lo chef
su qualche intervallo o burattino su alcuni
Intervallo Penso che sta andando essere puramente
più di un processo di bootstrap e poi
probabilmente faremo affidamento sul
scheduler o i motori dei container a
prendere le decisioni da lì così bene
hai menzionato il concetto di imballaggio del contenitore
un paio di volte cosa fa esattamente questo
significa che ci sono tre persone che chiedono questo
jeez va bene così il modo più semplice e io sono
ruberò Kelsey Hightower’s
descrizione il modo più semplice per descrivere
nel confezionamento è Tetris quindi quante persone
hanno mai giocato a Tetris giusto così è
ho fatto la prossima domanda okay sì sì
l’ idea è che nel cestino ti impacchetta
riserva in modo efficace grossi pezzi di
spazio tale che non lo fai
scegliere sempre come la migliore soluzione in
Tetris che non scegli come il pezzo
che si adatta esattamente invece si sceglie il
pezzo che forma un’altra forma che tu
so potrebbe venire in futuro così
potresti formare uno spazio che si adatta perfettamente
la forma T anche se non ne hai uno
t-shape sulla tua mappa non è il prossimo
uno poi quando la forma a T diventa
disponibile è possibile cancellare tre righe
invece di uno solo così è una specie di a
la metafora mi piace usare lì bene
metafora Anche tu hai qualche tipo
di visualizzazione del cluster come noi
visto con DCO in precedenza, quindi abbiamo a
strumento di visualizzazione è attualmente in
beta non sarà open source
per prima cosa avremo un open source
UI in futuro ma una parte del nostro
l’offerta commerciale avrà un’interfaccia utente, ma io
Non non voglio parlarne
perché è pagato bene
per cosa state usando la mappa?
Hoshi core in questo momento, quindi abbiamo di più
rispetto ai ragazzi abbiamo anche delle dipendenti femminili
quindi stiamo correndo il nostro intero
infrastruttura di produzione su nomade così noi
crediamo nel dogfooding per quelli di
non hai guadagnato quel termine è come
mangiare i tuoi prodotti e così via
internamente usiamo tutta la nostra propria
prodotti usiamo console per il servizio
discovery Nomad gestisce la nostra produzione e
ambienti di staging gestisce anche il nostro
strumento on-premise quindi se acquisti su Prem
in realtà installa nomad sul tuo
infrastruttura e questo è ciò che gestisce il
prodotto commerciale cool grazie
tutte le domande provenienti mano
tu
storia e come siamo arrivati qui e poi
dove penso che stiamo andando e come Nomad
può risolvere quei problemi e
in particolare, come è diverso rispetto al
altri programmatori di cui abbiamo sentito parlare
Apache mesas e kubernetes così il mio nome
è fargo sud sono il direttore di
Evangelismo alla corte di haji sono un ingegnere
dal commercio quindi ho precedentemente lavorato a
numero di società di ingegneria voi
potrebbe riconoscere la mia faccia dallo chef
comunità ho fatto un sacco di lavoro lì
e più recentemente mi sono trasferito in una specie di
questo ruolo a tempo pieno di evangelizzare tutto
degli strumenti aziendali Hashi quanti
le persone hanno familiarità con quanto chic o
mi piace quando i numeri salgono
perché questo significa che sto facendo il mio lavoro per
quelli di voi che non hanno familiarità con
hashey core facciamo un certo numero di
strumenti open source siamo open source
compagnia quindi facciamo vagabondo che è un
strumento veramente popolare per automatizzato
ambienti di sviluppo Packer che è
uno strumento per la costruzione di macchine automatizzate
immagini surf e console che sono nostre
scoperta di servizi e distribuzione
quadri di valori-chiave costruiti sopra
zattera e pettegolezzi terraforma che è la nostra
fornitura di infrastrutture e
strumento di gestione quindi la nostra infrastruttura
codice volta segreto gestione nomade
di questo parlerò oggi
è la nostra applicazione distribuita
scheduler auto che è il nostro parere
assumere tutti i nostri altri strumenti e Atlas
che in realtà non è open source
il nostro prodotto commerciale ma come ho detto io
voglio parlare di nomade oggi e allora?
è nomade di quante persone ne hanno sentito parlare
nomade, non so se tu abbia questo
ancora, ma mi piace l’impegno quindi potrei chiedere
per alzare la mano un sacco di volte
va bene grazie per aver sopportato
quindi Nomad è distribuito globalmente
programmatore ottimisticamente concorrente e
abbiamo sentito questa parola un numero di volte
ora programmatore ma come non l’abbiamo mai fatto
veramente definito nel contesto di
tecnologia quindi voglio fare un passo indietro
e se guardi come il dizionario
comm, di cui sai la fonte
qualunque cosa
definizione di uno scheduler che dice
è un programma che organizza lavori o
operazioni del computer in un appropriato
sequenza così ho pensato che fosse troppo
specifica così ho preso un passo indietro, anche
oltre e volevo ottenere il
definizione di uno schedulatore
nel mondo reale quindi uno scheduler è un
persona o macchina che organizza o
mantiene gli orari così è carino
gli scheduler piuttosto standard sono solo un
modo di mappare una serie di lavori su un insieme di
risorse quindi questo è uno schedulatore
Microsoft Excel circa prima che io nascessi
e al livello di base a
spreadsheet è uno schedulatore che fornisce a
modo per noi di mappare i valori avvolgere le risorse
sui valori quindi non so perché il mio
clicker ha un comportamento anomalo così tradizionalmente
se facciamo un passo indietro come negli anni ’90
per un po ‘ tutti avevano il loro
centro dati e ho usato la parola aria
cita lì perché alcuni dei dati
i centri erano come l’ armadio nel
ufficio e hai dato tutti i tuoi server
nomi perché dovevi farlo perché lo avevi
per riferirsi a loro così in questo caso che ho
scelta di guerre stellari a tema
hai sempre scelto un tema come parti di
l’occhio o il tuo film preferito in questo modo
potresti ricordarli così in questo caso
abbiamo quattro server che abbiamo Skywalker
Vader Leia e Solo e tu o un
operatore metterebbe applicazioni su
quelle macchine così in questo caso che abbiamo
alcuni Python e ne abbiamo un po ‘e poi
conosci Ruby e node.js
occupano molto più memoria così hanno
per ottenere il proprio server ma anche tu
avere questo come te personificato questi
server quindi ad esempio lo sapevi
che Vader non era buono, così anche tu
hai il tuo piccolo foglio di calcolo che conosci
il tuo foglio di calcolo Excel o se lo fosse
come un piccolo blocco note e lo hai registrato
fino al muro e hai l’IP
indirizzi e gli indirizzi MAC e poi
quella nota colonna e come in questo caso
Vader uccide solo casualmente le applicazioni
non ho davvero capito perché no
avere davvero il tempo di affrontare il problema
ma sappiamo solo che succede così quando a
server va offline o prende fuoco il
l’operatore era responsabile per
riprogrammare tale domanda e / o
fissando la macchina minimizzando i tempi di fermo macchina
quindi in questo caso potremmo riprogrammare il
Applicazione Ruby a Skywalker noi
potrebbe ripianificare l’applicazione Python
che no
applicazione e l’applicazione di pitone a
da solo sai che non ci siamo ancora
massimizzazione delle risorse ma non abbiamo
tempi di inattività più allora quando quel server
viene riparato quindi se è sostituito o
riparato dobbiamo assicurarci che noi
aggiorna il foglio di calcolo perché è
sta per avere un nuovo indirizzo IP e poi
diciamo come sai ricostruito su di te lo sai
420 2016 e quindi possiamo iniziare
pianificazione delle applicazioni di nuovo in cima a
quello e questo flusso di lavoro era abbastanza comune
e poi abbiamo poi imparato che se tu
dare a questi operatori i cercapersone che diventano
altamente disponibile e non hai
i tempi di fermo più
quindi questo ovviamente non lo scala
non in scala, nel 1990 non scala in
l’infrastruttura informatica moderna di oggi
ma non scala ancora peggio perché
siamo entrati nell’era del cloud noi
spostati nell’era della domanda
applicazioni abbiamo visto molti discorsi
circa come lambda e serverless
architettura quindi avere un operatore
prendere una decisione su dove un
l’applicazione dovrebbe vivere non in scala
l’architettura di oggi quindi parliamo di
scheduler che sono stati in giro per a
davvero tanto tempo quindi penso che sia stato
portato in anticipo ma una CPU lo chieda
come lo schedulatore della CPU una parte del tuo
il sistema operativo è responsabilità è
così da mappare particolari processi a una CPU
qui abbiamo una macchina a quattro core che ho
quattro processi ho il kernel stesso
Apache reticent bash e basta
ottimo ma facciamo finta di avere come un
due core machine quindi non abbiamo più
una mappatura uno-a-uno
invece abbiamo quelle risorse che sono
gareggiare per lo stesso core quindi è il
Responsabilità degli schedulatori per stabilire le priorità
quelli così in questo caso cosa ha il
la più alta priorità che qualcuno vuole prendere a
indovina il kernel giusto perché se il
il kernel non è in esecuzione né lo è
qualsiasi altra cosa , in tal caso il kernel
potrebbe ottenere un nucleo dedicato e potremmo
si sta spostando tra gli altri tre
applicazioni sul secondo nucleo ma noi
potrebbe anche spostare le operazioni dei kernel
al secondo nucleo ad un certo punto perché
questo è ciò che fa questo schedulatore e il
modo si rende tale decisione è fino a quel
particolare schedulatore nei vincoli
questo è dato
quindi gli scheduler non sono un nuovo concetto
sono stati in giro per un periodo piuttosto lungo
tempo così gli scheduler della CPU mappano i thread in questo modo
il lavoro che devono fare è discussioni
li mappano su nuclei fisici nel
contesto di come ec2 o stack aperti Nova
stiamo mappando le macchine virtuali sul lavoro
è una macchina virtuale e stiamo mappando
quello su un hypervisor nel caso di
come il filato Hadoop stiamo mappando i lavori in grande
MapReduce i lavori su una serie di nodi
e poi più recentemente dove iniziamo
vedere la parola schedulatore pop up sembra
come se fosse stato definito un po ‘di più
è un programmatore di cluster e questo è dove
stiamo mappando applicazioni come
contenitori docker o una libreria golang o
un vaso Java su una serie di macchine o
server alcuni dei vantaggi di a
lo scheduler è molto semplice quindi
utilizzo elevato delle risorse come fa a
lo scheduler realizza risorse elevate
utilizzo ben all’interno del contesto di a
Scheduler del cluster che aumenta la risorsa
l’utilizzo è fatto usando tecniche
come bin imballaggio oversubscription e
avendo una coda coerente per i lavori il
secondo e tipo di cosa più importante
è quello che fa lo scheduler per noi
dissociare il lavoro dalle risorse così
tutti parlano sempre di superiore
utilizzo delle risorse perché è il
il modo più semplice per vendere un programma di pianificazione che puoi
entra nel tuo manager e dì che siamo
taglia il tuo costo del 60% e lo sono
come se fosse bello farlo accadere e loro no
preoccuparsi del reale tecnico
compromessi nel fare ciò che scheduler
ci hanno effettivamente permesso di fare è
disaccoppia il nostro lavoro dalle risorse
loro stessi così non stiamo più operando
sistema dipendente siamo particolari
il versioning dipende invece dagli scheduler
forniscici un’astrazione del lavoro
che deve essere fatto e quello
l’astrazione è importante perché è
coerente con qualsiasi tipo di lavoro, quindi
non importa se stai facendo un
grande lavoro MapReduce o esecuzione di un singolo
binario statico non importa se
stai facendo un lavoro batch che è
elaborare alcune informazioni di fatturazione
è relativamente di breve durata o se tu
avere un servizio di lunga durata come Redis
o MongoDB che deve essere attivo
il tempo
include anche alcuni contratti API
e la standardizzazione tra di loro così uno
delle grandi cose che la docker ha portato
per la comunità è la standardizzazione
intorno ai contenitori che forniscono una coerenza
e affidabile API wrapper around
container e scheduler stanno facendo il
lo stesso vale per le applicazioni giuste
stanno fornendo quell’API standard
su come implementare e gestire un
applicazione su larga scala e infine e
un po ‘intangibilmente è la migliore qualità di
servizio e questo è qualcosa che è
davvero difficile da misurare
tutti parlano di 9s quanti ne fanno 9
hai quanti nove hai?
giusto ma ci sono cose intrinseche
che non possiamo misurare con la qualità di
servizio come sai il 99 °
latenza percentile o come fa il tuo
l’applicazione si comporta per un utente in mi piace
Africa subsahariana che ha 56 kilobyte
al secondo possono accedere al tuo
applicazione come si misura questo e
gli scheduler ci forniscono una soluzione migliore
qualità del servizio unita alle cose
come CD finisce dove siamo in grado di scalare fuori
globalmente per assicurarci che il nostro
le applicazioni sono accessibili in tutta
il mondo lo facciamo fornendo lavoro
priorità così prima ho dato l’esempio
di Redis contro qualche fatturazione
l’architettura è un lavoro batch
corre per forse 15 minuti uno è un
processo di lunga esecuzione che è fondamentale per
l’applicazione senza priorità a
lo scheduler non può prendere la decisione di
che è più importante quindi sarà solo
scegli o fai casualmente qualsiasi cosa
è stato presentato per primo e questo è ovviamente
non ideale perché come operatore o un
ingegnere sei a conoscenza del fatto che MapReduce
lavoro che sta facendo tutto il fatturazione
potrebbe probabilmente aspettare un giorno o un’ora o
anche 10 minuti se significa che il
Il lavoro redis o il lavoro MongoDB può
continuare a correre perché l’applicazione
l’ applicazione rivolta al cliente o il
applicazione commerciale che è
critico deve essere attivo e funzionante e così via
fai tutte le sue dipendenze quindi se a
lo scheduler non ha la capacità di
specificare la priorità e dire a a è di più
importante di B poi quelle decisioni
non può essere fatto in modo adeguato e non è possibile
fornire una migliore qualità del servizio
il secondo è l’isolamento delle risorse, quindi tu
non voglio che le tue applicazioni vadano a pezzi
uno sopra l’altro e questo era un
problema che è stato vissuto molto in
negli ultimi 20 anni è il motivo per cui
strumenti come lo chef
burattino e ansible e sale sono così
popolare o perché abbiamo dovuto installare
come 20 diverse applicazioni su a
macchina e senza contenitori o finestra mobile
contenitori o container è asiatico
abbiamo avuto più versioni di Ruby multiple
Le versioni di Python che gestivano tutto ciò erano
abbastanza un incubo e questo è dove
la gestione della configurazione è diventata davvero
popolare perché gestendolo a mano
era programmatori e contenitori difficili
e VM ci forniscono quel livello di
isolamento delle risorse, quindi non dobbiamo
preoccupati per la tua conoscenza di Ruby 192
in conflitto o tramite B 193 ed è nostra
l’applicazione che utilizza la versione corretta è
il nostro Ruby e in conflitto con il sistema
versione giusta questi sono tanti
domande che sono venute e
gli scheduler stanno davvero risolvendo quelli
anche i problemi per noi scheduler non sono un
nuovo concetto penso che siano un nuovo
concetto a ciò che chiamo livello intermedio
organizzazioni ma non sono nuove
concetto di organizzazioni su larga scala così
abbiamo già parlato di ec2 e
Nova essendo uno schedulatore è una VM
scheduler ma Amazon ha anche ECS che
è il loro contenitore di pianificazione di Google ha
borg e poi alcune delle ricerche
google ha fatto anche per passero che il nostro
berkeley ha fatto anche per passero e
poi twitter e netflix netflix ha
Twitter stretto ha il suo
scheduler allora questi sono stati in giro
per un tempo abbastanza lungo sono più
recentemente essere evangelizzato e
reso popolare perché stanno diventando
più rilevante man mano che passiamo al cloud
architettura architettura senza server e
iniziamo a concentrarci sulle applicazioni
invece delle macchine stesse così quando
parliamo di nomade e questo potrebbe essere un
un po ‘ridondante ma anche i nomadi no
da solo nel mercato degli scheduler così tu
hanno mubus kubernetes come sfera meso
nave porta-container all’i / oe un numero di
altri scheduler sono continuamente in corso
creato la differenza principale è Adrian
detto tra nomade e tutti questi
altri scheduler è che Nomad è un
programmatore Noma non ti fornisce
scoperta del servizio che non ti fornisce
con tutti i bit e le parti quindi
La ragione per cui Nomad è molto popolare è
guadagnando popolarità è così
davvero facile da adottare nel tuo esistente
organizzazione senza prendere un intero
morso di una torta particolare, così puoi
adotta Nomad e continua a usare il tuo
strumento di individuazione del servizio se questo è
console che capita di essere qualcosa
che facciamo o qualcosa come il guardiano dello zoo
le integrazioni ci sono per te così
può adottare puramente un programmatore evitando
quel venditore si blocca ed evita tutti
il refactoring che potrebbe aver bisogno di verificarsi
di portare le applicazioni nel
era moderna un’altra differenza fondamentale
tra i nomadi e questi altri strumenti sono
i tipi di applicazioni che possono essere
programmato e ci entrerò in quello a
un po ‘di più quindi ci sono tre principali
punti di nomade che voglio discutere
il primo è la parte di scheduling del cluster
il secondo sono le distribuzioni e poi
le specifiche del lavoro stesso così è
le specifiche del lavoro e ci pensiamo
è ciò che distingue Nomad da molti
i concorrenti abbiamo un molto umano
configurazione amichevole è JSON
compatibile in modo da poter generare questo come
In effetti, JSON e il parser Nomad funzioneranno
leggilo come JSON, così puoi ancora farlo
macchina leggibile e uscita macchina ma
abbiamo una configurazione molto amichevole che
sembra molto simile a nginx se lo sei
familiarità con le coppie di valori chiave molto
supporto umano amichevole per i commenti molto
controllo di versione amichevole e sono
progettato per essere controllato in versione
controllo perché i tuoi file di lavoro sono
davvero la descrizione del tuo
architettura in questo esempio abbiamo a
lavoro chiamato Redis nel data center che
vogliamo eseguire Redis in e il compito
specifica come vogliamo eseguirlo dove noi
vuole ottenere da quale driver che vogliamo
da usare e l’insieme di risorse
opzionalmente che sono richiesti così in questo
caso stiamo specificatamente dicendo questo
contenitore docker che sta appena tirando
l’ultima immagine redditiana di Redis ha bisogno
1/2 di una CPU e 256 megabyte di RAM
con una rete minima di 10 megabit
al secondo le specifiche del lavoro
dichiara cosa deve essere eseguito e quindi nomad’s
la responsabilità è determinare come e
dove eseguirlo
quindi in questo modo è responsabile Nomad
astrazione del lavoro dalle risorse
loro stessi
quindi una delle cose veramente interessanti
di nomade è il design e il
architettura perché è simile ma
anche molto diverso da alcuni dei
altri programmatori là fuori così
capire gli obiettivi e i vincoli
di un problema sono super importanti quando noi
considera il design alla curva di Hashi che siamo
una società focalizzata sul white paper accademico
abbiamo idee e poi ogni volta che siamo
pronto a costruire qualcosa, usciamo e
ricerca tutte le più recenti e migliori
studiosi di studi accademici che stanno scrivendo
su questi argomenti particolari per nomade
avevamo un numero di requisiti e
questi includevano il supporto da più parti
data center e multipli regionali
implementazioni abbiamo voluto la flessibilità necessaria per
supportare qualsiasi tipo di carico di lavoro quindi non solo
contenitori docker non solo VM noi
già parlato delle priorità del lavoro
erano così importanti che volevamo usare il
ultimo e più grande imballaggio del contenitore
algoritmi e doveva essere in grado di
supportare un twitter su larga scala
scala in scala Facebook su scala di Google ma è così
anche bisogno di essere operativamente semplice
in modo tale da poterlo alzare e
correndo in uno o due comandi quando noi
ho parlato di ridimensionamento che volevo
meglio definire il ridimensionamento a cui vogliamo i nomadi
essere in grado di scalare fino a migliaia di regioni
con decine di migliaia di clienti per
regione con migliaia di posti di lavoro per cliente
e parlerò del milione
contenitore di sfida in un po ‘e
come si comportavano i nomadi, ma se lo fai tu
la matematica è un milione di lavori in fase di progettazione
nomadi ci rivolgiamo alla nostra esperienza
primo
quindi la corte Hashi fa il console di surf
che sono sistemi distribuiti che funzionano
su scala in produzione oggi dà surf
noi membri del cluster di gossip basati
rilevamento dell’appartenenza peer-to-peer
rilevamento guasti senza un singolo punto
di fallimento o TTL
e fornisce un evento basato
sistema di distribuzione funziona a livello massiccio
scala decine di migliaia di macchine in a
unico centro dati la sua produzione
indurito per un certo numero di anni ora utilizzato
da alcune delle più grandi aziende sul
internet ed è semplice da usare
la console è costruita su surf ed è così
la nostra scoperta di servizio lo inquadra
consente un archivio di valori-chiave distribuiti
anche su e include anche un numero di
caratteristiche che sono importanti in a
sistema distribuito come centralizzato
meccanismo di bloccaggio e utilizza un
architettura per server centralizzati e
clienti distribuiti
la console stessa è a conoscenza di più datacenter
usa la zattera per il consenso che ha anche
stato testato su scala incredibilmente grande
ed è molto duro per la produzione, quindi naviga
e console ci forniscono i pettegolezzi e
livelli di consenso e ci sono anche molto
librerie mature con un design potente
modelli il problema è che tutti loro
mancava la logica di programmazione e in Hoshi
Corp crediamo nella filosofia UNIX
che dovresti fare una cosa e tu
dovrebbe farlo molto bene e non lo fa
ha senso per una scoperta di servizio
quadro di cui essere responsabile
pianificazione proprio come non fa
senso per uno schedulatore di essere un servizio
quadro di scoperta così per questo ci rivolgiamo
per il mondo accademico volevamo all’avanguardia
tecnologia che volevamo all’avanguardia
ricerca nel campo della programmazione e
principalmente siamo stati guidati dal lavoro svolto da
Google e amp lab di Berkeley quindi a
numero di persone ha parlato di Borg
già ma Borg è interno di Google
scheduler Penso che anche una parte di Borg funzioni
Google cloud platform e poi Berkeley
Sparrow stava uscendo da Berkeley che
era un programmatore simile così facendo a
indagine sull’attuale mondo accademico a
gli schedulatori di tempo sono entrambi
ottimista o pessimista in base al loro
concorrenza e scelgono se loro
vogliono gestire lo stato internamente o se
vogliono spingerlo a qualcosa
come sed o qualche altro servizio e poi
sono sia single che multi level quindi
Borg è fisso nella sua logica di scheduling così
come gli scheduler costruiti in Borg
mentre Omega ha un innesto
l’architettura in modo da poter portare il proprio
scheduler alcuni programmatori sono altamente
ottimizzato per carichi di lavoro batch in modo da fatturare
elaborando lavori unici a loro piacevano cinque
dieci minuti di lavoro mentre altri
sono più ottimizzati per longevi
servizi Applicazione java del database Redis
ecc. Quindi alla fine il nomade è più ispirato
da Omega che è passero è
ottimisticamente concomitante che consente
per prendere decisioni di programmazione in
parallelo su molti dei server
usa lo stato interno per il coordinamento
sia per la velocità che per renderla più
operativamente semplice non volevamo il
primo passo fuori dalla scatola per essere andare
installa questo altro strumento in modo che possiamo
stato del negozio che volevamo che fossimo
operativamente semplice fuori dalla scatola noi
concentrarsi su entrambi i servizi e la laurea
Abiti
e stiamo andando a sostenere un innesto
architettura per i conducenti molto presto in
iniziando la progettazione del sistema a cui ci rivolgiamo
console console è molto familiare che sapevamo
è ridimensionato questa è l’architettura delle console
ad un livello molto alto così in alto
puoi vedere tutti i clienti
i clienti comunicano tra loro su
RPC sul pettegolezzo LAN che comunicano
con i server quei server sono
responsabile di tre cose sono
responsabile della risposta a RPC
chiede che siano responsabili per il leader
elezioni e poi sono responsabili
per inoltrare richieste al leader se
nel caso in cui sono un seguace all’interno
un centro dati i nodi parlano al loro
server locali ma il server è anche
partecipare alla vittoria pettegolezzi o il
pettegolezzi pubblici su internet
così attraverso più data center il
i server comunicano con ciascuno
altro sull’Internet pubblica o su alcuni
somiglianza di Internet pubblica in
questa architettura è il fallimento
isolato il dominio di errore è isolato
al centro dati quindi il tuo fallimento
il dominio è il data center stesso e
questo perché ogni data center è
completamente isolato dal suo pari
l’architettura di know-how è molto simile
ma abbiamo introdotto questo concetto di a
regione quindi una regione è una raccolta di
data center e ha un solo set
di server così mentre in console ciascuno
il data center ha una collezione di server
nei nomadi ogni regione ha una collezione
di server e ogni regione è a
raccolta di data center così come un
esempio potresti aver conosciuto Francoforte
Francoforte in Irlanda e io non lo so
Scandinavia come i tuoi tre data center
giusto quelli sono dove i vostri centri dati
si trovano fisicamente in quella regione
essere Europa quindi la regione è solo una più alta
livello di astrazione di un data center e
la ragione di ciò è quella programmazione
le decisioni in genere non sono fatte al
strato di centro dati che sono fatti al
livello regionale così come mi piace
descriverlo è che mi piace pensare
data center come paesi e regioni o
continenti che ovviamente non mappa
uno a uno ma ti dà un buono
rappresentazione nella tua mente nel multi
l’architettura della regione è la regione
dominio di errore e il server all’interno
quella regione comunica tra loro
quindi se la regione degli Stati Uniti va giù
il dominio di errore è isolato da quello
continente la regione europea
non è influenzato, quindi la regione è il
dominio di fallimento questo permette di entrare
più data center per regione dando il
utente la flessibilità per eseguire un singolo
regione per data center o centinaia di
migliaia di regioni o centinaia di
migliaia di data center per regione come
se il mondo fosse una regione globale
la regione è anche il limite di programmazione
quindi non puoi pianificare un lavoro
più regioni in una presentazione voi
può programmarlo ma sono isolati
lavori sono indipendenti l’ uno dall’altro
altrimenti ciò avrebbe rotto il fallimento
isolamento quindi è importante parlare
di
modello di dati nomadi e questo è fondamentale
per capire come funziona il sistema
funziona davvero
quindi gli utenti inviano il lavoro sotto forma di a
lavoro o un file di lavoro e questo può essere
fatto tramite l’API in modo da poter costruire il tuo
possedere gli strumenti attorno ad esso o puoi usare il
riga di comando direttamente i nodi client
sono uniti per eseguire i compiti e poi il
mappatura delle attività da un lavoro a un
il nodo è fatto con quello che è chiamato un
allocazione che è un termine di glossario e
queste allocazioni sono create solo da
valutazioni una valutazione è fondamentalmente a
cambiamento di stato nel sistema quindi alcuni
le valutazioni di esempio sono come ho aggiunto a
nuovo nodo client un nodo è andato giù ho
cancellato un lavoro ho creato un lavoro o un
allocazione fallita, che significa in precedenza
l’allocazione di successo sta fallendo e
potrebbe essere come diciamo
qualcuno ha strappato un disco rigido da un
dati fisici del data center fisico
nodo centrale e ora hai meno disco
spazio che hai originariamente fatto
fa sì che una riallocazione si verifichi così dentro
in questo modo se vogliamo ottenere tecnici a
lo scheduler può essere modellato in modo funzionale
notazione come una funzione che accetta un
valutazione e restituisce un insieme di
aggiornamenti di allocazione o un array di
aggiornamenti di assegnazione e tali allocazioni
gli aggiornamenti sono creati o aggiornati o
cancellato e che la stessa valutazione può
essere un sistema specializzato in modo che possa essere un
servizio lavoro un lavoro batch un lavoro di sistema
qualunque cosa possa essere in questo modo
consente alla nostra architettura di essere inseribile
quindi questo significa che rende nomade un
programmatore di classe omega lo consente
supporta gli scheduler collegabili con
logica personalizzata ma fa uso del
coordinamento interno e sistema statale
il molto ispirato
l’architettura del consiglio lo permette
supporta più regioni e più
data center molto facilmente e al massimo
scala in termini di client no mat is
scritto in go e si basa sui clienti
per eseguire effettivamente le attività del client
supporta un’ampia gamma di operazioni
sistemi inclusi Windows Linux FreeBSD
e Darwin, i clienti fanno uso di
impronte digitali che se sei familiare
con uno chef o un burattino simile è molto
simile a Ojai o Factor
raccogliere dati sul sistema che è
utilizzato nelle decisioni di pianificazione e
spinge quell’informazione fino al Nomad
server quindi ecco alcuni esempi di
impronte digitali quindi per esempio il
versione del sistema operativo kernel del sistema operativo
Hardware quanta CPU abbiamo entrambi
disco di memoria totale e disponibile
capacità del sistema stesso è
più scuro installato è installato Java è
console installata e quindi il
ambiente stesso è una tonnellata Ibis è
su GCE è su OpenStack ecc
è l’informazione dalle impronte digitali
fornito ai server per vincolare
Posizionamenti di attività e imballaggio del contenitore di supporto
quindi per esempio in termini umani lo faresti
dì che questa attività richiede Linux e poi come
un risultato implicitamente docker e PCI
hardware conforme e tutto ciò che è
espresso come un vincolo nel lavoro
il file è codificato è in versione
controllo quando dici che il mio compito ha bisogno
mezzo concerto di ram e esattamente una CPU
core che è espresso come una risorsa chiedere
nel file di lavoro nuovamente codificato in
controllo di versione si ottiene lo stesso tipo di
collaborazione che hai
applicazioni sui cambiamenti infrastrutturali
i driver di attività vivono sul client e
sono responsabili dell’esecuzione delle attività
e fornendo così l’ isolamento delle risorse
in questo momento Nomad ha il supporto per la finestra mobile
e razzo sul livello di containerizzazione
ma una delle cose che imposta Nomad
a parte alcuni degli altri programmatori
sul mercato è che supporta di più
oltre alla docker supportiamo virtualizzati
carichi di lavoro con kimu e KVM e noi
supporta binari statici standalone come
come Java jar o go binari quindi quando il tuo
unico requisito è che hai bisogno della JVM o
hai bisogno di qualcosa che sia capace
gestire un nomade di elfi binari può pianificare
quello direttamente per te senza il
in alto nel buio più senza la necessità di
installare la finestra mobile sul sistema gratuitamente
risorse aggiuntive per massimizzare
utilizzo stiamo anche lavorando attivamente
su supporto per contenitori Windows Server
Xen e hyper-v e c-sharp standalone
applicazioni in modo questi sono alcuni dei
cose che si potrebbe vedere in
Alla fine, il gasdotto Nomad è progettato per
essere incredibilmente flessibile e lo fa
con l’architettura collegabile
i driver delle impronte digitali e il lavoro
il formato delle specifiche è un singolo
binario come quasi tutto il nucleo di hashing
prodotti in modo da arricciare si sposta e
user local bin e tu lo dai
eseguibile e lo hai installato
di solito sono quattro righe di codice bash o
100 linee di burattini e non c’è
dipendenze assolutamente nessun livello di sistema
dipendenze ed è altamente disponibile
quindi una delle ultime cose di cui voglio parlare
circa e l’ho accennato prima è il
Nomad milione contenitore sfida come
molte persone hanno visto il milione
container challenge cool one person so
abbiamo recentemente fatto una cosa in cui noi
programmato un migliaio di posti di lavoro con a
migliaia di compiti per lavoro su 5.000 host su
Google compute engine e loro
gentilmente fornito che gratuitamente così se
fai i conti ci sono un milione
capita di essere contenitori docker
in esecuzione su 5.000 host su Google
piattaforma cloud e abbiamo aggiunto vincoli
a tutti i lavori alcuni di loro
arbitrario solo per rendere più pianificazione
difficili i padroni di casa stessi avevano tutti
diverse risorse in modo un po ‘erano come al
mega i nostri due gigabyte di RAM da qualche parte
64 gigabyte di RAM solo per fare il
programmare il più duramente possibile in modo che il
i risultati sono stati piuttosto sorprendenti che puoi
vedere da questo grafico nomadi in programma
oltre un milione di contenitori parlano del perché
oltre un milione in un secondo in poco meno di
cinque minuti quindi se non puoi vederlo
sono duecentosessantasette
secondi è quando tutti i contenitori
sono stati programmati ciò che è interessante
nota che Nomad è effettivamente programmato
questo è più di un milione di contenitori
a causa di quella scala che ti piace
guasti hardware reali come macchine
letteralmente morto abbiamo anche trovato un bugger per
nel demone più scuro che da allora
stato risolto in quella scala enorme
ha causato condizioni di gara quando Nomad
rileva che un lavoro non è più in esecuzione
ripianifica quello che è uno dei
responsabilità di un programmatore, quindi questo
non sta mostrando solo la scala
quali nomadi possono operare ma anche a
quella scala è ancora in grado di fare
decisioni fondamentali di pianificazione fed
come se questo lavoro continuasse a non funzionare
Ho intenzione di iniziare di nuovo
Nancy così negativa dice sempre nessuno
avremmo mai bisogno di pianificare un milione
contenitori come se qualcuno ci stesse pensando
chi lo stava pensando sì qualcuno lo era
pensando così sto per mostrarti un
video e questo è un video di uno stress
test eseguito su un Airbus a320 così
quello è un aeroplano come puoi vedere
le ali si piegano significativamente oltre
qualsiasi volo tradizionale avrebbe mai
incontrare
tuttavia c’è praticamente maggiore sicurezza
e fiducia e sapendo che questo
ali di aeroplani possono piegarsi a penso che sia
come 39 gradi o qualcosa oltre
il loro parallelo destro è carino
fantastico ti mostrerò un altro video
ora quindi questo è un video di un altro tipo
di aereo forse ce ne andiamo
questo è un altro tipo di aereo che
scatta l’ala a circa 17 gradi
pendenza in modo da questo entrambi questi chiedo
gli scenari sono altamente improbabili ma quali
l’aereo preferiresti volare in modo da farlo
bisogno di pianificare un milione di applicazioni
no, ma quale programmatore preferiresti
usa quello che può solo pianificare un
mille o quello che può programmare un
milioni su scala ed essere altamente
performante come con tutto ciò che facciamo
hashey Corp è Nomad è open-source e
così è il contenere il milione di contenitori
sfida così ciao dovrebbe Corp tagliare c1m on
github è il milione di container
sfida tutti gli script sono
open-source sei libero di eseguirlo
contro Nomad o qualsiasi altro programmatore no
solo Nomad quindi per concludere no Mehta è un
distribuito globalmente in modo ottimistico
schedulatore simultaneo utilizza l’obiettivo
era in definitiva per consentire agli utenti di
aumentare drasticamente le loro risorse
utilizzo
d accoppiare applicazioni da risorse o
lavorare con risorse per migliorare la propria
qualità generale del servizio, ecco tutto
Ho una demo davvero veloce ma
Non so se avrò tempo oh tu lo faccia
hai tempo ok guarda che ero
sperando di aver detto no grazie Adrienne alla grande
quindi quello che ho qui è davvero piccolo
dimensione del carattere quindi quello che ho qui è un nomade
server in esecuzione da qualche parte su un
nuvola da qualche parte quindi ho questo lavoro
è in esecuzione l’ app web in codice e io no
andando a tuffarsi nel file di lavoro, ma è
solo un contenitore docker ce ne sono due
contenitori docker uno è un proxy H
load balancer e one’s a Apache –
servire una pagina web statica e lo è
attualmente in esecuzione se chiedo di più
informazioni in modo che possiamo vedere che possiamo
vedi che ho rovinato tutto questo
volte perché hai l’intera storia del lavoro
ma puoi vedere che è attualmente
correndo su ho fatto scorrere troppo lontano è
apparentemente correndo su questo particolare
nodo qui così nodo qualunque DC qualunque
e lo sto facendo intenzionalmente senza
scoperta del servizio quindi se ci fosse
Console installato su queste macchine
li scopriremmo automaticamente per noi
ma lo sto facendo come puro nomade
quello che posso fare è che posso chiedere il
lo stato di quel nodo dal suo ID così posso
vedere tutto ciò che ne sa di nomade
questo nodo quindi ha attualmente ciò che 750
megahertz della CPU è attualmente
allocati 512 megabyte di memoria 600
megabyte di disco e ci sono 0 IO
operazioni attualmente in corso così
quello che voglio mostrarti è così
correndo su 1000 11 questo è dove ho
per imbrogliare e accedere alla console AWS a
ottenere l’indirizzo IP di questo nodo cosa sono
Lo farò, ucciderò questo nodo e
Sono spettacolo gonna che quando questo nodo
va giù nessuno lo scoprirà
e riprogrammalo su un’altra macchina così
cosa ho detto che era 111
Va bene, è Tina
Non lo so, penso che si, non vedo
un amministratore di sistema va bene così che la nota è ora giù
ed è l’arresto e, non appena
Nomad è reso consapevole di quei nodi
partenza dal cluster e questo era
un contenitore docker quindi dobbiamo anche
attendere che la finestra mobile riporti che il file
il servizio non è più in esecuzione e
sfortunatamente è un modello basato sulla trazione
ora spinga il modello basato ora così facciamo
aspettare che il nodo lasci il
cluster una volta che il nodo lascia il cluster
i nomadi lo programmeranno automaticamente
lavoro su un’altra macchina e lo farà
fallo usando lo stesso contenitore
farò un’altra allocazione così quando noi
esegui nuovamente lo stato vedremo un altro
l’allocazione avrà luogo che si formerà
un’altra valutazione e spero che lo farà
programmalo su un’altra macchina, quindi facciamolo
dare un’occhiata a questo stato di lavoro chiedere
lo stato totale quindi dice che il lavoro è
correndo quindi chiediamo lo stato di
il lavoro webapp quindi non so se
ti ricordi, ma 9dc8 20 era il
nodo in esecuzione precedente che era il
nodo che abbiamo ucciso ora capita di essere
in esecuzione su un nodo 3 7 2 4, ad esempio
se eseguo lo stato di un nodo nomade con no
argomenti puoi vedere che ciò accade
corrispondere al nodo 57 in realtà non lo è
avere un nome o qualcosa di speciale così è
questo ultimo nodo della lista si possono vedere
che nessuno sta riportando il nostro originale
il nodo è inattivo quindi non lo è più
accessibile e questa applicazione è stata
riprogrammato su quel particolare
macchina in questo caso 57 quindi se colpiamo
57 nel e di nuovo sto facendo questo
senza servizio di scoperta, ma se lì
è stata la scoperta di servizi che sarebbe stata in grado
per usare sai DNS o qualche tipo di
interfacciare per interrogare questo ma questo è
in realtà quell’applicazione stessa così
è l’applicazione che è stata riprogrammata
su questo contenitore docker host 2 o 3
è in esecuzione dietro un bilanciatore del carico così
niente di veramente speciale non ho un
demo davvero fantastica ma penso che sia super
bello per mostrare cosa succede quando un
l’applicazione muore e lo scheduler è
responsabile di maggio
assicurati che sia ancora disponibile per
cliente è tutto quello che ho domande
ci sono domande sì schifo quindi c’è
una domanda qui sul supporto di Windows
va bene
hai detto che sono tutti diversi
le applicazioni girano su Windows ma fanno
avete qualche esempio di esso in esecuzione
aziende in esecuzione su Windows in
produzione e su larga scala sicuramente
non su larga scala per nomade che abbiamo
un paio di aziende che ne gestiscono alcune
piccole cose su Windows the the
client nomad gira su Windows ma il
server di nomadi deve essere eseguito su un Linux basata
sistema operativo in questo momento
qualcosa che stiamo cercando di liberarci
di così possiamo programmare il lavoro su a
Macchina Windows ma in questo momento non lo è
possibile eseguire il server su Windows
ci sono alcuni ismi UNIX in profondità nel
nucleo che dobbiamo rimuovere prima di noi
posso versarlo a Windows che non ho
qualsiasi esempio di aziende che sono così
lo sto facendo che posso davvero parlare
ma abbiamo un repository di esempi
è open source su github dove puoi
vedere alcuni dei file di lavoro e cose
che sono come Windows specifico
ok così vedi un futuro per
gestione della configurazione come chef e
burattino , io penso che quel pupazzo da chef
sale ansible Penso che giochino ancora a
Penso che sia un ruolo molto vitale in questo spazio
questo ma un ruolo diverso sì, penso
sono solo andando giocare una molto diversa
ruolo Credo che mentre ci muoviamo verso
containerizzazione questa nozione di avere
più applicazioni su un sistema
senza alcun tipo di isolamento delle risorse
da uno schedulatore o da un contenitore
il motore si spegne, quindi cose come lo chef e
fantoccio diventa cruciale per il provisioning
la costruzione di sistemi iniziali come questi
macchine cluster più grandi i client
se stessi che conosci i gigabyte
di memoria gigabyte di RAM
conosci lo spazio e il provisioning del disco della CPU
quelle istanze iniziali non penso
stiamo andando li vediamo come popolare in come
il cron basato o sai che gestisci lo chef
su qualche intervallo o burattino su alcuni
Intervallo Penso che sta andando essere puramente
più di un processo di bootstrap e poi
probabilmente faremo affidamento sul
scheduler o i motori dei container a
prendere le decisioni da lì così bene
hai menzionato il concetto di imballaggio del contenitore
un paio di volte cosa fa esattamente questo
significa che ci sono tre persone che chiedono questo
jeez va bene così il modo più semplice e io sono
ruberò Kelsey Hightower’s
descrizione il modo più semplice per descrivere
nel confezionamento è Tetris quindi quante persone
hanno mai giocato a Tetris giusto così è
ho fatto la prossima domanda okay sì sì
l’ idea è che nel cestino ti impacchetta
riserva in modo efficace grossi pezzi di
spazio tale che non lo fai
scegliere sempre come la migliore soluzione in
Tetris che non scegli come il pezzo
che si adatta esattamente invece si sceglie il
pezzo che forma un’altra forma che tu
so potrebbe venire in futuro così
potresti formare uno spazio che si adatta perfettamente
la forma T anche se non ne hai uno
t-shape sulla tua mappa non è il prossimo
uno poi quando la forma a T diventa
disponibile è possibile cancellare tre righe
invece di uno solo così è una specie di a
la metafora mi piace usare lì bene
metafora Anche tu hai qualche tipo
di visualizzazione del cluster come noi
visto con DCO in precedenza, quindi abbiamo a
strumento di visualizzazione è attualmente in
beta non sarà open source
per prima cosa avremo un open source
UI in futuro ma una parte del nostro
l’offerta commerciale avrà un’interfaccia utente, ma io
Non non voglio parlarne
perché è pagato bene
per cosa state usando la mappa?
Hoshi core in questo momento, quindi abbiamo di più
rispetto ai ragazzi abbiamo anche delle dipendenti femminili
quindi stiamo correndo il nostro intero
infrastruttura di produzione su nomade così noi
crediamo nel dogfooding per quelli di
non hai guadagnato quel termine è come
mangiare i tuoi prodotti e così via
internamente usiamo tutta la nostra propria
prodotti usiamo console per il servizio
discovery Nomad gestisce la nostra produzione e
ambienti di staging gestisce anche il nostro
strumento on-premise quindi se acquisti su Prem
in realtà installa nomad sul tuo
infrastruttura e questo è ciò che gestisce il
prodotto commerciale cool grazie
tutte le domande provenienti mano
tu
Please follow and like us: