
Voglio parlarti oggi del perché
questo lavoro è troppo difficile e perché ho
trascorso un sacco di tempo e una varietà di
luoghi che parlano di kubernetes e
parlando di containerizzazione i
profondamente credo che nel momento in cui
abbiamo raggiunto ora dove ha il kubernet
diventare una merce prima di tutto è
incredibile per me è che ho ancora quattro anni
più tardi sono scioccato ma è davvero il
inizio e quindi se voglio parlare oggi
sul perché penso a questo
tutto ciò che abbiamo costruito finora e
Onestamente tutto quello che siete tutti
facendo chi stanno schierando le comunità in
produzione come le fasi iniziali di
quello che spero sarà davvero drammatico
cambiare il modo in cui ci avviciniamo alla costruzione
sistemi distribuiti e creazione di cloud
sistemi nativi perché penso che lo siamo
davvero solo grattando la superficie e
come dice il titolo lassù il lavoro che
stai facendo oggi semplicemente è troppo difficile
e ci sono troppe poche persone che lo sanno
come fare tutto bene quindi qual è quello che è
il lavoro se il lavoro è troppo difficile
il lavoro bene è il lavoro per costruirne di nuovi
rilasci forse è per costruire nuovi
caratteristiche da fare settimanalmente mi dispiace confondere
quelli sì costruire nuove funzionalità di qualcuno
dicendo hey sai cosa abbiamo bisogno di questo
funzionalità nell’app il più presto possibile
i nostri concorrenti l’hanno appena aggiunto
il cliente lo ha chiesto qualunque sia il
motivo per cui abbiamo bisogno di questa funzionalità di cui abbiamo bisogno
quella cadenza settimanale di rilascio o forse a
cadenza giornaliera di rilascio che dobbiamo essere
funzionalità di spedizione costantemente devi
avere perfetta destra uptime non so
quante persone ricordano ma prima
si acceda al log-in su un sito Web di una banca
sito web o ovunque e sarebbe dire che
sapere cosa dalle 11:00 alle 12:00 di notte
saremo offline per la manutenzione
qualunque cosa significasse
di solito aggiornamento dello schema um ma ora io
ogni volta che vedo quelli e ogni volta
tra poco mi imbatto in un sito che lo fa
che io sono scioccante per me, sì, sì
Sono qui in Europa, la mia banca è in America
Ho intenzione di usare il mio cellulare per
accedere alle loro API e mi aspetto che lo facciano
essere attivo e operativo proprio così
Oltre alla spedizione di nuove funzionalità
rilasciando costantemente software ancora
devono anche mantenere il tempo di attività perfetto e
poi c’è questa pressione costante e
Sono sicuro che lo senti e lo sento
come se ci fosse sempre una cosa nuova da imparare
su e è una cosa nuova da imparare
circa perché è una cosa o è a
nuova cosa da imparare solo perché
qualcuno ha una parola d’ordine che vorrebbe
come te da usare nelle loro diapositive
e quindi penso che non solo stiamo pensando
sulle funzionalità di spedizione non solo siamo noi
pensando di mantenere i tempi di attività ma
stiamo costantemente assorbendo nuovi
tecnologia e capire se o
non è una cosa utile o se lo è
solo la cosa più nuova quindi per
raggiungere questo lavoro cosa stiamo usando cosa
stiamo usando per mettere insieme questo insieme
abbiamo schemi e pratiche
tutti abbiamo imparato e abbiamo imparato da
i nostri colleghi e da cui impariamo
ambienti come questo hanno una laurea
di infrastrutture supportano cose come
i kubernetes aiutano a fare questo lavoro un po ‘
un po ‘ più facile da un certo punto di vista che facciamo a
sacco di riutilizzo del codice penso che questo sia uno di
le grandi rivoluzioni del software forse
lo sviluppo di 30 o 40 anni fa è
che improvvisamente possiamo condividere molto di più
le reti di codice hanno contribuito a questo
lingue del software che sono state organizzate
in giro a condividere siti di codice come github
che sono organizzati attorno al codice di condivisione
mi hanno aiutato molto e poi
utilizzando strumenti come notizie sugli hacker e altro
tipi di fonti per scoprire cosa c’è
andando avanti cosa stanno facendo le altre persone
so che cosa è quello che sai che vorrei
supponi che tu l’abbia scoperto
su cose come docker e urban
Eddie proviene anche da questo tipo di fonti
dove leggi un articolo che hai sentito
qualcosa di interessante in a
conferenza hai imparato un po ‘di più
su di esso l’ hai provato noi lentamente
ha accumulato tutte queste informazioni ma il
approccio che stiamo prendendo con tutti
questi strumenti è che dobbiamo imparare
tutto quello che c’è da sapere dall’alto
dello stack fino in fondo
in fondo alla pila come tutto funziona
devi costruire tutto da e
Grande destra, tu continua a trovare e io
ogni volta che parlo alla gente di come loro
costruisci i loro sistemi trovo che siano
tutto costruisce la stessa cosa finita e
più e più volte a volte se stessi
ognuno di voi sa che ogni nuova app crea il
le stesse cose più e più volte ho trovato
questo nei miei sistemi di costruzione vita ho
sapevo cosa fare ma lo tenevo ancora
ri-implementare cose che non abbiamo
abbastanza biblioteche non ne abbiamo abbastanza
codice condiviso nonostante tutto il codice condiviso
che abbiamo accumulato non ne abbiamo abbastanza
condivisa
intorno ai sistemi distribuiti dobbiamo
insegnare nuove persone su come il sistema
funziona e dobbiamo insegnare alla gente
come funziona il nostro sistema che è diverso
del sistema di qualcun altro anche se
sono davvero uguali quando socchiudi gli occhi
a loro che lo stesso aspetto, ma nessuno di
la conoscenza si sta trasferendo in avanti
e continuiamo a farlo finita e
più e più e più volte e credo
che non conosco per la potenza per me
Comunque
Ho raggiunto un posto dove ci si sente
inutile sembra un po ‘sprecato
sforzo che dovrei spendere
costruire una migliore applicazione spesa
ri-implementare cose che già ho
so come implementare e io no
pensa che possiamo continuare a farlo nel modo giusto
perché la pressione di rilasciare nuovi
API è e la pressione di rilasciare nuovi
Caratteristiche E ‘solo peggiorare destra
ogni nuovo sai che andava bene
fai un rilascio mensile ora non è nemmeno
va bene fare una versione settimanale, penso
là là ci sarà questo
l’aspettativa di una richiesta di funzionalità può essere
pubblicato su un forum che conosci nel
mattina e disponibile nell’app mobile
nel pomeriggio ed è qui che siamo
diretto se non ci siamo già e così
Lo credo davvero profondamente mentre
abbiamo accumulato un sacco di interessanti
strumenti che non abbiamo creato abbastanza per
raggiungere gli obiettivi che abbiamo che sono
scendendo il luccio o che sono pari
qui oggi ma la cosa preziosa
il mondo è che la storia continua a
ripetersi
Mi trovo stavamo solo parlando
prima io e Adam abbiamo parlato di
senso della storia che hai quando tu
vieni in un posto che è stato intorno e io
pensa anche se la storia del computer
non torna indietro così lontano che possiamo guardare
la storia e diciamo se siamo in questo
spazio in cui è troppo difficile da costruire tutto
di questi sistemi che ci si aspettava
costruire e alla cadenza che erano
ci si aspetta che li costruisca bene
è successo prima e in effetti lo è stato
e direi che è successo a
almeno due volte prima e se allunghi
torna forse puoi venire con gli altri
epoche e così cosa succede in
generale, quando il lavoro diventa troppo duro in
calcolo e tecnologia costruiamo
strumenti che costruiamo strumenti migliori che troviamo
schemi che possiamo sapere avere
comunanza intorno e costruire condivisa
implementazioni in giro e così se noi
pensa alla storia e allo storico
punti di riferimento direi che il
il primo momento in cui anche il lavoro è finito
è stato difficile quando improvvisamente le persone si sono rese conto
quella gente che non era
costruendo letteralmente la macchina necessaria
essere in grado di programmare la macchina e
persone che non erano necessariamente
matematici o il primo computer
gli scienziati del giorno necessaria per poter
scrivere il codice giusto per essere in grado di
esprimere idee e creare applicazioni
perché erano esperti in materia
in una particolare area e fuori da quello
arriva Fortran proprio da quel senso di
abbiamo bisogno di una cosa che sia migliore e e
più espressivo e più facile da usare di
il codice macchina è Fortran, giusto è
letteralmente a prendere le formule e
traducendolo in codice macchina che è
Fortran e poi allo stesso tempo la
i modelli iniziano ad emergere proprio così
minuto hai una programmazione del computer
linguaggio improvvisamente le persone iniziano a pensare
sugli algoritmi astratti che sei liberato
dal codice macchina letterale per pensare
sull’astrazione e dal
astrazione hai lo sviluppo di
l’ idea di un algoritmo giusto Knuth
scrive questo libro e non è nemmeno
radicato in tutto ciò che potevi
esegui ma ti dice come fai a ordinare
cose che ti dice che sono eoni canonici
questo insieme di programmi che erano le persone
scrivere più e più e più ancora
devo ancora scriverlo, ma almeno tu
può leggere il libro e fondamentalmente
capire il modo in cui l’ algoritmo è
dovrebbe essere e possiamo collaborare
e costruire algoritmi di ordinamento migliori
giusto nel tempo possiamo analizzarli
algoritmi e possiamo trovare quelli che
sono i migliori, quindi penso che questo sia il
prima volta quando il lavoro è diventato troppo duro e
abbiamo costruito strumenti e abbiamo trovato dei modelli
rendilo più facile, ripenso al
Gli anni ’80 sono accaduti improvvisamente
il software stava davvero iniziando a mangiare il
mondo e software di costruzione in generale
le squadre sono diventate una parte molto importante di
molte aziende hanno ragione e penso
quello che è successo in quel momento è questo
è risultato che il software non stava ridimensionando
della squadra ha troppo grande comunicazione era
duro le persone che stavano programmando
forse non erano i migliori programmatori e
e così e non erano profondamente legati
la macchina e quindi di conseguenza venire
di conseguenza vediamo questa rapida crescita
nelle righe del codice scritto che vedi
la programmazione orientata agli oggetti viene al
prima di vedere Java e c-sharp gestiti
ambienti che si radono via a
sacco di spigoli dalla programmazione
alla macchina entrare nel mainstream
giusto e nello stesso tempo tu hai questo
emergenza dei modelli di design libri
il più famoso è il
per il libro Eric gamma e tutti sono scritti
attorno ai modelli di progettazione del software giusto
e penso che sia davvero di nuovo
tecnologia e strumenti modelli avanzati
sono stati riconosciuti e improvvisamente abbiamo iniziato
pensando a modelli orientati agli oggetti
e abbiamo iniziato a pensare a come te
potrebbe strutturare il tuo software per farlo
più riutilizzabile e penso che sia davvero
anche dove è arrivata la rivoluzione della biblioteca
fuori senza c ++ senza
codice orientato agli oggetti senza gestito
Codice Non pensi di avere la laurea
di librerie condivise che fai oggi
anche se la rete è importante come
bene, quindi penso che la terza fase
siamo in questo momento è questa nozione di
sistemi distribuiti affidabili proprio io
avere questa discussione interessante con
alcune persone che sviluppano ID e cose
come quella
attorno al fatto che il punto cruciale di ciò che noi
è cambiato ha usato per essere quello il
il punto cruciale di ciò che uno sviluppatore ha fatto è stato costruire a
GUI che aveva una logica di business alle spalle
potrebbe essere stato collegato a un
database giusto e ora costruiamo tutti
API e costruiamo costruire API che sono
distribuito sul cloud su più unità
macchine che hai conosciuto e ora
stiamo iniziando qualcosa di bene, diciamo
prendi queste api e trasformale in micro
servizi che siamo in questo momento
progettazione e sistemi distribuiti è il
problema del giorno che è diventato troppo
i codici macchina non sono difficili perché noi
avere linguaggi di programmazione che ridimensionano il nostro
il software è difficile ma va bene
capito e abbiamo lingue che
aiuto con esso e tecniche che aiutano
con esso ma ora i sistemi distribuiti sono
la cosa che ha reso il mondo troppo
difficile e cosa penso che cosa abbiamo trovato
gli strumenti stanno iniziando a emergere in
docker e in kubernetes gli strumenti che
hai bisogno per lavorare su questo sono
iniziando a emergere non sono ancora finiti
i modelli che penso si stanno ancora evolvendo
Penso che stiamo iniziando a vedere il
canonicalizzazione se hai guardato il
date nei due esempi precedenti il
i libri di modelli tendono a ritardare il
tecnologia da cinque a dieci anni se non
anche un po ‘ più a lungo ci vuole un
mentre per noi per capire cosa tutto il
i modelli sono ma penso che stiamo iniziando
per parlarne e stiamo iniziando
vedere quali sono alcune delle cose e
questo è un momento davvero prezioso nel tempo
e io non sono davvero incoraggiato a tutti voi
partecipare a quella discussione
va bene quindi dare un’occhiata al
soluzioni che abbiamo là fuori bene
storicamente le soluzioni sono state
cose come unità di debugger di compilatori
test dello sviluppo integrato
ambienti questi sono i tipi di
strumenti a cui pensi
ora quella parte triste di questo è tutto
di questi strumenti riguardano la costruzione
programmi su una singola macchina nessuno di
questi strumenti ti aiutano a costruire distribuito
sistemi e penso che sia dove siamo
in modo che la gente ha chiesto cioè le persone chiesto
contenitori gente chiesto
comunità quante persone stampano
debug di linea che è leggermente inferiore
di quanto mi sarei aspettato effettivamente come
molte persone non fanno il debug
sostengono che nello spazio di
strumenti software in realtà io stampo
Coccinella a proposito costantemente anche
in unit test dove non dovrei quale
ti mostra come sono Sindrome di Stoccolma
e ma io vorrei dire che il
l’apice degli strumenti di sviluppo era in realtà
in client-server intorno al 1998, giusto e
è un po ‘ triste che non abbiamo quello
ci siamo un po ‘bloccati forse in realtà
anche andato un po ‘indietro come
ci siamo trasferiti in sistemi distribuiti noi
bisogno di iniziare a pensare all’allargamento
lo spazio degli strumenti che stiamo costruendo
si scopre che stiamo iniziando a e
va bene così e così con strumenti come
helm che è un gestore di pacchetti per
kubernetes che consente di ordinare di
pacchetto e utilizzare il sistema distribuito è
software off-the-shelf o la cosa il
lo stesso tipo di approccio che ti ha permesso
per fare apt-get installa il mio sequel ora
ti permette di installare il mio replicato
sequel su un cluster kubernetes che è
ottimo per quello dal lato scaffale del
casa stiamo facendo un sacco di lavoro in
costruire un’estensione per Visual Studio
codice che ti integra con kubernetes
bozza come strumento che mostrerò in a
un po ‘quel tipo di tentativo di aiutare
le persone imparano perché uno degli altri
i problemi sono tutta questa complessità
succede se la rampa di salita diventa più ripida e
più ripidi ci sono cose come la telepresenza
che sono veramente interessati a come faccio
prendi i servizi che sto costruendo
la nuvola e ancora proiettili su
questo portatile dove sto facendo tutto questo
lavoro di sviluppo come posso fare uno sviluppo
il mio ambiente di sviluppo e il mio cloud
tipo di lavoro più perfettamente insieme
la nuova versione di Jenkins è fuori
c’è un targeting nativo per i kubernet
e sta davvero prendendo molto di questi
strumenti come il suo ambiente nativo stesso
cosa come spinnaker ha fatto prima così siamo
iniziando a vedere sviluppare questi strumenti e
per darti un’idea di cosa significhi
Voglio darti un po ‘ di a
demo di alcune di queste cose proprio così
il primo pezzo è lo studente visivo
questo lavoro visivo in studio visivo che io
e il team ha lavorato
un gruppo di recente, quindi mi ritirerò
e vai qui, quindi cosa vedrai qui
studi individuali ho studio visivo
è che sembra abbastanza leggibile e
è ho l’estensione installata e io
lascia cadere questo piccolo kubernetes
e quando ho aperto il kerbin ho solo
lasciato cadere sai che puoi vedere qui
è popolato con i miei ammassi
Ho configurato giusto non lo farò
provare gli dei della demo usando qualcosa
sulla rete, quindi userò il mio
mini cluster cubo locale e quando vedo
lì quello che ho è proprio come te
avere una vista ad albero per il codice sorgente
ora ho una vista ad albero per il mio kerbin
Gli oggetti di Nettie sono giusti e così posso andare
e posso dire cose come oh hey
qual è lo spazio dei nomi che ho qui
bene, ho questi tre che sto per fare
in realtà passare sarò pulsante destro del mouse
e quando ho impostato il sistema di cubi è la mia corrente
namespace e ora posso entrare nel mio
carichi di lavoro date un’occhiata ai miei pod forse
e vedo tutti i baccelli che ho
correndo o posso guardare le mie implementazioni
e posso effettivamente vedere le distribuzioni
e poi posso effettivamente cadere nel
distribuzioni e vedere il pod che fa parte
di quella distribuzione proprio così ora improvvisamente
invece di dover usare una riga di comando
strumento che richiede di passare entrambi
contesto dal codice che sei
lavorando su un contesto diverso come
anche se onestamente una linea di comando è fantastica
per lo scripting delle cose ma non per quello
visualizzando le cose ora ne ho un altro
ambiente visivo più integrato per
esplorare il mio cluster e posso anche farlo
cose come venire qui a questo baccello
e dì bene, sai cosa vorrei
come un terminale in quel pod mi piacerebbe
accedere a tale pod che sta andando mi chiedono
quale dei contenitori in quel pod che
Voglio collegarmi a selezionare
il cubo DNS uno e ora qui sopra
questo terminale sono lì dentro quel pod
Giusto quindi penso che questo non sia niente per il
questo è tutto questo è solo il
kubernetes api sotto il cofano a destra
non c’è magia che sia davvero nel
IDE è davvero solo l’ io
integrazione di queste cose nella mia
ambiente di sviluppo che mi consente
per avere più facile accesso sia la cosa
questo è nel cloud così come il
codice sorgente del codice sorgente che sono
sviluppando sulla mia macchina locale va bene
quindi penso che questo tipo di collegamento tra
l’atto di sviluppo e l’atto di
distribuire è l’area che ci serve
lavorare sulla più a destra che improvvisamente
usato per essere quel codice e applicazione
erano naturalmente vicini perché
il codice e
il posto dove il codice correva era il
stessa macchina il posto dove il codice
corre ora è molto lontano abbiamo bisogno di
pensa a come possiamo usare i nostri strumenti per
riportarli insieme in modo che il prossimo
strumento che voglio mostrarti un po ‘
un piccolo esempio di come lo usiamo come questo
strumento chiamato timone quindi se hai visto prima se
Esco dall’ambiente di Kubernetes
chiudo il mio terminale ci andiamo io ho un
piccola applicazione semplice node.js qui
quindi questo è davvero molto semplice web
server in scritto in node.js si
qualcosa che penso qualcuno con te
conosci un po ‘di JavaScript
esperienza e un po ‘di web
il surf potrebbe facilmente venire da te
hanno dato un calcio insieme in un’ora dicono o
meno davvero se tagliavano solo il taglio e
incolla ma ora dici a questa persona
va bene, fantastico , hai scritto un
server web è possibile eseguirlo localmente
la tua macchina mi piacerebbe che tu la eseguissi in un
cluster di comunità nel cloud e
dicono di dire cosa ora e tu inizi
dicendo okay, mi permetto di spiegare come fare
questo fare bene in realtà è troppo
spiegami bene, non ti credo
voglio ammettere inizialmente e parleremo a
un po ‘di più su questo dopo non lo faccio
pensa di volere quella persona
devi subito imparare tutto questo
Yambol e tutto questo ti roba
voglio che loro diano dei passi avanti
ma tu vuoi che siano in grado di arrivare a
punto in cui hanno successo abbastanza
rapidamente e questo è davvero dove timone
entra in gioco quindi se io CD in quello
directory Posso dire veramente helm che
è questo
scusa non aiuto doc ho detto timone intendevo
bozza mi dispiace
e quindi per favore riavvolgi gli ultimi due
minuti di me a parlare e sostituire il timone
con bozza e lo facciamo sul video
sarebbe fantastico e quindi cosa permette la bozza
in realtà è quello di impalcarli tutti
questa roba va bene se guardo il
strumento di bozza ha un sacco di
comandi e in realtà ha un componente
che corre all’interno del cluster che è
in realtà già presente ma la bozza ha
la capacità di transyl vedi bene
qui la bozza crea trasforma il locale
directory da distribuire su kubernetes
giusto così ora posso solo dire di creare una bozza
e quello che sta succedendo è la bozza
rilevare la lingua che sto usando
rileva che questa è un’app node.js
ha alcuni modelli su come costruire
e
jsf e sono stabilite due cose se io
tornare alla struttura della mia directory
potreste aver visto entrare è rilassato
giù un file di finestra mobile e viene depositato a
directory dei grafici e all’interno dei grafici
directory puoi vedere che c’è questo
grafico punto yeah mol file che descrive
un diagramma del timone che è possibile utilizzare per la distribuzione
la tua app e ora solo eseguendo la bozza
crea ora posso eseguire una finestra mobile build I
può eseguire un timone e la mia applicazione è
schierato alla bozza di kubernetes No yeah I
potrei fare il draft fino a questo è vero
in realtà o timone perché ho il
grafico uno funzionerebbe um ma bozza
in effetti è ancora più facile la stesura
carica il tuo codice e fai la build per
hai ragione e quindi penso che il tutto
punto di questi strumenti è usiamo
qualcosa come l’estensione del codice vs
collegare il codice nella nostra macchina al
codice in cui è in esecuzione nel cloud e
per gradire la brutta copia per lisciare il percorso da
il codice sulla tua macchina per il codice
correre nel cloud tutto bene
chiudere la mia raccomandazione non va bene
Tornerò nel mio discorso tutto bene
e questo è tutto a posto
quindi oltre a pensare a come farlo
ci rendono più facile per il codice per ottenere
nella nuvola una delle altre cose
che succede è che stiamo pensando
modi per rendere il cluster più automatico
giusto così tanto tempo in cui pensiamo
su ciò che serve per distribuire un
l’applicazione nel cloud ci è molto
di roba ancillare come stai
monitoralo come lo riavvierai
come hai intenzione di scoprire che lo sai
quali sono i certificati che devono essere
ruotato tutti questi tipi di pezzi
che sono il cruft se vuoi o
i componenti extra essenziali che sono
la differenza tra un pezzo di codice
eseguirne una sulla tua macchina e a
pezzo di software affidabile in esecuzione
il cloud e quindi penso a quale dei
poteri di Kubernet e uno dei
poteri di questa infrastruttura di cluster
non è solo che puoi schierare il tuo
contenitori lì è che in realtà
diventa un ambiente dove puoi
rendere le cose come il monitoraggio essere automatico
ed è qui che arrivano i servizi cluster
in gioco proprio così con i servizi cluster
permette una squadra che forse capisce
un’area particolare che aiuta a distribuire a
soluzione che
funziona su ogni singola applicazione
questo è schierato in quell’ambiente così
potremmo avere un cluster ampio
standardizzazione di questi servizi cose
come registrare cose come il monitoraggio
cose come il rilevamento delle intrusioni
gli sviluppatori di applicazioni li ottengono semplicemente
distribuendo in quell’ambiente e
quindi quando eseguono bozze e si distribuiscono
la loro applicazione in quel kubernetes
ambiente improvvisamente ogni singola cosa
che scrivono per standard out
in un server di aggregazione di log che è
ricercabile e memorizzato per te 90
giorni o qualunque sia il periodo di registrazione
è giusto che tu sia enormemente potente
non ha dovuto insegnare loro a questo proposito che
ho appena scritto per standard come
erano abituati a fare con la loro macchina
e quando arrivò il momento per loro di fare
l’introspezione dei loro registri erano su
in un indice di ricerca che potresti mostrare
loro come accedere a questo tipo di
apprendimento just-in-time con te attuale
so che non è solo in tempo a imparare così
può imparare come distribuire il monitoraggio è
appena in tempo imparando a dirti oh by
il modo in cui era già successo per te
ha enorme potere di applicazione
sviluppatori e succede solo quando tu
avere quell’infrastruttura di cluster e
più importante anche per le persone che lo sono
pensare di monitorare la verità è
che se sei un monitor SRE guarda
un sacco di cose del genere
tre team di sviluppo uno sviluppo
il team dice che sai cosa userò
stats T Sono stato in giro per un po ‘
stats T è fantastico un’altra unità dice hey
sai cosa Userò Prometheus
e il terzo team dice di monitorare um
e l’accessorio dice che penso che lo farò
smettere di destra ed è perché c’è questo
incoerenza nell’ambiente perché
hai permesso che questa scelta fosse fatta da
l’utente finale giusto e così via
la standardizzazione non solo si rendono
più facile per l’utente finale
in realtà rendi più facile il
operatore pure va bene e penso
questo tipo di win-win di questo tipo
il ciclo virtuoso è la cosa buona che
è successo in questo ambiente dove
stiamo iniziando a vedere gli strumenti essere
sviluppati che non sono supponenti
perché qualcuno ha un’opinione ma
sono davvero preziosi perché loro
rendere la vita migliore per ogni singola persona
coinvolto giusto penso che sia per questo che tu
vedere questa rapida adozione di contenitori
kubernetes e altre tecnologie è
che c’è valore in esso per ogni
singolo partecipante nel parco giochi così
questo è fondamentalmente quello che sembra te
avere una soluzione di monitoraggio a livello di cluster
qualsiasi utente del server API comunità
arriva e crea cluster di cialde
ampio monitoraggio guarda ai kubernetes
api server scopre che quei pod
sono stati creati
e inizia a monitorarli automaticamente
inizia lo scraping inizia il logout
raschiando sai informazioni sulla cpu e
tutto il resto e alla fine
spingendolo verso un monitoraggio cloud o
qualche altra soluzione di monitoraggio
hai sviluppato giusto e ancora questo è
tutto automatico nessuno l’utente non era
coinvolto in tutto questo il cluster
l’amministratore è quello che è andato via
su come stabilire questa roba va bene
quindi penso che ti dà un senso di
gli strumenti che vedo sviluppare le persone
ce ne sono molte altre naturalmente non ce n’è
Potrei passare ore a esporre in realtà
sui vari strumenti che le persone sono
costruire per aiutare con il dispiegamento di
sistemi distribuiti ma penso che
anche se gli strumenti sono molto utili sono
diritto insufficiente e quindi cos’altro
accadendo e cosa è successo
storicamente è lo sviluppo di
modelli e librerie proprio così finite
tempo abbiamo visto l’evoluzione di cose come
POSIX era solito che non esistesse un
standard per la programmazione delle applicazioni su
UNIX e poi lo standard POSIX è arrivato
lungo cose come NPM installiamo proprio noi
solo avere questa aspettativa che puoi
utilizzare NPM quasi letteralmente
qualunque cosa tu voglia
cose come il test delle unità è un modello
e una biblioteca ci aspettiamo unità
testare i framework lo capiamo
il collaudo delle unità è una parte essenziale di
sviluppo del software e poi anche questi
librerie estensibili di modelli giusti
come quante persone hanno implementato
ordinamento dopo aver lasciato lo studente è
non molto , non spero proprio tu
non dovrebbe implementare l’ordinamento e
eppure tutti lo usano tutti lo sanno
che questo è qualcosa che dovresti
fare esattamente la stessa cosa con i client HTTP
come se avessimo raggiunto uno stadio in cui se a
la lingua non ha HTTP integrato come a
libreria nativa è che non lo fai nemmeno
capire perché qualcuno si preoccuperebbe
giusto come quello è il livello di
aspettativa attorno a entrambe le librerie e
servizi che abbiamo nel nostro
linguaggio di programmazione per l’ambiente
e quindi stiamo iniziando a vedere questi
anche le cose si sviluppano, quindi c’è uno strumento
questo potrebbe essere uno dei miei team di Azure
costruito chiamato brigata che esprime
cose come un flusso di lavoro ci sono cose come
servizio mesh con sto e linker D e
molti altri in fase di sviluppo ci sono
cose come Hadoop, scintilla e percorsi
che si sta costruendo sopra i kubernetes
in modo che tu possa consumare funzioni come a
servizio puoi consumare altri percorsi
schemi in cima ai kuberneti
per darti un esempio di come funziona
sull’atto di impostare un codice per
esegui ogni build che esegue ogni singolo
volta che inserisci il codice in github adesso
per fortuna c’è
le cose che fanno software-as-a-service
è più facile per te fare questo controllo in a
llamó file e magia succede ma se tu
devi farlo da solo questo è un po ‘
quello che sembra github invia un evento
c’è un listener di eventi e viene eseguito a
costruire script in brigata è così che tu
esprimerebbe quello giusto di nuovo ottenendo
di nuovo per incontrare le persone dove erano
permettendo loro di prendere un po ‘di
JavaScript e trasformato in un flusso di lavoro
Posso dire cose come hey tu sai cosa
Voglio creare la fonte per gli eventi I
voglio quando c’è una spinta che voglio correre
questi compiti fanno fare al cervo copia del CD
alcuni vanno a fare un po ‘di assicurazione e gestiscono il mio
prova bene così ora ho appena espresso a
flusso di lavoro un’integrazione continua
flusso di lavoro basato su github che spinge scritto
giù in un pezzo di codice posso unità
prova questo se voglio, probabilmente dovrei
Posso insegnare a qualcuno come farlo se
loro se posso insegnare a qualcuno come
distribuire un flusso di lavoro a Kirby Nettie’s se
l’unica cosa che hanno mai fatto prima
è frontale nel lavoro JavaScript che è
estremamente potente perché possono scrivere
quel programma e poi quando viene distribuito
è containerizzato e imballato
distribuito a destra di kubernetes
di nuovo costruendo schemi in modo che
le persone non necessariamente piacciono a
ordinando loro non necessariamente sanno come
per implementarlo ma sanno cosa
succede quando lo usano tutto bene io
pensare che la maggior parte della gente sia soddisfatta
capisco che se ne approfitto
questo modello in qualche modo dietro le quinte
le cose giuste accadono nel mio flusso di lavoro
viene eseguito o il mio algoritmo di ordinamento viene eseguito o
qualunque altra cosa capita di essere tessere
livellò noi stessi costruendo un
astrazione che posso programmare per me
pensa al terzo pezzo che vediamo arrivare
fuori di questo è l’introduzione di
caratteristiche linguistiche proprio così in aggiunta
alle attrezzature e in aggiunta ai modelli
e librerie di componenti riutilizzabili I
pensa quello che abbiamo visto storicamente
è che i linguaggi di programmazione stessi
si sono evoluti e adattati per costruire
caratteristiche che sono orientate alla
problemi del giorno giusto e il
problema del giorno da circa forse 1990
verso la metà degli anni ’90 in poi con
sincronizzazione giuste più core
all’improvviso significava che i fili correvano
allo stesso tempo
avevi bisogno di scrivere programmi multi-thread
per sfruttare il vantaggio di più core
i linguaggi dei processori si sono evoluti per adattarsi
caratteristiche per rendere la sincronizzazione in a
le primitive del prim’ordine scrivono cose come
sincronizzato come una parola chiave async / await
se non hai controllato dattiloscritto
e ho usato Oh un lavandino e un peso in
dattiloscritto o se hai avuto esperienza
con esso ed è la vita che cambia onestamente
come il dattiloscritto è incredibile, questo è il mio
un po ‘ come un fanboy, ma ma è così
piace molto se se vi trovate
preso in uno stufato di promesse solo il
introduzione di questa funzionalità linguistica
l’ idea che tu possa aspettare qualcosa
cambia semplicemente il modo in cui puoi scrivere il codice
scrivi puoi scrivere esattamente lo stesso
codice in JavaScript standard è solo
più facile perché c’è una lingua
caratteristica che è adattato a questo
le cose dell’ambiente come la spazzatura
collezione anche cose come single
threading right come uno dei motivi
Penso che JavaScript sia così popolare per
le persone a scrivere server sono come possiamo
ti insegnano come usare le serrature o noi
potrebbe avere solo un thread e avere
un sacco di callback dappertutto
a destra è solo più facile vivere in un
mondo in cui non ci sono serrature ora forse
ci sono alcuni problemi di prestazioni che
vieni con quello ma se hai stabilito
i giusti schemi di programmazione con tutti
questa asincronia e poi tu introduci
concetti come un peso il genere di cose
di scuotere nel buco vedi questi
caratteristiche del linguaggio in fase di sviluppo
supporto per risolvere i problemi difficili del
giorno, ma ancora una volta tutti questi esempi sono
cose che funzionano su una singola macchina
nessuna di queste cose rende più facile
costruire sistemi distribuiti che fanno solo
è più facile costruire il programma che gira
su una singola macchina e così è
fantastico che abbiamo fatto tutto questo lavoro ma
il problema del giorno è multipla
contenitori su più macchine di cui abbiamo bisogno
per costruire un linguaggio che è idiomatico per
il cloud giusto dico che vorrei discutere con
le funzionalità linguistiche di cui ho parlato
abbiamo iniziato la pagina precedente che abbiamo iniziato
per costruire linguaggi idiomatica a
sincronizzazione, ma abbiamo bisogno di costruire a
linguaggio che è idiomatico per il cloud
così ed efficacemente il problema è come farlo
Vado a prendere il mio codice nel cloud che abbiamo
parlato molto di che, con attrezzature e
allora come faccio a portare la mia nuvola a
sistema distribuito quelli sono due
problemi in qualche modo separati ma correlati
Direi che in realtà dovremmo
costruire un sistema che li indirizzi entrambi
proprio come vai da te, conosci il codice
una macchina da codificare su più percorsi
usando il codice su un core per codificare
più core dobbiamo andare dal codice
fino alla distribuzione
sistema in un unico ambiente ma ma
vale la pena capire che quelli sono
due problemi un po ‘disgiunti e dico
come ho detto quando ho detto nuvola qui
non significa necessariamente cloud pubblico
non significa necessariamente virtuale
macchine potrebbe significare Kubernetes
in esecuzione su fisico è solo un’API
ambiente di distribuzione guidato an
implementazione orientata alle applicazioni
l’ambiente va bene diamo un’occhiata
a quello che serve per passare dal codice a
nuvola in questo momento e se stai andando
dal codice sulla tua macchina al codice
correre nella nuvola a kurby di Nettie
questo è quello che hai bisogno di fare
hai il codice che hai un compilatore tu
trasformalo in un file binario con una finestra mobile
file lo si trasforma in una finestra mobile immagine voi
spingerlo in un repository contenitore che scrivi
qualche configurazione di kubernetes la si distribuisce a
Cluster di Kirby Nettie proprio qui
almeno tre file coinvolti in questo
c’è il tuo codice, c’è la finestra mobile
file e la configurazione di kubernetes c’è
almeno tre lingue il tuo codice
file docker e il kerbin su ezmo e
ci sono almeno tre strumenti per il tuo editor
qualunque cosa accada essere il tuo docker
eseguire la creazione della finestra mobile e il controllo cubo su
fai la spinta ora alcune cose da fare
alcune di queste cose sono un po ‘più semplici
qua e là ma onestamente c’è attesa
modo troppo complessità qui a destra
e non siamo nemmeno arrivati al
sistema distribuito parte destra che era
solo ottenere il mio codice nella parte del cloud
giusto o il secondo giorno cosa succede quando io
bisogno di stendere una nuova versione di questo
a destra c’è solo troppa complessità
nel sistema abbiamo bisogno di semplificarlo
giù e dobbiamo semplificarlo no
solo con strumenti non solo con le librerie
ma in realtà vorrei discutere con nuovo
approcci alla programmazione e nuovi
approcci per costruire il software che
stiamo sviluppando perché vorrei discutere
che questo non funziona quando presentato
in questo modo spero che non sembri
okay spero che tu guardi a quello
diagramma e tu ci ripensi e lo sei
come si, è quello che faccio e tu sai
ti sembra giusto nel momento in cui
sei sul tuo laptop perché lo hai fatto
lo script o qualsiasi altra cosa per ridurre il
dolore un po ‘
ma quando è presentato in questo modo e quando io
scrisse queste diapositive che colpì davvero
me che questo non lo è
una catena di strumenti va bene così se lo siamo
andando a costruire un linguaggio idiomatico
nuvola quali sono i principi che noi
bisogno di usare per guidare questa luce
sviluppo bene penso che vorrei discutere
fortemente che deve essere un formale
linguaggio di programmazione che abbiamo speso io
non so forse 10 anni o giù di lì nel
mondo delle lingue di configurazione dalle cose
come un pupazzo da risolvere per terraformarti
conosci tutto ciò che sai cose come il
azzurro ad un linguaggio di templatura azzurrato
e umanità sì Milland ha il suo timone
proprio linguaggio dei template e penso che il
lezione che ho imparato comunque avendo
stato coinvolto nello sviluppo di a
molte di queste lingue diverse è quella
inevitabilmente sono completi
inevitabilmente assumono ereditarietà e
astrazione e incapsulamento e altro
proprietà della programmazione formale
lingue e inevitabilmente lo sono
terribile come se fosse tutto come
di loro sono cattivi perché siamo tutti di nuovo dentro
li lentamente perché abbiamo pensato che noi
potrebbe farla franca solo con i dati e poi
la gente ha chiesto tutte queste caratteristiche e
alla fine costruiamo condizionali e
cose del genere penso che la verità
è necessario accettare questa configurazione
è la programmazione come le persone ora stanno bene
con l’idea che se l’infrastruttura come
codice ma non penso che siano abbastanza
va bene con l’ idea che il codice può esprimere
infrastruttura giusta e penso che noi
devono ottenere oltre che e dobbiamo dire
Parlo ancora con persone che sono un po ‘
come no no è diverso e mi piace
beh, davvero non penso che tu possa farlo
scrivi diversi pezzi di codice
non deve essere lo stesso codice come
puoi separare i file di codice ma
non c’è motivo per non usare solo un
linguaggio di programmazione formale e dal
modo se si utilizza una programmazione formale
lingua per cui viene evidenziata la sintassi
ottieni test unitari gratis
ottieni lo stile del codice gratis come tutto questo
cose che abbiamo sviluppato in giro
sviluppo del software per letteralmente come
negli ultimi 50 anni ottieni gratis e
perché preoccuparsi di reinventare una cattiva programmazione
linguaggio in sì Mille, semplicemente no
ha senso
Penso che un’altra parte di questo sia
che la tendenza naturale qui è quella di
costruire passare la tendenza naturale ed è
un bene come non sono la prima persona a
di ‘ hey sai cosa è dannatamente difficile
distribuire roba proprio di tutti i tipi
le persone hanno costruito degli ambienti da realizzare
è molto facile per le persone distribuire cloud
codice in scala il problema è che hanno tutti
sono stati percorsi e sono stati tutti murati
giardini e hanno inevitabilmente il loro
limiti
dodici app di fattori sono grandiose ma loro
non andare ovunque funzioni come a
il servizio è fantastico
ma non va dappertutto a te
costruire ambienti modulari no
passare giardini recintati perché inevitabilmente
la gente colpirà i bordi e loro saranno
frustrati e perderanno , perderanno
il codice che hanno messo nel muro
giardino e questo è molto frustrante
Sperimenta che lo fai solo un paio di volte
e tu non lo fai mai più
e poi finalmente deve essere
idiomatico ha bisogno di guardare e sentire come
linguaggi di programmazione naturali ed io
pensa che questo abbia a che fare con la costruzione del
rampa destra cs101 persona se ho preso un
studente che è in CS 101 e ci ho provato
insegnagli come costruire portare il loro codice
al cloud, devo insegnarglielo
molti concetti tra capire come
scrivere codice e farli entrare nel
cloud e nuovi formati di file e tutto questo
una specie di roba come se fosse un’enorme barriera
è un’enorme barriera all’ingresso da cui partire
Posso scrivere il codice sulla mia macchina per poterlo fare
distribuire quel codice nel cloud e poi
finalmente deve essere open source, io
penso che abbiamo raggiunto un livello di
comprensione in questo mondo che noi
collaborare e noi per tutto ciò
è effettivamente non essenziale per il mio
il business sarà open source e
infrastrutture come questa devono essere aperte
fonte o qualcun altro semplicemente
costruisci la stessa cosa e aprila
fonte e quella cosa vincerà come aperta
la fonte vince e quindi anche noi
devo fare questa cosa e fuori nel
apri tutto bene possiamo anche imparare da
la storia si scopre che non è così
un originale idea Mappa Ridurre arrivato
prima a destra in modo da Map Reduce ha detto a voi
Hadoop ti ha detto hey se lo realizzi
queste due classi il mio mappatore e ha
questa interfaccia e il mio riduttore in questo
ha un’interfaccia che prenderò solo tu
codice fuori nella nube e produrre questi
migliaia di macchine e cose magiche
succederà ed è stato davvero bello
giusto l’intera rivoluzione dei Big Data
costruito sull’idea che la nuvola idiomatica
può consentire persone che potrebbero non altrimenti
essere in grado di avere accesso a distribuito
sistemi penso che quello che è successo sia stato
la gente si è così appesa su MapReduce loro
non è riuscito a riconoscere il fatto che
MapReduce è un esempio di un set più ampio
di modelli per sistemi distribuiti che
dovremmo mettere a disposizione delle persone via
programmazione di interfacce linguistiche e così via
abbiamo costruito un singleton e non ci siamo riusciti
vedere il
schema generale e spero che ora
cominceremo a iniziare a vedere il
modello generale e che quell’apprendimento
è ciò che ha portato allo sviluppo di questo
più recentemente c’era questo sistema
chiamato pi Ren che è stato sviluppato e il
idea di base era hey sai cosa succede se tu
sai come fare una mappa Python che puoi fare a
mappare nel cloud a destra e l’idea
dietro Pi Ren doveva prendere quel Python
codice distribuirlo in una funzione come
l’implementazione del servizio paralizza la tua mappa
funziona bene, non l’hai insegnato
persona un solo nuovo concetto te solo
ha detto di prendere quella funzione mappa che tu
stavano pensando prima di sostituire in
PI Ren per la funzione mappa improvvisamente
conosci teraflops di scala
disponibile a voi in modo imbarazzante parallelo
elaborazione e questo è enorme perché
di nuovo se possiamo ridurre la barriera a
ingresso alle persone che usano il cloud che siamo
avrò modo molto più utenti cloud
là fuori sistemi più distribuiti
persone capaci che possono consumarle
concetti anche se non possono implementare
loro stessi tutto bene così questo ha
ha portato allo sviluppo del sistema
che ho sperimentato per
conosci un anno e mezzo due a
questo punto si chiama meta particella e il
L’idea dietro la meta-particella è provare e
definire cosa significa essere questo cloud
linguaggio di programmazione idiomatico lo farò
dimmi che questo è davvero un esperimento
è davvero una dichiarazione ambiziosa
per quello che spero che il futuro assomigli a me
non aspettarti che qualcuno vada e io no
esaurire e utilizzare questo per la produzione ma
per favore, vai fuori e gioca con esso
darti un senso per quello che sembra
Voglio dare un’occhiata a quello che serve
per costruire un’applicazione web affidabile
giusto così se voglio costruire un affidabile
applicazione web ho bisogno di fare cose come
avere un indirizzo IP pubblico ha un carico
bilanciatore ha alcune repliche scrivere il
abisso tra mi piacerebbe costruire un
app web affidabile e questo è abbastanza grande
di nuovo puoi usare la piattaforma come
servizio per questo ma ha dei limiti
se voglio farlo in un modo che posso
dal vivo posso andare avanti dalla mia scrittura
app web affidabile per il mio micro affidabile
servizi a un team di persone che costruiscono
servizi web affidabili devo imparare
tutta questa roba e diventa troppo
difficile quindi se lo facciamo tramite meta-particelle
invece in un modo nuvoloso e emotivo che posso
esprimilo in Python con questo
direttiva containerizzata che ha Python
questi incredibili decoratori lì
davvero fantastico e posso farlo
effettivamente messo un decoratore sul mio principale che
Dice hey sai cosa vorrei che tu
per containerizzare questa applicazione che voglio
quattro repliche di questo è il porto che
Vado a servire qui è il codice
che voglio che tu corra adesso quando lo fai
questo e quando si esegue questo Python
programma quello che fa effettivamente è
si confeziona un contenitore esso
si schiera per kubernetes le code
i file di registro e ora hai questo
sistema replicato a quattro vie su e
in esecuzione in Kubernetes quindi questa immagine è
l’ output di eseguire questo programma cosa
abbiamo permesso a qualcuno di fare è in un
il singolo ambiente inizia a pensare
esprimendo non solo il codice che loro
voglio correre ma la topologia e
lo spiegamento di quel codice allo stesso modo
tempo non hanno dovuto imparare nulla
nuovo sembra naturale sembra un
estensione della cosa che erano
facendo sulla loro macchina e ancora è
in esecuzione nel cloud è in esecuzione
replicato e ne sta approfittando
tutta questa roba quindi è così
Funziona puoi esprimere la tua meta
programma di particelle qui c’è una meta
compilatore di particelle che efficacemente
lo traduce nel linguaggio assembly
di Kubernetes si avvicina davvero al
il problema è come se dicessi come se il mio codice
dovevano essere compilati per kubernetes cosa
vorrei che apparire come se volessi
compilare un sistema distribuito a
kubernetes questo cosa assomigliano, ma
in effetti capiamo a questo punto che
è un mondo poliglotta là fuori e così via
dobbiamo effettivamente supportare non solo a
unico linguaggio di programmazione ma un mucchio
dei linguaggi di programmazione, quindi in realtà
meta-compilatore in realtà
traduce il codice del linguaggio di programmazione in
una rappresentazione intermedia che corre
attraverso un assemblatore che lo porta a
kubernetes questo significa che è lo stesso
programma che ti ho appena mostrato in Python
Posso anche mostrarti in JavaScript, giusto
sembra un po ‘diverso perché
gli idiomi di JavaScript e il
caratteristiche del linguaggio sono un po ‘
diverso rispetto alle caratteristiche del
Linguaggio Python ma posso definirti
so che posso usare il mio bisogno di tirare dentro
la lingua definisce il mio server. Faccio questo
funzione containerizzata perché non lo faccio
avere decoratori ma quell’idea dietro
è esattamente lo stesso quando si esegue questo
programma distribuisce una copia replicata di
stesso dietro un bilanciamento del carico che si verifica
Il sequestro di Bonetti va bene così sono di nuovo
esprimere il codice che voglio avere
correre
con il DePaul con lo spiegamento
scuse che non avrò eseguito e in
in particolare supporta a questo punto
JavaScript di Python Java c-sharp diventa ruggine
Ruby ed è relativamente facile in effetti
la maggior parte di questi sono contributi della comunità
è relativamente facile aggiungere il tuo
linguaggio di programmazione preferito qui e
e quindi credo che in qualche modo a
chiama alla comunità per dire se vuoi
per giocare con questo se si dispone
idee si prega di venire e check it out
ci saranno collegamenti in seguito, ma ovviamente
è un’affermazione molto grande da dire
che questo lo sai questo bellissimo nuovo
mondo senza una demo per eseguire il che fino esso
suona un po ‘ vuoto e quindi voglio
mostra un esempio di meta-particelle in
azione quindi andremo qui speriamo
è abbastanza grande, quindi ecco qui
quel codice è in realtà un po ‘io
dovuto accorciarlo per farlo entrare
Scivola quindi c’è un po ‘di più
il repository docker il fatto che io
voglio pubblicarlo il fatto che sia così
un IP pubblico ma puoi vederlo
direttiva containerizzata con alcuni
opzioni e il codice che voglio avere
eseguire è fondamentalmente questo è il qui sono
le opzioni qui e il codice che è
effettivamente correndo qui e ora quando io
in realtà esegui questo puoi vedere solo io
dì indice del nodo J s puoi vederlo
in realtà costruendo l’applicazione giusta
quindi sullo sfondo è C che vedi
la finestra mobile ora sta facendo il docker
spingere e in un secondo sta andando a
distribuirlo nel mini cubo di cluster
sta funzionando sulla mia macchina e su questo
puntualizza che sono stati abbinati i log in modo che tu possa
guarda le quattro repliche lì che è
abbinato i log e sta portando il
registra fino allo standard, quindi cos’è
importante qui è che l’esperienza di
eseguire questo codice sembra davvero
l’ esperienza di eseguirlo sul mio
la macchina rimane se stampo uno standard
viene fuori standard sulla mia macchina
ovviamente in produzione questo non è il modo
andresti e implementerai questo codice e
Non sono nemmeno sicuro che sia la meta-particella
è utile per la produzione è davvero
su come prendere lo sviluppatore dal codice
quello è sulla loro macchina per codificarlo
correndo in modo distribuito sul
nuvola si può vedere che l’output da
i vari server che collegherò
in voi potete vedere qui i servizi che
stanno correndo oh vedi in realtà
questo è quello che succede quando lo fai
più demo quelli erano i servizi
dal namespace del sistema cubo ma se
ottieni le distribuzioni che puoi vedere
lì c’è la mia replica a quattro vie del
schieramenti e ora se effettivamente vado e
trova una shell dentro quel kubernetes
il cluster richiede un secondo che posso effettivamente fare
dì W – e puoi effettivamente vedere che c’è
l’output che puoi vedere in realtà nel
tronchi c’è la mia richiesta che passa
e tu sai che posso cambiare anche questo e
vedi la stessa cosa che sta succedendo
e puoi vedere effettivamente lì che il
le repliche sono cambiate perché è dietro il
bilanciamento del carico e quindi spero che si mostri
tu come con un modo abbastanza semplice
pezzo di codice in realtà sono andato e
distribuito un sistema replicato un semplice
sistema replicato va bene e in effetti
in realtà ora, mentre colpisco il controllo C, lo è
effettivamente abbattere quella domanda
quindi davvero l’estetica della corsa a
il programma sulla tua macchina corrisponde al
estetica di correre che programma fuori
nella nuvola, tutto a posto
scorrere ponte qui, ma si scopre
in realtà questo se permetti il programmatore
solo fare questo minuto che distribuiscono
la loro applicazione improvvisamente devono
conoscere la sincronizzazione e
la sincronizzazione distribuita è grande
problema in realtà è uno dei più grandi
ostacoli per entrare in una distribuzione
sistema e così oltre a permettere
le persone a replicare il loro codice credo
è molto importante che li permettiamo
di consumare facilmente i concetti che permettono
per la sincronizzazione tra il codice
in esecuzione su più macchine in modo che
in realtà anche all’interno di un meta partner lo farà
introdurre la nozione di sincronizzazione
questo è un esempio Java di un sincronizzato
bloccare il blocco sembra proprio come
l’interfaccia che è lì per un java
bloccare ma in questo caso particolare questo
il blocco del meta protocollo lo farà
sincronizzazione su più punti
componenti
esecuzione su differenti macchine che funzionano in
diversi contenitori lo facciamo perché
sappiamo che siamo in grado di schierare kubernetes siamo
Sappiamo che stiamo schierando su Kubernetes
possiamo definire una risorsa personalizzata all’interno
il server API community che può essere
il lucchetto che acquisiamo e io posso usare a
sidecar per fare la maggior parte dell’implementazione
del blocco per darmi una semplificazione
API a cui posso accedere dal mio
codice di applicazione questo significa che posso
condividi blocchi tra Java e Python o
JavaScript e nodo o scusa JavaScript
e JavaScript e vai o qualsiasi altra cosa
così e tutta la logica principale
è in questo sidecar riutilizzabile e il
risorsa kubernetes condivisa e così via
Infatti una volta che abbiamo la sincronizzazione possiamo
anche relativamente facilmente master
elezioni e questo è un esempio di fare
master election in Python dove posso
usa la mia meta particle sync per fare un
l’elezione dà a quell’elezione un nome il
stessa infrastruttura lo stesso sidecar il
stessa risorsa di blocco condiviso ti consente di
fare un’elezione principale tra il
componenti diversi pure e ancora I
pensa che questo è come ordinare il numero di
persone che possono capire il concetto di
maestro elettorale e il fatto che tu
so che voglio davvero avere la replica
per affidabilità ma in realtà solo uno
persona che corre alla volta attivamente
correndo alla volta il numero di persone
chi può capire che il concetto è il modo
più grande del numero di persone che possono
implementarlo con successo e così via
permettendo alle persone di consumarlo come un
concetto proprio come fai con lo smistamento
Ho ampliato la base di persone che
avere chi può approfittare di questo
il sistema distribuito si spera
allargare anche la base della costruzione di persone
sistemi distribuiti affidabili perché ora
c’è reale sincronizzazione reale e
un’implementazione condivisa che possiamo
costantemente fare un migliore bene così parte
del valore della condivisione non è solo il
ampia base ma in realtà è il fatto
che ci concentriamo su un singolo
implementazione e tutti gli esperti
venire ad essa che può migliorare
implementazione nel tempo va bene così io
avere circa tre minuti rimasti e
replica e blocco di ciò che replica
è relativamente semplice molti di
probabilmente sapevi già come farlo
il blocco è un po ‘più elaborato ma
di nuovo penso che molte persone abbiano una specie
di capito questo ho voluto mostrare come
possiamo prendere quest’idea dietro meta
particella e allargarla a un altro
complicato schema di sistemi distribuiti
quindi diamo un’occhiata a qualcosa
sharding ci viene richiesto un particolare
la richiesta va a sempre va a
macchina specifica proprio questo è utile se
farai il caching locale
utile se vuoi avere se vuoi
per controllare domini e cose falliti
come se questo fosse il layout di cosa
il sharding sarebbe simile a Kubernetes
hai un servizio di bietole di routing è
un servizio di bilanciamento del carico che trasmette tutto
il suo traffico verso i router che è
quelli sono apolidi e rotondi
replicato il router shard è la cosa
questo è responsabile della logica di
quale del a sparare quale del
frammenti specifici dovrei prendere questo
richiesta di e così in particolare è possibile
vedi che tutte le richieste verdi arrivano
in e vengono consegnati a shard 0 tutti
le richieste blu arrivano da tutto il
router shard e vengono consegnati a shard
1 e tutte le richieste gialle arrivano
e sono consegnati a shard 2 giusto
quindi insegnare a qualcuno di questo è
relativamente complicato devi sapere
Chi si deve insegnare loro
cose come hashing coerenti e altro
tipo di cose che devi insegnare loro
su come costruire un router shard se
qualcuno ha mai schierato qualcosa del genere
questo ti ritrovi a parlare di codice
che riscrivi più e più volte
loro codificheranno in quel router shard
qualcosa che continui a riscrivere e
di nuovo vogliamo avere di meglio
riusabilità Voglio che le persone siano in grado di farlo
consumare sharding come concetto, quindi cosa
Ti sembra se lo si fa a Meta
particle è un po ‘di più
complicato rispetto alla replica qui
un esempio di Java ne ho
informazioni di imballaggio che avevo prima
invece di repliche ho quattro frammenti
e invece ho aggiunto questo sharding
modello e questo modello di sharding
in pratica dice qual è la chiave del
Richiesta HTTP in modo che io voglia che tu divida
su e in questo caso particolare di quattro casi
è una specie di brutta espressione regolare
quindi mi scuso per questo, ma fondamentalmente
dice che voglio un frammento sul nome utente così
tutte le richieste per un particolare utente
dovrebbe andare a un particolare frammento e poi
sotto è il codice che viene effettivamente eseguito
su ogni singolo server giusto così
mi permette nello stesso codice che io
implementare il server per consumarlo
concetto di sistemi distribuiti di sharding
va bene così per la demo finale lo farò
diamo un esempio di ciò se cadiamo
qui a questa condivisione sto andando a
mostra l’esempio in JavaScript qui
è la stessa più o meno la stessa cosa che
era in quel Java prima di shard
specifica lo schema URL in questo
caso sto solo usando l’intero che sei
Farò la stessa cosa che sto gestendo
jsut può vedere che sta costruendo il contenitore
lo spingerà fino alla finestra mobile
registro una volta che la spinta è finita è
sta per andare e distribuirlo in questo
caso particolare nella distribuzione a
kubernetes sembrerà un po ‘
un po ‘diverso perché ora in realtà sono
usando set di stati e così ora ho un
set stateful che viene distribuito e
puoi vedere quei set di stati che iniziano
a venire Sto distribuendo due servizi
il web il servizio sharded stesso e
i router shard e sto implementando questo
distribuzione replicata che è il mio frammento
router e così ora, se lascio cadere nella
cluster e mi scuso sono solo un
secondo nel tempo ma sarò finito
lo prometto
ora quando lo faccio raddoppiamo
puoi vedere che ogni singola richiesta I
inviare a quella richiesta sta andando è essere
revisionato dallo stesso shard a destra e se
Cambio il percorso forse ora è in corso
servito da zero frammento e se cambio il
il percorso qui è di nuovo uno a destra
quindi puoi vedere qui con quella semplice
annotazione all’interno del mio codice in un
modo idiomatico che posso esprimere e distribuire
il concetto di sistema distribuito come
meta particella sharding è sul web
meta particella do github net / meta
particelle hanno davvero vi incoraggio a venire
controllarlo fuori grazie tanto per
ascoltando e godendo il resto del
conferenza
[Applausi]
[Musica]
[Applausi]
quindi abbiamo una pausa di 30 minuti, ma penso
c’è un sacco di gente qui che
probabilmente vorresti fare alcune domande
lo faremo un po ‘speciale da allora
è il mio compleanno oggi che non voglio
parlare troppo, quindi se ne hai uno
domanda solo in coda nel suono del microfono
buono ma ne ho uno dall’app se lo faccio
posso chiedere che prima chiediamo cosa fanno
pensi che arrivi dopo questa era di api
e micro-servizi e se sapevo che mi
non voglio dire, penso che uno dei
sfide è di essere nel mezzo di
qualcosa è difficile immaginare cosa
il futuro diventa dopo che penso a
molti modelli sono inevitabili come noi
ho visto che siamo passati dai monoliti a
client / server e ora stiamo tornando indietro
e poi siamo tornati così simili a te
sorta di monoliti su mainframe e
poi sei andato su client / server con X
e poi sei tornato ai monoliti
PC e ora torniamo al client / server
con mobile e API sai forse
decideremo che i micro servizi sono
troppo difficile da capire e andremo
indietro e i telefoni diventeranno potenti
abbastanza che ci torneremo
costruendo monoliti sui telefoni che non ho
so che non sono sicuro di avere una buona risposta
a quella domanda scusa va bene io
penso che fosse solo più del tuo sapere
e i tuoi sentimenti
Penso che api sei davvero io
onestamente, credo che le API siano qui da molto tempo
il tempo penso che il disaccoppiamento sia davvero
le preziose e le API si attaccheranno
in giro per molto tempo ma probabilmente
suonerà come se tu sapessi qualunque cosa
citazione era come nessuno potrà mai bisogno
più di 640k di memoria o quant’altro
esattamente un’altra domanda ci sono piani
per voi di avere il tipo di meta-particella di
diventare più pronto per la produzione intendo cosa
sono i passi che stai osservando
bisogno di essere lì per essere persona così
è una domanda interessante, buona giornata
due non sono affatto lì come me
non ho idea di cosa sia la storia dell’aggiornamento
sembra in questo in questo ambiente
io stavo parlando con Anders Helzberg
in realtà chi è il creatore di c-sharp
e dattiloscritto e io stavamo avendo un
sai come fai a parlare di una conversazione
indipendentemente dal fatto che Haskell abbia avuto successo
linguaggio perché è quello che fai quando
stai parlando con il programma
signore persone e ed ero sostenendo che
Pensavo che Haskell non fosse stato
particolarmente efficace come lingua
perché non è realmente in diffusa
usare ma ha sostenuto che in realtà in realtà
ha avuto molto successo perché il
concetti di cose come le funzioni lambda
e le funzioni anonime e altro
pezzi delle cose che hanno spinto
in avanti sono ormai onnipresenti ogni singolo
il linguaggio di programmazione è anonimo
funzioni e l’idea di essere in grado di
passare una funzione e cose del genere o
ora onnipresente nei linguaggi di programmazione
e così bene il linguaggio stesso no
vedere l’ adozione diffusa dei concetti
che è diventato importante
concetti nella programmazione popolare
lingue e penso che se dovessi sperare
per il successo è lì che successo
sembrerebbe che questo sistema non lo sia
il sistema che ci porta avanti ma è così
è il sistema che esprime alcuni dei
idee che diventano pezzi importanti e
in cose che costruiamo nel futuro così
davvero voglio che sia un forum per
discussione e un forum per
sperimentazione più di me perché io
penso che sia la fase in cui ci troviamo
stiamo cercando di capire cosa dobbiamo costruire
non penso che abbiamo le risposte e
certamente non ho le risposte ma
è interessante quindi c’è una start-up
fuori Seattle mi ha chiamato Pulu
lanciato che sta facendo molto simile
le cose in realtà e così penso di esserlo
iniziando a vederlo per un po ‘, davvero
pensavo che fossi come se tu conoscessi il pazzo
ragazzo fuori nei boschi ma sto iniziando a
vedere i segni e parlare con le persone che sono
iniziando a vedere più persone
indipendentemente venire allo stesso
conclusione che credo significa che siamo in
loro siamo nel momento della sperimentazione
dove scopriremo cosa
c’è bisogno di costruire una plumina così particolare lì
era in realtà una domanda attraverso l’app
riguardo è la differenza tra plumie
e meta-particella meta-particella era sei
mesi prima, in realtà un po ‘
più a lungo di ciò che in realtà non ho incontrato
Incontro Joe Duffy, amministratore delegato di
io un po ‘perché ci piace
rassicurarci a vicenda che non erano pazzi
che probabilmente significa solo entrambi
pazzo ma penso che la differenza sia
che per ora almeno il paluma è davvero
incentrato sulla parte di schieramento davvero
concentrato su come esprimo il mio
infrastruttura come codice che in realtà non
fai questo mix di codice dell’applicazione e
codifica nello stesso posto che meta
la particella sta cercando di farlo credo che lo siano
focalizzato sul prendere via il dolore
utenti esistenti di alcuni di questi sì
lingue come il malish
Sono davvero affascinato da come lo facciamo noi
gli sviluppatori di bridge cs101 diventano cloud
sviluppatori nativi e e II ma io su
dall’altra parte penso anche di avere il
vantaggio di poter fare una scienza
progetto e quindi meta-particelle è più di
un progetto scientifico penso che sia Paluma
cercando di essere utile oggi, ma immagino
che stavano per finire in un
luogo approssimativamente simile al progredire del tempo
sì sì ed è probabilmente un grande
cosa scrivere solo spostando il tutto
industria avanti a destra Rob sì, penso
questo è ciò che intendo davvero quando aprono
anche la fonte e e io penso che sia così
sì, mi sento davvero come se fosse presto
abbastanza che abbiamo solo bisogno di parlare a
molto a collaborare alle idee e
capire quali sono le idee giuste
piuttosto che come essere oh, lo sai
quello che fai e lo facciamo e
qui è dove ci differenziamo e tutto
questo genere di cose va bene così penso
questo è davvero fantastico
due altre domande veloci e sì io
non vedo nessuno in coda quindi andrò bene
continua a chiedere loro che sia il mio compleanno
chiaro Adam ha detto che se vuoi chiedere a
domanda il microfono è proprio lì così giusto
mettere che là fuori o solo l’amore
ascoltando la mia voce e lui le ha consigliato il passato
i venditori scusano qualsiasi consiglio per il passato
trasgressori dei venditori precedenti, e allora perché ho dato
tutto questo discorso non so se lo è
disponibile ovunque ho dato questo discorso a
tempo fa chiamato morto passa da tempo vivo
passare e sostanzialmente la mia supposizione e
Penso che è gestito ancora più vero di quanto lo
è stato quando ho fatto è che i passaggi sono dentro
il bit sta diventando refactored in cima
dei pass di orchestrazione dei contenitori utilizzati
essere costruito fino al metallo e molto
monolitico e una grande scelta, proprio tu
erano un negozio di fonderia di nuvole o eri in
conosci qualche altro negozio Heroku o
eri tu eri un monolitico
decisione perché era difficile da condividere
cose tra loro e perché lo era
un così grande tipo di investimento da implementare
quel gruppo penso quello che stiamo vedendo
come questi passaggi vengono refactored in cima a
registrazione del container e oltre
kubernetes è che è molto più piccolo
decisione è una decisione che una squadra può
fare al contrario di una società e quella
c’è di meglio
una migliore interoperabilità perché mi piace
il livello di scoperta del servizio di kubernetes
è ancora lì quindi un servizio che tu
costruisca in Lei sa aa funzioni come un
il servizio potrebbe essere effettivamente disponibile
in un percorso di 12 fattori a destra e quindi penso
ciò significa che è molto meno intenso
scelta
ha anche significato che è molto più facile
per costruire questi sistemi e perché è
Più facile da costruire li stai iniziando
per vedere i professionisti che sono soggetti
importa esperti nel particolare pezzo
di esperienza di sviluppo costruire percorsi che
altrimenti non sarebbe stato in grado di farlo
perché avrebbero dovuto costruire il
bit di sistema distribuiti quindi penso
vedrai un’esplosione di anthea
già o vedendo c’è qualcosa di simile
dieci diverse implementazioni di
funziona come un servizio in cima a
kubernetes hai intenzione di vedere questo tipo di
Esplosione di passi del Cambriano mirata a
varie aree in costruzione sopra
orchestrazione di container e container I
direi se non lo stai facendo e
il tuo fornitore di pastiglie sei tu probabilmente lo sei
facendo male, ma penso che abbiano tutto
capito che a questo punto e e
poi penso a cosa vedrai
è molto più verticale perché
la differenziazione arriverà
dall’esperienza degli sviluppatori e da
il targeting per un particolare verticale
al contrario di voi conoscete la qualità di
il sistema distribuito perché è così
sta per venire dai contenitori e
orchestrazione del contenitore cool e Oh turn
intorno e abbiamo domande andare avanti
sì io per una domanda su fondamentalmente
questa cosa futura perché ho visto il tuo
demo e trovo molto interessante ma io
vedi ancora avviso di cui hai bisogno fondamentalmente
di sapere come si come hai detto è necessario
conoscere tutti i concetti su come come
molte repliche ho bisogno di CRT vedete a
futuro dove puoi effettivamente ottenere o
non ne hai bisogno o puoi solo
esprimere il tuo codice visione e poi
viene schierato in un modo che è più
efficiente sì, voglio dire che lo penso
è sempre stato così che intendo
alcuni modi che sono sempre stati l’obiettivo di
percorsi penso che ci sia questo tipo di idea
che puoi andare a ciò che la gente chiama
codice guidato dall’intento dove puoi dire
qualcosa come questo codice 250
latenza di millisecondi si conoscono quattro nove
tempo di attività come si danno le specifiche per cosa
si desidera che il codice per fare in contrapposizione a
la topologia che dovrebbe essere il tuo codice
schierato in penso che dobbiamo costruire
queste cose negli strati giusti e penso
e e così e penso che il
la sfida è che quando si salta al
passato
lì non costruisci le cose qui sotto
la tana della PA in un modo modulare disaccoppiato
e così finisci con questi monoliti
così io penso che si debba costruire penso
idealmente arriviamo in quel posto, penso
è davvero difficile e penso che succederà
prendere un sacco di pensiero e un sacco di
sforzo per costruire i livelli giusti
Voglio dire, penso che se guardi la specie
dello sviluppo di sistemi operativi
era come hai scritto direttamente a
non c’era nessun sistema operativo e tu
ha scritto direttamente alla macchina e oltre
tempo abbiamo capito che cosa è giusto
astrazioni sono a livello sopra esso
ci vuole molto tempo per farlo bene così
quindi lo spero ma non voglio piacermi
non voglio saltare troppo in una volta
passo sì c’è un concetto da CS
101 che ci ha messo un po ‘a raccogliere
Iniezione di dipendenza da sviluppatori in metallo
esperimenti sulle particelle hai preso in considerazione
configurazione del contenitore di dipendenza
iniezione per essere esplicitamente il cloud
implementazione di esso sì penso II
ho sempre pensato che il
roba metaforica è organizzata intorno
l’unità di un singolo micro servizio e
quindi spero davvero che la dipendenza
l’iniezione proveniva da qualcosa come un
servizio di rete piuttosto che da qualcosa
che hai effettivamente inserito nel tuo codice
perché mi sembra che tu lo voglia
disaccoppiamento giusto se il tuo codice sa come
iniettare una dipendenza che probabilmente sei
troppo strettamente collegato al tuo al
dipendenza se non stai attraversando a
bilanciamento del carico se non stai andando
attraverso una sorta di scoperta di servizi
quindi in realtà penserei che un servizio
mesh è un modo migliore per avvicinarsi
qualcosa come iniezione di dipendenza per
micro servizi piuttosto che entrarci
il codice ma non so che sarei molto
interessato a vedere come sarebbe
come grazie , mi dispiace tanto
questo lo sai , penso che siano loro
i nativi stanno diventando irrequieti, oh no
bene sarò qui se la gente vuole
venire a chiacchierare sarò semplicemente rilassarsi in modo
grazie mille, apprezzo davvero
facciamo ancora un giro di applausi
tu
questo lavoro è troppo difficile e perché ho
trascorso un sacco di tempo e una varietà di
luoghi che parlano di kubernetes e
parlando di containerizzazione i
profondamente credo che nel momento in cui
abbiamo raggiunto ora dove ha il kubernet
diventare una merce prima di tutto è
incredibile per me è che ho ancora quattro anni
più tardi sono scioccato ma è davvero il
inizio e quindi se voglio parlare oggi
sul perché penso a questo
tutto ciò che abbiamo costruito finora e
Onestamente tutto quello che siete tutti
facendo chi stanno schierando le comunità in
produzione come le fasi iniziali di
quello che spero sarà davvero drammatico
cambiare il modo in cui ci avviciniamo alla costruzione
sistemi distribuiti e creazione di cloud
sistemi nativi perché penso che lo siamo
davvero solo grattando la superficie e
come dice il titolo lassù il lavoro che
stai facendo oggi semplicemente è troppo difficile
e ci sono troppe poche persone che lo sanno
come fare tutto bene quindi qual è quello che è
il lavoro se il lavoro è troppo difficile
il lavoro bene è il lavoro per costruirne di nuovi
rilasci forse è per costruire nuovi
caratteristiche da fare settimanalmente mi dispiace confondere
quelli sì costruire nuove funzionalità di qualcuno
dicendo hey sai cosa abbiamo bisogno di questo
funzionalità nell’app il più presto possibile
i nostri concorrenti l’hanno appena aggiunto
il cliente lo ha chiesto qualunque sia il
motivo per cui abbiamo bisogno di questa funzionalità di cui abbiamo bisogno
quella cadenza settimanale di rilascio o forse a
cadenza giornaliera di rilascio che dobbiamo essere
funzionalità di spedizione costantemente devi
avere perfetta destra uptime non so
quante persone ricordano ma prima
si acceda al log-in su un sito Web di una banca
sito web o ovunque e sarebbe dire che
sapere cosa dalle 11:00 alle 12:00 di notte
saremo offline per la manutenzione
qualunque cosa significasse
di solito aggiornamento dello schema um ma ora io
ogni volta che vedo quelli e ogni volta
tra poco mi imbatto in un sito che lo fa
che io sono scioccante per me, sì, sì
Sono qui in Europa, la mia banca è in America
Ho intenzione di usare il mio cellulare per
accedere alle loro API e mi aspetto che lo facciano
essere attivo e operativo proprio così
Oltre alla spedizione di nuove funzionalità
rilasciando costantemente software ancora
devono anche mantenere il tempo di attività perfetto e
poi c’è questa pressione costante e
Sono sicuro che lo senti e lo sento
come se ci fosse sempre una cosa nuova da imparare
su e è una cosa nuova da imparare
circa perché è una cosa o è a
nuova cosa da imparare solo perché
qualcuno ha una parola d’ordine che vorrebbe
come te da usare nelle loro diapositive
e quindi penso che non solo stiamo pensando
sulle funzionalità di spedizione non solo siamo noi
pensando di mantenere i tempi di attività ma
stiamo costantemente assorbendo nuovi
tecnologia e capire se o
non è una cosa utile o se lo è
solo la cosa più nuova quindi per
raggiungere questo lavoro cosa stiamo usando cosa
stiamo usando per mettere insieme questo insieme
abbiamo schemi e pratiche
tutti abbiamo imparato e abbiamo imparato da
i nostri colleghi e da cui impariamo
ambienti come questo hanno una laurea
di infrastrutture supportano cose come
i kubernetes aiutano a fare questo lavoro un po ‘
un po ‘ più facile da un certo punto di vista che facciamo a
sacco di riutilizzo del codice penso che questo sia uno di
le grandi rivoluzioni del software forse
lo sviluppo di 30 o 40 anni fa è
che improvvisamente possiamo condividere molto di più
le reti di codice hanno contribuito a questo
lingue del software che sono state organizzate
in giro a condividere siti di codice come github
che sono organizzati attorno al codice di condivisione
mi hanno aiutato molto e poi
utilizzando strumenti come notizie sugli hacker e altro
tipi di fonti per scoprire cosa c’è
andando avanti cosa stanno facendo le altre persone
so che cosa è quello che sai che vorrei
supponi che tu l’abbia scoperto
su cose come docker e urban
Eddie proviene anche da questo tipo di fonti
dove leggi un articolo che hai sentito
qualcosa di interessante in a
conferenza hai imparato un po ‘di più
su di esso l’ hai provato noi lentamente
ha accumulato tutte queste informazioni ma il
approccio che stiamo prendendo con tutti
questi strumenti è che dobbiamo imparare
tutto quello che c’è da sapere dall’alto
dello stack fino in fondo
in fondo alla pila come tutto funziona
devi costruire tutto da e
Grande destra, tu continua a trovare e io
ogni volta che parlo alla gente di come loro
costruisci i loro sistemi trovo che siano
tutto costruisce la stessa cosa finita e
più e più volte a volte se stessi
ognuno di voi sa che ogni nuova app crea il
le stesse cose più e più volte ho trovato
questo nei miei sistemi di costruzione vita ho
sapevo cosa fare ma lo tenevo ancora
ri-implementare cose che non abbiamo
abbastanza biblioteche non ne abbiamo abbastanza
codice condiviso nonostante tutto il codice condiviso
che abbiamo accumulato non ne abbiamo abbastanza
condivisa
intorno ai sistemi distribuiti dobbiamo
insegnare nuove persone su come il sistema
funziona e dobbiamo insegnare alla gente
come funziona il nostro sistema che è diverso
del sistema di qualcun altro anche se
sono davvero uguali quando socchiudi gli occhi
a loro che lo stesso aspetto, ma nessuno di
la conoscenza si sta trasferendo in avanti
e continuiamo a farlo finita e
più e più e più volte e credo
che non conosco per la potenza per me
Comunque
Ho raggiunto un posto dove ci si sente
inutile sembra un po ‘sprecato
sforzo che dovrei spendere
costruire una migliore applicazione spesa
ri-implementare cose che già ho
so come implementare e io no
pensa che possiamo continuare a farlo nel modo giusto
perché la pressione di rilasciare nuovi
API è e la pressione di rilasciare nuovi
Caratteristiche E ‘solo peggiorare destra
ogni nuovo sai che andava bene
fai un rilascio mensile ora non è nemmeno
va bene fare una versione settimanale, penso
là là ci sarà questo
l’aspettativa di una richiesta di funzionalità può essere
pubblicato su un forum che conosci nel
mattina e disponibile nell’app mobile
nel pomeriggio ed è qui che siamo
diretto se non ci siamo già e così
Lo credo davvero profondamente mentre
abbiamo accumulato un sacco di interessanti
strumenti che non abbiamo creato abbastanza per
raggiungere gli obiettivi che abbiamo che sono
scendendo il luccio o che sono pari
qui oggi ma la cosa preziosa
il mondo è che la storia continua a
ripetersi
Mi trovo stavamo solo parlando
prima io e Adam abbiamo parlato di
senso della storia che hai quando tu
vieni in un posto che è stato intorno e io
pensa anche se la storia del computer
non torna indietro così lontano che possiamo guardare
la storia e diciamo se siamo in questo
spazio in cui è troppo difficile da costruire tutto
di questi sistemi che ci si aspettava
costruire e alla cadenza che erano
ci si aspetta che li costruisca bene
è successo prima e in effetti lo è stato
e direi che è successo a
almeno due volte prima e se allunghi
torna forse puoi venire con gli altri
epoche e così cosa succede in
generale, quando il lavoro diventa troppo duro in
calcolo e tecnologia costruiamo
strumenti che costruiamo strumenti migliori che troviamo
schemi che possiamo sapere avere
comunanza intorno e costruire condivisa
implementazioni in giro e così se noi
pensa alla storia e allo storico
punti di riferimento direi che il
il primo momento in cui anche il lavoro è finito
è stato difficile quando improvvisamente le persone si sono rese conto
quella gente che non era
costruendo letteralmente la macchina necessaria
essere in grado di programmare la macchina e
persone che non erano necessariamente
matematici o il primo computer
gli scienziati del giorno necessaria per poter
scrivere il codice giusto per essere in grado di
esprimere idee e creare applicazioni
perché erano esperti in materia
in una particolare area e fuori da quello
arriva Fortran proprio da quel senso di
abbiamo bisogno di una cosa che sia migliore e e
più espressivo e più facile da usare di
il codice macchina è Fortran, giusto è
letteralmente a prendere le formule e
traducendolo in codice macchina che è
Fortran e poi allo stesso tempo la
i modelli iniziano ad emergere proprio così
minuto hai una programmazione del computer
linguaggio improvvisamente le persone iniziano a pensare
sugli algoritmi astratti che sei liberato
dal codice macchina letterale per pensare
sull’astrazione e dal
astrazione hai lo sviluppo di
l’ idea di un algoritmo giusto Knuth
scrive questo libro e non è nemmeno
radicato in tutto ciò che potevi
esegui ma ti dice come fai a ordinare
cose che ti dice che sono eoni canonici
questo insieme di programmi che erano le persone
scrivere più e più e più ancora
devo ancora scriverlo, ma almeno tu
può leggere il libro e fondamentalmente
capire il modo in cui l’ algoritmo è
dovrebbe essere e possiamo collaborare
e costruire algoritmi di ordinamento migliori
giusto nel tempo possiamo analizzarli
algoritmi e possiamo trovare quelli che
sono i migliori, quindi penso che questo sia il
prima volta quando il lavoro è diventato troppo duro e
abbiamo costruito strumenti e abbiamo trovato dei modelli
rendilo più facile, ripenso al
Gli anni ’80 sono accaduti improvvisamente
il software stava davvero iniziando a mangiare il
mondo e software di costruzione in generale
le squadre sono diventate una parte molto importante di
molte aziende hanno ragione e penso
quello che è successo in quel momento è questo
è risultato che il software non stava ridimensionando
della squadra ha troppo grande comunicazione era
duro le persone che stavano programmando
forse non erano i migliori programmatori e
e così e non erano profondamente legati
la macchina e quindi di conseguenza venire
di conseguenza vediamo questa rapida crescita
nelle righe del codice scritto che vedi
la programmazione orientata agli oggetti viene al
prima di vedere Java e c-sharp gestiti
ambienti che si radono via a
sacco di spigoli dalla programmazione
alla macchina entrare nel mainstream
giusto e nello stesso tempo tu hai questo
emergenza dei modelli di design libri
il più famoso è il
per il libro Eric gamma e tutti sono scritti
attorno ai modelli di progettazione del software giusto
e penso che sia davvero di nuovo
tecnologia e strumenti modelli avanzati
sono stati riconosciuti e improvvisamente abbiamo iniziato
pensando a modelli orientati agli oggetti
e abbiamo iniziato a pensare a come te
potrebbe strutturare il tuo software per farlo
più riutilizzabile e penso che sia davvero
anche dove è arrivata la rivoluzione della biblioteca
fuori senza c ++ senza
codice orientato agli oggetti senza gestito
Codice Non pensi di avere la laurea
di librerie condivise che fai oggi
anche se la rete è importante come
bene, quindi penso che la terza fase
siamo in questo momento è questa nozione di
sistemi distribuiti affidabili proprio io
avere questa discussione interessante con
alcune persone che sviluppano ID e cose
come quella
attorno al fatto che il punto cruciale di ciò che noi
è cambiato ha usato per essere quello il
il punto cruciale di ciò che uno sviluppatore ha fatto è stato costruire a
GUI che aveva una logica di business alle spalle
potrebbe essere stato collegato a un
database giusto e ora costruiamo tutti
API e costruiamo costruire API che sono
distribuito sul cloud su più unità
macchine che hai conosciuto e ora
stiamo iniziando qualcosa di bene, diciamo
prendi queste api e trasformale in micro
servizi che siamo in questo momento
progettazione e sistemi distribuiti è il
problema del giorno che è diventato troppo
i codici macchina non sono difficili perché noi
avere linguaggi di programmazione che ridimensionano il nostro
il software è difficile ma va bene
capito e abbiamo lingue che
aiuto con esso e tecniche che aiutano
con esso ma ora i sistemi distribuiti sono
la cosa che ha reso il mondo troppo
difficile e cosa penso che cosa abbiamo trovato
gli strumenti stanno iniziando a emergere in
docker e in kubernetes gli strumenti che
hai bisogno per lavorare su questo sono
iniziando a emergere non sono ancora finiti
i modelli che penso si stanno ancora evolvendo
Penso che stiamo iniziando a vedere il
canonicalizzazione se hai guardato il
date nei due esempi precedenti il
i libri di modelli tendono a ritardare il
tecnologia da cinque a dieci anni se non
anche un po ‘ più a lungo ci vuole un
mentre per noi per capire cosa tutto il
i modelli sono ma penso che stiamo iniziando
per parlarne e stiamo iniziando
vedere quali sono alcune delle cose e
questo è un momento davvero prezioso nel tempo
e io non sono davvero incoraggiato a tutti voi
partecipare a quella discussione
va bene quindi dare un’occhiata al
soluzioni che abbiamo là fuori bene
storicamente le soluzioni sono state
cose come unità di debugger di compilatori
test dello sviluppo integrato
ambienti questi sono i tipi di
strumenti a cui pensi
ora quella parte triste di questo è tutto
di questi strumenti riguardano la costruzione
programmi su una singola macchina nessuno di
questi strumenti ti aiutano a costruire distribuito
sistemi e penso che sia dove siamo
in modo che la gente ha chiesto cioè le persone chiesto
contenitori gente chiesto
comunità quante persone stampano
debug di linea che è leggermente inferiore
di quanto mi sarei aspettato effettivamente come
molte persone non fanno il debug
sostengono che nello spazio di
strumenti software in realtà io stampo
Coccinella a proposito costantemente anche
in unit test dove non dovrei quale
ti mostra come sono Sindrome di Stoccolma
e ma io vorrei dire che il
l’apice degli strumenti di sviluppo era in realtà
in client-server intorno al 1998, giusto e
è un po ‘ triste che non abbiamo quello
ci siamo un po ‘bloccati forse in realtà
anche andato un po ‘indietro come
ci siamo trasferiti in sistemi distribuiti noi
bisogno di iniziare a pensare all’allargamento
lo spazio degli strumenti che stiamo costruendo
si scopre che stiamo iniziando a e
va bene così e così con strumenti come
helm che è un gestore di pacchetti per
kubernetes che consente di ordinare di
pacchetto e utilizzare il sistema distribuito è
software off-the-shelf o la cosa il
lo stesso tipo di approccio che ti ha permesso
per fare apt-get installa il mio sequel ora
ti permette di installare il mio replicato
sequel su un cluster kubernetes che è
ottimo per quello dal lato scaffale del
casa stiamo facendo un sacco di lavoro in
costruire un’estensione per Visual Studio
codice che ti integra con kubernetes
bozza come strumento che mostrerò in a
un po ‘quel tipo di tentativo di aiutare
le persone imparano perché uno degli altri
i problemi sono tutta questa complessità
succede se la rampa di salita diventa più ripida e
più ripidi ci sono cose come la telepresenza
che sono veramente interessati a come faccio
prendi i servizi che sto costruendo
la nuvola e ancora proiettili su
questo portatile dove sto facendo tutto questo
lavoro di sviluppo come posso fare uno sviluppo
il mio ambiente di sviluppo e il mio cloud
tipo di lavoro più perfettamente insieme
la nuova versione di Jenkins è fuori
c’è un targeting nativo per i kubernet
e sta davvero prendendo molto di questi
strumenti come il suo ambiente nativo stesso
cosa come spinnaker ha fatto prima così siamo
iniziando a vedere sviluppare questi strumenti e
per darti un’idea di cosa significhi
Voglio darti un po ‘ di a
demo di alcune di queste cose proprio così
il primo pezzo è lo studente visivo
questo lavoro visivo in studio visivo che io
e il team ha lavorato
un gruppo di recente, quindi mi ritirerò
e vai qui, quindi cosa vedrai qui
studi individuali ho studio visivo
è che sembra abbastanza leggibile e
è ho l’estensione installata e io
lascia cadere questo piccolo kubernetes
e quando ho aperto il kerbin ho solo
lasciato cadere sai che puoi vedere qui
è popolato con i miei ammassi
Ho configurato giusto non lo farò
provare gli dei della demo usando qualcosa
sulla rete, quindi userò il mio
mini cluster cubo locale e quando vedo
lì quello che ho è proprio come te
avere una vista ad albero per il codice sorgente
ora ho una vista ad albero per il mio kerbin
Gli oggetti di Nettie sono giusti e così posso andare
e posso dire cose come oh hey
qual è lo spazio dei nomi che ho qui
bene, ho questi tre che sto per fare
in realtà passare sarò pulsante destro del mouse
e quando ho impostato il sistema di cubi è la mia corrente
namespace e ora posso entrare nel mio
carichi di lavoro date un’occhiata ai miei pod forse
e vedo tutti i baccelli che ho
correndo o posso guardare le mie implementazioni
e posso effettivamente vedere le distribuzioni
e poi posso effettivamente cadere nel
distribuzioni e vedere il pod che fa parte
di quella distribuzione proprio così ora improvvisamente
invece di dover usare una riga di comando
strumento che richiede di passare entrambi
contesto dal codice che sei
lavorando su un contesto diverso come
anche se onestamente una linea di comando è fantastica
per lo scripting delle cose ma non per quello
visualizzando le cose ora ne ho un altro
ambiente visivo più integrato per
esplorare il mio cluster e posso anche farlo
cose come venire qui a questo baccello
e dì bene, sai cosa vorrei
come un terminale in quel pod mi piacerebbe
accedere a tale pod che sta andando mi chiedono
quale dei contenitori in quel pod che
Voglio collegarmi a selezionare
il cubo DNS uno e ora qui sopra
questo terminale sono lì dentro quel pod
Giusto quindi penso che questo non sia niente per il
questo è tutto questo è solo il
kubernetes api sotto il cofano a destra
non c’è magia che sia davvero nel
IDE è davvero solo l’ io
integrazione di queste cose nella mia
ambiente di sviluppo che mi consente
per avere più facile accesso sia la cosa
questo è nel cloud così come il
codice sorgente del codice sorgente che sono
sviluppando sulla mia macchina locale va bene
quindi penso che questo tipo di collegamento tra
l’atto di sviluppo e l’atto di
distribuire è l’area che ci serve
lavorare sulla più a destra che improvvisamente
usato per essere quel codice e applicazione
erano naturalmente vicini perché
il codice e
il posto dove il codice correva era il
stessa macchina il posto dove il codice
corre ora è molto lontano abbiamo bisogno di
pensa a come possiamo usare i nostri strumenti per
riportarli insieme in modo che il prossimo
strumento che voglio mostrarti un po ‘
un piccolo esempio di come lo usiamo come questo
strumento chiamato timone quindi se hai visto prima se
Esco dall’ambiente di Kubernetes
chiudo il mio terminale ci andiamo io ho un
piccola applicazione semplice node.js qui
quindi questo è davvero molto semplice web
server in scritto in node.js si
qualcosa che penso qualcuno con te
conosci un po ‘di JavaScript
esperienza e un po ‘di web
il surf potrebbe facilmente venire da te
hanno dato un calcio insieme in un’ora dicono o
meno davvero se tagliavano solo il taglio e
incolla ma ora dici a questa persona
va bene, fantastico , hai scritto un
server web è possibile eseguirlo localmente
la tua macchina mi piacerebbe che tu la eseguissi in un
cluster di comunità nel cloud e
dicono di dire cosa ora e tu inizi
dicendo okay, mi permetto di spiegare come fare
questo fare bene in realtà è troppo
spiegami bene, non ti credo
voglio ammettere inizialmente e parleremo a
un po ‘di più su questo dopo non lo faccio
pensa di volere quella persona
devi subito imparare tutto questo
Yambol e tutto questo ti roba
voglio che loro diano dei passi avanti
ma tu vuoi che siano in grado di arrivare a
punto in cui hanno successo abbastanza
rapidamente e questo è davvero dove timone
entra in gioco quindi se io CD in quello
directory Posso dire veramente helm che
è questo
scusa non aiuto doc ho detto timone intendevo
bozza mi dispiace
e quindi per favore riavvolgi gli ultimi due
minuti di me a parlare e sostituire il timone
con bozza e lo facciamo sul video
sarebbe fantastico e quindi cosa permette la bozza
in realtà è quello di impalcarli tutti
questa roba va bene se guardo il
strumento di bozza ha un sacco di
comandi e in realtà ha un componente
che corre all’interno del cluster che è
in realtà già presente ma la bozza ha
la capacità di transyl vedi bene
qui la bozza crea trasforma il locale
directory da distribuire su kubernetes
giusto così ora posso solo dire di creare una bozza
e quello che sta succedendo è la bozza
rilevare la lingua che sto usando
rileva che questa è un’app node.js
ha alcuni modelli su come costruire
e
jsf e sono stabilite due cose se io
tornare alla struttura della mia directory
potreste aver visto entrare è rilassato
giù un file di finestra mobile e viene depositato a
directory dei grafici e all’interno dei grafici
directory puoi vedere che c’è questo
grafico punto yeah mol file che descrive
un diagramma del timone che è possibile utilizzare per la distribuzione
la tua app e ora solo eseguendo la bozza
crea ora posso eseguire una finestra mobile build I
può eseguire un timone e la mia applicazione è
schierato alla bozza di kubernetes No yeah I
potrei fare il draft fino a questo è vero
in realtà o timone perché ho il
grafico uno funzionerebbe um ma bozza
in effetti è ancora più facile la stesura
carica il tuo codice e fai la build per
hai ragione e quindi penso che il tutto
punto di questi strumenti è usiamo
qualcosa come l’estensione del codice vs
collegare il codice nella nostra macchina al
codice in cui è in esecuzione nel cloud e
per gradire la brutta copia per lisciare il percorso da
il codice sulla tua macchina per il codice
correre nel cloud tutto bene
chiudere la mia raccomandazione non va bene
Tornerò nel mio discorso tutto bene
e questo è tutto a posto
quindi oltre a pensare a come farlo
ci rendono più facile per il codice per ottenere
nella nuvola una delle altre cose
che succede è che stiamo pensando
modi per rendere il cluster più automatico
giusto così tanto tempo in cui pensiamo
su ciò che serve per distribuire un
l’applicazione nel cloud ci è molto
di roba ancillare come stai
monitoralo come lo riavvierai
come hai intenzione di scoprire che lo sai
quali sono i certificati che devono essere
ruotato tutti questi tipi di pezzi
che sono il cruft se vuoi o
i componenti extra essenziali che sono
la differenza tra un pezzo di codice
eseguirne una sulla tua macchina e a
pezzo di software affidabile in esecuzione
il cloud e quindi penso a quale dei
poteri di Kubernet e uno dei
poteri di questa infrastruttura di cluster
non è solo che puoi schierare il tuo
contenitori lì è che in realtà
diventa un ambiente dove puoi
rendere le cose come il monitoraggio essere automatico
ed è qui che arrivano i servizi cluster
in gioco proprio così con i servizi cluster
permette una squadra che forse capisce
un’area particolare che aiuta a distribuire a
soluzione che
funziona su ogni singola applicazione
questo è schierato in quell’ambiente così
potremmo avere un cluster ampio
standardizzazione di questi servizi cose
come registrare cose come il monitoraggio
cose come il rilevamento delle intrusioni
gli sviluppatori di applicazioni li ottengono semplicemente
distribuendo in quell’ambiente e
quindi quando eseguono bozze e si distribuiscono
la loro applicazione in quel kubernetes
ambiente improvvisamente ogni singola cosa
che scrivono per standard out
in un server di aggregazione di log che è
ricercabile e memorizzato per te 90
giorni o qualunque sia il periodo di registrazione
è giusto che tu sia enormemente potente
non ha dovuto insegnare loro a questo proposito che
ho appena scritto per standard come
erano abituati a fare con la loro macchina
e quando arrivò il momento per loro di fare
l’introspezione dei loro registri erano su
in un indice di ricerca che potresti mostrare
loro come accedere a questo tipo di
apprendimento just-in-time con te attuale
so che non è solo in tempo a imparare così
può imparare come distribuire il monitoraggio è
appena in tempo imparando a dirti oh by
il modo in cui era già successo per te
ha enorme potere di applicazione
sviluppatori e succede solo quando tu
avere quell’infrastruttura di cluster e
più importante anche per le persone che lo sono
pensare di monitorare la verità è
che se sei un monitor SRE guarda
un sacco di cose del genere
tre team di sviluppo uno sviluppo
il team dice che sai cosa userò
stats T Sono stato in giro per un po ‘
stats T è fantastico un’altra unità dice hey
sai cosa Userò Prometheus
e il terzo team dice di monitorare um
e l’accessorio dice che penso che lo farò
smettere di destra ed è perché c’è questo
incoerenza nell’ambiente perché
hai permesso che questa scelta fosse fatta da
l’utente finale giusto e così via
la standardizzazione non solo si rendono
più facile per l’utente finale
in realtà rendi più facile il
operatore pure va bene e penso
questo tipo di win-win di questo tipo
il ciclo virtuoso è la cosa buona che
è successo in questo ambiente dove
stiamo iniziando a vedere gli strumenti essere
sviluppati che non sono supponenti
perché qualcuno ha un’opinione ma
sono davvero preziosi perché loro
rendere la vita migliore per ogni singola persona
coinvolto giusto penso che sia per questo che tu
vedere questa rapida adozione di contenitori
kubernetes e altre tecnologie è
che c’è valore in esso per ogni
singolo partecipante nel parco giochi così
questo è fondamentalmente quello che sembra te
avere una soluzione di monitoraggio a livello di cluster
qualsiasi utente del server API comunità
arriva e crea cluster di cialde
ampio monitoraggio guarda ai kubernetes
api server scopre che quei pod
sono stati creati
e inizia a monitorarli automaticamente
inizia lo scraping inizia il logout
raschiando sai informazioni sulla cpu e
tutto il resto e alla fine
spingendolo verso un monitoraggio cloud o
qualche altra soluzione di monitoraggio
hai sviluppato giusto e ancora questo è
tutto automatico nessuno l’utente non era
coinvolto in tutto questo il cluster
l’amministratore è quello che è andato via
su come stabilire questa roba va bene
quindi penso che ti dà un senso di
gli strumenti che vedo sviluppare le persone
ce ne sono molte altre naturalmente non ce n’è
Potrei passare ore a esporre in realtà
sui vari strumenti che le persone sono
costruire per aiutare con il dispiegamento di
sistemi distribuiti ma penso che
anche se gli strumenti sono molto utili sono
diritto insufficiente e quindi cos’altro
accadendo e cosa è successo
storicamente è lo sviluppo di
modelli e librerie proprio così finite
tempo abbiamo visto l’evoluzione di cose come
POSIX era solito che non esistesse un
standard per la programmazione delle applicazioni su
UNIX e poi lo standard POSIX è arrivato
lungo cose come NPM installiamo proprio noi
solo avere questa aspettativa che puoi
utilizzare NPM quasi letteralmente
qualunque cosa tu voglia
cose come il test delle unità è un modello
e una biblioteca ci aspettiamo unità
testare i framework lo capiamo
il collaudo delle unità è una parte essenziale di
sviluppo del software e poi anche questi
librerie estensibili di modelli giusti
come quante persone hanno implementato
ordinamento dopo aver lasciato lo studente è
non molto , non spero proprio tu
non dovrebbe implementare l’ordinamento e
eppure tutti lo usano tutti lo sanno
che questo è qualcosa che dovresti
fare esattamente la stessa cosa con i client HTTP
come se avessimo raggiunto uno stadio in cui se a
la lingua non ha HTTP integrato come a
libreria nativa è che non lo fai nemmeno
capire perché qualcuno si preoccuperebbe
giusto come quello è il livello di
aspettativa attorno a entrambe le librerie e
servizi che abbiamo nel nostro
linguaggio di programmazione per l’ambiente
e quindi stiamo iniziando a vedere questi
anche le cose si sviluppano, quindi c’è uno strumento
questo potrebbe essere uno dei miei team di Azure
costruito chiamato brigata che esprime
cose come un flusso di lavoro ci sono cose come
servizio mesh con sto e linker D e
molti altri in fase di sviluppo ci sono
cose come Hadoop, scintilla e percorsi
che si sta costruendo sopra i kubernetes
in modo che tu possa consumare funzioni come a
servizio puoi consumare altri percorsi
schemi in cima ai kuberneti
per darti un esempio di come funziona
sull’atto di impostare un codice per
esegui ogni build che esegue ogni singolo
volta che inserisci il codice in github adesso
per fortuna c’è
le cose che fanno software-as-a-service
è più facile per te fare questo controllo in a
llamó file e magia succede ma se tu
devi farlo da solo questo è un po ‘
quello che sembra github invia un evento
c’è un listener di eventi e viene eseguito a
costruire script in brigata è così che tu
esprimerebbe quello giusto di nuovo ottenendo
di nuovo per incontrare le persone dove erano
permettendo loro di prendere un po ‘di
JavaScript e trasformato in un flusso di lavoro
Posso dire cose come hey tu sai cosa
Voglio creare la fonte per gli eventi I
voglio quando c’è una spinta che voglio correre
questi compiti fanno fare al cervo copia del CD
alcuni vanno a fare un po ‘di assicurazione e gestiscono il mio
prova bene così ora ho appena espresso a
flusso di lavoro un’integrazione continua
flusso di lavoro basato su github che spinge scritto
giù in un pezzo di codice posso unità
prova questo se voglio, probabilmente dovrei
Posso insegnare a qualcuno come farlo se
loro se posso insegnare a qualcuno come
distribuire un flusso di lavoro a Kirby Nettie’s se
l’unica cosa che hanno mai fatto prima
è frontale nel lavoro JavaScript che è
estremamente potente perché possono scrivere
quel programma e poi quando viene distribuito
è containerizzato e imballato
distribuito a destra di kubernetes
di nuovo costruendo schemi in modo che
le persone non necessariamente piacciono a
ordinando loro non necessariamente sanno come
per implementarlo ma sanno cosa
succede quando lo usano tutto bene io
pensare che la maggior parte della gente sia soddisfatta
capisco che se ne approfitto
questo modello in qualche modo dietro le quinte
le cose giuste accadono nel mio flusso di lavoro
viene eseguito o il mio algoritmo di ordinamento viene eseguito o
qualunque altra cosa capita di essere tessere
livellò noi stessi costruendo un
astrazione che posso programmare per me
pensa al terzo pezzo che vediamo arrivare
fuori di questo è l’introduzione di
caratteristiche linguistiche proprio così in aggiunta
alle attrezzature e in aggiunta ai modelli
e librerie di componenti riutilizzabili I
pensa quello che abbiamo visto storicamente
è che i linguaggi di programmazione stessi
si sono evoluti e adattati per costruire
caratteristiche che sono orientate alla
problemi del giorno giusto e il
problema del giorno da circa forse 1990
verso la metà degli anni ’90 in poi con
sincronizzazione giuste più core
all’improvviso significava che i fili correvano
allo stesso tempo
avevi bisogno di scrivere programmi multi-thread
per sfruttare il vantaggio di più core
i linguaggi dei processori si sono evoluti per adattarsi
caratteristiche per rendere la sincronizzazione in a
le primitive del prim’ordine scrivono cose come
sincronizzato come una parola chiave async / await
se non hai controllato dattiloscritto
e ho usato Oh un lavandino e un peso in
dattiloscritto o se hai avuto esperienza
con esso ed è la vita che cambia onestamente
come il dattiloscritto è incredibile, questo è il mio
un po ‘ come un fanboy, ma ma è così
piace molto se se vi trovate
preso in uno stufato di promesse solo il
introduzione di questa funzionalità linguistica
l’ idea che tu possa aspettare qualcosa
cambia semplicemente il modo in cui puoi scrivere il codice
scrivi puoi scrivere esattamente lo stesso
codice in JavaScript standard è solo
più facile perché c’è una lingua
caratteristica che è adattato a questo
le cose dell’ambiente come la spazzatura
collezione anche cose come single
threading right come uno dei motivi
Penso che JavaScript sia così popolare per
le persone a scrivere server sono come possiamo
ti insegnano come usare le serrature o noi
potrebbe avere solo un thread e avere
un sacco di callback dappertutto
a destra è solo più facile vivere in un
mondo in cui non ci sono serrature ora forse
ci sono alcuni problemi di prestazioni che
vieni con quello ma se hai stabilito
i giusti schemi di programmazione con tutti
questa asincronia e poi tu introduci
concetti come un peso il genere di cose
di scuotere nel buco vedi questi
caratteristiche del linguaggio in fase di sviluppo
supporto per risolvere i problemi difficili del
giorno, ma ancora una volta tutti questi esempi sono
cose che funzionano su una singola macchina
nessuna di queste cose rende più facile
costruire sistemi distribuiti che fanno solo
è più facile costruire il programma che gira
su una singola macchina e così è
fantastico che abbiamo fatto tutto questo lavoro ma
il problema del giorno è multipla
contenitori su più macchine di cui abbiamo bisogno
per costruire un linguaggio che è idiomatico per
il cloud giusto dico che vorrei discutere con
le funzionalità linguistiche di cui ho parlato
abbiamo iniziato la pagina precedente che abbiamo iniziato
per costruire linguaggi idiomatica a
sincronizzazione, ma abbiamo bisogno di costruire a
linguaggio che è idiomatico per il cloud
così ed efficacemente il problema è come farlo
Vado a prendere il mio codice nel cloud che abbiamo
parlato molto di che, con attrezzature e
allora come faccio a portare la mia nuvola a
sistema distribuito quelli sono due
problemi in qualche modo separati ma correlati
Direi che in realtà dovremmo
costruire un sistema che li indirizzi entrambi
proprio come vai da te, conosci il codice
una macchina da codificare su più percorsi
usando il codice su un core per codificare
più core dobbiamo andare dal codice
fino alla distribuzione
sistema in un unico ambiente ma ma
vale la pena capire che quelli sono
due problemi un po ‘disgiunti e dico
come ho detto quando ho detto nuvola qui
non significa necessariamente cloud pubblico
non significa necessariamente virtuale
macchine potrebbe significare Kubernetes
in esecuzione su fisico è solo un’API
ambiente di distribuzione guidato an
implementazione orientata alle applicazioni
l’ambiente va bene diamo un’occhiata
a quello che serve per passare dal codice a
nuvola in questo momento e se stai andando
dal codice sulla tua macchina al codice
correre nella nuvola a kurby di Nettie
questo è quello che hai bisogno di fare
hai il codice che hai un compilatore tu
trasformalo in un file binario con una finestra mobile
file lo si trasforma in una finestra mobile immagine voi
spingerlo in un repository contenitore che scrivi
qualche configurazione di kubernetes la si distribuisce a
Cluster di Kirby Nettie proprio qui
almeno tre file coinvolti in questo
c’è il tuo codice, c’è la finestra mobile
file e la configurazione di kubernetes c’è
almeno tre lingue il tuo codice
file docker e il kerbin su ezmo e
ci sono almeno tre strumenti per il tuo editor
qualunque cosa accada essere il tuo docker
eseguire la creazione della finestra mobile e il controllo cubo su
fai la spinta ora alcune cose da fare
alcune di queste cose sono un po ‘più semplici
qua e là ma onestamente c’è attesa
modo troppo complessità qui a destra
e non siamo nemmeno arrivati al
sistema distribuito parte destra che era
solo ottenere il mio codice nella parte del cloud
giusto o il secondo giorno cosa succede quando io
bisogno di stendere una nuova versione di questo
a destra c’è solo troppa complessità
nel sistema abbiamo bisogno di semplificarlo
giù e dobbiamo semplificarlo no
solo con strumenti non solo con le librerie
ma in realtà vorrei discutere con nuovo
approcci alla programmazione e nuovi
approcci per costruire il software che
stiamo sviluppando perché vorrei discutere
che questo non funziona quando presentato
in questo modo spero che non sembri
okay spero che tu guardi a quello
diagramma e tu ci ripensi e lo sei
come si, è quello che faccio e tu sai
ti sembra giusto nel momento in cui
sei sul tuo laptop perché lo hai fatto
lo script o qualsiasi altra cosa per ridurre il
dolore un po ‘
ma quando è presentato in questo modo e quando io
scrisse queste diapositive che colpì davvero
me che questo non lo è
una catena di strumenti va bene così se lo siamo
andando a costruire un linguaggio idiomatico
nuvola quali sono i principi che noi
bisogno di usare per guidare questa luce
sviluppo bene penso che vorrei discutere
fortemente che deve essere un formale
linguaggio di programmazione che abbiamo speso io
non so forse 10 anni o giù di lì nel
mondo delle lingue di configurazione dalle cose
come un pupazzo da risolvere per terraformarti
conosci tutto ciò che sai cose come il
azzurro ad un linguaggio di templatura azzurrato
e umanità sì Milland ha il suo timone
proprio linguaggio dei template e penso che il
lezione che ho imparato comunque avendo
stato coinvolto nello sviluppo di a
molte di queste lingue diverse è quella
inevitabilmente sono completi
inevitabilmente assumono ereditarietà e
astrazione e incapsulamento e altro
proprietà della programmazione formale
lingue e inevitabilmente lo sono
terribile come se fosse tutto come
di loro sono cattivi perché siamo tutti di nuovo dentro
li lentamente perché abbiamo pensato che noi
potrebbe farla franca solo con i dati e poi
la gente ha chiesto tutte queste caratteristiche e
alla fine costruiamo condizionali e
cose del genere penso che la verità
è necessario accettare questa configurazione
è la programmazione come le persone ora stanno bene
con l’idea che se l’infrastruttura come
codice ma non penso che siano abbastanza
va bene con l’ idea che il codice può esprimere
infrastruttura giusta e penso che noi
devono ottenere oltre che e dobbiamo dire
Parlo ancora con persone che sono un po ‘
come no no è diverso e mi piace
beh, davvero non penso che tu possa farlo
scrivi diversi pezzi di codice
non deve essere lo stesso codice come
puoi separare i file di codice ma
non c’è motivo per non usare solo un
linguaggio di programmazione formale e dal
modo se si utilizza una programmazione formale
lingua per cui viene evidenziata la sintassi
ottieni test unitari gratis
ottieni lo stile del codice gratis come tutto questo
cose che abbiamo sviluppato in giro
sviluppo del software per letteralmente come
negli ultimi 50 anni ottieni gratis e
perché preoccuparsi di reinventare una cattiva programmazione
linguaggio in sì Mille, semplicemente no
ha senso
Penso che un’altra parte di questo sia
che la tendenza naturale qui è quella di
costruire passare la tendenza naturale ed è
un bene come non sono la prima persona a
di ‘ hey sai cosa è dannatamente difficile
distribuire roba proprio di tutti i tipi
le persone hanno costruito degli ambienti da realizzare
è molto facile per le persone distribuire cloud
codice in scala il problema è che hanno tutti
sono stati percorsi e sono stati tutti murati
giardini e hanno inevitabilmente il loro
limiti
dodici app di fattori sono grandiose ma loro
non andare ovunque funzioni come a
il servizio è fantastico
ma non va dappertutto a te
costruire ambienti modulari no
passare giardini recintati perché inevitabilmente
la gente colpirà i bordi e loro saranno
frustrati e perderanno , perderanno
il codice che hanno messo nel muro
giardino e questo è molto frustrante
Sperimenta che lo fai solo un paio di volte
e tu non lo fai mai più
e poi finalmente deve essere
idiomatico ha bisogno di guardare e sentire come
linguaggi di programmazione naturali ed io
pensa che questo abbia a che fare con la costruzione del
rampa destra cs101 persona se ho preso un
studente che è in CS 101 e ci ho provato
insegnagli come costruire portare il loro codice
al cloud, devo insegnarglielo
molti concetti tra capire come
scrivere codice e farli entrare nel
cloud e nuovi formati di file e tutto questo
una specie di roba come se fosse un’enorme barriera
è un’enorme barriera all’ingresso da cui partire
Posso scrivere il codice sulla mia macchina per poterlo fare
distribuire quel codice nel cloud e poi
finalmente deve essere open source, io
penso che abbiamo raggiunto un livello di
comprensione in questo mondo che noi
collaborare e noi per tutto ciò
è effettivamente non essenziale per il mio
il business sarà open source e
infrastrutture come questa devono essere aperte
fonte o qualcun altro semplicemente
costruisci la stessa cosa e aprila
fonte e quella cosa vincerà come aperta
la fonte vince e quindi anche noi
devo fare questa cosa e fuori nel
apri tutto bene possiamo anche imparare da
la storia si scopre che non è così
un originale idea Mappa Ridurre arrivato
prima a destra in modo da Map Reduce ha detto a voi
Hadoop ti ha detto hey se lo realizzi
queste due classi il mio mappatore e ha
questa interfaccia e il mio riduttore in questo
ha un’interfaccia che prenderò solo tu
codice fuori nella nube e produrre questi
migliaia di macchine e cose magiche
succederà ed è stato davvero bello
giusto l’intera rivoluzione dei Big Data
costruito sull’idea che la nuvola idiomatica
può consentire persone che potrebbero non altrimenti
essere in grado di avere accesso a distribuito
sistemi penso che quello che è successo sia stato
la gente si è così appesa su MapReduce loro
non è riuscito a riconoscere il fatto che
MapReduce è un esempio di un set più ampio
di modelli per sistemi distribuiti che
dovremmo mettere a disposizione delle persone via
programmazione di interfacce linguistiche e così via
abbiamo costruito un singleton e non ci siamo riusciti
vedere il
schema generale e spero che ora
cominceremo a iniziare a vedere il
modello generale e che quell’apprendimento
è ciò che ha portato allo sviluppo di questo
più recentemente c’era questo sistema
chiamato pi Ren che è stato sviluppato e il
idea di base era hey sai cosa succede se tu
sai come fare una mappa Python che puoi fare a
mappare nel cloud a destra e l’idea
dietro Pi Ren doveva prendere quel Python
codice distribuirlo in una funzione come
l’implementazione del servizio paralizza la tua mappa
funziona bene, non l’hai insegnato
persona un solo nuovo concetto te solo
ha detto di prendere quella funzione mappa che tu
stavano pensando prima di sostituire in
PI Ren per la funzione mappa improvvisamente
conosci teraflops di scala
disponibile a voi in modo imbarazzante parallelo
elaborazione e questo è enorme perché
di nuovo se possiamo ridurre la barriera a
ingresso alle persone che usano il cloud che siamo
avrò modo molto più utenti cloud
là fuori sistemi più distribuiti
persone capaci che possono consumarle
concetti anche se non possono implementare
loro stessi tutto bene così questo ha
ha portato allo sviluppo del sistema
che ho sperimentato per
conosci un anno e mezzo due a
questo punto si chiama meta particella e il
L’idea dietro la meta-particella è provare e
definire cosa significa essere questo cloud
linguaggio di programmazione idiomatico lo farò
dimmi che questo è davvero un esperimento
è davvero una dichiarazione ambiziosa
per quello che spero che il futuro assomigli a me
non aspettarti che qualcuno vada e io no
esaurire e utilizzare questo per la produzione ma
per favore, vai fuori e gioca con esso
darti un senso per quello che sembra
Voglio dare un’occhiata a quello che serve
per costruire un’applicazione web affidabile
giusto così se voglio costruire un affidabile
applicazione web ho bisogno di fare cose come
avere un indirizzo IP pubblico ha un carico
bilanciatore ha alcune repliche scrivere il
abisso tra mi piacerebbe costruire un
app web affidabile e questo è abbastanza grande
di nuovo puoi usare la piattaforma come
servizio per questo ma ha dei limiti
se voglio farlo in un modo che posso
dal vivo posso andare avanti dalla mia scrittura
app web affidabile per il mio micro affidabile
servizi a un team di persone che costruiscono
servizi web affidabili devo imparare
tutta questa roba e diventa troppo
difficile quindi se lo facciamo tramite meta-particelle
invece in un modo nuvoloso e emotivo che posso
esprimilo in Python con questo
direttiva containerizzata che ha Python
questi incredibili decoratori lì
davvero fantastico e posso farlo
effettivamente messo un decoratore sul mio principale che
Dice hey sai cosa vorrei che tu
per containerizzare questa applicazione che voglio
quattro repliche di questo è il porto che
Vado a servire qui è il codice
che voglio che tu corra adesso quando lo fai
questo e quando si esegue questo Python
programma quello che fa effettivamente è
si confeziona un contenitore esso
si schiera per kubernetes le code
i file di registro e ora hai questo
sistema replicato a quattro vie su e
in esecuzione in Kubernetes quindi questa immagine è
l’ output di eseguire questo programma cosa
abbiamo permesso a qualcuno di fare è in un
il singolo ambiente inizia a pensare
esprimendo non solo il codice che loro
voglio correre ma la topologia e
lo spiegamento di quel codice allo stesso modo
tempo non hanno dovuto imparare nulla
nuovo sembra naturale sembra un
estensione della cosa che erano
facendo sulla loro macchina e ancora è
in esecuzione nel cloud è in esecuzione
replicato e ne sta approfittando
tutta questa roba quindi è così
Funziona puoi esprimere la tua meta
programma di particelle qui c’è una meta
compilatore di particelle che efficacemente
lo traduce nel linguaggio assembly
di Kubernetes si avvicina davvero al
il problema è come se dicessi come se il mio codice
dovevano essere compilati per kubernetes cosa
vorrei che apparire come se volessi
compilare un sistema distribuito a
kubernetes questo cosa assomigliano, ma
in effetti capiamo a questo punto che
è un mondo poliglotta là fuori e così via
dobbiamo effettivamente supportare non solo a
unico linguaggio di programmazione ma un mucchio
dei linguaggi di programmazione, quindi in realtà
meta-compilatore in realtà
traduce il codice del linguaggio di programmazione in
una rappresentazione intermedia che corre
attraverso un assemblatore che lo porta a
kubernetes questo significa che è lo stesso
programma che ti ho appena mostrato in Python
Posso anche mostrarti in JavaScript, giusto
sembra un po ‘diverso perché
gli idiomi di JavaScript e il
caratteristiche del linguaggio sono un po ‘
diverso rispetto alle caratteristiche del
Linguaggio Python ma posso definirti
so che posso usare il mio bisogno di tirare dentro
la lingua definisce il mio server. Faccio questo
funzione containerizzata perché non lo faccio
avere decoratori ma quell’idea dietro
è esattamente lo stesso quando si esegue questo
programma distribuisce una copia replicata di
stesso dietro un bilanciamento del carico che si verifica
Il sequestro di Bonetti va bene così sono di nuovo
esprimere il codice che voglio avere
correre
con il DePaul con lo spiegamento
scuse che non avrò eseguito e in
in particolare supporta a questo punto
JavaScript di Python Java c-sharp diventa ruggine
Ruby ed è relativamente facile in effetti
la maggior parte di questi sono contributi della comunità
è relativamente facile aggiungere il tuo
linguaggio di programmazione preferito qui e
e quindi credo che in qualche modo a
chiama alla comunità per dire se vuoi
per giocare con questo se si dispone
idee si prega di venire e check it out
ci saranno collegamenti in seguito, ma ovviamente
è un’affermazione molto grande da dire
che questo lo sai questo bellissimo nuovo
mondo senza una demo per eseguire il che fino esso
suona un po ‘ vuoto e quindi voglio
mostra un esempio di meta-particelle in
azione quindi andremo qui speriamo
è abbastanza grande, quindi ecco qui
quel codice è in realtà un po ‘io
dovuto accorciarlo per farlo entrare
Scivola quindi c’è un po ‘di più
il repository docker il fatto che io
voglio pubblicarlo il fatto che sia così
un IP pubblico ma puoi vederlo
direttiva containerizzata con alcuni
opzioni e il codice che voglio avere
eseguire è fondamentalmente questo è il qui sono
le opzioni qui e il codice che è
effettivamente correndo qui e ora quando io
in realtà esegui questo puoi vedere solo io
dì indice del nodo J s puoi vederlo
in realtà costruendo l’applicazione giusta
quindi sullo sfondo è C che vedi
la finestra mobile ora sta facendo il docker
spingere e in un secondo sta andando a
distribuirlo nel mini cubo di cluster
sta funzionando sulla mia macchina e su questo
puntualizza che sono stati abbinati i log in modo che tu possa
guarda le quattro repliche lì che è
abbinato i log e sta portando il
registra fino allo standard, quindi cos’è
importante qui è che l’esperienza di
eseguire questo codice sembra davvero
l’ esperienza di eseguirlo sul mio
la macchina rimane se stampo uno standard
viene fuori standard sulla mia macchina
ovviamente in produzione questo non è il modo
andresti e implementerai questo codice e
Non sono nemmeno sicuro che sia la meta-particella
è utile per la produzione è davvero
su come prendere lo sviluppatore dal codice
quello è sulla loro macchina per codificarlo
correndo in modo distribuito sul
nuvola si può vedere che l’output da
i vari server che collegherò
in voi potete vedere qui i servizi che
stanno correndo oh vedi in realtà
questo è quello che succede quando lo fai
più demo quelli erano i servizi
dal namespace del sistema cubo ma se
ottieni le distribuzioni che puoi vedere
lì c’è la mia replica a quattro vie del
schieramenti e ora se effettivamente vado e
trova una shell dentro quel kubernetes
il cluster richiede un secondo che posso effettivamente fare
dì W – e puoi effettivamente vedere che c’è
l’output che puoi vedere in realtà nel
tronchi c’è la mia richiesta che passa
e tu sai che posso cambiare anche questo e
vedi la stessa cosa che sta succedendo
e puoi vedere effettivamente lì che il
le repliche sono cambiate perché è dietro il
bilanciamento del carico e quindi spero che si mostri
tu come con un modo abbastanza semplice
pezzo di codice in realtà sono andato e
distribuito un sistema replicato un semplice
sistema replicato va bene e in effetti
in realtà ora, mentre colpisco il controllo C, lo è
effettivamente abbattere quella domanda
quindi davvero l’estetica della corsa a
il programma sulla tua macchina corrisponde al
estetica di correre che programma fuori
nella nuvola, tutto a posto
scorrere ponte qui, ma si scopre
in realtà questo se permetti il programmatore
solo fare questo minuto che distribuiscono
la loro applicazione improvvisamente devono
conoscere la sincronizzazione e
la sincronizzazione distribuita è grande
problema in realtà è uno dei più grandi
ostacoli per entrare in una distribuzione
sistema e così oltre a permettere
le persone a replicare il loro codice credo
è molto importante che li permettiamo
di consumare facilmente i concetti che permettono
per la sincronizzazione tra il codice
in esecuzione su più macchine in modo che
in realtà anche all’interno di un meta partner lo farà
introdurre la nozione di sincronizzazione
questo è un esempio Java di un sincronizzato
bloccare il blocco sembra proprio come
l’interfaccia che è lì per un java
bloccare ma in questo caso particolare questo
il blocco del meta protocollo lo farà
sincronizzazione su più punti
componenti
esecuzione su differenti macchine che funzionano in
diversi contenitori lo facciamo perché
sappiamo che siamo in grado di schierare kubernetes siamo
Sappiamo che stiamo schierando su Kubernetes
possiamo definire una risorsa personalizzata all’interno
il server API community che può essere
il lucchetto che acquisiamo e io posso usare a
sidecar per fare la maggior parte dell’implementazione
del blocco per darmi una semplificazione
API a cui posso accedere dal mio
codice di applicazione questo significa che posso
condividi blocchi tra Java e Python o
JavaScript e nodo o scusa JavaScript
e JavaScript e vai o qualsiasi altra cosa
così e tutta la logica principale
è in questo sidecar riutilizzabile e il
risorsa kubernetes condivisa e così via
Infatti una volta che abbiamo la sincronizzazione possiamo
anche relativamente facilmente master
elezioni e questo è un esempio di fare
master election in Python dove posso
usa la mia meta particle sync per fare un
l’elezione dà a quell’elezione un nome il
stessa infrastruttura lo stesso sidecar il
stessa risorsa di blocco condiviso ti consente di
fare un’elezione principale tra il
componenti diversi pure e ancora I
pensa che questo è come ordinare il numero di
persone che possono capire il concetto di
maestro elettorale e il fatto che tu
so che voglio davvero avere la replica
per affidabilità ma in realtà solo uno
persona che corre alla volta attivamente
correndo alla volta il numero di persone
chi può capire che il concetto è il modo
più grande del numero di persone che possono
implementarlo con successo e così via
permettendo alle persone di consumarlo come un
concetto proprio come fai con lo smistamento
Ho ampliato la base di persone che
avere chi può approfittare di questo
il sistema distribuito si spera
allargare anche la base della costruzione di persone
sistemi distribuiti affidabili perché ora
c’è reale sincronizzazione reale e
un’implementazione condivisa che possiamo
costantemente fare un migliore bene così parte
del valore della condivisione non è solo il
ampia base ma in realtà è il fatto
che ci concentriamo su un singolo
implementazione e tutti gli esperti
venire ad essa che può migliorare
implementazione nel tempo va bene così io
avere circa tre minuti rimasti e
replica e blocco di ciò che replica
è relativamente semplice molti di
probabilmente sapevi già come farlo
il blocco è un po ‘più elaborato ma
di nuovo penso che molte persone abbiano una specie
di capito questo ho voluto mostrare come
possiamo prendere quest’idea dietro meta
particella e allargarla a un altro
complicato schema di sistemi distribuiti
quindi diamo un’occhiata a qualcosa
sharding ci viene richiesto un particolare
la richiesta va a sempre va a
macchina specifica proprio questo è utile se
farai il caching locale
utile se vuoi avere se vuoi
per controllare domini e cose falliti
come se questo fosse il layout di cosa
il sharding sarebbe simile a Kubernetes
hai un servizio di bietole di routing è
un servizio di bilanciamento del carico che trasmette tutto
il suo traffico verso i router che è
quelli sono apolidi e rotondi
replicato il router shard è la cosa
questo è responsabile della logica di
quale del a sparare quale del
frammenti specifici dovrei prendere questo
richiesta di e così in particolare è possibile
vedi che tutte le richieste verdi arrivano
in e vengono consegnati a shard 0 tutti
le richieste blu arrivano da tutto il
router shard e vengono consegnati a shard
1 e tutte le richieste gialle arrivano
e sono consegnati a shard 2 giusto
quindi insegnare a qualcuno di questo è
relativamente complicato devi sapere
Chi si deve insegnare loro
cose come hashing coerenti e altro
tipo di cose che devi insegnare loro
su come costruire un router shard se
qualcuno ha mai schierato qualcosa del genere
questo ti ritrovi a parlare di codice
che riscrivi più e più volte
loro codificheranno in quel router shard
qualcosa che continui a riscrivere e
di nuovo vogliamo avere di meglio
riusabilità Voglio che le persone siano in grado di farlo
consumare sharding come concetto, quindi cosa
Ti sembra se lo si fa a Meta
particle è un po ‘di più
complicato rispetto alla replica qui
un esempio di Java ne ho
informazioni di imballaggio che avevo prima
invece di repliche ho quattro frammenti
e invece ho aggiunto questo sharding
modello e questo modello di sharding
in pratica dice qual è la chiave del
Richiesta HTTP in modo che io voglia che tu divida
su e in questo caso particolare di quattro casi
è una specie di brutta espressione regolare
quindi mi scuso per questo, ma fondamentalmente
dice che voglio un frammento sul nome utente così
tutte le richieste per un particolare utente
dovrebbe andare a un particolare frammento e poi
sotto è il codice che viene effettivamente eseguito
su ogni singolo server giusto così
mi permette nello stesso codice che io
implementare il server per consumarlo
concetto di sistemi distribuiti di sharding
va bene così per la demo finale lo farò
diamo un esempio di ciò se cadiamo
qui a questa condivisione sto andando a
mostra l’esempio in JavaScript qui
è la stessa più o meno la stessa cosa che
era in quel Java prima di shard
specifica lo schema URL in questo
caso sto solo usando l’intero che sei
Farò la stessa cosa che sto gestendo
jsut può vedere che sta costruendo il contenitore
lo spingerà fino alla finestra mobile
registro una volta che la spinta è finita è
sta per andare e distribuirlo in questo
caso particolare nella distribuzione a
kubernetes sembrerà un po ‘
un po ‘diverso perché ora in realtà sono
usando set di stati e così ora ho un
set stateful che viene distribuito e
puoi vedere quei set di stati che iniziano
a venire Sto distribuendo due servizi
il web il servizio sharded stesso e
i router shard e sto implementando questo
distribuzione replicata che è il mio frammento
router e così ora, se lascio cadere nella
cluster e mi scuso sono solo un
secondo nel tempo ma sarò finito
lo prometto
ora quando lo faccio raddoppiamo
puoi vedere che ogni singola richiesta I
inviare a quella richiesta sta andando è essere
revisionato dallo stesso shard a destra e se
Cambio il percorso forse ora è in corso
servito da zero frammento e se cambio il
il percorso qui è di nuovo uno a destra
quindi puoi vedere qui con quella semplice
annotazione all’interno del mio codice in un
modo idiomatico che posso esprimere e distribuire
il concetto di sistema distribuito come
meta particella sharding è sul web
meta particella do github net / meta
particelle hanno davvero vi incoraggio a venire
controllarlo fuori grazie tanto per
ascoltando e godendo il resto del
conferenza
[Applausi]
[Musica]
[Applausi]
quindi abbiamo una pausa di 30 minuti, ma penso
c’è un sacco di gente qui che
probabilmente vorresti fare alcune domande
lo faremo un po ‘speciale da allora
è il mio compleanno oggi che non voglio
parlare troppo, quindi se ne hai uno
domanda solo in coda nel suono del microfono
buono ma ne ho uno dall’app se lo faccio
posso chiedere che prima chiediamo cosa fanno
pensi che arrivi dopo questa era di api
e micro-servizi e se sapevo che mi
non voglio dire, penso che uno dei
sfide è di essere nel mezzo di
qualcosa è difficile immaginare cosa
il futuro diventa dopo che penso a
molti modelli sono inevitabili come noi
ho visto che siamo passati dai monoliti a
client / server e ora stiamo tornando indietro
e poi siamo tornati così simili a te
sorta di monoliti su mainframe e
poi sei andato su client / server con X
e poi sei tornato ai monoliti
PC e ora torniamo al client / server
con mobile e API sai forse
decideremo che i micro servizi sono
troppo difficile da capire e andremo
indietro e i telefoni diventeranno potenti
abbastanza che ci torneremo
costruendo monoliti sui telefoni che non ho
so che non sono sicuro di avere una buona risposta
a quella domanda scusa va bene io
penso che fosse solo più del tuo sapere
e i tuoi sentimenti
Penso che api sei davvero io
onestamente, credo che le API siano qui da molto tempo
il tempo penso che il disaccoppiamento sia davvero
le preziose e le API si attaccheranno
in giro per molto tempo ma probabilmente
suonerà come se tu sapessi qualunque cosa
citazione era come nessuno potrà mai bisogno
più di 640k di memoria o quant’altro
esattamente un’altra domanda ci sono piani
per voi di avere il tipo di meta-particella di
diventare più pronto per la produzione intendo cosa
sono i passi che stai osservando
bisogno di essere lì per essere persona così
è una domanda interessante, buona giornata
due non sono affatto lì come me
non ho idea di cosa sia la storia dell’aggiornamento
sembra in questo in questo ambiente
io stavo parlando con Anders Helzberg
in realtà chi è il creatore di c-sharp
e dattiloscritto e io stavamo avendo un
sai come fai a parlare di una conversazione
indipendentemente dal fatto che Haskell abbia avuto successo
linguaggio perché è quello che fai quando
stai parlando con il programma
signore persone e ed ero sostenendo che
Pensavo che Haskell non fosse stato
particolarmente efficace come lingua
perché non è realmente in diffusa
usare ma ha sostenuto che in realtà in realtà
ha avuto molto successo perché il
concetti di cose come le funzioni lambda
e le funzioni anonime e altro
pezzi delle cose che hanno spinto
in avanti sono ormai onnipresenti ogni singolo
il linguaggio di programmazione è anonimo
funzioni e l’idea di essere in grado di
passare una funzione e cose del genere o
ora onnipresente nei linguaggi di programmazione
e così bene il linguaggio stesso no
vedere l’ adozione diffusa dei concetti
che è diventato importante
concetti nella programmazione popolare
lingue e penso che se dovessi sperare
per il successo è lì che successo
sembrerebbe che questo sistema non lo sia
il sistema che ci porta avanti ma è così
è il sistema che esprime alcuni dei
idee che diventano pezzi importanti e
in cose che costruiamo nel futuro così
davvero voglio che sia un forum per
discussione e un forum per
sperimentazione più di me perché io
penso che sia la fase in cui ci troviamo
stiamo cercando di capire cosa dobbiamo costruire
non penso che abbiamo le risposte e
certamente non ho le risposte ma
è interessante quindi c’è una start-up
fuori Seattle mi ha chiamato Pulu
lanciato che sta facendo molto simile
le cose in realtà e così penso di esserlo
iniziando a vederlo per un po ‘, davvero
pensavo che fossi come se tu conoscessi il pazzo
ragazzo fuori nei boschi ma sto iniziando a
vedere i segni e parlare con le persone che sono
iniziando a vedere più persone
indipendentemente venire allo stesso
conclusione che credo significa che siamo in
loro siamo nel momento della sperimentazione
dove scopriremo cosa
c’è bisogno di costruire una plumina così particolare lì
era in realtà una domanda attraverso l’app
riguardo è la differenza tra plumie
e meta-particella meta-particella era sei
mesi prima, in realtà un po ‘
più a lungo di ciò che in realtà non ho incontrato
Incontro Joe Duffy, amministratore delegato di
io un po ‘perché ci piace
rassicurarci a vicenda che non erano pazzi
che probabilmente significa solo entrambi
pazzo ma penso che la differenza sia
che per ora almeno il paluma è davvero
incentrato sulla parte di schieramento davvero
concentrato su come esprimo il mio
infrastruttura come codice che in realtà non
fai questo mix di codice dell’applicazione e
codifica nello stesso posto che meta
la particella sta cercando di farlo credo che lo siano
focalizzato sul prendere via il dolore
utenti esistenti di alcuni di questi sì
lingue come il malish
Sono davvero affascinato da come lo facciamo noi
gli sviluppatori di bridge cs101 diventano cloud
sviluppatori nativi e e II ma io su
dall’altra parte penso anche di avere il
vantaggio di poter fare una scienza
progetto e quindi meta-particelle è più di
un progetto scientifico penso che sia Paluma
cercando di essere utile oggi, ma immagino
che stavano per finire in un
luogo approssimativamente simile al progredire del tempo
sì sì ed è probabilmente un grande
cosa scrivere solo spostando il tutto
industria avanti a destra Rob sì, penso
questo è ciò che intendo davvero quando aprono
anche la fonte e e io penso che sia così
sì, mi sento davvero come se fosse presto
abbastanza che abbiamo solo bisogno di parlare a
molto a collaborare alle idee e
capire quali sono le idee giuste
piuttosto che come essere oh, lo sai
quello che fai e lo facciamo e
qui è dove ci differenziamo e tutto
questo genere di cose va bene così penso
questo è davvero fantastico
due altre domande veloci e sì io
non vedo nessuno in coda quindi andrò bene
continua a chiedere loro che sia il mio compleanno
chiaro Adam ha detto che se vuoi chiedere a
domanda il microfono è proprio lì così giusto
mettere che là fuori o solo l’amore
ascoltando la mia voce e lui le ha consigliato il passato
i venditori scusano qualsiasi consiglio per il passato
trasgressori dei venditori precedenti, e allora perché ho dato
tutto questo discorso non so se lo è
disponibile ovunque ho dato questo discorso a
tempo fa chiamato morto passa da tempo vivo
passare e sostanzialmente la mia supposizione e
Penso che è gestito ancora più vero di quanto lo
è stato quando ho fatto è che i passaggi sono dentro
il bit sta diventando refactored in cima
dei pass di orchestrazione dei contenitori utilizzati
essere costruito fino al metallo e molto
monolitico e una grande scelta, proprio tu
erano un negozio di fonderia di nuvole o eri in
conosci qualche altro negozio Heroku o
eri tu eri un monolitico
decisione perché era difficile da condividere
cose tra loro e perché lo era
un così grande tipo di investimento da implementare
quel gruppo penso quello che stiamo vedendo
come questi passaggi vengono refactored in cima a
registrazione del container e oltre
kubernetes è che è molto più piccolo
decisione è una decisione che una squadra può
fare al contrario di una società e quella
c’è di meglio
una migliore interoperabilità perché mi piace
il livello di scoperta del servizio di kubernetes
è ancora lì quindi un servizio che tu
costruisca in Lei sa aa funzioni come un
il servizio potrebbe essere effettivamente disponibile
in un percorso di 12 fattori a destra e quindi penso
ciò significa che è molto meno intenso
scelta
ha anche significato che è molto più facile
per costruire questi sistemi e perché è
Più facile da costruire li stai iniziando
per vedere i professionisti che sono soggetti
importa esperti nel particolare pezzo
di esperienza di sviluppo costruire percorsi che
altrimenti non sarebbe stato in grado di farlo
perché avrebbero dovuto costruire il
bit di sistema distribuiti quindi penso
vedrai un’esplosione di anthea
già o vedendo c’è qualcosa di simile
dieci diverse implementazioni di
funziona come un servizio in cima a
kubernetes hai intenzione di vedere questo tipo di
Esplosione di passi del Cambriano mirata a
varie aree in costruzione sopra
orchestrazione di container e container I
direi se non lo stai facendo e
il tuo fornitore di pastiglie sei tu probabilmente lo sei
facendo male, ma penso che abbiano tutto
capito che a questo punto e e
poi penso a cosa vedrai
è molto più verticale perché
la differenziazione arriverà
dall’esperienza degli sviluppatori e da
il targeting per un particolare verticale
al contrario di voi conoscete la qualità di
il sistema distribuito perché è così
sta per venire dai contenitori e
orchestrazione del contenitore cool e Oh turn
intorno e abbiamo domande andare avanti
sì io per una domanda su fondamentalmente
questa cosa futura perché ho visto il tuo
demo e trovo molto interessante ma io
vedi ancora avviso di cui hai bisogno fondamentalmente
di sapere come si come hai detto è necessario
conoscere tutti i concetti su come come
molte repliche ho bisogno di CRT vedete a
futuro dove puoi effettivamente ottenere o
non ne hai bisogno o puoi solo
esprimere il tuo codice visione e poi
viene schierato in un modo che è più
efficiente sì, voglio dire che lo penso
è sempre stato così che intendo
alcuni modi che sono sempre stati l’obiettivo di
percorsi penso che ci sia questo tipo di idea
che puoi andare a ciò che la gente chiama
codice guidato dall’intento dove puoi dire
qualcosa come questo codice 250
latenza di millisecondi si conoscono quattro nove
tempo di attività come si danno le specifiche per cosa
si desidera che il codice per fare in contrapposizione a
la topologia che dovrebbe essere il tuo codice
schierato in penso che dobbiamo costruire
queste cose negli strati giusti e penso
e e così e penso che il
la sfida è che quando si salta al
passato
lì non costruisci le cose qui sotto
la tana della PA in un modo modulare disaccoppiato
e così finisci con questi monoliti
così io penso che si debba costruire penso
idealmente arriviamo in quel posto, penso
è davvero difficile e penso che succederà
prendere un sacco di pensiero e un sacco di
sforzo per costruire i livelli giusti
Voglio dire, penso che se guardi la specie
dello sviluppo di sistemi operativi
era come hai scritto direttamente a
non c’era nessun sistema operativo e tu
ha scritto direttamente alla macchina e oltre
tempo abbiamo capito che cosa è giusto
astrazioni sono a livello sopra esso
ci vuole molto tempo per farlo bene così
quindi lo spero ma non voglio piacermi
non voglio saltare troppo in una volta
passo sì c’è un concetto da CS
101 che ci ha messo un po ‘a raccogliere
Iniezione di dipendenza da sviluppatori in metallo
esperimenti sulle particelle hai preso in considerazione
configurazione del contenitore di dipendenza
iniezione per essere esplicitamente il cloud
implementazione di esso sì penso II
ho sempre pensato che il
roba metaforica è organizzata intorno
l’unità di un singolo micro servizio e
quindi spero davvero che la dipendenza
l’iniezione proveniva da qualcosa come un
servizio di rete piuttosto che da qualcosa
che hai effettivamente inserito nel tuo codice
perché mi sembra che tu lo voglia
disaccoppiamento giusto se il tuo codice sa come
iniettare una dipendenza che probabilmente sei
troppo strettamente collegato al tuo al
dipendenza se non stai attraversando a
bilanciamento del carico se non stai andando
attraverso una sorta di scoperta di servizi
quindi in realtà penserei che un servizio
mesh è un modo migliore per avvicinarsi
qualcosa come iniezione di dipendenza per
micro servizi piuttosto che entrarci
il codice ma non so che sarei molto
interessato a vedere come sarebbe
come grazie , mi dispiace tanto
questo lo sai , penso che siano loro
i nativi stanno diventando irrequieti, oh no
bene sarò qui se la gente vuole
venire a chiacchierare sarò semplicemente rilassarsi in modo
grazie mille, apprezzo davvero
facciamo ancora un giro di applausi
tu
Please follow and like us: