DAVID MALAN: Va bene, bentornato. Prima di tuffarci in cloud computing, Ho pensato di fermarmi un attimo se ci sono questioni in sospeso o argomenti che si avvicinò durante il pranzo che potrebbe ora essere di interesse. PUBBLICO: [INAUDIBLE] DAVID MALAN: OK. Oh va bene. PUBBLICO: [INAUDIBLE] DAVID MALAN: No, naturalmente. OK, così si spera tutto il vostro problemi sorgono nelle prossime ore e domani in particolare. Ma diamo uno sguardo, poi, dove l'ultima discussione sulla configurazione un sito web porta, più in generale quando si tratta di cloud computing, la creazione di un architettura server, il tipo di decisioni che gli ingegneri e sviluppatori e manager bisogno di fare quando si tratta a fare più di un semplice la firma per un $ 10 al mese host web quando si vuole realmente costruire fuori la propria infrastruttura. E cercheremo di legare questo ritorno, per esempio, a Dropbox e altri come loro. Quindi partiamo da considerare Quali sono i problemi sorgono come di business ottiene il bene e sorgono problemi buone. Quindi nel caso molto semplice di avere alcune società che ha un web server, si potrebbe avere, diciamo, un server che ci limiteremo a pareggio che assomiglia a questo. E in questi giorni, la maggior parte servers-- e andiamo in realtà mettere una foto di questo solo così che è un po 'meno nebulosa. Così Dell cremagliera server-- back in the day, ci erano mainframe che occupava intere stanze. In questi giorni, se si dovesse per ottenere un server, potrebbe apparire un po 'qualcosa di simile. I server sono misurate in quanto sono chiamati unità rack o IF. E uno RU è di 1,5 pollici, che è uno standard industriale. Quindi, questo sembra un server a due RU. Quindi è alto 3 pollici. E sono generalmente ampio 19 pollici, che significa tutto questo genere di cose è standardizzato. Quindi, se si guarda in un center-- dati non solo a un server, ma cerchiamo di dare un'occhiata a Google data center e vedere se siamo vedere una bella foto in Google Immagini. Questo è molto meglio di quanto si accende sarebbe tipicamente trovare, e molto più sexy cercando di conseguenza. Ma questo è quello che sembra un paio centinaia di tutti i server circa la stessa dimensione, in realtà, a cremagliera dopo cremagliera dopo cremagliera dopo rack in un centro dati. Qualcosa di simile questo-- questo bene può essere Google, dal momento che su Google Google. Ma potrebbe essere rappresentativo più in generale un centro dati in cui molti le aziende sono in genere la stessa ubicazione. E co-locato in genere significa che si va in un posto come Equinix o altri fornitori che hanno grandi magazzini che hanno un sacco di potenza, un sacco di raffreddamento, si spera un sacco di sicurezza, e gabbie individuali racchiude rack di server, e si sia affittare i rack o si mettono i rack a. E le singole aziende, start-up in particolare, avrà un qualche tipo di dati biometrici entrare nella loro gabbia, o di una chiave, o una scheda magnetica. Si apre la porta. E dentro di c'è solo un metraggio impronta quadrata che si sta pagando per, all'interno di che si può mettere tutto quello che vuoi. E in genere si paga per il potere. E si paga per le impronte. E poi si paga te stesso per i server che si sta portando in quello spazio. E quello che poi ha la possibilità di fare è pagare qualcuno per la connettività servizio internet. Si può pagare un qualsiasi numero di fornitori, i quali di solito entrare in quella data center. Ma la vera domanda è interessante, ciò che accade realmente in quei scaffali? Potrebbero tutti molto bene assomigliare a quello che abbiamo appena visto. Ma essi svolgono funzioni diverse e potrebbe aver bisogno di fare cose diverse. E che in realtà motivare questa discussione con la domanda di, quale problema comincia a sorgere, se sei riuscito? Quindi hai un sito web che hai costruito. E forse si vende widget o qualcosa di simile. E che hai fatto molto bene con un fatturato di widget on-line. E si inizia a sperimentare alcuni sintomi, il vostro sito web. Quale potrebbe essere un po 'di i sintomi tecnici che gli utenti segnalano come di business è in crescita e in forte espansione e il vostro sito è beneficiando di questo? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, esattamente. Quindi, si potrebbe avere un rallentamento del tuo sito web. E perché potrebbe succedere? Beh, se assumiamo, per il bene della discussione in questo momento, che sei in un di questi host web commerciali di cui abbiamo parlato prima di pranzo, che si paga un determinato numero di dollari a al mese, e hai già pagato per il costo annuo del proprio dominio nome, quello host web è probabilmente overselling loro risorse in una certa misura. Così si potrebbe avere un nome utente e la password sul loro server. Ma così potrebbe diversi altri, o più dozzina di altri, o forse anche più centinaia di altri, utenti. E siti web vivono fisicamente sullo stesso server. Perché questo è possibile? Bene in questi giorni, i server come questo genere avere più dischi rigidi, forse fino a sei o più dischi rigidi, ciascuno dei quali può essere tanto come 4 terabyte in questi giorni. Così si potrebbe avere 24 terabyte di spazio in solo un piccolo server, come questo. E anche se rubi un po 'di quello spazio per la ridondanza, per scopi di backup, è ancora un bel po 'di spazio. E certamente, un tipico sito web non ha bisogno di molto spazio. Proprio registrazione degli utenti e l'archiviazione dei log di ordini non prende più di tanto spazio. Così è possibile partizionare abbastanza un po 'e dare ad ogni utente solo una piccola fetta di questo. Nel frattempo, un computer in questo modo in questi giorni di solito ha più CPUs-- non solo uno, forse due, forse quattro, forse 16, o anche di più. E ciascuna di queste CPU ha qualcosa chiamato un nucleo, che è un po 'come un cervello all'interno di un cervello. Quindi, in realtà la maggior parte tutti i presenti con portatili moderni ha probabilmente un dual core o CPU-- quad core e probabilmente solo una CPU all'interno di un computer portatile questi giorni. Ma i computer desktop e computer cremagliera come questo potrebbe avere un bel po ' più CPU, e in nuclei sua volta. E, francamente, anche nei nostri Mac e PC di oggi, non si ha realmente bisogno di dual core o quad core per controllare la posta elettronica. Se c'è un collo di bottiglia quando si tratta di utilizzare un computer, la umani sono probabilmente la cosa più lento su quel computer. E non sta andando ad essere in grado di controllare la posta elettronica più velocemente se si hanno quattro volte il numero di CPU o core. Ma lo stesso tipo della vera di un server. Un sito web unico non potrebbe necessariamente bisogno di più di una CPU o un core, uno cervello piccolo all'interno facendo tutto il pensiero e l'elaborazione. Così i produttori hanno simile ha iniziato a tagliare tali risorse in modo che forse il vostro sito riceve un nucleo, il vostro sito riceve un core, o forse stiamo condividendo un tale nucleo. Stiamo anche la condivisione di spazio su disco. E stiamo anche la condivisione di RAM, o Random Access Memory da prima, di cui c'è anche una quantità limitata. E questa è la chiave. Non importa quanto costoso il computer era, c'è ancora un finita quantità di risorse in esso. E così la sempre più si cercare di consumare tali risorse, le cose potrebbero diventare più lenti. Ma perché? Perché le cose sarebbero rallentare come sintomo di un server che viene sovraccaricato? Cosa sta succedendo? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, esattamente. Ho proposto in precedenza che RAM è un tipo di memoria. E 'volatile, per cui questo è dove le applicazioni ei dati sono memorizzato quando sono in uso. E così dunque non c'è solo un numero finito di cose che si possono fare a quanto pare in una sola volta. Ed è anche più veloce, che è una buona cosa. Ma è anche più costoso, che è una brutta cosa. Ed è anche quindi presente in basso quantità di spazio su disco, disco rigido spazio, che tende ad essere più conveniente. In altre parole, potrebbe avere 4 terabyte di spazio su disco nel computer. Ma si potrebbe avere 4 gigabyte o 64 gigabyte, in ordine di grandezza, un fattore di 1.000 meno, di RAM presente nel computer. Che cosa fa un computer a fare? Bene, supponiamo che si non avere 64 gigabyte di RAM in un server come questo, che sarebbe abbastanza comune, se non basso questi giorni. Ma supponiamo di avere così tanti gli utenti che fanno tante cose che tipo di specie di bisogno di 65 gigabyte di memoria per gestire tutto questo utilizzo simultaneo? Ebbene, si può solo dire, dispiace, qualche numero di utenti solo non può accedere al sito. E questo è il provvedimento di ultima istanza, certamente. Oppure, come il funzionamento sistema, come Windows o Mac OS o Linux o Solaris o qualsiasi numero di altri sistemi operativi su quel server, poteva solo decidere, sai una cosa? Ho solo 64 gigabyte di RAM. I tipi di bisogno 65. Allora sai cosa? Ho intenzione di prendere 1 gigabyte valore dei dati nella RAM che era il meno recente accede e basta spostare su disco temporaneo, letteralmente copiarlo dal veloce memoria alla memoria più lenta in modo che possa poi gestire questo 65 ° necessità gigabyte per la memoria, fare qualche calcolo su di esso. Poi, quando ho finito di farlo, Mi limiterò a spostare che su disco, spostare l'altra RAM ho messo temporaneamente il disco nello hardware reale in modo che io sono una specie di multitasking. Così sto tipo di mettere le cose temporaneamente in questo spazio più lento così ho creare l'illusione di gestire tutti. Ma c'è un rallentamento. Perché? Ebbene, all'interno di questi duro dischi in questi giorni è che cosa? Piuttosto, ciò che rende un disco guidare diversa dalla RAM come meglio sapete ora? PUBBLICO: [INAUDIBLE] DAVID MALAN: OK, è vero. PUBBLICO: [INAUDIBLE] DAVID MALAN: così vero. E questo è un effetto collaterale o funzione del fatto che la RAM è effettivamente più veloce. E quindi si desidera usarlo per uso corrente. E un disco è più lento. Ma è permanente o non volatile. Quindi lo si utilizza per l'archiviazione a lungo termine. Ma in termini di implementazione, se guardo in alto quello che è chiamato un modulo DIMM, Dual Inline Memory Module, questo è ciò che un pezzo di RAM potrebbe tipicamente simile. Quindi, all'interno della nostra Mac-- che è un bug. All'interno dei nostri Mac e PC, il nostro desktop i computer avrebbero bastoni di memoria, come si farebbe li chiamano, o DIMM, o SIMM indietro nel giorno della memoria che assomigliano a questo. I nostri computer portatili probabilmente hanno cose che sono un terzo della dimensione o la metà. Sono un po 'più piccola, ma lo stesso poco idea-- pezzi di silicio verde wafer o plastica che ha piccoli chip neri su di loro con un sacco di cavi di interconnessione tutto. Si potrebbe avere un sacco di questi all'interno del computer. Ma l'asporto qui è è del tutto elettronico. C'è solo elettroni scorre su questo dispositivo. Al contrario, se guardiamo l'interno di un disco rigido e tirare su una foto qui, si sarebbe invece vedere qualcosa del genere, che ha l'elettricità che attraverso di essa alla fine. Ma ciò che salta anche fuori a voi di questa cosa? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, non c'è a quanto pare parti in movimento. E 'un po' come un vecchio disco giocatore o giocatore fonografo. Ed è più o meno. E 'un po' più elaborato rispetto che-- mentre un giocatore fonografo usato scanalature nel record, questo in realtà utilizza minuscoli particelle magnetiche che non possiamo del tutto vedere. Ma se un po 'di particelle magnetiche assomiglia a questo, è considerato un 1. E se sembra che questo, nord-sud invece che a sud-est, potrebbe essere un 0. E vedremo domani come possiamo costruire da quello a cose più interessanti. Ma tutto ciò che è avuto modo di spostare fisicamente è sicuramente intenzione di andare più lento rispetto alla velocità della luce, che in teoria è quello un elettrone può scorrere a, anche se realisticamente non del tutto. devices-- Così meccanica molto più lento. Ma sono meno costosi. E si può andare bene così tanto Altri dati all'interno di essi. Quindi il fatto che ci esiste nel mondo qualcosa chiamato memoria virtuale, utilizzando un disco rigido come questo come se fosse RAM trasparente per l'utente, semplicemente spostando i dati dalla RAM al disco rigido, poi si spostano indietro quando è necessario nuovamente, crea il rallentamento. Perché hai letteralmente copiarlo da un luogo all'altro. E la cosa si sta copiandolo da e è in realtà da più lento rispetto alla RAM in cui si vuole che sia. La soluzione alternativa qui-- se non vi piace che rallentano, e la memoria virtuale è sorta di essere oberati, cosa c'è un'altra soluzione a questo problema? PUBBLICO: [INAUDIBLE] DAVID MALAN: Beh, aumentare la memoria virtuale ci permetterebbe di fare questo su una scala ancora più grande. Potremmo gestire 66 gigabyte vale la pena dei bisogni di memoria, o 67 gigabyte. Ma supponiamo che non mi piace Questo rallentamento, infatti Voglio disattivare virtuale memoria se è ancora possibile, cos'altro potevo buttare a questo problema per risolverlo, dove voglio gestire più utenti e altri requisiti di memoria di quanto io fisicamente ho al momento? PUBBLICO: [INAUDIBLE] DAVID MALAN: Purtroppo no. Così la CPU e le anime che stanno in sono una risorsa limitata. E non c'è analogico in quel contesto. Buona domanda, però. Quindi, solo per essere chiari, troppo, se all'interno di questo computer è, diciamo, un bastone di RAM che sembra come questo-- e così chiameremo questo RAM. E qui è l'unità di disco rigido. E mi limiterò a disegnare questo pittoricamente come un piccolo cerchio. Ci sono 0 e 1 di in entrambi dati these--, faremo generalizzare come. E in sostanza, se un utente è l'esecuzione di un'applicazione come, diciamo, un sito web che richiede questo quantità di RAM per ogni utente, quello che sto proponendo, a titolo di questa cosa chiamato memoria virtuale, è quello di spostare solo temporaneamente che qui in modo che ora io può muovere la memoria di qualcun altro requisiti laggiù. E poi, quando questo è fatto, Posso copiare questo ripercorrere e questo va qui, in modo da spostare quello che volevo in là da qualche altra parte del tutto. Quindi c'è solo un sacco di switcheroo, è l'asporto qui. Quindi, se non ti piace questo, e non lo fanno vuole mettere nulla sul disco rigido, ciò che è una sorta di evidente soluzione di business della persona al problema, o al fonico soluzione, del resto, anche tu? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, voglio dire letteralmente buttare soldi al problema. E in realtà, questa è la perfetta Segue ad alcuni di livello superiore discussioni del cloud computing. Perché un sacco di esso è motivato da decisioni finanziarie, nemmeno necessariamente tecnologica. Se 64 giga di RAM è troppo poco, bene, perché non ottenere 128 gigabyte di RAM? Perché non avere 256 gigabyte di RAM? Beh perchè no? PUBBLICO: [INAUDIBLE] DAVID MALAN: Beh, costa più soldi, certo. E se si dispone già di ricambio spazio su disco rigido, in modo efficace, o equivalentemente, spazio su disco rigido è così molto più economico si potrebbe anche usarlo. Così ancora una volta, c'è questo compromesso che abbiamo visto anche in precedenza in questa mattina, dove non c'è davvero necessariamente una risposta giusta, c'è solo una risposta migliore o peggiore sulla base di ciò che realmente interessano. Quindi c'è anche realtà tecnologiche. Non riesco a comprare un computer, Che io sappia, con un trilione di gigabyte di RAM al momento. E 'solo fisicamente non esiste. Quindi vi è un certo limite superiore. Ma se hai mai nemmeno effettuato acquisti per un Mac o un PC consumer, Anche, in genere non c'è questa curva di caratteristiche dove ci potrebbe essere una buona, una migliore e una miglior computer. E i rendimenti marginali sul vostro acquisto del dollaro il miglior computer contro il computer meglio potrebbe non essere altrettanto elevata come spendere un po 'più soldi e ottenere il computer migliore il buon computer. In altre parole, si sta pagando un premium per ottenere la parte superiore della linea. E quello che vedremo nel discussione del cloud computing è che ciò che è molto comune in questi giorni, e ciò che le aziende come Google presto popolare, non è stato pagato e costruzione di veramente elegante, costoso computer truccato con un sacco di tutto, ma piuttosto l'acquisto o la costruzione abbastanza computer modesti ma molti di loro, e l'utilizzo di qualcosa che è generalmente chiamato scala orizzontale invece di scala verticale. Così scala verticale significherebbe ottenere di più RAM, più rigido, più di tutto, e una sorta di investire verticalmente in hardware così si sta solo ricevendo il meglio del meglio del meglio, ma si sta pagando per questo. scala orizzontale è una sorta di ottenere il cose livello inferiore, il buon modello, o anche il modello di peggio, ma ottenere un sacco di loro. Ma non appena si ottiene un sacco di them-- per esempio, in questo caso, server web, se questo un server o un host web non è sufficiente, poi basta intuitivamente, la soluzione a questo problema di carico o sovraccarico sui server è o ottenere un server più grande o, quello che sto proponendo qui invece di scalatura verticale così dire, sarebbe, sai una cosa? Basta avere un secondo uno di questi. O forse anche ottenere un terzo. Ma ora abbiamo creato un problema di ingegneria dalla natura di questo business o una decisione finanziaria. Qual è il problema di ingegneria ora? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, come si fa si collega li e- dispiace? PUBBLICO: [INAUDIBLE] DAVID MALAN: Destra, perché ho ancora have-- se mi reintrodurre in questo quadro, se questo è il mio computer portatile da qualche parte su internet, che ora è tra io e la società di cui stiamo parlando, ora devo capire, a cui assistente posso inviare questo particolare utente? E se c'è altri utenti, come questo, e poi questo qui, e forse questo è l'utente A, questo è utente B, questo è utente C, e questo è il server 1, 2, e 3-- ora una risposta intuitiva potrebbe qui essere solo, ti invieremo utente A a 1 e B per 2 e C 3. E siamo in grado di gestire 3 volte il numero di utenti. Ma questa è una semplificazione eccessiva. Come si fa a decidere chi mandare in cui? Quindi cerchiamo di ragionare attraverso questo. Quindi supponiamo che i computer A, B, e C sono clienti, ei server 1, 2 e 3 sono orizzontalmente in scala server. Quindi sono una sorta di identici. Sono tutti in esecuzione lo stesso software. E tutti possono fare la stessa cosa. Ma il motivo per cui abbiamo tre di loro è così che siamo in grado di gestire tre volte il numero di persone contemporaneamente. Così sappiamo dalla nostra discussione prima di pranzo che ci sia l'hardware in mezzo i computer portatili ei server. Ma ci limiteremo a una sorta di generalizzare che ora come Internet o la nuvola. Ma sappiamo che in casa mia, probabilmente c'è un router domestico. Vicino i server, probabilmente c'è un router, server DNS, DHCP. Non ci può essere qualsiasi cosa vogliamo che in questa storia. Quindi, come possiamo cominciare a decidere, quando l'utente A va a something.com, quale server per instradare l'utente? Come possiamo cominciare a raccontare questa storia? PUBBLICO: Il bilanciamento del carico? DAVID MALAN: Il bilanciamento del carico. Che cosa vuoi dire con questo? AUDIENCE: Ritornando dove il più utilizzo è e quale ha la la maggior parte delle risorse disponibili. DAVID MALAN: Ok, mi permetta introdurre un nuovo tipo di hardware che non abbiamo ancora discusso, che è esattamente questo, un bilanciamento del carico. Anche questo potrebbe essere solo un server. Potrebbe apparire esattamente come quella che abbiamo visto un momento fa. Un bilanciamento del carico è davvero solo un pezzo di software che si esegue su un pezzo di hardware. Oppure si può pagare un fornitore, come Citrix o altri, Cisco o altri. È possibile pagare per il proprio hardware, che è un bilanciamento del carico hardware. Ma questo significa solo che pre-installato il bilanciamento del carico software sul proprio hardware e venduto a voi tutti insieme. Quindi dovremo solo disegnare come rettangolo per i nostri scopi. Come ora faccio a implementare un sistema di bilanciamento del carico? In altre parole, quando l'utente A vuole visitare il mio sito, la loro richiesta in qualche modo o altro, probabilmente per mezzo di quelli router di cui abbiamo parlato in precedenza, sta per arrivare alla fine questo bilanciamento del carico, che poi ha bisogno di prendere una decisione di routing-like. Ma è di routing per l'ordinamento di uno scopo più alto ora. Non si tratta solo di ottenere dal punto A al punto B. Si tratta di decidere quale punto B è il migliore tra them-- 1, 2, o 3 in questo caso. Allora, come faccio a decidere se andare a 1, a 2, a 3? Cosa potrebbe scatola nera, in modo da parlare, essere facendo al suo interno? Anche questo è un altro esempio in informatica di astrazione. Ho letteralmente disegnato un bilanciatore di carico come una scatola nera con inchiostro nero, dentro di cui è alcuni interessanti logica, o la magia anche, da cui deve venire un decision-- 1, 2 o 3. E l'ingresso è appena A. PUBBLICO: [INAUDIBLE] DAVID MALAN: mi dispiace? PUBBLICO: [INAUDIBLE] DAVID MALAN: Va bene, come potremmo categorizzare i tipi di transazioni Qui? PUBBLICO: Visualizzazione di una pagina web contro l'interrogazione di un database. DAVID MALAN: OK, questo è un bene. Quindi forse questo utente A vuole visualizzare una pagina web. E forse è anche contenuti statici, qualcosa che cambia raramente, se non mai. E che sembra un operazione piuttosto semplice. Così forse non ci resta arbitrariamente, ma ragionevolmente, dire, server 1, il suo scopo nella vita è per servire solo su contenuti statici, file che raramente, se mai, il cambiamento. Forse è le immagini sulla pagina. Forse è il testo sulla pagina o altro tale genere di cose poco interessanti, nulla transazionale, niente dinamica. Al contrario, se l'utente A sta controllando fuori del suo carrello della spesa che richiede un database, da qualche parte per memorizzare e ricordare tale operazione, ben forse tale richiesta dovrebbe andare al server 2. Quindi, questo è un bene. Così possiamo carico in base equilibrio il tipo di richieste. In quale altro modo si potrebbe fare questo? Cos'altro-- PUBBLICO: Basato sul server di utilizzazione e capacità. DAVID MALAN: A destra, OK. Quindi, lei ha detto che in precedenza, Kareem. Che importa se forniamo un certo input su [INAUDIBLE] tra i server 1, 2, e 3 di questo bilanciamento del carico in modo che sono solo costantemente informato il bilanciamento del carico quale sia il loro stato è? Come, ehi, bilanciamento del carico, Sono al 50% di utilizzo. In altre parole, ho la metà, come molti utenti come posso effettivamente gestire in questo momento. Hey, bilanciamento del carico, sono al 100% di utilizzo. Hey, bilanciamento del carico, 0% di utilizzo. Il bilanciamento del carico, se si tratta di progettata in modo che può prendere in quei commenti come input, può allora decidere, ooh, il numero 2 è al 100%. Mi permetta di non inviare le richieste future a lui diverse dagli utenti già connessi. Questo ragazzo è allo 0%. Mandiamo un sacco di traffico a lui. Questo ragazzo ha detto che è al 50%. Mandiamo una parte del traffico a lui. Quindi sarebbe un ingrediente, che potremmo prendere in considerazione il carico. E sta andando a cambiare nel tempo. Così le decisioni cambieranno. Ecco, questo è davvero un buon tecnica, uno che è comunemente usato. Che altro potevamo fare? E facciamo in realtà solo riassumere qui. Così le decisioni qui potrebbero essere in base al tipo di traffico, lo chiamerò. Essa può essere basata sul carico. Vediamo se non possiamo venire con pochi altri. PUBBLICO: [INAUDIBLE] DAVID MALAN: Posizione. Ecco, questo è un buon compromesso. Così come si potrebbe posizione-- sfruttare queste informazioni? PUBBLICO: [INAUDIBLE] DAVID MALAN: Oh, questo è un bene. E a quanti millisecondi sarebbe diminuire di in base a quello che abbiamo visto questa mattina, diresti? PUBBLICO: [INAUDIBLE] DAVID MALAN: Beh, in base sulle linee di traccia abbiamo visto in precedenza, che è solo una misura approssimativa di qualcosa, almeno il tempo necessario per i dati per arrivare da A a B si sente come qualcosa di locale era, che cosa, come 74 millisecondi, prendere o lasciare? E allora tutto 100 più, 200 più era probabilmente all'estero. E così sulla base che da sola, sembra ragionevole supporre che per un utente negli Stati Uniti per accedere a un server europea potrebbe richiedere due o tre volte purché, anche in millisecondi, di quanto potrebbe prendere se tale Server si trovavano qui geograficamente, o viceversa. Così, quando ho proposto precedenza che soprattutto una volta che si attraversa che 200 millisecondi soglia, prendere o lasciare, gli esseri umani cominciano a notare. E il percorso tracciato è solo assumendo, i dati non interessanti grezzi. Quando si dispone di un sito web, è necessario ottenere l'utente a scaricare immagini o film file, molto testo, le richieste successive. Abbiamo visto quando abbiamo visitato, che cosa era esso, Facebook o Amazon in precedenza, c'è un sacco di roba che deve essere scaricato. Quindi, che sta andando a sommare. Così multi-secondi potrebbe Non essere irragionevole. Così buono, la geografia è un ingrediente. Quindi, in realtà, come le aziende Akamai, se avete sentito parlare di loro, o altri hanno da tempo preso geografia in considerazione. E si scopre che per natura di un indirizzo IP, indirizzo IP del mio portatile, si può dedurre, con una certa probabilità, dove si trovi nel mondo. E infatti non c'è servizi di terzi voi può pagare che mantengono i database di indirizzi IP e aree geografiche che con elevata sicurezza sarà vero quando gli viene chiesto, quale parte del mondo è questo indirizzo IP? E così, infatti, che cosa altre aziende utilizzano questo? Se si dispone di Hulu o Netflix, se siete mai stati viaggia all'estero, e si tenta di vedere qualcosa su Hulu, e non sei negli Stati Uniti, si potrebbe vedere un messaggio dicendo, non negli Stati Uniti. Siamo spiacenti, non è possibile visualizzare questo contenuto. PUBBLICO: [INAUDIBLE] DAVID MALAN: Oh, davvero? Ma sì, in modo che in realtà è una perfetta applicazione di qualcosa di molto tecnico ad un problema reale. Se si dovesse VPN da Europa o in Asia o in qualsiasi in tutto il mondo per la vostra aziendale sede a New York o ovunque tu sia, sei andando a creare l'aspetto a siti web esterni che si sta effettivamente a New York, anche se sei fisicamente abbastanza lontano. Ora si che l'utente sta per sai che sei ovviamente via. Ma si sta anche andando a sentire perché di tali millisecondi aggiuntivi. Tale distanza supplementare e le crittografia che sta accadendo nel VPN sta per rallentare le cose. Così può o non può essere una grande esperienza. Ma Hulu e Netflix stanno andando a vedere voi come seduto da qualche parte a New York, come hai chiaramente raccolte. Che una perfetta soluzione a questo. Va bene, quindi la geografia è una decisione. Cos'altro potremmo usare per decidere come per instradare il traffico da A, B, e C 1, 2, e 3, di nuovo, mettendo il cappello di ingegneria su? Tutto questo suona molto complicato. Uh, non so nemmeno dove ad avviare l'attuazione quelli. Dammi qualcosa che è più semplice. Qual è il modo più semplice a prendere questa decisione? PUBBLICO: Il server disponibili? DAVID MALAN: Il server è disponibile? Quindi, non è male. Quello è buono. Questo è una sorta di caldi e sfumati di carico. Quindi cerchiamo di mantenere che nella categoria di carico. Se sei disponibile, io sono solo intenzione di inviare i dati lì. Ma che potrebbe ritorcersi contro in fretta. Perché se uso questa logica, e se io Chiedi sempre 1, sei su, sei su, sei su, se la risposta è sempre sì, Ho intenzione di inviare il 100% del traffico a lui, 0% per tutti gli altri. E a un certo punto, stiamo andando a colpire che il rallentamento o un sito non disponibile. Allora, qual è leggermente migliore rispetto che ma ancora piuttosto semplice e non così intelligente come prendere tutto questi dati aggiuntivi in ​​considerazione? PUBBLICO: Il costo per server. DAVID MALAN: Costo per server. OK, così mi permetta di buttare quel nella categoria di carico, anche. Perché ciò che troverete in una società, too-- che se si aggiornare i server nel tempo o comprare di più, si potrebbe non essere in grado di ottenere esattamente le stesse versioni di hardware. Perché cade fuori moda. Non è possibile acquistare più. I prezzi cambiano. Così si potrebbe avere i server disparati nel cluster, per così dire. Questo è totalmente bene. Ma l'hardware del prossimo anno potrebbe essere due volte più veloce, due volte in grado, come quest'anno. Quindi possiamo buttare quel nella categoria carico. Questo ciclo di feedback tra il 1, 2, e 3 nel bilanciamento del carico potrebbe certamente dire che, Hey, sono al 50% della capacità. Ma a proposito, ho anche il doppio dei nuclei. Utilizzare tali informazioni. Anche simpler-- e questo sta andando essere un tema in informatica. In caso di dubbio, o quando si desidera un semplice soluzione che funziona generalmente ben nel tempo, non scegliere lo stesso server di tutto il tempo, ma prego-- PUBBLICO: uno a caso? DAVID MALAN: --a server casuale. Sì, scegliere uno o l'altro. Così casualità è in realtà questo ingrediente molto potente in informatica, e in ingegneria più in generale, soprattutto quando si vuole per prendere una decisione semplice rapidamente senza complicare con tutti di questi molto intelligente, ma anche molto intelligenti, soluzioni che richiedono tanto più engineering, tutte l'altro pensiero, quando in realtà, perché non posso solo tipo di lanciare una moneta, o di un tre lati moneta in questo caso, e decidere se andare 1, 2, 3? Questo potrebbe ritorcersi probabilisticamente, ma proprio come le probabilità di lanciare di nuovo la testa e Ancora e ancora e ancora e ancora e ancora è possibile in eccellente reality--, super improbabile. Così nel corso del tempo, le probabilità sono solo l'invio agli utenti in modo casuale 1, 2, e 3 sta per lavorare perfettamente bene. E questa è una tecnica generalmente conosciuto come round robin. O in realtà, non è questo round robin. Questo sarebbe il metodo casuale. E se si vuole essere ancora un po 'più semplice di quello, round robin sarebbe, prima persona va 1, seconda persona a 2, terza persona 3, quarta scrivere 1. E qui sta il round robin. È solo tipo di andare in giro in un ciclo. Ora, si dovrebbe essere intelligenti su di esso. Si consiglia di non inviare ciecamente l'utente numero del server uno se ciò è il caso? Se è a capacità massima, o è solo non è più reattivo. Quindi idealmente si vuole un po ' tipo di ciclo di feedback. In caso contrario, è sufficiente inviare tutti degli utenti in un vicolo cieco. Ma che può essere preso in considerazione, anche. Quindi non sotto apprezzare il valore della solo casualità, che è molto spesso una soluzione a questi tipi di problemi. E noi scriviamo round robin. Così come alcune aziende implementano round robin o casualità o qualsiasi di tali decisioni? Beh purtroppo, fare cose come questa. Mi permetta di tirare un altro screenshot rapido. A dire il vero, facciamo due. Non so perché siamo ottenere tutti questi piatti. Questo è molto strano. Va bene, che cosa realmente vogliamo è uno screenshot. Questo è strano. Va bene, quindi posso falsificare questo. Io non so quanto lontano Voglio continuare a scorrimento. Quindi molto spesso, vi ritroverete ad un indirizzo come www.2.acme.com, forse www.3 o 4 o 5. E tenere d'occhio per questo. Non si vede spesso. Ma quando lo fai, che tipo di tende a essere più grande, più anziani, aziende stodgier che in realtà non tecnologicamente sembrano sapere quello che stanno facendo. E si vede questo su tech a volte, i più grandi. Così che cosa stanno facendo? Come stanno attuando il bilanciamento del carico, sarebbe sembrare? Se vi trovate come il digitazione dell'utente www.something.com, e improvvisamente ci sei www.2.something.com, ciò che ha loro carico bilanciatore probabilmente fatto? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, in modo che il bilanciamento del carico è presumibilmente prendere una decisione sulla base di una delle questi decisionale processes-- in realtà non importa quale. Ma tanto come ho disegnato il i numeri sul tabellone qui, i server non sono solo chiamato 1, 2 e 3. Probabilmente stanno chiamati www1, www2, WWW3. E si scopre che dentro di una richiesta HTTP è questa caratteristica. E ho intenzione di simulare questo come segue. Sto per aprire quello stesso scheda di rete sviluppatore come prima solo in modo che possiamo vedere cosa sta succedendo sul sotto la cappa. Ho intenzione di cancellare lo schermo. E ho intenzione di andare, andiamo dire, http://harvard.edu. Ora per qualsiasi motivi di lavoro, di Harvard ha deciso, come molti, molti altri siti web, per standardizzare la sua sito web su www.harvard.edu sia per la tecnica e ragioni di marketing. E 'solo un po' di Vogue per avere il www. Quindi il server di Harvard ha per reindirizzare qualche modo l'utente, Come continuo a dire, da un URL all'altro. Come funziona? Beh, mi permetta di andare avanti e premi invio. E notare l'URL davvero in fretta cambiato in www.harvard.edu. Lasciatemi scorrere indietro in questo la storia e fare clic su questo di debug informazioni di diagnostica, se si vuole. Fammi vedere la mia richiesta. Quindi, ecco la richiesta che ho fatto. E si noti che è coerente con il tipo di richiesta che ho fatto di Facebook prima. Ma notare la risposta. Che cosa c'è di diverso in la risposta questa volta? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, quindi non è un 200 OK. Non è un 404 Not Found. Si tratta di un 301 Spostato in modo permanente, che è una specie di uno strano modo di dire, Harvard ha aumentato e si è trasferito altrove per www.harvard.edu. Le 301 significa che questo è un redirect. E al quale deve l'utente a quanto pare essere reindirizzato? C'è un bocconcino aggiuntivo di informazioni privilegiate quella busta. E ognuna di queste linee sarà ora iniziare a chiamare un header HTTP. Header è solo un valore chiave pair-- qualcosa colon qualcosa. E 'un pezzo di informazione. Dove dovrebbe la nuova posizione pare essere? Si noti l'ultima riga tra tutti quei intestazioni. PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, quindi non c'è Informazioni aggiuntive. La prima linea che ho evidenziato dice 301 Moved Permanently. Bene, dove si è si è trasferita? L'ultima line-- e non lo fanno devono essere in questo ordine. Può essere casuale. Località colon significa, hey del browser, vai a questo URL, invece. Così browser capire HTTP redirect. E questo è molto, molto modo comune di rimbalzo l'utente da un luogo all'altro. Per esempio, se hai mai provato a visitare un sito web che non sei effettuato l'accesso, si potrebbe improvvisamente trovare come a un nuovo URL del tutto di essere richiesto il login. Come funziona? Il server è probabilmente l'invio di un 301. Ci sono anche altri numeri, come 302, un po 'diversa nel significato, inviati a un altro URL. E poi il server, una volta effettuato l'accesso, ti invierà di nuovo a dove in realtà previsto. Che cosa, dunque, sono poco siti web progettati facendo? Quando si visita www.acme.com, e hanno appena capita di avere chiamato i loro server www1, www2, WWW3, e così via, sono molto simply-- che è giusto, ma molto sorta di foolishly-- si reindirizzamento a un server in realtà in modo diverso nome. E funziona perfettamente bene. E 'bello e facile. Abbiamo visto come sarebbe fatto sotto la cappa nella busta virtuale. Ma perché è questo senza dubbio un decisione sbagliata di ingegneria? E perché sono una sorta di condiscendente verso questo particolare ingegneria approccio? Spiegare perché questo è male. Ben? PUBBLICO: [INAUDIBLE] DAVID MALAN: Ogni server avrebbe dovuto avere un duplicato del sito. Sono d'accordo con questo. E infatti, questo è quello che sto supponendo per tutta questa storia, poiché se wanted-- bene in realtà, tranne per Dan precedenza suggestione, dove se si dispone di diverso server facendo cose diverse, quindi forse potrebbero in realtà essere funzionalmente fare cose diverse. Ma anche allora, ad un certo punto, la vostra base di dati sta per essere sovraccaricato. Il server attivi statici sta per arrivare sovraccarico. Così ad un certo punto, siamo indietro a questa storia, dove abbiamo bisogno di più copie della stessa cosa. Quindi sono d'accordo con questo. PUBBLICO: [INAUDIBLE] DAVID MALAN: Ok, alcune pagine potrebbe essere sproporzionatamente popolare. E così fissarsi su un indirizzo non è necessariamente la cosa migliore. [INAUDIBLE]? PUBBLICO: [INAUDIBLE] DAVID MALAN: Che cosa vuoi dire con questo? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, esattamente. Quindi non si vuole necessariamente have-- certamente non vogliono avere i vostri utenti digitando manualmente www1 o www2. Dal punto di vista di branding, è appena sembra un po 'ridicolo. Se si desidera solo una sorta di pulito, esperienza elegante, Avendo questi sorta di casuale URL numerati non è veramente buono. Perché allora gli utenti sono sicuramente andando a copiare e incollare in e-mail o messaggi istantanei. Ora sono di moltiplicazione. Ora si sta sorta di confondere la vostra meno pubblico tecnico, che pensa l'indirizzo web è www2.something.com. Non c'è una semantica convincenti per questo. Succede solo per essere un sottostante dettaglio tecnico che hai numerati i server in questo modo. E peggio ancora, che cosa succede se, per esempio, forse intorno a Natale quando business è veramente esplodendo, hai www1 attraverso www99, ma in gennaio e febbraio e poi, si spegne la metà di quelli in modo da avere solo www1 attraverso www50? Qual è l'implicazione che ora molto ragionevole decisione aziendale? PUBBLICO: [INAUDIBLE] DAVID MALAN: È necessario la gestione di tutti coloro che sono ancora. PUBBLICO: [INAUDIBLE] DAVID MALAN: Esattamente. Questo è il tipo di pescato lì. Se i clienti hanno l'abitudine di cose bookmarking, inviandoli, basta salvare l'URL da qualche parte, o se è solo nella loro auto completare nel proprio browser in modo che siano in realtà non intenzionalmente digitando, è solo accadendo, potrebbero, per 11 mesi l'anno in modo efficace, in un vicolo cieco. E solo il più astuto di gli utenti sta per realizzare, forse dovrei manualmente rimuovere questo numero. Voglio dire, non è solo accadrà con molti utenti, così male per il business, ingegneria implementazione male saggio. Ma per fortuna, non è nemmeno necessario. Risulta che ciò bilanciatori di carico possono fare è invece di dire, quando A fa un richiesta-- hey A, andare a 1. In altre parole, invece di invio che reindirizzano in modo tale che passo uno in questo processo è in viaggio qui, egli è poi detto di andare altrove. E così passo tre è, se ne va altrove. È invece possibile continuare a percorso, per continuare ad usare quel termine, tutti i dati di un attraverso il bilanciamento del carico in modo che lui mai contatti 1, 2, o 3 direttamente. Tutto il traffico venga "instradato" dal bilanciamento del carico stesso. E così ora siamo una sorta di volutamente confondendo i confini tra questi vari dispositivi. Un bilanciamento del carico può dati di percorso. E 'solo una funzione che ha. Quindi un bilanciamento del carico, troppo, e ' un pezzo di software, davvero. E un router è un pezzo di software. E si può assolutamente avere due pezzi di software all'interno di un computer fisico così un carico balancer può fare queste cose multiple. Quindi c'è un altro modo per fare questo, che in realtà risale al tipo di principi primi di DNS, di cui abbiamo parlato prima della pausa. DNS era Domain Name System. Ricorda che puoi chiedere a un server DNS, che cosa è l'indirizzo IP di google.com, facebook.com? E possiamo effettivamente fare questo. Uno strumento non abbiamo usato in precedenza è uno che è altrettanto accessibili, chiamato nslookup, per la ricerca il nome del server. E sto solo andando a digitare facebook.com. E vedo che IP di Facebook indirizzo a quanto pare è questo. Lasciami andare avanti e copiare che, andare a un browser, e andare a http: // e che indirizzo IP e premere Invio. E infatti, sembra funzionare. Ora lavora a ritroso, quello che era all'interno della busta virtual che Facebook ha risposto con cui Ho visitato che indirizzo IP direttamente? Perché preavviso, dove sono ora? Dove sono ora, l'indirizzo? PUBBLICO: [INAUDIBLE] DAVID MALAN: Alla versione sicura, e al www.facebook.com. Quindi non è nemmeno solo l'indirizzo IP sicuro. Facebook ha preso su di sé per dire, questo è ridicolo. Non abbiamo intenzione di tenere voi in questo URL cercando brutto che è numerico. Stiamo per inviare un HTTP reindirizzare per mezzo di quella stessa intestazione che abbiamo visto before-- posizione del colon qualcosa. E quindi questo significa semplicemente che sotto il cofano è ancora questo indirizzo IP. Ogni computer su Internet ha un indirizzo IP, sembrerebbe. Ma non necessariamente esporre che all'utente. E proprio come back in the day, ci era 1-800-raccogliere, 1-800-C-O-L-L-E-C-T, negli Stati Uniti, era un modo di fare Collect chiamate tramite un telefono molto facilmente memorabile numero o 1-800-materasso per comprare un letto, e mnemonici simili che ancora di vedere al telefono tipo di specie di ancora, che le lettere mappa ai numeri. Ora, perché? Bene, è molto più facile da memorizzare 1-800-materasso o 1-800-COLLECT invece di 1-800 qualcosa qualcosa qualcosa qualcosa qualcosa qualcosa qualcosa, dove ogni di quelli che è una cifra. Allo stesso modo, il mondo ha imparato rapidamente che non dovremmo sono persone memorizzare indirizzi IP. Sarebbe sciocco. Abbiamo intenzione di usare i nomi, invece. Ed è per questo che DNS è nato. Va bene, quindi con che ha detto, in termini di bilanciamento del carico, proviamo yahoo.com. Beh, questo è interessante. Yahoo sembra essere il ritorno di tre indirizzi IP. Quindi dedurre da questo, se si potesse, che cosa è un altro modo che potremmo implementare questa nozione di bilanciamento del carico forse senza neanche usare un fisico dispositivo, questo nuovo dispositivo fisico? In altre parole, posso togliere il finanziamento che avete per il bilanciamento del carico e ti dirà di utilizzare alcune esistente pezzo di hardware per implementare questa nozione di bilanciamento del carico? E lo spoiler è, Sì, ma che cosa, o come? Qual è Yahoo forse ci fa qui? Kareem? OK, Chris? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, tutto tre di questi lavori. Così casualità, round robin, posizione-- si può solo sfruttare un pezzo esistente del puzzle di cui abbiamo parlato in precedenza del DNS Sistema e semplicemente dire, quando il primo utente del giorno richiede yahoo.com, dare loro il primo indirizzo IP, come quella che termina in 45 lassù. E la prossima volta che un utente richiede l'indirizzo IP del yahoo.com da qualche parte nel mondo, dare loro il secondo IP, poi il terzo IP, allora il primo IP, poi il secondo. O essere intelligenti su di esso e farlo graficamente. O farlo in modo casuale e non basta fare esso round robin in questo modo. E in questo caso, quindi non abbiamo nemmeno bisogno di introdurre questo nero box nella nostra immagine. Non abbiamo bisogno di un nuovo dispositivo. Stiamo semplicemente dicendo computer per andare ai server direttamente, efficace, ma non mediante il loro nome. Non hanno mai bisogno di sapere il nome. Stanno solo viene detto che yahoo.com mappe per uno qualsiasi di questi indirizzi IP. Quindi invia la stessa richiesta. Ma all'esterno di la busta, semplicemente mette l'IP di essere stata informata di. E in questo modo, anche, potrebbe carichiamo bilanciare le richieste semplicemente inviando la busta di un diverso uno dei propri server di Yahoo? E se continuiamo a scavare, vedremo probabilmente altre aziende con più. La CNN ha due esposto pubblicamente. Anche se in realtà se facciamo questo nuovo e again-- cnn.com-- si può vedere stanno cambiando ordine, in realtà. Allora, qual è il meccanismo CNN utilizzando, a quanto pare? PUBBLICO: Random. DAVID MALAN: Beh, potrebbe essere casuale, sebbene sembra essere il ciclismo avanti e indietro. Quindi è probabilmente round robin in cui sono solo passare l'ordine in modo che io probabilmente fare il primo. Il mio computer avrà la prima volta in volta. Ecco, questo è il bilanciamento del carico. E che ci permette, in ultima analisi, per mappare i dati, o della mappa richieste, tra più server. Quindi che tipo di ora esistono ancora problemi? Ci si sente come abbiamo appena davvero risolto un buon problema. Abbiamo ottenuto gli utenti a diversi server. Ma-- oh, e Chris, ha fatto hai una domanda, prima? PUBBLICO: [INAUDIBLE] DAVID MALAN: dipende totalmente. Allora, cosa sta succedendo qui? E possiamo realmente vedere questo. Quindi proviamo Yahoo. A dire il vero, andiamo a Facebook. Perché sappiamo che si lavora. Quindi ho intenzione di copiare che l'indirizzo IP di nuovo. Ho intenzione di chiudere tutte queste schede. Ho intenzione di andare aperto che scheda di rete speciale qui. E ho intenzione di visitare solo http: //. E ora ho intenzione di premere Invio. E vediamo cosa è successo. Se guardo quella richiesta, avviso che my-- Facebook è un cattivo esempio. Perché hanno un tecnica super elegante che nasconde quel dettaglio da noi. Mi permetta di utilizzare Yahoo instead-- http: // che IP. Apriamo la nostra rete scheda, conserva log. E qui andiamo, entrare. È divertente. OK, ecco la famosa 404 messaggio. Cosa c'è di divertente è che essi probabilmente non lo sarà mai indietro. Perché c'è probabilmente Non qualcosa di sbagliato in sé. Hanno appena deliberatamente ha deciso di non supportare la forma numerica del loro indirizzo. Quindi quello che stiamo realmente vedendo nel scheda di rete, se mi tiro questo qui, è, come ho detto, il famoso 404, dove se guardo le intestazioni di risposta, questo è quello che ho ottenuto qui-- 404 Not Found. Quindi proviamo un altro. Vediamo se CNN collabora con noi. Prendo uno degli indirizzi IP della CNN, deselezionare questa, http, dah, dah, dah, dah. Quindi, in risposta a Chris domanda, che uno funzionasse. E andiamo a intestazioni di risposta. In realtà no, va bene, io sono lottando per trovare un esempio di lavoro. Quindi, la CNN ha deciso, ci limiteremo a vi lasciamo a qualunque indirizzo effettivamente visita, le questioni di branding da parte. Ma ciò che non sarebbe successo, se abbiamo potuto vedere nel caso di Facebook, è ci sarebbe un 301 Moved Permanente, molto probabilmente, all'interno della quale è Località: https: //www.facebook.com. E le probabilità sono www.facebook.com è un alias per l'esatto stesso server che abbiamo appena è andato a. Quindi è un po 'controproducente. Stiamo letteralmente visitare il server. Il server viene poi ci dice, andare via. Vai a questo altro indirizzo. Ma siamo proprio così capita di essere tornare a quello stesso server. Ma presumibilmente ora rimanere su tale server senza questo avanti e indietro. Perché ora stiamo usando la chiamammo versione del sito, non il numerico. Buona domanda. OK, quindi se ora abbiamo assume-- hanno risolto il bilanciamento del carico. Ora abbiamo un meccanismo, che si tratti di via DNS, che si tratti di via questa scatola nera, se che sta utilizzando una di queste tecniche. Possiamo prendere richiesta di un utente e capire a quale server, 1, 2, o 3, per inviare lui o lei. Quello che comincia a rompere il nostro sito? In altre parole, abbiamo costruito un business che era in precedenza su un singolo server. Ora che il business è in esecuzione tra più server. Che tipo di ipotesi, che tipo di decisioni di progettazione, potrebbe ora essere la rottura? Questo è meno evidente. Ma vediamo se non possiamo mettere la nostra dito su alcuni dei problemi che abbiamo creato per noi stessi. Anche in questo caso, è una specie di come tenere lungo la perdita nel tubo. E ora un po 'di nuova emissione è spuntato qui. PUBBLICO: [INAUDIBLE] DAVID MALAN: OK, quindi dobbiamo continuare a crescere il nostro spazio sul disco rigido. Sto bene con che in questo momento. Perché credo di poter scala orizzontale. Come se sto correndo basso, mi limiterò a get quarto assistente, forse un quinto del server, e quindi aumentare la nostra capacità di un ulteriore 30% o 50% o roba del genere. Quindi sono d'accordo con questo, almeno per ora. PUBBLICO: [INAUDIBLE] DAVID MALAN: Ok, questo è un buon punto. Quindi supponiamo che i server non sono identici. E il servizio clienti o l'e-mail equivalente sta ottenendo qualche messaggio da un utente dicendo, questo non sta funzionando bene. E 'molto possibile, a volte, che forse uno o più server agisce un po 'storto, ma non gli altri, che può certamente rendere più difficile per inseguire il problema. Potrebbe essere necessario guardare più posti. Questo è manifestazione di un altro tipo di bug, che è che probabilmente si dovrebbe hanno progettato l'infrastruttura in modo che tutto è realmente identici. Ma lo fa rivelare un nuovo problema che non avevamo prima. Cos'altro? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, c'è una maggiore complessità. Ci sono fisicamente più fili. C'è un altro dispositivo. In realtà, ho introdotto un fondamentale concept e un problema fondamentale qui noto come un singolo punto di fallimento, che, anche se non avete mai sentito la frase, si può probabilmente ora lavorare a ritroso e capirlo. Che cosa significa che ho una sola punto di errore nella mia architettura? E per l'architettura, ho solo significare la topologia di esso. PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, che cosa se il bilanciamento del carico va giù? Ho inserito questo uomo di mezza cui scopo nella vita è quello di risolvere un problema. Ma ho introdotto un nuovo problema. Una nuova perdita è sorta nel tubo. Perché ora se il bilanciamento del carico muore o si rompe o misfunctions, ora ho perso l'accesso ai tutti e tre dei miei assistenti. E prima, non l'ho fatto avere questo intermediario. E così questo è un problema nuovo, probabilmente. Torneremo a come potremmo rimediare. PUBBLICO: [INAUDIBLE] DAVID MALAN: Questo sarebbe un approccio. Già, e quindi questo sta per essere abbastanza il foro del ratto iniziamo a scendere. Ma torniamo a che in un attimo. Quali altri problemi abbiamo creato? Così Dan accennato database prima. E anche se non sei troppo familiare tecnicamente, un database è solo un server in cui la modifica dei dati è in genere memorizzati, forse un ordine qualcuno ha posto, il profilo utente, il proprio nome, il tuo indirizzo e-mail, cose che potrebbero essere immessi o modificati nel corso del tempo. In precedenza, il mio database era in lo stesso server come il mio web server. Perché ho appena avuto uno account di web hosting. Tutto era tutto nello stesso posto. Dove devo mettere il mio database Ora, sul server 1, 2, o 3? PUBBLICO: 4. DAVID MALAN: 4, OK, tutto a destra, quindi andiamo lì. Quindi ho intenzione di mettere il mio database-- e andiamo avviare etichettare questi www, www, www. E ho intenzione di dire, questo è il numero quattro. E io dico db per il database. OK, mi piace questo. Che linea dovrei presumibilmente essere disegno qui? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, in modo che il codice, come vedremo domani, presumibilmente è la stessa su tutti e tre i server. Ma ora deve collegarsi non un database in esecuzione in locale, ma altrove. E va bene. Possiamo solo dare il database di un nome, come abbiamo, o un numero. E che tutto funziona benissimo. Ma che cosa abbiamo fatto? Abbiamo scalato orizzontalmente avendo tre server invece di uno, che è buono. Perché ora siamo in grado di gestire tre volte tanto carico. E meglio ancora, se uno o due di questi server va giù, la mia azienda può continuare a funzionare. Perché ho ancora uno, anche se sono tipo di zoppicando prestazioni-saggio. Ma ciò che nuovo problema ho io introdotto spostando il database a questo server separato invece che su 1, 2, e 3? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, così ora ho un altro singolo punto di errore. Se la mia base di dati muore, o ha bisogno di essere aggiornati, o qualsiasi altra cosa, ormai sicuro, il mio sito è online. E posso servire statica, contenuti immutabile. Ma non posso consentire agli utenti di log-in o il cambiamento qualcosa o ordinare qualsiasi cosa, peggio ancora. Perché se 4 non è in linea, poi 1, 2, e 3 davvero non si può comunicare con esso per definizione. OK quindi sì, e quindi questo è il motivo per cui Sto esitando a disegnare questo. Quindi torniamo a quello. Non voglio dire di tenere ti spinge fuori. Ma il quadro è molto rapidamente andando ottenere stressante. Perché è necessario iniziare avere due di tutto. Infatti, se hai mai visto la film Contact a pochi anni fa con Jodie Foster-- no? OK, così per due noi che hanno visto di contatto, c'è un rapporto là dove essenzialmente comprato due di qualcosa piuttosto che una, seppur al doppio del prezzo. Così è stato una sorta di giocosa commentare nel film. È un po 'legato a questo. Potremmo assolutamente farlo. E si è appena costo noi due volte più soldi. Ma torneremo a questo. Così abbiamo risolto questo. Allora sai cosa? Questo è come un pendio scivoloso. Non voglio avere a che fare con disporre di un database duplicato. E 'troppo denaro. Sai cosa? Io voglio avere il mio database proprio come nella versione uno dove ogni server ha proprio database locale. Così sto solo andando a disegnare db su ciascuno di essi. Così ora ogni server web è identico nella misura in quanto ha lo stesso codice, lo stesso Le attività statiche, stesse immagini e testo e così via. E ognuno ha una propria banca dati. Ho sistemato il singolo punto del problema fallimento. Ora ho un database. Non importa quale due o uno di questi Le cose muoiono, c'è sempre uno a sinistra. Ma ciò che nuovo problema ho creato che la soluzione di Dan evitato? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, devono sincronizzare loro, giusto? Perché sia ​​Ho bisogno di sincronizzare che sta andando where-- in altre parole, se Alice visita il mio sito, e le capitò per ottenere robined casuale o turno o qualsiasi altra cosa, al numero di server di uno, da allora in poi devo sempre mandarla al server 1. Perché? Perché se io mando al server 2, sta andando a guardare come lei non esiste lì. Non ho intenzione di avere la sua storia ordine. Non ho intenzione di avere il suo profilo lì. E che si sente proprio come è invitante problemi. E quando Bob visita, ho dovuto mandarlo sempre allo stesso server, 2, o qualsiasi uno, e Charlie ad un terzo, e costantemente. Questo non è irragionevole, però. Questo è chiamato partizionamento del database. E in effetti questo era ciò che Facebook ha fatto nella fase iniziale. Se avete seguito la storia di Facebook, è iniziato qui al campus come www.thefacebook.com. Poi si è evoluta una volta Mark ha iniziato diffusione in altre sedi di essere harvard.thefacebook.com e mit.thefacebook.com, e probabilmente bu.thefacebook.com, e simili. E che è stato a causa nella fase iniziale, non credo si potrebbe avere amici in tutto campus. Ma va bene. Perché chiunque da Harvard ma ho inviato a questo server. Chiunque da BU ottenuto inviato a questo server. Chiunque da MIT ha ottenuto inviato a questo server-- in teoria. Io non so bene tutto il dettagli di implementazione sottostanti. Ma presumibilmente partizionato persone da loro campus, dove la loro rete era. Quindi, questo è un bene fino al punto dove avete bisogno di due server per Harvard, o tre server per Harvard. E poi che la semplicità tipo di rompe. Ma questo è un approccio ragionevole. Facciamo sempre inviare Alice nello stesso posto, inviare sempre Bob nello stesso posto. Ma cosa succede se Alice server va offline? Bob e Charlie possono ancora acquistare cose e accedere al sito. Ma Alice non può. Quindi hai perso un terzo della base di utenti. Forse è meglio che il 100%? Ma forse sarebbe bello se potessimo ancora sostenere il 100% dei nostri utenti anche quando un terzo della nostra server va offline. Così abbiamo potuto sincronizzare cosa? Non gli utenti, di per sé, ma la banca dati in tutti questi server. Così ora abbiamo tipo di bisogno di qualche tipo di interconnessione qui in modo che i server stessi può sync-- non irragionevole. Ed infatti, esiste questa tecnologia. Nel mondo dei database, non c'è la nozione di basi di dati master-slave, o primaria-secondaria, dove tra le caratteristiche non è solo per memorizzare i dati e rispondere con i dati, ma anche solo per sempre la sincronizzazione con l'altro. Così ogni volta che si scrive o si salva qualcosa a questo database, immediatamente viene "replicato" agli altri database oltre. E ogni volta che si legge da esso, non importa dove ti trovi. Perché se in teoria hanno tutti sincronizzati, sei andando ad ottenere la stessa vista dei dati. Quindi, questo suona perfetto. Ci deve essere una cattura. Quale potrebbe essere la cattura? PUBBLICO: [INAUDIBLE] DAVID Malan: Sì, così per tre volte tanto roba potrebbe andare male. Questa è una realtà. Potrebbe essere tutti la stessa nello spirito. Ma qualcuno deve configurare questi. C'è una maggiore probabilità che qualcosa sta per andare storto. Proprio combinatorio avete più roba soggetto a errori. Che altro è un male potenzialmente? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, così sincronizzazione può essere cattivo. Anche se si potrebbe sapere da backup e tale, se solo stanno facendo ciecamente i backup, cosa succede se qualcosa non andare male in un database? Si elimina qualcosa che non dovrebbe. Hai subito replicata che problema ovunque. Così Victoria era backup talking-- sarebbe una buona cosa qui. E così ci arriveremo di nuovo a questo. E per essere chiari, stiamo parlando non si tratta di backup qui per sé. Stiamo parlando di vera replica o la sincronizzazione tra i server. Sono tutti in diretta. Non sono destinati a essere usato per i backup. PUBBLICO: [INAUDIBLE] DAVID MALAN: Che cos'è? AUDIENCE: Higher-- DAVID MALAN: costo più elevato. Abbiamo triplicato il costo per sicuro, anche se almeno in termini dell'hardware. Perché un database è solo un pezzo di software. E un server web è un pezzo di software. E 'probabilmente gratis se stiamo usando qualsiasi numero di cose open source. Ma se stiamo utilizzando qualcosa come Oracle, stiamo pagando più soldi per Oracle licenze o Microsoft per l'accesso. Ci deve essere qualche altro fermo qui. Non può essere questo semplice. Quindi, per il vostro punto, penso che sia stata Kareem, per la geografia earlier-- o no, Romano, è stato, per geography-- supponiamo che stiamo essere intelligente su questo, e stiamo mettendo uno dei nostri server, ea sua volta le nostre banche dati, negli Stati Uniti, e un altro in Europa, un altro in Sud America, un altro in Africa, un'altra in Asia, ovunque noi potrebbe volere in tutto il mondo. Sappiamo già dalla nostra traccia percorsi che i punti A e B, se sono più lontani, stanno andando a prendere più tempo. E se alcuni di voi hanno usato strumenti, come Facebook o Twitter o qualsiasi di questi siti in questi giorni che sono in continua evoluzione a causa di utente dati creati, a volte se si colpire Ricarica o aprire la stessa pagina in un altro browser, si vede diverse versioni, quasi. Si potrebbe vedere lo stato di una persona aggiornare qui, ma non qui, e poi si ricarica, e poi appare, e si ricarica di nuovo, e scompare. In altre parole, mantenere un occhio questo, almeno se si sta utilizzando sociale rete, soprattutto. Anche in questo caso, solo perché il dati sta cambiando così rapidamente, a volte i server si ottiene fuori sincrono. E forse è un super piccola finestra. Ma 200 millisecondi, forse anche più di che-- è andando a prendere un po 'diverso da zero importo di tempo per questi database per la sincronizzazione. E non siamo solo parlando di una richiesta. Se una società ha migliaia di utenti usando simultaneamente, potrebbero tampone. In altre parole, ci potrebbe essere una coda o di una linea di attesa prima di tutti quelli del database query possono ottenere sincronizzato. Quindi forse è in realtà un paio di secondi. E in effetti questo è vero credo che anche a questo giorno con Facebook, per cui quando si sincronizzano da East Coast alla West Coast, ha un non banale ritardo di propagazione, per così dire, che solo tipo di tollerare. E quindi non è tanto un errore in quanto è una realtà che gli utenti potrebbero non vedere i dati corretti per almeno pochi secondi. Vedo questo su Twitter un sacco in realtà dove a volte io twittare in una finestra, aprire un altro a poi vedere per confermare che effettivamente salì, e non è ancora arrivati. E devo tipo di ricaricare, ricaricare, reload-- oh, è così. E non è perché non è stato salvato. Semplicemente non si è propagato ad altri server. Quindi questo trade-off, too-- si ha realmente vuole esporsi al rischio che se l'utente va al loro ordine la storia, non è ancora in realtà c'è? Vedo questo su alcune banche. Mi infastidisce sempre quando, bene, per esempio, si può solo andare come sei mesi fa nei vostri estratti conto bancari in alcune banche, anche se in teoria dovrebbero essere in grado di avere tutto online. Hanno appena prendono roba in linea a volte. A volte, too-- quale sito si tratta? C'è tra-- oh, è GoDaddy, credo. GoDaddy, al momento del check out l'acquisto di un nome di dominio o qualcosa, faranno spesso ti danno un link al tuo ricevimento. E se si fa clic su quel link a destra via, spesso non funziona. Si dice solo, vicolo cieco, niente qui. E questo è anche a causa di questi ritardi di propagazione. Perché per qualsiasi motivo, si stanno prendendo un po 'di tempo per generare in realtà che. Quindi questo è un po 'come si vuole tirare i capelli a un certo punto. Perché tutti si sta cercando di fare è risolvere un problema semplice. E continuiamo a creare nuove problemi per noi stessi. Così vediamo se ci può tipo di annullare questo. Si scopre che la combinazione database su tutti i server web non è davvero delle migliori pratiche. In generale, ciò che un ingegnere avrebbe fatto, o sistemi di architetto, sarebbe quello di avere diversi livelli di server. E solo per amor di spazio, io attirare la loro banca dati qui. Potremmo avere database e numero di server a quattro qui che ha collegamenti con ciascuno di questi server qui. Quindi questo potrebbe essere il nostro front fine di livello, come spesso si dice. E questo sarebbe il nostro livello di back-end. E questo significa solo che questi affrontano l'utente. E i database non faccia l'utente. Nessun utente può direttamente accedere al database. Quindi cerchiamo di ora forse scendere il percorso proposto Victoria. Questo è un singolo punto di errore. Questo mi mette a disagio. Allora, qual è forse il soluzione più ovvia? PUBBLICO: [INAUDIBLE] DAVID MALAN: Siamo spiacenti, dire ancora una volta che. PUBBLICO: [INAUDIBLE] DAVID MALAN: server non di produzione. Cosa intendi? PUBBLICO: [INAUDIBLE] DAVID MALAN: Oh, OK, così i backup. OK, così abbiamo potuto fare questo, certamente. E in realtà questo è molto comunemente fatto. Questo potrebbe essere il numero di database cinque. Ma questo è solo collegato al numero quattro. E si potrebbe chiamare un hot spare. Questi due database possono essere configurati ad appena costantemente la sincronizzazione l'un l'altro. E così, se questa macchina muore, per qualunque sia stupido reason-- il disco rigido muore, qualcuno inciampa sul spinale, alcuni software è difettoso e il computer si blocca o crashes-- si potrebbe avere un essere umano letteralmente scollegare questo dalla parete e invece collegare questa in. E poi all'interno, diciamo, un pochi minuti, forse mezz'ora, sei di nuovo online. Non è grande, ma non è anche orribile. E non ci si deve preoccupare su eventuali problemi di sincronizzazione. Perché tutto è già lì. Perché si ha un perfetto backup pronto ad andare. Si potrebbe essere un po ' amatore di questo, come alcune persone spesso fanno, dove si potrebbe avere il numero di database quattro qui, numero di database cinque qui, che stanno parlando gli uni agli altri. Ma è anche questo tipo di arrangement-- e deliberatamente sembra disordinato, perché è-- dove tutti i i server front-end può parlare con tutti i server back-end. E quindi se questo database non lo fa rispondere, questi server front-end hanno per avere la programmazione codice in loro che dice, se non si ottiene un collegamento a questo database, il primario inizia immediatamente parlando al secondario. Ma questo ora spinge la complessità al codice. E ora gli sviluppatori, il software gli sviluppatori, devono sapere su questo. E stai tipo di legare il codice che si sta scrivendo al back-end reale dettagli di implementazione, il che rende più difficile, soprattutto in una grande società o un sito web più grande, dove non necessariamente vogliono i programmatori abbiano di sapere come la banca dati Gli ingegneri stanno facendo il loro lavoro. Si potrebbe voler mantenere quei ruoli sorta di funzionalmente distinti in modo che c'è questo strato di astrazione tra i due. Così come potremmo risolvere questo problema? Bene, abbiamo tipo di risolto questo problema una volta prima. Perché non mettiamo una delle queste cose qui, dove si parla a sua volta, al numero di quattro e cinque, tutti i server Web front-end parlare con questo intermediario, e il intermediario in percorsi trasformare i dati? Infatti, ciò che potrebbe essere un buon nome per questa cosa? PUBBLICO: [INAUDIBLE] DAVID MALAN: OK, Database Manager. Ma quello che potrebbe essere un termine che potremmo riutilizzare per questo dispositivo? Stiamo bilanciamento. Sì, così in realtà, sono non essere giusto qui. Così un bilanciamento del carico implicherebbe che stiamo commutazione avanti e indietro qui, che non ha bisogno di essere effettivamente il caso. Quindi c'è un paio di modi che potremmo fare questo. Se questo è infatti un bilanciamento del carico, la storia è esattamente la stessa di prima. Alcune delle richieste vanno a 4. Alcuni di loro vanno a 5. E questo è un bene. Perché ora siamo in grado di gestire il doppio flusso. Ma questa connessione qui è super importante. Devono rimanere costantemente sincronizzato e, si spera non sono geograficamente troppo distanti in modo che la sincronizzazione è essenzialmente istantaneo. In caso contrario, si potrebbe avere un problema. In modo che non è male. Ma ancora una volta, abbiamo introdotto un nuovo problema. Che problema ho appena ricreato? single point of failure. Quindi qual è la soluzione a questo? Così come Victoria appassionato di spendere soldi, possiamo prendere questo ragazzo fuori e fare questo. E sto solo andando a spostare qui abbastanza spazio. E sta andando ad essere un po 'disordinato. Ho intenzione di mantenere le linee di disegno. Supponiamo che tutti quelle linee vanno in entrambe le cose? Una tecnica molto comune qui sarebbe utilizzare una tecnica chiamata battito cardiaco in cui ognuno di questi dispositivi, bilanciatori di carico sinistro e destro, o qualsiasi altra cosa che vogliamo chiamarli, è in continua dicendo: Io sono vivo, Io sono vivo, sono vivo, sono vivo. Uno di loro per impostazione predefinita agisce come primario. Quindi, tutto il traffico viene instradato attraverso quella a sinistra, per esempio, Per impostazione predefinita, in modo arbitrario. Ma non appena il ragazzo sulla destra non sentire dal ragazzo di sinistra più, quello di destra è programmato automaticamente, per esempio, prendere in consegna l'indirizzo IP da una a sinistra, e quindi diventare il primario, e forse inviare una e-mail o un messaggio di testo per gli esseri umani a dire, hey, il primario di sinistra non è in linea. Diventerò primaria per ora. Quindi, diventa vice presidente presidente, per così dire. E qualcuno deve andare a salvare il presidente, se si vuole. Perché ora abbiamo una temporanea single point of failure. Così come complicato o stressante come questo potrebbe sembrare per cominciare ad essere, questo è il modo per risolvere questi problemi. Tu fai buttare soldi a lui. Si butta hardware a questo. Ma purtroppo si aggiungere complessità per esso. Ma il risultato, in ultima analisi, è che si dispone di un molto di più, in teoria, robusta architettura. Non è ancora perfetto. Perché anche quando noi potremmo have-- non hanno un singolo punto di errore. Ora abbiamo punti doppi di fallimento. Ma se due cose vanno male, che assolutamente potrebbe, stiamo ancora andando a essere non in linea. E così molto comune nel industria è descrivere il vostro tempo in termini di nove. E una specie di obiettivo a cui aspirare è 99,999% del tempo il sito è on-line. O meglio ancora, aggiungere un paio di nove a questo. Sfortunatamente, questi nove sono molto costosi. E cerchiamo di fare questo in realtà fuori. Quindi, se ho aperto il mio grande calcolatore di nuovo, 365 giorni in un anno, 24 ore in un giorno, 60 minuti a un'ora, e 60 secondi in un minuto, è così che quanti secondi ci sono in un anno, se ho fatto questo in modo corretto. Quindi, se volte questo 0,99,999 mila, che è quanto tempo vogliamo aspirare. Quindi questo significa che dobbiamo essere all'altezza questo numero di secondi durante l'anno. Quindi, se ora mi sottraggo il valore originale, o meglio questo nuovo valore dal first-- 316 secondi, che naturalmente è di cinque minuti. Quindi, se il vostro sito o la vostra azienda è sostenendo "cinque nove", per cui siete fino 99,99% del tempo, che significa una migliore sono stati abbastanza intelligente e veloce abbastanza e abbastanza a filo con le risorse che i server sono solo offline cinque minuti fuori dell 'anno. Si tratta di un costoso e cosa difficile a cui aspirare. Quindi è un compromesso, anche. 99,999% del tempo è piuttosto maledettamente difficile e costoso. Cinque minutes-- si riesce a malapena ottenere al server di sostituire fisicamente qualcosa che è andato storto. Ed è per questo che iniziamo cablaggio cose insieme più complicate priori in modo che i computer può sorta di fissare essi stessi. Sì. PUBBLICO: [INAUDIBLE] DAVID MALAN: il problema potrebbe essere in qualsiasi numero di posizioni. E in fact-- PUBBLICO: [INAUDIBLE] DAVID MALAN: Assolutamente, assolutamente. E come l'immagine è Sempre più complesso, Potrebbe essere il server web. Potrebbe essere il potere all'edificio. Potrebbe essere qualcosa di fisico, come i cavi GOT sfilacciate o cacciato fuori. Potrebbe essere database non risponde. Potrebbe essere che ha aggiornato il loro funzionamento sistema e qualcosa è appeso. Così ci sono tante altre parti in movimento. E così un sacco di ingegneria che deve andare dietro questo è in realtà solo il commercio off, come come molto tempo, quanti soldi è in realtà vale la pena, e quali sono le minacce sei davvero preoccupato? Ad esempio, nel corsi che insegno ad Harvard, usiamo un sacco di cloud computing, che inizieremo dare un'occhiata a ora, infatti, dove si usa Amazon Web Services. Proprio perché questa è la quella che abbiamo iniziato con. Ma c'è sempre più in questi giorni da parte di Google e Microsoft e altri. E abbiamo consapevolmente scelto di mettere tutti di macchine virtuali dei nostri corsi ", come si chiamano, nel credo si tratta di dati di Western Center Virginia. La maggior parte dei nostri studenti capita di essere dagli Stati Uniti, anche se ci sono certamente un po 'a livello internazionale. Ma la realtà è che è solo più semplice ed è più economico per noi di mettere tutte le nostre uova nel cestino Virginia, anche se so se qualcosa va male in Virginia, come ha happened-- di tanto in tanto come se c'è un uragano o un po 'di tempo evento come quello, se c'è qualche problema rete elettrica o la like-- tutto dei dati dei nostri corsi 'potrebbero andare offline per un determinato numero di minuti o ore o anche di più. Ma la quantità di complessità che sarebbero necessari, e la quantità di denaro che sarebbe essere necessario, per operare tutto in parallelo in Europa o in California semplicemente non ha tanto senso. Quindi è un commercio razionale off, ma dolorosa quando si è in realtà avere quella tempi di inattività. Ebbene, la transizione andiamo a destra ora a alcune delle soluzioni cloud-based ad alcuni di questi problemi. Tutto ciò che siamo stati discutendo finora è una specie di problemi che hanno stato con noi per qualche tempo, se avete il vostro server della società, se si va a un co-location posto come un centro di dati e condividere spazio con qualcun altro, o al giorno d'oggi nel cloud. E che cosa c'è di bello la nube è che tutti di queste cose che mi disegno come oggetti fisici possono ora essere pensato come sorta di oggetti virtuali nella nube che sono simulato con il software. In altre parole, il computer di oggi, i server di oggi, come l'immagine di Dell Ho mostrato in precedenza, sono così in fretta, hanno tanto RAM, tanto CPU, tanto su disco spazio, che le persone hanno scritto software di partizione virtualmente un server su nel illusione di essa essendo due server, o 200 server, in modo da che ognuno di noi clienti ha l'illusione di avere non solo un account su alcuni web Ospitiamo, ma la nostra macchina che siamo affitto da qualcun altro. Ma si tratta di una macchina virtuale in per quanto su un server Dell, di nuovo potrebbe essere partizionato fino in due o 200 o più macchine virtuali, ognuno dei quali dare a qualcuno amministrativo accesso, ma in un modo in cui nessuno di noi sa o può accedere ad altri virtuale macchine sullo stesso hardware. Quindi, per dipingere un quadro di diapositive di oggi, Ho questo girato qui da un sito web chiamato Docker. Quindi questo è un po 'più dettaglio di quanto abbiamo effettivamente bisogno. Ma se si visualizza questo come la tua infrastructure-- così appena l'hardware proprio, i server, gli scaffali, i dati il centro, e tutti che-- si farebbe tipicamente eseguire un sistema operativo host. Quindi qualcosa like-- potrebbe essere Windows. Non sarebbe Mac OS. Perché questo non è proprio impresa in questi giorni. Quindi sarebbe Linux o Solaris o Unix o BSD o FreeBSD o qualsiasi numero di altri sistemi operativi che sono liberi o commerciale. E poi si esegue un programma, programma speciale, chiamato un hypervisor, o Virtual Machine Monitor, VMM. E questi sono i prodotti, se siete familiare, come VMware o VirtualBox o Virtual PC o di altri. E che questi programmi fanno è esattamente questa caratteristica ho descritto in precedenza. Si crea l'illusione che una macchina fisica può essere più macchine virtuali. E così questi scatole colorate sulla parte superiore è dipingere un quadro di quanto segue. Questo hypervisor, questo pezzo di software, lo chiamano VMware, in esecuzione su un altro sistema operativo, lo chiamano Linux, sta creando l'illusione che questo computer fisico è in realtà uno, due, tre computer virtuali. Così ora ho comprato, come il proprietario di questo hardware, un computer fisico. E ora sto affittando a tre clienti. E quei tre clienti in tutto pensano hanno una macchina virtuale dedicata. E non è specchietto per le allodole. E 'più che rivelazione si sta utilizzando una macchina virtuale. Ma tecnologicamente, tutti noi avere il pieno controllo amministrativo su ciascuno di quelli ospite sistemi operativi, che potrebbe essere un qualsiasi numero di sistemi operativi. Posso installare tutto quello che voglio. Posso aggiornarlo come voglio. E non hanno nemmeno bisogno di sapere o preoccupano l'altra operativa sistemi su quel computer, le altre macchine virtuali, meno che il proprietario di tutto questo grigio roba è essere un po 'avido ed è overselling le sue risorse. Quindi, se si sta prendendo una macchina fisica e la vendita di non 200 ma 400 clienti, a un certo punto stiamo andando a inciampare in quelle stessi problemi di prestazioni come prima. Perché hai solo una limitata quantità di disco e RAM e così via. E una macchina virtuale è solo un programma che è fingendo di essere un completa del computer a tutti gli effetti. Così si ottiene quello che si paga qui. Quindi troverete on-line si potrebbe pagare un società rispettabile forse $ 100 al mese per la propria macchina virtuale, o il proprio server virtuale privato, che è un altro termine per esso. Oppure si potrebbe trovare un po 'fly-by notte dove si paga $ 5,99 al mese per la propria macchina virtuale. Ma le probabilità sono non si ha quasi tanto le prestazioni a vostra disposizione, perché sono stati overselling esso così, quanto si farebbe con il più alto livello del servizio o, meglio venditore. Che cosa significa questo in realtà significa per noi? Quindi, lasciami andare a questo. Ho intenzione di andare a aws.amazon.com. Proprio perché non hanno un bel menu di opzioni. Ma queste stesse lezioni applicano a un tutta una serie di altri fornitori di cloud. Purtroppo, è spesso più commercializzazione parlare di qualsiasi altra cosa. E questo continua a cambiare. Così si va in un sito come questo. E questo non fa davvero dirvi molto di qualche cosa. E anche io, come guardo questo, non lo faccio davvero sapere cosa qualsiasi di queste cose necessariamente fare fino mi tuffo in. Ma cominciamo a sinistra, Compute. E ho intenzione di fare clic su questo. E ora Amazon ha francamente un numero enorme di servizi questi giorni. Ma Amazon EC2 è forse la più semplice. Amazon EC2 creerà per noi esattamente il quadro abbiamo visto un momento fa. E 'come fanno un sacco di i loro soldi nel cloud. A quanto pare Netflix e altri sono nel cloud con loro. Questo è tutto tipicamente soffice parlare di marketing. Quindi quello che voglio fare è andare a Pricing-- o meglio, andiamo a istanze prima solo a dipingere un quadro di questo. Quindi questo può variare a seconda del fornitore. E non abbiamo bisogno di ottenere troppo in profondità nel le erbacce qui di come questo tutte le opere. Ma il modo Amazon, per esempio, si affitta una macchina virtuale o un server in the cloud è hanno ottenuto questo genere di nomi divertenti, come t2.nano, che significa piccolo, o t2.large, che significa grande. Ognuno di loro ti dà neanche uno o due CPU virtuali. Perché è una CPU virtuale? Ebbene, la macchina fisica potrebbero hanno 64 o più CPU attuali. Ma ancora una volta, attraverso il software, creano l'illusione che quello macchina può essere divvied fino a più utenti. Così possiamo pensare a questo come avente una CPU Intel o due. crediti CPU per ogni hour-- vorrei hanno di leggere la stampa fine da ciò che questo significa in realtà. Significa quanta della macchina è possibile utilizzare per ora vis-a-vis altri clienti su quella hardware. Ecco la quantità di RAM o la memoria get-- sia un mezzo gigabyte, o 500 megabyte o 1 gigabyte o 2. E poi la memorizzazione appena si riferisce a che tipo di dischi che ti danno. C'è archiviazione diverso tecnologie che offrono. Ma più interessante di questo allora potrebbe essere il prezzo. Quindi, se siete il CTO o un ingegnere che non lo fa desidera eseguire un server nella vostra ufficio, per qualsiasi motivo, ed è troppo complicato o costoso acquistare server e co-localizzare e pagare l'affitto in uno spazio fisico gabbia somewhere-- si vuole solo sedersi al vostro computer portatile a tarda notte, inserire i dati della carta di credito, e affittare i server del cloud-- pure, possiamo farlo qui. Ho intenzione di andare giù a-- Linux è un sistema operativo popolare. E facciamo solo ottenere un senso delle cose. Whoops-- troppo grande. Quindi diamo un'occhiata a loro più piccolo macchina virtuale, che sembra avere, per i nostri scopi, una CPU e 500 megabyte di RAM. Questo è abbastanza piccola. Ma, francamente, i server web non lo fanno bisogno di fare più di tanto. È meglio avere le specifiche in un computer portatile. Ma non avete bisogno di quelli spec in questi giorni per le cose. Stai andando a pagare $ 0,0065 all'ora. Quindi vediamo. Se ci sono 24 ore in un giorno, e stiamo pagando questo molto per ora, vi costerà $ 0,15 a noleggio che determinato server in the cloud. E questo è solo per un giorno. Se facciamo questo 365-- $ 57 a affittare quel server particolare. Così suona super economico. Questo è anche super basso rendimento. Così abbiamo, per i corsi insegno qui, tende utilizzare Penso t2.smalls o t2.mediums. E potremmo avere qualche centinaio gli utenti, poche migliaia di utenti, totale. E 'piuttosto modesto. Quindi vediamo cosa questo avrebbe un costo. Quindi, se faccio questo volte costo 24 ore tempi 365, di questo 225 $. E per i corsi Insegno, in genere eseguire due di tutto, per ridondanza e anche per le prestazioni. Così potremmo spendere, quindi, $ 500 per i server che potremmo aver bisogno all'anno. Ora, se avete bisogno di più performance-- diamo uno sguardo a memoria. Abbiamo parlato di memoria un po '. E se si ha bisogno di più memory-- e 64 gigabyte è il numero ho continuato mentioning-- questo è quasi $ 1 all'ora. E si può abbastanza rapidamente vedere questo goes-- così 24 ore tempi di 365. Così ora è 8000 $ all'anno per un server abbastanza decente. Così ad un certo punto, non c'è questo punto di flesso dove ora abbiamo potuto spendere $ 6000 Probabilmente e comprare una macchina del genere e di ammortizzare il costo sopra forse due, tre anni, la vita della macchina. Ma ciò che potrebbe spingere in favorire o sfavore di affitto una macchina in the cloud in questo modo? Di nuovo, questo è paragonabile, probabilmente, a uno di quei server Dell abbiamo visto descriveste un po 'fa. PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, questo è un enorme rialzo. Perché non stiamo comprando la la macchina, non abbiamo di unboxing esso. Non abbiamo a sollevarlo. Non abbiamo per collegarlo alla nostra rack. Non abbiamo per collegarlo. Noi non dobbiamo pagare la bolletta elettrica. Non abbiamo a girare l'aria condizionata. Quando un disco rigido muore, non abbiamo guidare in nel mezzo della notte per risolverlo. Non abbiamo per impostare il monitoraggio. Non abbiamo a-- l'elenco potrebbe continuare e su tutte le cose fisiche non è necessario fare a causa della "nuvola". E per essere chiari, cloud computing È questo termine molto abusato. E 'davvero solo significa pagare qualcuno altro da eseguire server per voi, o affittare spazio su server di qualcun altro. Così il termine "cloud computing" è nuovo. L'idea è vecchio di decenni. Ecco, questo è piuttosto interessante. E che cosa si può ottenere? Beh, si ottiene anche la possibilità di fare tutto su un computer portatile a casa. In altre parole, tutte le immagini Stavo solo drawing-- e non era molto tempo fa che anche Mi è stato strisciare su un pavimento di server collegare i cavi in ​​per ciascuna delle linee che si vede, e l'aggiornamento del funzionamento sistemi e unità cambiando intorno. C'è un sacco di fisicità a tutto questo. Ma cosa c'è di bello virtuale macchine, come suggerisce il nome tipo di, ora ci sono web-based interfacce in base alle quali se si desidera che l'equivalente di una linea da questo server ad un altro, basta digitare, tipo, tipo, fare clic e trascinare, fare clic su Invia, e voilà, lo avete cablato virtualmente. Perché è tutto fatto in software. E la ragione è fatto nel software è di nuovo perché abbiamo così tanto di RAM e così a nostra disposizione in questi giorni molto CPU, anche se tutte quella roba richiede tempo, è più lento di eseguire le cose in software che hardware, così come è più lento di utilizzare un meccanico dispositivo come un disco rigido di RAM, qualcosa di puramente elettronico. Abbiamo così tante risorse a nostra disposizione. Noi esseri umani sono una sorta di invariantly lento. E così ora le macchine possono fare molto di più per unità di tempo. Abbiamo queste abilità di fare le cose virtualmente. E dirò per i corsi Insegno, per esempio, qui, abbiamo circa una dozzina o forse così totale di macchine virtuali come quella in esecuzione in un dato tempo facendo cose front-end, facendo ritorno roba fine. Abbiamo tutto il nostro storage. Quindi, qualsiasi video, tra cui le cose come questo che stiamo girando, si finisce per mettere in cloud. Amazon ha servizi chiamati Amazon S3, il loro servizio di storage semplice, che è proprio come lo spazio su disco in the cloud. Hanno qualcosa Chiamato CloudFront, che è un servizio di CDN, Content il servizio Delivery Network, che significa che prendono tutti i file e per voi automagicamente replicare lo Intorno al mondo. In modo che non lo fanno preventivamente. Ma la prima volta che qualcuno in India richiede il file, faranno potenzialmente di cache localmente. La prima volta in Cina, il prima volta in Brasile che accade, inizieranno la memorizzazione nella cache localmente. E non c'è bisogno di fare nulla di tutto ciò. E così è così incredibilmente convincente in questi giorni per spostare le cose nel cloud. Perché si ha questa capacità letteralmente di non avere gli esseri umani fare quasi tanto lavoro. E letteralmente non è necessario come molti gli esseri umani a fare questi lavori anymore-- "ops", o ruoli operativi, non più. È davvero solo bisogno gli sviluppatori e un minor numero di ingegneri che può semplicemente fare le cose virtualmente. Infatti, proprio per dare un senso di questo, lasciami andare a prezzi per un altro prodotto qui. Vediamo qualcosa di simile CDN S3. Quindi questo è essenzialmente un hard disk virtuale in the cloud. E se noi scorrere fino a pricing-- quindi è $ 0,007 per gigabyte. E that's-- come facciamo questo? Penso che sia al mese. Quindi, se questo è per month-- o al giorno? Dan, è presente al giorno? Questo è al mese, OK. Quindi, se questo è per month-- mi dispiace, è il $ 0,03 al mese. C'è 12 mesi l'anno. Quindi, la quantità di dati potrebbe si memorizza nel cloud? Un gigabyte non è enorme, ma io non so, come 1 terabyte, così come 1.000 di quelli. Questo non è più di tanto. È $ 368 memorizzare un terabyte dei dati nel cloud di Amazon. Quindi, quali sono alcuni dei i compromessi, allora? Non può essere tutti buoni. Niente di cui abbiamo parlato oggi è sorta di senza una cattura o un costo. Allora, cosa c'è di male in movimento tutto nel cloud? PUBBLICO: Sicurezza. DAVID MALAN: OK, che cosa vuoi dire? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, giusto. E non si vuole veramente alcuni ingegneri casuali su Amazon che non avrai mai incontrare avendo l'accesso fisico ai quei computer, e se veramente voluto, accesso virtuale? E anche se in teoria software-- bene, crittografia può assolutamente proteggere contro questo. Quindi, se quello che stai immagazzinarli nel proprio server è stato criptato meno di una preoccupazione. Ma appena un essere umano ha fisica accesso ad una macchina, crittografia a parte, tutte le scommesse sono una sorta di fuori. Si potrebbe sapere da ieri che i PC in particolare, anche se tu avessi quelle cose chiamate "password del BIOS," erano quando il desktop avviato up, si sarebbe richiesto con una password che non ha nulla a che fare con Windows, è possibile in genere basta aprire il telaio del macchina, trovare minuscoli piedini, e utilizzare qualcosa chiamato un ponticello e basta collegare questi due fili per circa un secondo, completando così un circuito. E che eliminerebbe la password. Quindi, quando si ha accesso fisico a un dispositivo, è possibile fare cose del genere. È possibile rimuovere il disco rigido. È possibile accedere a questo modo. E quindi questo è il motivo per cui, in il caso di Dropbox, per esempio, è un po ' preoccupante che non solo hanno avere i dati, anche se è cifrato, hanno anche la chiave. Altre preoccupazioni? PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, è molto true-- il Googles, le mele, le Microsofts del mondo. E infatti, da quanto tempo hai avuto il tuo iPhone per? Sì, prendere o lasciare. PUBBLICO: [INAUDIBLE] DAVID MALAN: mi dispiace? Sei tra coloro che ha un iPhone, giusto? Pubblico: Sì. DAVID MALAN: Quanto tempo hai avuto il tuo iPhone? PUBBLICO: [INAUDIBLE] DAVID MALAN: OK, così Apple sa letteralmente dove sei stato ogni ora di il giorno per gli ultimi cinque anni. PUBBLICO: [INAUDIBLE] DAVID MALAN: Quale è una caratteristica meravigliosa. PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, ma trade off di sicuro. PUBBLICO: [INAUDIBLE] DAVID MALAN: Sì, è molto facile. PUBBLICO: [INAUDIBLE] DAVID MALAN: Altri aspetti negativi? PUBBLICO: [INAUDIBLE] DAVID MALAN: Absolutely-- tecnologicamente, economicamente, è abbastanza convincente per sorta di guadagnare queste economie di scala e spostare tutto in il cosiddetto cloud. Ma probabilmente si vuole andare con alcuni dei più grandi pesce, le Amazzoni, il Googles, la Microsofts-- Rackspace è abbastanza big-- e altri pochi, e non necessariamente volare da gente di notte per i quali è molto facile da fare questo tipo di tecnica oggi. E questo è che si può pagare $ 5,99 al mese per. Ma vi sarà certamente ottiene quello che si paga. Quando si dice [INAUDIBLE], in quel momento cose come queste cinque nove venire, per cui anche se tecnologicamente non possiamo garantire 99.999, ci limiteremo a costruire in una sorta della pena al contratto in modo che se ciò dovesse accadere, almeno c'è qualche costo per noi, il venditore. E questo è quello che la normale procedura essere inducendole ad accettare di. PUBBLICO: [INAUDIBLE] DAVID MALAN: E il una sorta di benedizione è che anche quando si scende, per esempio, o anche alcune società, la realtà è Amazon, per esempio, ha tanti clienti Maledizione, clienti ben noti, che operano fuori di alcuni centri dati che quando qualcosa va veramente sbagliato, come cause di forza maggiore e di tempo e così, se non c'è alcun tipo di rivestimento d'argento, è che sei in buona compagnia. Il tuo sito web potrebbe essere non in linea. Ma lo è anche come la metà di Internet popolare. E quindi è senza dubbio un po ' più appetibile per i clienti se si tratta di più di un internet cosa che una cosa acme.com. Ma questo è un po 'di un imbroglio. Quindi, in termini di altre cose da guardare, solo così che noi non escludiamo altri, se si va a Microsoft Azure, che avere sia Linux e tutto il resto di Windows che è paragonabile a Amazon. Se si va a Google Compute Engine, hanno qualcosa di simile pure. E proprio per completare queste offerte di cloud, Farò menzione di un'altra cosa. Si tratta di un popolare sito web questo è rappresentante di una classe di tecnologie. Quelli che abbiamo appena parlato A proposito, Amazon, sarebbe IAAS, Infrastructure as a Service, in cui si tipo di hardware fisico come un servizio. C'è SAAS. A dire il vero, mi permetta di butto questi giù. infrastrutture IAAS-- As A Service, SAAS, e PAAS, che sono acronimi notevolmente confuse che descrivono tre diversi tipi di cose. E gli acronimi stessi in realtà non importa. Questa è tutta la roba nuvola abbiamo appena parlato, la roba livello inferiore, la virtualizzazione di hardware e storage nella cosiddetta nuvola, che si tratti di Amazon, Microsoft, Google, o altro. Software come un servizio-- tutti noi sorta di utilizzare questo. Se utilizzi Google Apps per Gmail o calendario, uno di questi basata su web applicazioni che 10 anni fa abbiamo avrebbe icone doppio click su il nostro desktop, software come servizio è ora davvero di applicazioni web. E piattaforma come servizio di tipo di dipende. E un esempio ti darò qui nel contesto del cloud computing-- c'è una società che è abbastanza popolare in questi giorni, Heroku. E sono un servizio, una piattaforma, se si vuole, che corre in cima l'infrastruttura di Amazon. E hanno appena rendono ancora più facile per gli sviluppatori e gli ingegneri per ottenere applicazioni web-based on-line. È un dolore, inizialmente, da usare Amazon Web Services e altre cose. Perché in realtà hanno per conoscere e capire sui database e server web e bilanciamento del carico e tutte le cose Ho appena parlato. Perché tutto Amazon ha fatto non è nascosto queste sfide progettuali. Hanno semplicemente virtualizzati e spostarli in un browser, in software invece di hardware. Ma le aziende come Heroku e altro fornitori di PAAS, Platform as a Service, usano quelle basi barebone che abbiamo appena parlato, e costruiscono più facile utilizzare il software su di esso in modo che se si vuole ottenere un web based- domanda on-line in questi giorni, certamente deve conoscere la programmazione. È necessario conoscere Java o Python o PHP o Ruby o un mucchio di altre lingue. Ma è anche necessario un posto dove metterlo. E abbiamo parlato in precedenza su ottenere una società di web hosting. Questo è il genere di simili metà degli anni 2000 approccio per ottenere qualcosa online. Al giorno d'oggi si potrebbe invece pagare qualcuno come Heroku un paio di dollari al mese. E in sostanza, una volta che hai fatto qualche configurazione iniziale, per aggiornare il tuo sito web, basta digitare un comando in una finestra. E qualunque codice che hai scritto qui sul vostro computer portatile subito viene distribuito a qualsiasi numero di server nel cloud. E Heroku si prende cura di tutta la complessità. Essi figura tutto il database roba, tutto il bilanciamento del carico, tutti i mal di testa che abbiamo appena scritto sul tabellone, e nascondere tutto questo per voi. E in cambio, è sufficiente loro pagare un po 'di più. In modo da avere queste infrastrutture come un servizio, piattaforme come servizio, e poi software come servizio. È, di nuovo, questa l'astrazione o stratificazione. Tutte le domande sul cloud o costruire la propria infrastruttura? Va bene, che era un sacco. Perché non andiamo avanti e prendere il nostro pausa di 15 minuti qui. Torneremo con alcuni nuovi concetti e un po 'di hands-on opportunità prima di sera è finita.