Press "Enter" to skip to content

GOTO 2016 • How Platforms Work • Casey West


come stanno tutti
eccellente eccellente anch’io sto bene
ecco il mio codice sorgente eseguirlo nel
nuvola per me non mi interessa come questo discorso
riguarda il modo in cui le piattaforme funzionano
molte discussioni sull’orchestrazione di
risorse infrastrutturali che abbiamo avuto
parla della pianificazione dei carichi di lavoro
quelle quelle risorse e questo discorso è
andando a sorta di spostare il software
impilare in quello che sembra
hai un operativamente maturo
ambiente di produzione quindi voglio
discutere di piattaforme, ma ho bisogno di fare
certo che siamo sulla stessa pagina, quindi vado
per definire ciò che penso una piattaforma
è così che siamo tutti d’accordo e quindi
si spera che tu sia d’accordo con me e quando tu
parlare di piattaforme dopo questo
conferenza dirai quello che dico perché
Penso che sia una buona idea, ma
prima di tutto il più importante
cosa che ha Twitter i suoi ragazzi del 2016
twitter twitter se hai twitter tu
può twittare a me se siete d’accordo con
quello che dico mi sento libero di vivere
tweet che vedremo come va, ma tu
posso raggiungerlo in questo modo chi è
sentito di e-mail e-mail e-mail sì, se tu
non sono d’accordo con me molto più che puoi
scrivimi questo è il mio indirizzo personale
sentitevi liberi di entrare in contatto con me va bene
Scrivo alcune cose su internet da
di volta in volta puoi leggerli lì
quello dovrebbe essere qualcosa che puoi controllare
più tardi quindi ho lavorato per questa compagnia
chiamato fondamentale che ha sentito parlare di chiave
solo poche persone in realtà un sacco di gente
è grandioso che costruiamo molto
software open source ne vendiamo anche alcuni
cose, ma sto discorso non andando a tale proposito
oggi crediamo nel restituire noi
credi nel dare più di quello che otteniamo io
penso sia fantastico e io davvero
apprezzare quel fondamentale mi permette di venire a
posti come questo e fare conferenze come
questo così è dovuto, quindi parliamo
sulla piattaforma minima vitale che ci piace
MVP abbiamo ascoltato MVP nell’ultimo
parlare è una cosa grandiosa di cui parlare
non spendiamo sempre abbastanza tempo
capire che cosa sia fattibile giusto noi
trascorrere molto tempo con il minimo e io
così che è MVP minimo vitale
piattaforma quindi descriviamo il
caratteristiche operative di un maturo
ambiente utilizzando una serie di rubriche così
Sto andando descrivere un paio di funzionalità
che dovresti avere in produzione oggi
se hai un immaturo operativo
per prima cosa l’ ambiente è necessario completamente dinamico
Routing DNS e bilanciamento del carico, se si
voglio spingere una nuova applicazione o una nuova
servizio nella tua architettura tu
non dovrei parlare con nessuno in
per ottenere risorse fornite
non dovrebbe dover parlare con nessuno per ottenere
Le voci DNS colpiscono un buco in un firewall
regolare l’aggiornamento del bilanciamento del carico
file di inventario di gestione della configurazione
se devi fare qualsiasi cosa, non lo è
molto automatizzato è e dargli un po ‘se
devi regolare manualmente l’automazione
come automatizzare è il tuo sistema tu
non dovrei parlare con nessuno per farlo
che non dovresti avere un ticket
e aspetta l’IT o aspetta qualcun altro
dovrebbe succedere e non è solo
importante per spingere cose nuove ma
ridimensionamento delle applicazioni esistenti
o addirittura ridimensionamento in al fine di ottenere
più efficiente utilizzo delle risorse voi
dovrebbe essere in grado di farlo di nuovo senza
l’intervento di un altro essere umano
in effetti dovrebbe essere completamente automatizzato e
questo sarà un tema che l’automazione dovrebbe avere
essere lì già
quindi abbiamo bisogno di un broker di servizi di supporto se
costruisci un’applicazione e non lo è
solo un giocattolo quindi probabilmente parla
altre cose va bene questo è un
datastore o un database un livello di memorizzazione nella cache
bus del messaggio forse una API esistente che
hai scritto quello che esiste
da qualche altra parte o anche da un mainframe
stai cercando di interagire con 8 an
Database Oracle qui
assolutamente enorme che devi
interagire con qualunque cosa tu debba
collegare un’applicazione ad altre cose
e dovresti essere in grado di farlo in a
modo completamente automatico quando si distribuisce un
applicazione non dovresti andare a chiedere
per le credenziali di autorizzazione e
informazioni di accesso alla rete al fine di
connettersi a Redis che devi inviare
un biglietto
qualcuno genera speranzosamente un nuovo
password per il tuo caso d’uso particolare
e applicazione e quindi probabilmente
cifrare l’hanno messo in un altro biglietto
lo inviano in una e-mail ai tuoi sviluppatori
copialo e incollalo nel loro codice
forse in un file di configurazione che è
di nuovo non molto automatizzato che sta mettendo
un sacco di esseri umani in quello che dovrebbe
in caso contrario, si tratta di un processo completamente automatizzato
quindi dobbiamo essere in grado di eseguire il provisioning automatico
servizi di supporto nuovi di cui abbiamo bisogno
per i nostri servizi quindi se stiamo costruendo un
nuovo micro servizio e abbiamo bisogno di Redis o
abbiamo bisogno di MySQL dovremmo essere in grado di
fornire loro un clic senza umani
coinvolto in quel processo se vuoi
accesso a infrastrutture esistenti o
servizi esistenti si dovrebbe essere in grado di
fornire l’autenticazione e e
le informazioni di accesso alla rete automaticamente
e che dovrebbe essere fornito dal
ambiente in cui vivono le tue applicazioni
hai bisogno di un’orchestrazione infrastrutturale così
abbiamo parlato molto di questo oggi tu
sappi che questo è il tuo occhio come strato tuo
infrastruttura programmabile la capacità
allo storage di calcolo delle provviste on-demand
e risorse di rete , ma io voglio
fare un passo avanti non è solo
sulla capacità di automatizzare
infrastrutture si tratta di avere quel
automazione già in atto dovresti
non è necessario passare attraverso un approvvigionamento
passo o una fase di approvvigionamento al fine di
ottieni nuove risorse quando vuoi
distribuire un’applicazione che non dovrebbe avere
aspettare giorni giorni qualsiasi tempo in
Per ottenere quelle quelle prime
risorse infrastrutturali la produzione
l’ambiente dovrebbe gestirlo per te
automaticamente e nuovamente dovrebbe essere
completamente automatizzato
non si tratta di programmabili
infrastruttura è programmato per
l’infrastruttura è fatta se tu hai
che se va bene allora puoi prenderlo
davvero un buon monitoraggio della gestione della salute
e il recupero a diversi strati della
impilare se il tuo fornitore di servizi cloud perde a
macchina virtuale o in un’istanza per
tu che succede di tanto in tanto
non dovrebbe essere un incidente di paging che
non dovrebbe essere un downtime che non dovrebbe
essere un disservizio di servizio la tua produzione
l’ambiente dovrebbe notarlo
guasto infrastrutturale che dovrebbe sapere
cosa fare al riguardo e dovrebbe solo
fallo automaticamente dovrebbe aggiustarlo
dovrebbe recuperare e dovresti essere in grado di
so che è successo, ma spero che dopo un
buona notte di sonno quando si entra in
lavora qualunque giorno dopo ti metti al lavoro
nessun grosso problema
e poi se alziamo la pila quando
distribuisci applicazioni e le fan
fuori su un cluster distribuito e
ne hai forse 50 o anche 500
istanze se alcuni casi si comportano male
forse moriranno che non dovrebbe essere un
nel tuo ambiente di produzione
dovrebbe notare che e recuperare da esso
hai bisogno di un artefatto immutabile
repository che qui ha sentito parlare
contenitori spero ormai tutti
alza la mano in modo che i contenitori siano ordinati
perché ti costringono a isolare il
costruire distribuire ed eseguire fasi di gestione
e l’aggiornamento delle applicazioni devi
costruisci un artefatto immutabile in un punto
tempo un’istantanea della tua applicazione
qualcosa che sai di qualcosa
puoi ispezionare qualcosa che hai
provenienza o capisci il
provenienza di quel contenitore che conosci
cosa c’è dentro
e una volta che si costruisce allora dovete
distribuirlo e una volta che si distribuisce poi
si può girare in su è possibile eseguirlo e
si può girare su più di loro e che
succede molto velocemente per poter ottenere
che hai bisogno di un repository da qualche parte
Metti quella immagine o quella immutabile
artefatto che è molto vicino a
produzione in modo da poter ottenere uno dei
concetti principali di un’app 12 fattori o a
app nativa del cloud che è la capacità di
gira rapidamente e ha anche grazia
lo spegnimento parlerà di grazia
spegnersi un po ‘ma essere
in grado di spendere rapidamente significa che puoi
rispondere agli eventi in arrivo che puoi fare
cose come il ridimensionamento automatico e non è possibile
rispondere rapidamente se devi costruire il
mondo ogni volta che vuoi aggiungere un nodo
alla tua infrastruttura è anche quello
lento se è minuti è troppo lento
finalmente e questo è di nuovo minimo vitale
Piattaforma di prodotto è necessario il registro completo
aggregazione se siete di nuovo
distribuendo un’applicazione o molti
applicazioni attraverso il cluster di
calcolare le risorse non necessariamente
sapere dove sono non dovresti davvero
devo preoccuparmi ma è importante essere
in grado di ottenere i registri e capire il
caratteristiche operative di questo
applicazione nel caso in cui sia
comportamento anomalo o si desidera fare analisi
o vuoi fare un monitoraggio degli eventi e
non dovresti avere SSH nel tuo
ambiente di produzione per poterlo fare
e andiamo a cercare dappertutto
i tuoi file system per cercare e trovare i log
quindi da questo giorno in poi se prendi
nient’altro lontano da questo discorso e io
spero che tu prenda altre cose
non più SSH in produzione da questo
giorno in avanti nessuno in questa stanza lo farà
mai farlo di nuovo, giusto non ce l’abbiamo
per farlo o sai qualunque cosa facciano
su Windows RDA RDS o nessun RDS è
qualcos’altro desktop remoto, quindi questo è
il minimo insieme di capacità di te
ho bisogno di avere ciò che io
consideri un essere operativo immaturo
l’ambiente è importante per loro
già essere in atto vi garantisco che
se guardi questa lista
o hai questi o ci stai provando
incollare alcuni componenti insieme per avere
o stai cercando di trovare qualcuno a
dare a voi forse al largo della piattaforma, ma
qualunque cosa tu stia cercando di ottenere
queste serie di capacità queste volontà
portare all’abilitazione allo sviluppo, quindi questo
è dove voglio fare un’altra domanda
quante persone qui descriverebbero
voi stessi come ingegneri applicativi o
sviluppatori stai costruendo qualcosa
ai quadri e ai consigli di amministrazione piace
chiama valore aziendale quante persone ci sono
facendo questo un numero abbastanza decente va bene
e poi magari su questo lato quanti
la gente direbbe che il tuo lavoro è
più gestione delle applicazioni per mantenerle
vivo mantenendo i fuochi da
sorpassando tutto mantenendo quelli
applicazioni attive e in esecuzione quante
le persone sono nel lato dell’operatore del
casa molte meno persone sono responsabili
per il casino che il primo gruppo ha creato
il in questa stanza e poi quanti
la gente qui direbbe che sei da qualche parte
nel mezzo e fai il
DevOps hai entrambe le responsabilità
di costruire il valore del business e
gestire il valore aziendale così
quello è che alcune persone qui sono brave quindi io
proprio come avere un’idea di dove siamo
nel pubblico è così che aiuta
molto, quindi voglio fare uno specifico
punto e ho intenzione di usare un po ‘
di un’analogia qui per avere un
auto completamente funzionante non puoi
avere l’ impianto elettrico di quella macchina
ora l’elettro è il sistema elettrico
già abbastanza complicato è un grande
sistema è importante che tu lo abbia
ma hai bisogno di un sacco di altri sistemi come
bene sono tutti così complicati e
sono complicati dentro di loro
e quindi i punti di integrazione tra
sono complicati ma qual è il
punto di avere una macchina è per entrare e
guidare da qualche parte come subito
questo è quello che vuoi fare proprio così
allo stesso modo voglio renderlo veramente chiaro
che quando si parla di piattaforme
non stanno solo parlando
contenitori non è sufficiente avere
contenitori ci sono un sacco di altre cose
abbiamo bisogno di aver parlato del provisioning
strati abbiamo parlato di orchestrazione
strati oggi in questo discorso sto andando a
parla delle interfacce che vanno in cima
di tutto ciò quindi interagire non solo
con gli altri componenti del tuo
architettura ma anche le persone
devi interagire e gestire il tuo
le applicazioni in primo luogo, quindi siamo
spostando la pila più vicino al
applicazioni che desideri creare
ogni giorno quello che ti dà il tuo unico
valore aziendale , quindi userò open
fonte Cloud Foundry per dimostrare
queste capacità solo per darti un
panoramica molto rapida del limite superiore
arriva in due strati base quello inferiore
il livello del sottosistema è chiamato Bosch
gestione del ciclo di vita del sistema distribuito
quindi questo è il tuo aggiornamento che sai rotolare
aggiornamenti completi senza tempi di inattività il vostro
installazione di infrastrutture con versione
on-demand ma con l’essere primitivo a
completo sistema distribuito non solo il
server qui e un server lì che tu
devi mettere insieme te stesso l’intero
sistema distribuito è gestito come un
entità singola e puoi farlo Bosch
gestisce sistemi distribuiti stateful
altrettanto bene di qualsiasi altra cosa e uno di
i sistemi distribuiti stateful che noi
indossare è Cloud Foundry Cloud Foundry
è più della tua applicazione elastica
runtime più servizi automatizzati questo
ti dà lo stesso tipo di resilienza
e aggiornamenti e gestione rolling per
applicazioni che stai costruendo
ci si arriva al livello inferiore lì per
Bosch quindi, dove Bosch è più di un
interfaccia operatore IT e operazioni
potrebbe interagire con questo potrebbe essere di a
il team ha chiamato l’ ingegneria della piattaforma che abbiamo
uno chiamato cloud ops quindi ci piace
il nome che puoi rubare ruba cloud ops
è bello
e quindi questo è più del tuo sviluppatore
interfaccia quindi questo è per il tuo
ingegneri applicativi e il tuo
operatori di applicazioni e stiamo andando a
essere per lo più usare questo oggi per fare un
un po ‘ di dimostrazione questo è un
tipo di lista di secchio di livello molto alto di
cose che ottieni quando usi Cloud
Fonderia fuori dagli schemi un sacco di questo è
nella piattaforma Minimo che abbiamo
parlato Non ho intenzione di parlare di
troppe di queste cose, ma lo farò
evidenzia questi piccoli frammenti qui
questo è importante perché uno dei
cose su Cloud Foundry è così
completamente infrastruttura agnostica
può eseguirlo in locale in un centro dati
oltre a roba simile a VMware , se lo sei
in quello o OpenStack e poi puoi
eseguilo anche su AWS come Google Cloud
qualunque cosa tu voglia e tu corri
istanza te lo gestisci così sono
in realtà sarà demoing in esecuzione a
istanza molto leggera sul mio portatile
Qui
quindi mi sono riempito come un intero cloud, giusto
qui ma ma questo è
pulito che è possibile eseguire in modo da nessuna parte
Facciamo una demo dal vivo Uso un gargoyle su
questa diapositiva perché niente potrebbe
forse andare storto in una demo live vedi
dove siamo a noi abbiamo circa 20 minuti
va bene, quindi quello che voglio fare è
dimostrare la piattaforma minima vitale
funzionalità che utilizzano Cloud Foundry e così via
Voglio mostrarti un po ‘ di codice
qui ho questa piccola app è a
è un micro servizio è la mia ragazza
perché è piccolo in questo caso e cosa
vogliamo fare è fare un po ‘di a
revisione del codice di quante persone fanno
Ruby o sapere di Ruby ha sentito parlare di Ruby
wow per curiosità quante persone
qui stanno facendo dotnet o interagendo
con rete sentito molte domande su
giù quella fonderia che appoggia pienamente
net su Windows e ottieni con venti
dodici ottieni la risorsa processo I
vincoli e con Windows 2016 lo farai
ottenere quella piena containerizzazione che era
ho parlato di ieri è abbastanza bello
ma diamo un’occhiata a questa app Ruby
è molto semplice e facile da leggere
vediamo prima il nostro file gem in
L’ecosistema di Ruby è così che noi
menzionato le librerie di terze parti che noi
su cui faremo affidamento, quindi vado
per usare mi scusi il server web Puma
e il framework web di Sinatra possiamo noi
leggere questo nel retro sì buono e il
Il framework web di Sinatra è molto
leggero particolarmente buono per
la creazione di API JSON molto rapidamente utile
Dimostra quel genere di cose che le persone usano anche
è in produzione e c’è assolutamente
niente di sbagliato in questo prendiamo un
guarda di nuovo il SAP molto semplice
andando a legare all’indirizzo IP che
dice che ascolteremo su qualsiasi interfaccia quando
stai correndo in container
sistema hai una rete isolata
interfaccia che non si conosce necessariamente a
molto su quella interfaccia di rete e
quando stai correndo su un server distribuito
cluster devi anche ottenere informazioni
dal tuo ambiente su quale porto noi
aspettiamo che la tua candidatura funzioni così noi
non usare hard-code per non avere il
garanzie del porto 80 o del porto 443
più così anche per questo lo faremo anche noi
ottenere il nostro numero di porta fuori dal
ambiente questo è uno di questi dodici
principi dei fattori per ottenere il nostro
informazioni di configurazione iniziale del
ambiente forse per lo sviluppo se lo sono
non eseguirlo in un distribuito
cluster andrò avanti e di default
a un numero e va bene e questo fine
punto come ho detto è molto semplice è
andando a emettere JSON la chiave sarà
istanza e il valore sarà il CF
esempio
indicizzare un’altra variabile d’ambiente
Cloud Foundry ci fornisce perché come noi
fan out o orizzontalmente scala in
l’applicazione Cloud Foundry manterrà
traccia di quante istanze abbiamo e
quanti ne vogliamo e lo garantirà
e fare certe promesse su sempre
avendo quel numero di istanze così
manterrà traccia ed è importante da fare
questo perché non abbiamo un pre-forked
server più
correndo su un lavandino su un singolo nodo noi
abbiamo scala con il processo
modellare un’altra app con 12 fattori ma
succede accadendo su un grande
cluster distribuito o in questo caso è
cluster distribuito un po ‘piccolo ma
tuttavia questo ci aiuterà
dimostrare idee attorno all’orizzontale
scalabilità e bilanciamento del carico e così
sorta di cosa, quindi ho questa applicazione
e quello che voglio fare è distribuirlo
il cloud userò il CF
utility da riga di comando che opereremo
da qualche parte in quella regione dello schermo
l’utilità della riga di comando CF è un go
avvolgere intorno a una riposante api tutto
che sto facendo qui puoi fare pienamente
programmabile tramite una pausa API e questo è
piuttosto grande, ma questa utilità può andare
anche essere eseguito ovunque e io sto prendendo di mira a
istanza specifica di Cloud Foundry via
questa API è in esecuzione sul mio laptop come me
accennato io sono un utente amministratore, lo farò io
punterà anche a questa org in questo
spazio tutte le applicazioni e il
i servizi che distribuirò saranno isolati
in uno spazio che è solo il generale
secchio dentro un’org che è un altro
secchio generale e puoi averne tanti
di quelli come si desidera che una specie di bella
per un multi-tenancy
che hai quel livello di isolamento
ma cosa voglio fare e solo dare
sei un’idea io sono in questa applicazione
qui quindi voglio solo digitare CF push e
distribuire questa app prima di farlo io
voglio mostrarti un altro pezzo di codice
è questo manifestare il file ml che è
manifestare la destra giusta che si manifesta
quel file di llamo è qualcosa che Cloud
Foundry si aspetta ed è un file di base
che elenca le aspettative operative
che abbiamo di questa applicazione quando si corre
sulla piattaforma puoi mettere vari
limiti di risorse qui e altro
caratteristiche operative che ho appena
un po ‘di cose mi darò un nome
Gli darò un limite di memoria se questo
l’applicazione ha avuto una perdita di memoria e ha colpito
tale limite la piattaforma si spegne
quell’istanza di questa applicazione
perché ho raggiunto il suo limite di memoria e lo sarà
gira uno nuovo al suo posto lo farà
errare sul lato della disponibilità e quindi
Mi limiterò a dargli un comando di base da eseguire
applicazione così quando volevo giocarci
Sto solo andando a premere CF che sto per fare
utilizzare un po ‘di internet ora così
se potessi interrompere lo streaming da Netflix
sarebbe fantastico, quindi eccoci qui
cosa sta succedendo quando colpiamo noi
digitare CF questo richiede la mia applicazione
e lo mette in uno stager così gli stagisti
responsabilità e Cloud Foundry è a
costruisci quell’oggetto immutabile che noi
parlato di questo ha bisogno di costruire quello
contenitore quell’immagine così ciò che fa è
ci vuole l’applicazione distribuirlo nel
stager inizia con uno scarso
File Linux del file system basato su Ubuntu
sistema e quindi ispezionerà il
applicazione sa che è una app rubino così
quindi metterà giù il runtime di Ruby
metterà giù le risorse che noi
bisogno in cima a quel file system di base
farà la stessa cosa per Java PHP andare
binari Python net qualunque cosa tu abbia
metterà il runtime lì e
allora perché è Ruby, sa che noi
è necessario eseguire l’installazione del pacchetto per
installa una libreria di terze parti
stipare la nostra app in quel contenitore e ora
abbiamo un contenitore che è davvero carino
quindi costruisce quel contenitore e poi esso
lo memorizza in quello che chiamiamo il negozio BLOB
che è un artefatto immutabile
repository che è come se fosse analogo
a un repository docker ma tutto ciò si crea
il gasdotto è già cotto in questo
ambiente di produzione che ho qui
e poi, naturalmente, girerà solo un
istanza per impostazione predefinita ne produrrà una così
vediamo cosa succede se andiamo a questo
nel nostro browser possiamo vedere che noi
avere un’istanza che va bene
utile è molto buono per la mia demo ma
forse vogliamo ridimensionarlo in modo che io solo
voglio ridimensionarlo così andiamo
ora ne abbiamo tre e se voglio guardare
a questa applicazione in un po ‘di più
dettaglio Posso farlo usando l’app CF e io
posso vedere che ho tre istanze
correndo quello che farò qui è che lo farò
in realtà andare avanti e coda i registri I
vuole aggregazione log completo va bene così ho
ho tre istanze e voglio log
aggregazione
e non sarai in grado di vedere i log in
abbastanza dettaglio, ma se inizio a ricaricare
vedrai che abbiamo DNS
automaticamente siamo ovviamente in rotta
richieste e abbiamo il bilanciamento del carico completo
supporto stiamo bilanciamento del carico attraverso
questi casi e possiamo anche vedere il
log essendo aggregati quindi qualcosa che
Farò qui in questa piccola scatola a destra
qui ho intenzione di correre un po ‘selvaggio
dove applico questo endpoint e così noi
dovrebbe essere in grado di vedere l’istanza è
che colpiamo e continueremo a mantenere questo
correndo per un po ‘ ora questo
l’applicazione è molto semplice
Ho menzionato tutto ciò che costruisci
quello non si connette a qualcos’altro
è un giocattolo quindi vogliamo salvare qualche stato
o interagire con qualche stato ma di
Certo che stiamo costruendo apolidi
applicazioni un’altra app big-12 factor
e ciò significa che lo stato è
sarà gestito esternamente dal
applicazioni che forniscono il business
la logica quindi prendiamoci una tacca chi
qui direi che costruisci
software di livello aziendale come noi
qui per costruire cose reali che hai
sicuramente è stato in un incontro dove
qualcuno ha detto che deve essere così
bene di livello enterprise andiamo avanti e
prendi una tacca così vado a controllare
le funzioni di questa filiale aziendale e
ovviamente vado a controllare un ramo
perché sono un professionista e controllo
il mio codice in tutto ora ne abbiamo alcuni
caratteristiche aziendali diamo un’occhiata a
Diamo prima un’occhiata al file gem così
Userò un piccolo involucro
ottenere informazioni sull’ambiente da
la fonderia di cloud chiamata CF app lo utilizza
è solo qualcosa nell’ecosistema Ruby
rende un po ‘più facile interagire
con informazioni variabili sull’ambiente
e poi userò anche i Redis
Redis conserverà il mio stato ora lo so
che tutti qui sanno che è Redis
come la prima tappa in modo completo
archivio dati di livello aziendale che puoi
fare affidamento senza altro diritto
mi lascerai solo dire che va bene
Redis è un ottimo caching di denaro contante
strato giusto molto bene a incassare
fino a poco tempo fa il primario
collaboratore di Redis ha lavorato per cardine
ha scelto di andare avanti ma siamo davvero
felice di Redis ci piace così
Userò Redis per cui va molto bene
demo in questo caso particolare ed è
molto buono come cache ma in realtà non lo è
usarlo come datastore primario, quindi facciamolo
dai un’occhiata a questa app cosa siamo noi
andando a fare questa impresa
Valutare bene, costruiremo l’analisi
quindi questo è un consiglio di carriera gratuito da parte mia
tu se qualcuno viene da te e ti dice
bisogno di questa applicazione per essere impresa
voto e non sei abbastanza sicuro di cosa
significano solo dire cosa sicura aggiungerò
analisi non sanno cosa significhi
ma hanno letto su di esso in una rivista e
sanno lo vogliono così diamo un’occhiata a
quello che stiamo andando a fare qui abbiamo bisogno di
ottenere una connessione Redis quindi se vogliamo
store state in questo backing datastore noi
ho bisogno di una connessione Redis quindi cosa sono
andando a farti sapere
mettilo al centro qui sto andando
per ispezionare l’ambiente usando questo
involucro orientato agli oggetti non lo faremo
lo faremo e se abbiamo
informazioni su Redis allora andremo
avanti e recuperare la porta host e
password per quella connessione Redis ora
noterai che non sono difficile da codificare
qui va bene e non è in una configurazione
file ovunque non c’è niente sul mio
manicotto è solo che è solo qui ma che cosa
Voglio che io voglia che l’ambiente lo racconti
io quando dico che voglio un Redis voglio il
ambiente di produzione che si sta svolgendo a
dimmi che sono i tuoi Redis e poi io
voglio solo collegarlo ora il
le analisi che faremo sono loro
aumenterà le visite ogni volta che colpiamo
questo endpoint API e andremo avanti e
emettere visite anche quando abbiamo colpito
così potremo vedere le visite
incremento su scala orizzontale
set di front end giusto quindi è solo un
ancora relativamente di base, ma lo fa
dimostrare questa capacità che è
abbastanza buono quindi per distribuire questo
applicazione di nuovo chiamiamo questo
versione 2 forse sto per digitare CF push
quindi quello che sta per fare è costruire un
nuova immagine una completamente nuova
abbiamo artefatti immutabili che sono
completamente distinti gli uni dagli altri
quindi costruirà una nuova immagine e poi essa
si spegnerà distruggerà le vecchie istanze
della mia domanda e sostituirli con
nuovi perché non patch o
aggiornamento in questo mondo cloud più giusto
noi non ci aggiorna sul posto e
riavviare un server Web noto su un a
macchina virtuale da qualche parte nemmeno noi
preoccupati che noi semplicemente distruggiamo e
creare tutto ciò che facciamo e possiamo vedere
che quello che stiamo ottenendo qui è un
errore interno del server che è un po ‘
un po ‘allarmante chiunque può avere qualcuno
un’idea del motivo per cui potrebbe essere sempre un
errore interno del server in questo momento mentre io
guarda attraverso questa traccia dello stack qui
no Redis, chi ha detto che ottiene un libero
birra quando qualcun altro li offre
Te lo darò io, quindi non lo faremo
non abbiamo un Redis e ci aspettiamo
uno così abbiamo attualmente un’applicazione
questo è un fallimento quindi cosa farò
è controllare il mio codice di lavoro che
capita di essere un maestro che sto per andare
avanti e spingerlo in produzione
in questo momento in modo che tu sappia che stiamo ricadendo
torniamo a una versione funzionante ma
quello che voglio anche fare è creare un
istanza di Redis quindi quaggiù
quello che farò è digitare i servizi CF.
e puoi vedere che non ne abbiamo
servizi in corso adesso così dentro
questa org in questo spazio non ci sono
servizi che vogliamo creare alcuni così sono
andare al mio mercato CF il
il mercato è una lista di cose che possiamo
fornitura dell’accesso ao fornitura di nuovi
istanze di così puoi vedere qui che io
posso fornire un paio di varianti del mio
SQL I può fornire anche rabbitmq e
Redis the Redis è di nuovo molto importante
per me adesso
Anche questo lo sto facendo di nuovo sul mio portatile
così si può vedere che questi sono relativamente
piccolo e si potrebbe dire va bene vedere questi
sono singoli punti di errore nel tuo
l’architettura dell’applicazione e così sarebbe
sii corretto per il mio particolare sviluppo
macchina ma in più di produzione
versioni di questi è possibile attivare i piani
come puoi vedere sotto i piani puoi girare
sui piani per ciascuno di questi che RHA e
abbastanza grande in modo da poter diventare alto
disponibilità da questi back-end
servizi, ma di nuovo lo sto eseguendo sul mio
portatile qui, quindi voglio un’istanza di
Redis dal modo in cui possiamo vedere che il nostro
l’applicazione è di nuovo funzionante
va bene forse nessuno ha notato il mio
errore così ho intenzione di creare un servizio
si chiama Redis. Lo farò funzionare
il piano VM condiviso che significa
nello specifico che gireremo
su una macchina virtuale da qualche parte ed è
il lavoro è eseguire istanze di Redis e questo
farò la pianificazione della capacità su questo
macchina virtuale e ogni volta che abbiamo bisogno di più
farà girare automaticamente di più e tutti
di questi Redis sono isolati da uno
un altro che è anche buono e poi cosa
Voglio anche dargli un nome è
tornerò questa applicazione, quindi lo faremo
basta namespace perché perché non ora io
avere un’istanza di Redis se necessario
Hai più di un paio di minuti per arrivare
una nuova infrastruttura o
architettura per la tua applicazione
stai costruendo in produzione, allora è così
troppo lungo un paio di minuti massimo così
appena ho messo un paio di secondi per
creare un Redis e se si digita i servizi CF.
puoi vedere che ora abbiamo un Redis ma
una cosa che si nota è che
sotto le app vincolate non ci sono
le applicazioni legate a questa istanza così
questa è un’istanza Redis molto solitaria
è tutto da solo e questo è importante
perché a volte vuoi auto
Fornire le cose da zero e
a volte si desidera connettersi
qualcos’altro che già esiste ma
la connessione effettiva tra
applicazioni e servizi dovrebbero essere
mediato come abbiamo parlato di a
broker di servizi e il modo in cui stiamo andando
per farlo è vincolante
applicazione al servizio quindi vado
per legare il servizio questo è il
applicazione e questo è il servizio e
ora se scrivo i servizi CF puoi vedere
che questa applicazione è in grado di
comunicare con un servizio ora cosa fa
questo succede se otteniamo la configurazione
informazioni di gestione al di fuori del
ambiente se otteniamo credenziali per
connettersi ad altre istanze al di fuori del
ambiente è un modo leggero per fare
scoperta del servizio ce ne sono ancora
modi automatizzati ma questo è un questo è un
buon modello che porta al bene
principi di progettazione architettonica, se lo facciamo
che però per fare al fine di
aggiornare le informazioni sull’ambiente o
aggiornare le credenziali e l’ accesso
le informazioni che devi riavviare
istanze di un’applicazione proprio così
l’applicazione è attualmente in esecuzione a
un paio di volte possiamo vederlo
qui con l’ app CF e cosa vogliamo fare
è possiamo semplicemente riavviarli se vogliamo
ma voglio anche provare a distribuire questo
nuovamente il codice base ora che potresti non avere
visto prima, ma ogni volta che ero
implementando il nostro nuovo livello aziendale
versione che ho menzionato che distruggiamo
istanze e poi ne creiamo di nuove
istanze e se lo fai in più
esempio di base avrai tempi di inattività
va bene così quando ci schieriamo
applicazioni che vogliamo implementare con no
i tempi di inattività a destra in modo a volte chiamiamo questo
La distribuzione di Bluegreen a volte viene chiamata
si avviano zero tempi di inattività e quello che voglio
fare è voglio distribuire questo nuovo
versione con zero tempi morti quindi cosa sono
sta per fare un push downtime di CF zero
questo è un plug-in per Cloud Foundry
si chiama autopilota e cosa fa
è automatizza la distribuzione di Bluegreen e
è carino, quindi ho bisogno di darlo
un percorso per un’app per questo particolare
comando l’app esiste in questa posizione
ora non ha nemmeno bisogno di dargli un percorso
a un file manifest che capita di essere
qui oh e ho anche bisogno di dargli il
nome dell’applicazione dov’è stato il mio
coppia di programmatori in ogni caso quindi il
applicazione che voglio fare Bluegreen
la distribuzione su è denominata cos 2 CF env
manifest è in quel file
e ovviamente il percorso è in questo locale
directory quindi andremo avanti e ottenere quello
ha iniziato che cosa sta per fare è costruire un
nuovo artefatto immutabile un nuovo contenitore
è rotazione andando in su che sta andando dare
un hostname casuale o una rotta casuale e
allora puoi anche scegliere di fare le cose
puoi iniettare cose come Canary
implementazione o testing in questo mix se
l’applicazione sembra buona che puoi prendere
il percorso di alto livello che è stato dato
alla nostra versione iniziale e puoi mappare
che inizi a mappare quel traffico
alla nuova versione della nostra applicazione
puoi farlo in quello che viene chiamato a
abbiamo implementato un rollover o zero downtime
nuovo signore abbiamo ottenuto un errore del server diamo
uno sguardo ai nostri registri
Devo ammettere che non mi aspettavo che uno
non riesco a collegare un Redis okay proviamo a
nodo un downtime deploy quindi un’altra cosa
che ti mostrerò qui mentre questo è
il dispiegamento è se hai il diritto
credenziali a cui sei in grado di farlo
digitare CF env per ottenere il
informazione variabile d’ambiente
fornito all’istanza dell’applicazione o
la tua domanda così sarà
non cifrati e forniscili a te
nello stesso modo in cui accade ogni volta che gira
una nuova istanza dell’applicazione e una di
le cose che possiamo vedere qui è quella
non ne abbiamo nessuno che non ne abbiamo
Redis in qui che è abbastanza sorprendente
nessuna app vincolata, proviamo di nuovo perché
non andremo avanti e seguiremo i log
anche qui mentre stiamo distribuirlo
devo un po ‘che sono un po’ sorpreso ma
questa è la natura delle dimostrazioni dal vivo così ora
dovremmo avere un’app associata sembra a
un po ‘meglio se controlliamo il
di nuovo l’ambiente possiamo vedere che noi
sono state fornite le informazioni sulle credenziali a
connettersi a Redis l’ host della porta e
la password ora ci sono alcuni importanti
cose che voglio che tu sappia, io ho iniziato
su un’istanza di Redis non mi importava
dove stava correndo non te ne accorgi
che non ho menzionato un indirizzo IP a
nome dell’ospite o relazione ho appena lasciato il
piattaforma di farlo per me non mi interessa proprio
Non mi interessa dove sta andando, ma il mio
l’applicazione si cura dove è in esecuzione
così quando ho creato il servizio lo leghiamo
chiede che tale informazione per la
istanza di Redis ha detto qual è il tuo
host e qual è il tuo IP o numero di porta
e poi ha anche detto che sto per generare
una password automaticamente in modo da poter vedere
che qui abbiamo generato questa password
completamente automaticamente non c’erano umani
coinvolto nella realizzazione di questo servizio
collegamento è anche bello perché il
l’applicazione non ha bisogno di cambiare quindi se
vuoi ciclare le credenziali che tu
dovrebbe fare regolarmente
la produzione si può fare molto facilmente
disancorando un’applicazione da a
servizio di rebinding che genererà
nuove credenziali e quindi riavvio o
fare
schierare di quel servizio che tra l’altro
come se mi sentissi un po ‘ impertinente
qui quindi voglio provare qualcosa che voglio
per aggiungere vediamo andare alla birra nel nostro
codice sorgente e prova un altro zero
distribuzione dei tempi di inattività vediamo solo cosa
succede così mentre succede quello che abbiamo
dimostrato ora cinque dei sei
capacità in un minimo vitale
piattaforma abbiamo dimostrato il routing
e individuazione del servizio di bilanciamento del carico
artefatti mutevoli e artefatto immutabile
l’aggregazione dei log del repository ce n’era una
più ma uno e anche l’infrastruttura
automazione ma non abbiamo dimostrato il
capacità della piattaforma quando
arriva a gestire il fallimento, quindi voglio
andare avanti e digitare un nuovo punto finale qui
e ho due minuti e 30 secondi così
Ho fatto alcuni spiegamenti qui nell’ultimo
25 minuti ma perché no, perché no?
basta fare un altro qui lo chiameremo
a parte l’ endpoint di base e cosa
succede in questo endpoint è che abbiamo un
piccolo bug e che blocca il nostro bug
applicazione ora lo fa dentro
la moda spettacolare è pessima
come puoi ottenere per un bug di un’applicazione
che si blocca la sua applicazione, ma io sono
incuriosito dai nostri tempi di inattività ha fatto a
l’aggiornamento in rotazione non ha funzionato, sono curioso
su cosa succede qui se la piattaforma
rileva un errore nell’applicazione se un
l’istanza dell’applicazione si arresta in modo anomalo
e ora ho due minuti e lo farò
andare per esso siamo in esso possiamo cercare di
va ‘tutto bene, potresti chiedermelo
domande dopo bene non abbiamo ricostruito in
tempo per le domande quindi ne abbiamo cinque
minuti mi potrebbe prendere alcuni di quelli
minuti quindi andremo avanti e
distribuire questa applicazione ha una nuova
punto finale legheremo anche il nostro
ancora una volta perché ho avuto un errore
nel mio periodo di indisponibilità zero si schiera e siamo
andrò avanti e riavviare le istanze
così ora abbiamo go-to birra che è cool
Vado avanti e scala questo come
beh , scaliamo fino a sei
e poi scriveremo l’orologio che siamo
guarderò questa applicazione se guardiamo
questa informazione ciò che puoi vedere è il
applicazione in corso e in esecuzione e
è bello che possiamo vedere anche qui
che lo stiamo facendo costantemente
colpire il punto finale è buono ma
diciamo e non so mai ordinariamente
questo bene non dovrei dirlo più
perché hai visto un insetto sul palco che ero
dirò che non scrivo mai bug ma
a volte capita così cosa succede se
Vado a questo questo flusso di lavoro questo utente
flusso di lavoro che si verifica per bloccare l’app
anche in questo caso potrebbe succedere così
ha arrestato immediatamente quell’istanza e
non va bene, quindi vado avanti e
riavvia questo arresto un’istanza
di nuovo e ciò che puoi vedere è una nota
notando il fallimento dalla piattaforma
notare che l’errore è stato recuperato
automaticamente ha creato istanze in
il suo posto dove andrò a schiantare un paio di
li puoi vedere anche questo
informa automaticamente il bilanciamento del carico
in modo da non indirizzare il traffico verso il fallimento
istanze e che le aggiungeremo nuovamente
in quando le istanze sono di backup e
in esecuzione in modo da non vedere prestazioni
degradazione qui come siamo
colpendo costantemente gli endpoint
funziona bene e alla fine puoi arrivare a
posiziona se non hai abbastanza parallelo
istanze in cui è possibile bloccare tutto
andrà avanti e farlo e tu puoi
vedi che alla fine arriveremo in un posto
dove le applicazioni non sono in esecuzione
ma si riprenderà quindi è necessario
pianifichiamo ancora quanto orizzontale
scalabilità di cui hai bisogno soprattutto se tu
capita di avere un’applicazione che è
schiantarsi in modo che è abbastanza buono che era
va bene avrebbe potuto essere migliore ma tu
puoi valutarmi più tardi così puoi
decidi che puoi decidere, ma perché?
faremmo questo con solo un paio di
pochi secondi rimasti credo in questo concetto
di operabilità nativa cloud non lo è
solo per essere in grado di gestire l’implementazione
nuove applicazioni e gestirle correttamente
non si tratta di quella prima installazione come
questo ci rende molto entusiasti di poterlo fare
distribuire una nuova architettura ma è anche
su come gestirlo per il giorno successivo a
la prossima settimana nel prossimo anno nel
i prossimi dieci anni quindi devi essere in grado di
gestisci la tua applicazione a lungo termine e
il tuo business deve essere in grado di permettersi
per fare ciò di cui la tua organizzazione ha bisogno
per essere in grado di permettersi di farlo così ho
pensa cosa abbiamo imparato sia a questo
conferenza e in generale nel nostro settore
è che le architetture dei micro-servizi sono
un buon modo per andare al fine di ottenere il
scala la scalabilità orizzontale il
capacità di muoversi velocemente quando è necessario
muoviti veloce e per scorrere alla velocità
che è necessario iterare su un servizio di
livello di servizio nel tuo
certo ti aiuta anche a ridimensionare il tuo
l’organizzazione o la tua organizzazione non possono
scala se tutti lavorano sullo stesso
codice ogni giorno non puoi farlo con a
mille ingegneri hai bisogno di continuo
consegna
devi automatizzare la consegna del tuo
software se non automatizzi il tuo
consegna e vai da un modello se
i 500 micro-servizi che hai preso uno
spara una cosa che è molto difficile da fare
e tu hai fatto 500 cose che sono
molto difficile da fare quindi non fare micro
servizi senza automatizzare il tuo
pipeline di implementazione e finalmente lo facciamo
bisogno di una cultura DevOps se parliamo
fare i DevOps cosa significa veramente
è una pratica su come lavoriamo insieme
una cultura di apprendimento e condivisione e
misurare l’automazione e la collaborazione
ma e questo è il rilevatore di diapositive da prendere
una foto di se hai un
strategia di micro-servizi continua
processo di consegna o un devops culturale
strategia qualcosa che un dirigente
ha scritto un memo su e ti ha inviato per e-mail
su e tu non hai un operativo
ambiente immaturo per distribuire il tuo
le applicazioni in quelle iniziative lo faranno
non funziona quindi hai bisogno di qualcosa
non deve essere Cloud Foundry ma tu
ho bisogno di qualcosa che possa essere maturo a livello operativo
quindi possiamo essere amici su Twitter che possiamo
essere amici nella vita reale , ecco cosa
icona della birra è circa ci sono un paio di
risorse stavo usando un leggero
versione di Cloud Foundry che puoi
corri sul tuo laptop anche tu puoi vederlo
app demo su github ora puoi valutarmi
e grazie mille per il tuo tempo
va bene
un paio di domande che facciamo
esso
così minima piattaforma vitale hai avuto molto
di punti in quella lista sì, davvero
credo che sia il minimo
questa è una grande domanda, sì, quelli sono
il set minimo di capacità che tu
bisogno di minimo indispensabile e potrebbe essere necessario più
a seconda del contesto in cui potresti aver bisogno
autorizzazione specifica a grana fine
controlli e controlli di accesso che puoi
bisogno di alcuni tipi specifici di sicurezza
aspettative sulla crittografia e e
posizionamento del carico di lavoro ora potrebbe essere necessario a
sacco di altre cose ma non sarai mai
bisogno di meno ok così un’altra domanda qui
non ha l’intera piattaforma-come-un-servizio
cosa non riescono bassa adozione di Google Google
Accesso a App Engine Heroku e così via
no, così ho messo il mio cappello cardine su per a
momento in cui vendiamo a come un terzo del
la fortuna 100 negli Stati Uniti è la nostra
cliente in esecuzione su Cloud Foundry e noi
fare affari con grandi organizzazioni tutte
il mondo che amano ciò che dobbiamo
fare una delle cose che le persone sono timidi
lontano da e penso che forse giustamente
così sta mettendo i tuoi sensibili
applicazioni e i tuoi dati sensibili in
un ambiente multi-tenant che è
gestito da qualcun altro ora che non lo è
dire che dire che AWS ha tutto il
regolamenti di conformità che ti servono
puoi sicuramente eseguire le tue app su AWS
sentirsi sicuri in quell’ambiente ma quando
prendi qualcosa come Heroku e te
metti lì i tuoi dati sensibili
un po ‘ meno sicuro in questo modo quindi uno di
le cose che mi piacciono di Cloud Foundry
una delle cose che le persone che adottano
comprende anche il bluemix che è
eseguito su fonderia di cloud il suo nucleo è aperto
fonte Cloud Foundry è che è possibile eseguire
puoi farlo nel tuo ambiente
dove ti senti al sicuro puoi eseguirlo
dove la tua sicurezza e conformità e
le aspettative potrebbero combaciare così tu
ha chiesto se le persone costruiscono a livello aziendale
apps sì e c’è una domanda
qui così ci hanno detto i nostri architetti
implementare una fabbrica Enterprise astratta
fabbrica di fagioli significa che stiamo facendo
software aziendale
significa che qualcuno da qualche parte pensa
loro stanno costruendo Enterprise
grande sofferenza nessun software aziendale
soprattutto in un micro-servizio
ambiente e sistemi distribuiti
ambiente, penso che cosa significhi cosa
ciò significa che una tecnologia moderna lo è
che rispetti la legge di Conway che
di cui abbiamo parlato oggi non ho bisogno di farlo
riformulare che ci aspettiamo che rispettiamo
il teorema del cappuccio ci aspettiamo un fallimento e noi
costruire sistemi resilienti in grado di rispondere
a quel fallimento quindi usiamo il circuito
modello di interruzione usiamo la scoperta del servizio
usiamo buon bilanciamento del carico e memorizzazione nella cache
meccanismi per avere servizi
che sono resilienti nel loro ecosistema
quando falliscono penso che l’abbiamo imparato
da Netflix grazie ad Adrian e e
le sue squadre e penso che sia così
costruire grande software Enterprise scorso
domanda qual è la differenza tra
i servizi e le app hanno diritto a un servizio
qualcosa che può essere gestito dal
piattaforma o gestito al di fuori del
piattaforma ma un servizio nel nostro contesto è
di solito qualcosa che vuoi
fornire nuove istanze di on
domanda o fornitura accesso a di nuovo su
la domanda in modo da poter scrivere il proprio
servizi e si può iniziare a decomporsi
la tua architettura in quel modo e poi a
quando diciamo che queste sono
di solito le applicazioni che sei
costruendo quello e gestendo che sono parte
del valore del tuo business e di solito è
qualcosa che è o una API o
servizio di supporto per un’altra cosa o
siamo un’applicazione che ti rende effettivo
sapere che gli esseri umani potrebbero interagire con
ok grazie Casey
grazie, grazie
tu

Please follow and like us: