DAVID MALAN: Oké, welkom terug. Voordat we een duik in cloud computing, Ik dacht dat ik even stilstaan of er nog openstaande vragen of onderwerpen die tijdens de lunch kwam die kunnen nu van belang. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: OK. Oh oke. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Nee, natuurlijk. OK, goed hopelijk al uw problemen ontstaan ​​in de komende uren en morgen in het bijzonder. Maar laten we eens een kijkje nemen, dan, naar waar de laatste discussie over het opzetten een site leiden, algemener als het gaat om cloud computing, het opzetten van een server-architectuur, het soort beslissingen dat de ingenieurs en ontwikkelaars en managers moeten maken als het gaat om meer te doen dan alleen maar aanmelden voor een $ 10 per maand webhost wanneer u daadwerkelijk wilt bouwen uw eigen infrastructuur. En we zullen proberen om deze terug te binden, bijvoorbeeld Dropbox en anderen als hen. Dus laten we beginnen te overwegen welke problemen ontstaan ​​als bedrijf krijgt goede en een goede problemen ontstaan. Zodat in het eenvoudigste geval van het hebben sommige bedrijf dat een web-server heeft, u zou kunnen hebben, laten we zeggen, een server die we zullen gewoon te trekken die er zo uitziet. En deze dagen, de meeste servers-- en laten we eigenlijk zet een foto om deze net zo dat het een beetje minder vaag. Dus Dell rack server-- terug in de dag, is er waren mainframecomputers die nam hele kamers. Deze dagen, als je naar een server te krijgen, misschien een beetje iets als dit. Servers worden gemeten in welke heten rack units, of spoorwegondernemingen. En een RU is 1,5 inch, die een industriestandaard. Dus dit ziet eruit als een twee RU server. Dus het is 3 inch groot. En ze zijn over het algemeen 19 inch breed, wat betekent dat alle van dit soort dingen wordt gestandaardiseerd. Dus als je kijkt in een data center-- niet alleen op één server, maar laten we neem een ​​kijkje op Google's datacenter en kijken of we zie een mooie foto in Google Images. Dit is veel beter verlicht dan jij zouden in het algemeen te vinden, en nog veel sexier kijken als gevolg. Maar dit is wat lijkt op een paar honderd servers ongeveer dezelfde grootte, eigenlijk, in rack na rack na rack na rack in een datacenter. Zoiets dit-- dit kan heel goed zijn Google's, aangezien ik googled Google. Maar het kan representatief zijn meer algemeen een datacenter waarin veel bedrijven zijn meestal gestationeerd. En co-located betekent meestal dat je naar een plek als Equinix of andere leveranciers die hebben grote pakhuizen die veel macht hebben, veel koeling, hopelijk veel van de veiligheid, en individuele kooien omsluiten rekken servers, en je ofwel huren de rekken of brengt u de rekken in. En individuele bedrijven, startups in het bijzonder, zal een soort van biometrie hebben te krijgen in hun kooi, of een sleutel, of een sleutelkaart. U opent de deur. En de binnenkant van er slechts een vierkante meters footprint dat je betaalt voor, de binnenkant van waar je alles wat je wilt kunt zetten. En u meestal betaalt voor de macht. En u betaalt voor de voetafdrukken. En dan betaal je je voor op de servers dat je te brengen in die ruimte. En wat je dan moet de optie om te doen is iemand betalen voor uw internet service-connectiviteit. U kunt een onbeperkt aantal betalen verkopers, allen meestal kom in dat datacenter. Maar de echte interessante vraag is, wat er werkelijk gaat in die rekken? zouden ze allemaal heel goed eruit wat we net zagen. Maar ze voeren verschillende functies en kan nodig zijn om verschillende dingen te doen. En laten we eigenlijk motiveren deze discussie met de vraag, welk probleem begint te ontstaan ​​als je succesvol bent? Dus heb je een website hebt dat je hebt opgebouwd. En misschien het verkoopt widgets of zoiets. En je hebt het heel goed met een omzet van widgets online. En je begint te ervaren enkele symptomen, uw website. Wat kunnen sommige van de technische symptomen dat gebruikers melden als business is groeiende en bloeiende en uw website is profiteren van dat? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, precies. Dus je zou kunnen hebben een vertraging van uw website. En waarom zou dat gebeuren? Nou, als we aannemen, voor Ter wille van de discussie op dit moment, dat je op één van deze commerciële web hosts dat hebben we gesproken over voor de lunch, die u betaalt bepaald aantal dollars om per maand, en je hebt al betaald voor de jaarlijkse kosten van uw domeinnaam te noemen, dat webhost is waarschijnlijk overselling hun middelen enigszins. Dus je zou een gebruikersnaam hebben en het wachtwoord op hun server. Maar dat zou een aantal andere, of meerdere dozijn andere, of misschien zelfs meerdere honderd andere gebruikers. En websites wonen fysiek op dezelfde server. Waarom is dit mogelijk? Nou deze dagen, servers als dit meestal hebben meerdere harde schijven, misschien maar liefst zes of meer harde schijven, elk net zo veel zijn als 4 terabytes deze dagen. Dus je zou kunnen hebben 24 terabyte aan ruimte in slechts een kleine server als deze. En zelfs als je steelt een deel van die ruimte voor redundantie, voor back-up doeleinden, het is nog steeds heel veel ruimte. En zeker, een typische website niet dat er veel ruimte nodig. Gewoon registreren van gebruikers en opslaan van logs van orders niet al te veel ruimte innemen. Dus je kunt het heel partitie een beetje en geef elke gebruiker slechts een klein stukje van dat. Ondertussen, een computer als deze deze dagen heeft meestal meerdere CPUs-- niet alleen één, misschien twee, misschien vier, misschien 16, of zelfs meer. En elk van deze CPU's heeft iets te noemen een kern, dat is een soort hersenen binnen van een brein. Dus in feite de meeste iedereen hier met moderne laptops heeft waarschijnlijk een dual core of quad core CPU-- en waarschijnlijk alleen een CPU binnenkant van een laptop deze dagen. Maar desktop computers en rek computers zoals dit kan heel wat hebben meer CPU's, en op zijn beurt kernen. En eerlijk gezegd, zelfs in onze Macs en pc's van vandaag de dag, heb je niet echt nodig dual cores of quad cores aan uw e-mail te controleren. Als er een knelpunt bij betreft het gebruik van een computer, de mens zijn waarschijnlijk de langzaamste ding over die computer. En je bent niet van plan om te kunnen Controleer uw e-mail sneller als je hebben vier keer zoveel CPU's of kernen. Maar hetzelfde soort true van een server. Één site misschien niet noodzakelijkerwijs meer dan één nodig CPU of een kern, een kleine hersenen binnen doen alle denken en de verwerking. Dus fabrikanten hebben op soortgelijke wijze begon te snijden up die middelen zodat misschien uw website krijgt een kern, uw website krijgt een kern, of misschien zijn we het delen van een dergelijke kern. We zijn ook het delen van schijfruimte. En we zijn ook delen van RAM, of Random Access Memory van voor, waarvan er is ook een eindige hoeveelheid. En dat is de sleutel. Het maakt niet uit hoe duur de computer was, er is nog steeds een eindige hoeveelheid middelen in. En dus hoe meer en meer je proberen om die middelen te consumeren, de langzamere dingen kunnen worden. Maar waarom? Waarom zou dingen vertragen als symptoom van een server wordt overbelast? Wat is er gaande? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, precies. Ik stelde eerder dat RAM is een type geheugen. Het is vluchtig, waarbij dat is waar de apps en data zijn opgeslagen wanneer ze worden gebruikt. En dus daarom is er slechts een eindig aantal dingen die je kunt blijkbaar tegelijk te doen. En het is ook sneller, dat is een goede zaak. Maar het is ook duurder, dat is een slechte zaak. En het is dus ook aanwezig in lagere hoeveelheden dan schijfruimte, harde schijf ruimte, die de neiging heeft goedkoper. Met andere woorden, je zou kunnen hebben 4 terabytes schijfruimte op uw computer. Maar je zou kunnen hebben 4 gigabytes, of 64 gigabyte, in orde van grootte, een factor 1000 minder RAM-geheugen in uw computer. Dus wat doet een computer doen? Nou, stel dat je hebben 64 gigabytes RAM-geheugen in een server als deze, die zou heel gewoon, zo niet laag zijn de laatste tijd. Maar stel je hebt zo veel gebruikers doen zo veel dingen dat je soort soort moet 65 gigabyte geheugen dat allemaal verwerken simultaan gebruik? Nou, je kon gewoon zeggen, sorry, sommige aantal gebruikers gewoon geen toegang tot de website. En dat is de maat of last resort, zeker. Of u, als de operationele systeem, zoals de Windows of Mac OS of Linux of Solaris of een aantal andere besturingssystemen op die server, kon gewoon beslissen, weet je wat? Ik heb slechts 64 gigabyte RAM-geheugen. Ik soort van Need 65. Dus weet je wat? Ik ga tot 1 gigabyte te nemen waarde van de gegevens in RAM dat is het minst recent geopende en gewoon verplaatsen naar de schijf tijdelijk letterlijk kopiëren van het snelle geheugen om de langzamere geheugen zodat ik dan kan dat moeten aanpakken 65 gigabyte nodig voor het geheugen, doe wat berekeningen op. Toen ik klaar ben om dat te doen, Ik kom net bewegen die op de harde schijf, zet die andere RAM ik tijdelijk in op de schijf terug in de werkelijke hardware zodat ik ben een soort van multitasking. Dus ik ben een soort van om dingen tijdelijk in deze ruimte tragere dus ik maak de illusie van de behandeling van iedereen. Maar er is een vertraging. Waarom? Nou ja, de binnenkant van deze harde schijven deze dagen is wat? Eerder, wat een harde rijden anders RAM zo goed als nu weet je? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: OK, waar. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Zo erg waar. En dat is een neveneffect of feature Aangezien RAM inderdaad sneller. En dus je wilt gebruiken voor actueel gebruik. En een schijf langzamer. Maar het is permanent, of niet-vluchtig. Dus u het gebruiken voor langdurige opslag. Maar in termen van implementatie, als ik kijk omhoog wat een DIMM heet, Dual Inline Memory Module, dit is wat een stuk van RAM misschien typisch uitzien. Dus de binnenkant van onze Mac-- dat is een bug. Binnenkant van onze Macs en pc's, onze desktop computers zouden stokken van het geheugen hebben, zoals u ze zou noemen, of DIMM of SIMM terug ten dage, geheugen die er zo uitzien. Onze laptops hebben waarschijnlijk dingen die een derde van de grootte of de helft kleiner. Ze zijn een beetje kleiner, maar dezelfde idea-- kleine stukjes groene silicium wafer of plastic dat heeft weinig zwarte chips op hen met veel draden onderling verbonden alles. Je zou een hele hoop hebben deze binnenkant van uw computer. Maar de afhaalmaaltijd is hier het is volledig elektronisch. Er is gewoon elektronen stroomt op dit apparaat. Daarentegen, als we kijken naar de binnenkant van een harde schijf en trek een foto Hier, zou je in plaats daarvan zie zoiets als dit, die wel elektriciteit gaan door het uiteindelijk. Maar wat springt er ook op op je over deze zaak? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, er is blijkbaar bewegende delen. Het is net zoiets als een oude record speler of fonograaf speler. En het vrij veel is. Het is een beetje exclusiever verwacht dan dat-- terwijl een fonograaf speler gebruikt groeven in de goede orde, dit ook daadwerkelijk maakt gebruik van minuscule kleine magnetische deeltjes dat we kunnen niet helemaal zien. Maar als een beetje magnetisch deeltje ziet er zo uit, wordt het beschouwd als een 1. En als het ziet er zo uit, noord-zuid in plaats van zuid-noord, het misschien een 0. En we zullen morgen zien hoe we kunnen bouwen van die meer interessante dingen. Maar alles dat is moet fysiek te verplaatsen zal zeker langzamer gaan dan de snelheid van het licht, Dit is op welke een elektron zou kunnen stromen, hoewel niet helemaal realistisch. Dus mechanische devices-- veel langzamer. Maar ze zijn goedkoper. En je kunt zo veel passen Meer gegevens binnenkant van hen. Dus het feit dat bestaat in de wereld iets genaamd virtueel geheugen, met behulp van een harde schijf als deze alsof het RAM transparant voor de gebruiker, door het eenvoudig data van het RAM naar de harde schijf, dan verplaatsen terug als je nodig hebt opnieuw creëert de vertraging. Omdat je letterlijk moet kopiëren van de ene plaats naar de andere. En het ding dat je het kopiëren van en van eigenlijk langzamer dan de RAM waar u het wilt zijn. De alternatieve oplossing hier-- als je niet wilt dat vertragen, en virtuele geheugen soort wordt overbelast, wat een oplossing voor dit probleem? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Nou, uitgebreid virtueel geheugen zou laten we dit op een nog grotere schaal. We kunnen omgaan met 66 gigabytes van het geheugen nodig heeft, of 67 gigabyte. Maar stel dat ik hou niet van deze vertragen, in feite Ik wil virtuele uitschakelen geheugen als dat nog mogelijk is, Wat kon ik anders gooien naar dit probleem op te lossen, waar ik wil meer gebruikers te behandelen en meer geheugen eisen dan heb ik fysiek op dit moment? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Er zijn helaas geen. Dus de CPU en de kernen zijn ze in een eindige grondstof. En er is geen analoge in die context. Goede vraag, dat wel. Dus gewoon om duidelijk te zijn, ook, als binnenkant van deze computer, laten we zeggen, een stok van RAM-geheugen dat eruit ziet zoals dit-- en dus zullen we dit RAM noemen. En hier is de harde schijf. En ik zal alleen deze te trekken pictorially als een kleine cirkel. Er zijn 0 en 1 in beide these-- data, zullen we het generaliseren als. En in wezen als een gebruiker runnen van een applicatie zoals, laten we zeggen, een website die dit vergt veel RAM per gebruiker, wat ik voorstel, door middel van dit ding genaamd virtueel geheugen, is om gewoon tijdelijk te verplaatsen dat meer dan hier, dus dat ik nu kan het geheugen van iemand anders te verplaatsen vereisten daar. En toen dat gedaan, Ik kan dit over kopiëren terug en dit gaat hier, waardoor het bewegen wat ik wilde daar ergens anders allemaal samen. Dus er is gewoon een heleboel switcheroo, is de afhaalmaaltijd hier. Dus als u dit niet wilt, en je niet iets wilt op de harde schijf te zetten, wat is een soort van voor de hand liggende oplossing zakelijke persoon het probleem of de ingenieur oplossing, wat dat betreft ook? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dat bedoel ik letterlijk gooien van geld naar het probleem. En eigenlijk is dit de perfecte segue om een ​​deel van het hogere niveau discussies over cloud computing. Omdat veel van deze is gemotiveerd door financiële beslissingen, zelfs niet per se technologische. Als 64 optredens van RAM-geheugen is te weinig, nou ja, waarom niet 128 gigabyte RAM-geheugen te krijgen? Waarom niet 256 gigabyte RAM-geheugen te krijgen? Nou waarom niet? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Nou, het kost meer geld, zeker. En als u al extra schijfruimte, effectief, of equivalent, schijfruimte is zo veel goedkoper je net zo goed gebruiken. Dus nogmaals, er is deze afweging die we zagen zelfs eerder deze morgen, waar er echt niet per se een juist antwoord, er is gewoon een beter of slechter antwoord op basis van wat je eigenlijk schelen. Dus er is ook technologische realiteit. Ik kan een computer niet te kopen, naar mijn weten, met een biljoen gigabytes RAM-geheugen op dit moment. Het is gewoon fysiek niet bestaat. Dus er is wat bovengrens. Maar als je ooit nog gewinkeld voor een consument Mac of PC, Ook in het algemeen is er deze curve van de functies wanneer er misschien goed, beter, en beste computer. En de meeropbrengsten op uw dollar te kopen de beste computer versus de betere computer misschien niet zo hoog zijn als de uitgaven een beetje meer geld en het krijgen van de betere computer over de goede computer. Met andere woorden, je bent het betalen van een premie aan de top van de lijn te krijgen. En wat we zullen zien in de bespreking van cloud computing is dat wat is zeer vaak deze dagen, en wat bedrijven als Google vroeg populair, werd het niet betalen voor en de bouw echt chique, dure opgevoerde computers met veel en veel van alles, maar het kopen of bouwen van mooie bescheiden computers, maar veel van hen, en het gebruik van iets dat doorgaans riep horizontale schaling plaats verticale scaling. Dus verticale scaling zou betekenen krijg meer RAM, meer schijfruimte, meer van alles, en sorteren van te investeren verticaal in uw hardware dus je bent gewoon het krijgen van de beste van het beste van het beste, maar je betaalt voor het. Horizontale scaling is een soort van te krijgen de bottom tier dingen, het goede model, of zelfs slechter model, maar krijgen veel van hen. Maar zodra je krijgt veel them-- bijvoorbeeld, in casu webservers, als deze server of een web host is onvoldoende, dan gewoon intuïtief, de oplossing voor dit probleem belasting of overbelasting op uw servers is ofwel een grotere server of, wat ik hier voorstellen plaats van schaalvergroting verticaal zo te zeggen, zou zijn, weet je wat? Gewoon een tweede van deze. Of misschien krijgt zelfs een derde. Maar nu we hebben gemaakt een technisch probleem door de aard van deze business of financiële beslissing. Wat is het technische probleem nu? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, hoe je en-- spijt sluit ze? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Rechts, omdat ik nog steeds have-- als ik me opnieuw in dit beeld, als dit is mijn laptop ergens op internet, die nu tussen mij en het bedrijf hebben we het over, nu heb ik om erachter te komen, waartoe server kan ik deze bepaalde gebruiker te sturen? En als er andere gebruikers, zoals dit, en dan is dit een meer dan hier, en misschien is dit de gebruiker A, dit is gebruiker B, dit is gebruiker C, en dit is de server 1, 2, en nu 3-- een intuïtieve antwoord zou hier gewoon, wij sturen de gebruiker A tot en met 1 en B 2 en C 3. En we kunnen omgaan met 3 keer zo veel gebruikers. Maar dat is een oversimplificatie. Hoe bepaal je wie te sturen, waar? Dus laten we proberen te redeneren door middel van deze. Dus stel dat computers A, B en C zijn klanten, en servers 1, 2 en 3 zijn horizontaal geschaald servers. Dus ze zijn een soort identiek. Ze zijn allemaal het uitvoeren van de dezelfde software. En ze kunnen allemaal hetzelfde doen. Maar de reden dat we hebben drie van hen zo dat we aankunnen drie keer zoveel mensen tegelijk. Dus we weten uit bespreking voorafgaand aan de lunch dat er tussen hardware de laptops en servers. Maar we zullen gewoon soort van generaliseren die nu als het internet of de cloud. Maar we weten dat in mijn huis, er is waarschijnlijk een huis router. In de buurt van de servers, er is waarschijnlijk een router, DNS-server, DHCP. Er kan van alles zijn We willen in dit verhaal. Dus hoe gaan we om te beslissen, wanneer de gebruiker A gaat naar something.com, welke server om de route van de gebruiker? Hoe kunnen we beginnen om dit verhaal te vertellen? PUBLIEK: Load balancing? DAVID MALAN: Load balancing. Wat bedoel je daarmee? PUBLIEK: Terugkerende waar de meeste gebruik is en waarin men de de meeste beschikbare middelen. DAVID MALAN: OK, dus laat me introduceren van een nieuw type hardware die we nog niet hebben besproken, die is precies dat, een load balancer. Dit kan ook gewoon een server. Het zou precies hetzelfde uitzien als de ene zagen we een ogenblik geleden. Een load balancer is echt gewoon een stukje software die u op een stuk hardware. Of u kunt betalen een leverancier, zoals Citrix of anderen, Cisco of anderen. U kunt betalen voor hun eigen hardware, dat is een hardware load balancer. Maar dat betekent dat ze pre-installatie van de load balancing software op hun hardware en verkocht het aan jullie allemaal samen. Dus we net trekken het als een rechthoek voor onze doeleinden. Hoe nu implementeer ik een load balancer? Met andere woorden, wanneer een gebruiker wil bezoek mijn site, hun verzoek een of andere manier of iets anders, waarschijnlijk door middel van de routers we het eerder over had, gaat uiteindelijk te bereiken Deze load balancer, die vervolgens nodig heeft om een ​​routing-achtige beslissing te nemen. Maar het is routing voor sort van een hoger doel nu. Het gaat niet alleen over het krijgen van van punt A naar punt B. Het gaat om te beslissen welke punt B is de beste onder them-- 1, 2 of 3 in dit geval. Dus hoe kan ik beslissen of naar 1, 2, 3? Wat zou dit zwarte doos, om zo te spreken, moeten doen aan de binnenkant? Ook dit is een ander voorbeeld in informatica van abstractie. Ik heb letterlijk getekend een load balancer als black box aan zwarte inkt, binnen waarvan enkele interessante logica, of zelfs magisch, waaruit moet komen een decision-- 1, 2 of 3. En de ingang is gewoon A. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Het spijt me? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Oké, hoe kunnen we categoriseren de soorten transacties hier? PUBLIEK: Het bekijken van een webpagina versus het opvragen van een database. DAVID MALAN: Oké, dat is goed. Dus misschien deze gebruiker A wil een webpagina te bekijken. En misschien is het zelfs statische content, iets dat verandert zelden of nooit. En dat lijkt een vrij eenvoudige bediening. Dus misschien gaan we gewoon willekeurig, maar redelijk, laten we zeggen, server 1, zijn doel in het leven is gewoon serveren statische content, bestanden die zelden of nooit veranderen. Misschien is het de afbeeldingen op de pagina. Misschien is het de tekst op de pagina of andere dergelijke soort oninteressante dingen, niets transactionele, niets dynamisch. Daarentegen, als de gebruiker A controleert uit zijn of haar winkelwagentje dat vereist een database, ergens op te slaan en vergeet niet dat de transactie, goed misschien is dat verzoek moet gaan naar server 2. Dus dat is goed. Dus we kunnen laden balans gebaseerde van het type verzoeken. Hoe anders kunnen we dit doen? Welke andere-- PUBLIEK: Gebaseerd op de server bezettingsgraad en capaciteit. DAVID MALAN: Rechts, OK. Dus u gezegd dat eerder, Kareem. Dus wat als we bieden wat input on [ONHOORBAAR] tussen servers 1, 2, en 3 bij deze load balancer, zodat ze zijn gewoon voortdurend informeren de load balancer wat hun status? Net als, hey, load balancer, Ik ben op 50% gebruik. Met andere woorden, ik heb half zoveel gebruikers zoals ik eigenlijk aankan nu. Hey, load balancer, ik ben 100% gebruikt. Hey, load balancer, 0% bezettingsgraad. De load balancer, als het zo ontworpen dat kan nemen in die opmerkingen als input, het kan dan beslissen, ooh, nummer 2 is op 100%. Laat me geen toekomstige verzoeken te sturen om hem te behalve de reeds aangesloten gebruikers. Deze man is op 0%. Laten we sturen een veel verkeer voor hem. Deze man zei dat hij op 50%. Laten we wat verkeer te sturen naar hem. Zodat zou een ingrediënt, dat we konden load rekening mee houden. En het zal veranderen in de tijd. Dus de beslissingen zal veranderen. Dus dat is een heel goede techniek, een die vaak wordt gebruikt. Wat kunnen we doen? En laten we eigenlijk alleen maar hier samen te vatten. Zodat de beslissingen hier zou kunnen zijn per type verkeer, zal ik het noemen. Het kan worden gebaseerd op laden. Eens kijken of we kunnen niet komen met een paar andere. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Location. Dus dat is een goede. Dus locatie-- hoe zou je hefboomwerking die informatie? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Oh, dat is goed. En over hoeveel milliseconden zou dalen met gebaseerd op wat we dit zagen ochtend, zou je zeggen? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Nou, op basis van op het spoor routes We zagen eerder, dat is gewoon een ruwe maatstaf voor iets, tenminste hoe lang het duurt voor data om van A naar B voelt als iets lokale was, wat, zoals 74 milliseconden, geven of nemen? En dan is alles 100 plus, 200 plus was waarschijnlijk in het buitenland. En dus op basis van dat alleen, lijkt het redelijk om te veronderstellen dat een gebruiker in de VS om een ​​Europees server misschien twee of drie keer te nemen mits, zelfs in milliseconden dan het zou kunnen nemen als dat server werden hier gevestigd geografisch, of vice versa. Dus toen ik voorgesteld eerder dat bijzonder als je eenmaal over te steken dat 200 milliseconde drempel, geven of te nemen, mensen kan beginnen te merken. En het trace route is gewoon uitgaande van ruwe, oninteressant data. Als je een website hebt, moet je krijgt de gebruiker het downloaden van beelden of film files, veel tekst, volgende aanvragen. We zagen toen wij er waren, wat was het, Facebook of Amazon eerder, er is een heleboel dingen die moet worden gedownload. Dus dat gaat kloppen. Dus meerdere seconden zou niet onredelijk. Zo goed, aardrijkskunde is een ingrediënt. Dus in feite bedrijven als Akamai, als je hebt gehoord van hen, of anderen al lang genomen aardrijkskunde in aanmerking. En het blijkt dat door de aard van een IP-adres, het IP-adres van mijn laptop, je kunt afleiden, met enige waarschijnlijkheid waar je bent in de wereld. En in feite is er diensten van derden u kunnen betalen die databases te behouden IP-adressen en regio die met groot vertrouwen zal true wanneer gevraagd, waar in de wereld is dit IP-adres? En dus in feite wat andere bedrijven dit gebruiken? Als u Hulu of Netflix, indien heb je ooit naar het buitenland reizen, en u probeert om iets te kijken op Hulu, en je bent niet in de VS, u misschien een bericht zeggen, niet in de Verenigde Staten. Sorry, kunt u deze inhoud niet bekijken. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Oh, echt? Maar ja, dus eigenlijk dat is een perfecte toepassing van iets heel technisch een actueel probleem. Als je aan VPN van Europa of Azië of ergens in de wereld om uw bedrijfsnetwerk hoofdkwartier in New York of waar je ook bent, je bent gaat om het uiterlijk te maken buiten websites die je bent eigenlijk in New York, ook al ben je fysiek heel ver weg. Nu ben je de gebruiker gaat weet je bent duidelijk afstand. Maar je bent ook gaan om het te voelen, omdat van deze extra milliseconden. Die extra afstand en de encryptie die er in de VPN gaat om dingen te vertragen. Dus kan het wel of niet zijn een geweldige ervaring. Maar Hulu en Netflix gaan zien je net zo ergens zitten in New York, als je duidelijk hebt opgedaan. Wat een perfecte oplossing voor dat. Oké, dus geografie is een beslissing. Wat kunnen we gebruiken om te bepalen hoe om verkeer van A, B en C 1, 2 en 3, opnieuw, waardoor engineering hoed op? Dit klinkt allemaal erg ingewikkeld. Uh, ik weet niet eens waar om te beginnen met de uitvoering van deze. Geef me iets dat eenvoudiger. Wat is de eenvoudigste manier om deze beslissing te nemen? PUBLIEK: Is de server beschikbaar? DAVID MALAN: Is de server beschikbaar? Dus niet slecht. Dat is goed. Dat is een soort van een nuancering van de belasting. Dus laten we houden dat in de categorie belasting. Als je beschikbaar bent, ik ben gewoon gaan de gegevens daarheen te sturen. Maar dat kan snel averechts werken. Want als ik die logica, en als ik altijd vragen 1, ben je op, ben je op, ben je op, als het antwoord is altijd ja, Ik ga tot 100% van het verkeer te sturen aan hem, 0% voor iedereen anders. En op een gegeven moment, we gaan raken dat vertraging of site niet beschikbaar. Dus wat is iets beter dan dat, maar nog steeds vrij eenvoudig en niet zo slim als het nemen van alle deze aanvullende gegevens in aanmerking? PUBLIEK: Kosten per server. DAVID MALAN: Kosten per server. OK, dus laat ik gooi dat in de categorie belasting, ook. Want wat u vindt een bedrijf, too-- dat als je een upgrade van uw servers na verloop van tijd of kopen meer, je misschien niet in staat om precies te krijgen dezelfde hard-. Omdat het valt verouderd. Je kan het niet meer kopen. Prijzen veranderen. Dus je zou kunnen ongelijksoortige servers in uw cluster, om zo te zeggen. Dat is helemaal prima. Maar de hardware van volgend jaar misschien twee keer zo snel zijn, twee keer zo bekwaam als dit jaar. Dus we kunnen gooien dat in de categorie lading. Deze feedback loop tussen 1, 2 en 3 in de load balancer kan zeker vertellen, hey, ik ben op 50% capaciteit. Maar door de manier waarop, heb ik ook twee keer zoveel cores. Gebruik die informatie. Zelfs simpler-- en dit gaat een thema in de informatica zijn. Bij twijfel, of wanneer u een eenvoudige oplossing die over het algemeen goed werkt na verloop van tijd, niet hetzelfde te kiezen server de hele tijd, maar choose-- PUBLIEK: Een willekeurige één? DAVID MALAN: --een willekeurige server. Ja, kies een of het ander. Dus willekeur is eigenlijk Deze zeer krachtige ingrediënt in de informatica, en in engineering meer in het algemeen, vooral als je wilt een eenvoudige beslissing snel te maken zonder complicerende het met al van deze heel slim, maar ook heel slim, oplossingen die vereisen des-techniek, alle hoe meer het denken, wanneer echt, waarom niet ik gewoon een soort van flip een munt, of een driezijdige munt in casu en beslissen of om te gaan 1, 2, 3? Dat zou probabilistisch averechts werken, maar net als de odds opnieuw te flippen koppen en opnieuw en opnieuw en opnieuw en weer kan in reality-- super, super onwaarschijnlijk. Dus na verloop van tijd, zijn de kansen gewoon gebruikers verzenden willekeurig 1, 2 en 3 zal uit te werken prima. Dit is een techniek algemeen bekend als round robin. Of eigenlijk, dat is niet round robin. Dit zou de willekeurige benadering. En als je wilt zelfs iets eenvoudiger dan, round robin zou zijn, in de eerste persoon gaat 1, tweede persoon 2, derde tot 3, vierde persoon 1. En daarin ligt de round robin. Je gewoon een soort van rond te gaan in een cyclus. Nu moet je slim over. Je moet niet blindelings de gebruiker te sturen naar server nummer één of wat is het geval? Als het op maximale capaciteit, of het is gewoon niet meer reageren. Dus idealiter je wilt wat soort feedback loop. Anders, je gewoon allemaal te sturen van uw gebruikers aan een doodlopende weg. Dat kan in aanmerking worden genomen, ook. Dus niet in het kader van waardering voor de waarde van gewoon willekeur, dat is heel vaak een oplossing voor dit soort problemen. En we zullen opschrijven round robin. Dus hoe sommige bedrijven uit te voeren round robin of randomness of een van deze besluiten? Nou helaas, ze doe dit soort dingen. Laat me omhoog trekken een andere snelle screenshot. Eigenlijk, laten we het doen twee. Ik weet niet waarom we om al deze gerechten. Dat is heel vreemd. Oké, wat ik echt willen is een screenshot. Dat is raar. Oké, dus ik kan dit spoofen. Ik weet niet hoe veel verder Ik wil scrollen te houden. Dus zeer vaak, vind je jezelf op een adres als www.2.acme.com, misschien www.3 of 4 of 5. En houden een oogje voor. Je hoeft het niet zo vaak zien. Maar als je dat doet, is het soort heeft de neiging om worden groter, ouder, stodgier bedrijven die technologisch niet echt lijken te weten wat ze doen. En je ziet dit op tech bedrijven soms, de oudere. Dus wat doen ze? Hoe worden ze implementeren load balancing, lijkt het? Als je jezelf als gebruiker te typen www.something.com, en opeens je op www.2.something.com, wat heeft hun lading balancer waarschijnlijk gedaan? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dus de load balancer is vermoedelijk het maken van een beslissing op basis van een van de deze besluitvorming processes-- maakt eigenlijk niet uit welke. Maar net als ik getekend heb de nummers op het bord hier, de servers zijn niet alleen genoemd 1, 2 en 3. Ze zijn waarschijnlijk genoemd www1, www2, www3. En het blijkt dat de binnenkant van een HTTP-verzoek is deze functie. En ik ga simuleren als volgt. Ik ga te openen diezelfde tabblad Developer Network als voorheen gewoon zodat we kunnen zien wat er gebeurt op onder de motorkap. Ik ga naar het scherm te wissen. En ik ga naar, laten we zeggen, http://harvard.edu. Nu wat zakelijke redenen, Harvard heeft besloten, net als veel, vele andere websites, standaardiseren zijn website op www.harvard.edu voor zowel technische en marketing redenen. Het is gewoon een soort van in vogue de www hebben. Dus de server op Harvard heeft voor de gebruiker een of andere manier te leiden, zoals ik blijf zeggen, uit een URL naar de andere. Hoe werkt dat? Nou, laat me ga je gang en druk op Enter. En let op de URL inderdaad snel www.harvard.edu veranderd. Laat me terug te bladeren in deze geschiedenis en klik op deze debug diagnostische informatie, als je wil. Laat me kijken naar mijn verzoek. Dus hier is het verzoek ik heb gemaakt. En merk het is in overeenstemming met het soort van vragen die ik van Facebook voor. Maar let op de reactie. Wat is er anders in de reactie deze keer? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dus het is niet een 200 OK. Het is niet een 404 Not Found. Het is een 301 Moved permanent, die is een soort van een grappige manier om te zeggen, Harvard heeft upped en verhuisde elders www.harvard.edu. Het betekent dat 301 dit is een omleiding. En waar moet de gebruiker blijkbaar worden doorgestuurd? Er is een extra versnapering van informatie binnen dat envelop. En elk van deze lijnen zal nu beginnen te roepen een HTTP-header. Header is gewoon een kernwaarde pair-- iets colon iets. Het is een stukje informatie. Waar moet het nieuwe locatie blijkbaar zijn? Let op de laatste regel tussen al die headers. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dus er is Extra informatie. De eerste regel die ik heb gewezen op zegt 301 permanent verplaatst. Nou ja, wanneer is het verplaatst? De laatste line-- en dat doen ze niet moet in deze volgorde. Het is willekeurig. Locatie colon betekent, he browser, ga naar deze URL in plaats daarvan. Dus browsers begrijpen HTTP-omleidingen. En dit is een zeer, zeer voorkomende manier van stuiterende de gebruiker van de ene plaats naar de andere. Bijvoorbeeld, als je ooit hebt geprobeerd naar een website die je niet bezoeken aangemeld, kunt u plotseling uzelf in een nieuwe URL in totaal zijn gevraagd om in te loggen. Hoe werkt dat? De server is waarschijnlijk het verzenden van een 301. Er is ook andere nummers, zoals 302, enigszins verschillende betekenis, die u naar een andere URL. En dan de server, als je eenmaal hebt aangemeld, zal je terug sturen naar waar je eigenlijk bedoeld. Dus wat dan, zijn slecht gemanipuleerde websites aan het doen? Bij een bezoek aan www.acme.com, en ze gewoon toevallig hun servers te hebben benoemd www1, www2, www3, enzovoort, ze zeer simply-- dat is eerlijk, maar zeer soort foolishly-- omgeleid naar een eigenlijk een andere naam server. En het werkt prima. Het is leuk en gemakkelijk. We hebben gezien hoe het zou zijn gedaan onder de motorkap in de virtuele envelop. Maar waarom is dit misschien wel een slechte technische beslissing? En waarom ben ik een soort neerbuigend in de richting van deze bijzondere techniek nadering? Argumenteren waarom dit is slecht. Ben? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Elke server zou moeten hebben een duplicaat van de website. Ik ben OK met dat. En in feite, dat is wat ik ben veronderstelling van dit hele verhaal, want als we goed wanted-- eigenlijk, behalve Dan eerdere suggestie, waar als je anders hebt servers doen verschillende dingen, dan misschien kunnen ze daadwerkelijk worden functioneel doen verschillende dingen. Maar zelfs dan, op een bepaald punt, je databank gaat overbelast. Uw statische activa server gaat overbelast. Dus op een gegeven moment, we zijn terug op dit verhaal, waar we Moeten er meerdere exemplaren van hetzelfde. Dus ik ben OK met dat. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: OK, dus sommige pagina's misschien onevenredig populair. En zo fixeren op één adres is niet per se de beste zaak. [ONHOORBAAR]? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Wat bedoel je daarmee? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, precies. Zodat u niet wilt noodzakelijkerwijs have-- je zeker niet wilt dat uw gebruikers handmatig in te typen of www1 www2. Vanuit een branding perspectief is ziet er gewoon een beetje belachelijk. Als je wil gewoon een soort van schoon, elegant ervaring, met dit soort van willekeurig genummerde URLs is echt niet goed. Want dan gebruikers zijn zeker gaat kopiëren en plakken in e-mails of instant messages. Nu zijn ze uitdragen. Nu ben je een soort van verwarrend uw minder technisch publiek, die denkt uw web-adres is www2.something.com. Er is geen dwingende semantiek dat. Het gebeurt alleen maar om een ​​onderliggende technisch detail dat je hebt genummerd uw servers op deze manier. En erger nog, wat als, bijvoorbeeld, misschien rond Kerstmis wanneer business is echt booming, je www1 hebt door middel van www99, maar in januari en februari en verder, slaat u af de helft van de dus je hoeft alleen maar www1 door middel www50? Wat is nu de gevolgen voor die zeer redelijke zakelijke beslissing? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Je moet beheren van al degenen die nog. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Precies. Dat is een soort van de vangst daar. Als uw klanten zijn in de gewoonte van bookmarking dingen, e-mailen ze, net opslaan van de URL ergens, of al is het maar in hun auto voltooien in hun browser, zodat ze niet echt met opzet te typen, het is gewoon gebeurt, kunnen ze, voor 11 maanden van het jaar effectief te bereiken een doodlopende weg. En alleen de meest scherpzinnige van gebruikers is gaan realiseren, Misschien moet ik handmatig Verwijder dit nummer. Ik bedoel, het is gewoon niet gebeuren met veel gebruikers, dus slecht voor het bedrijfsleven, slechte implementatie techniek wijs. Dus gelukkig, het is niet eens nodig. Het blijkt dat wat load balancers kunnen doen is in plaats van te zeggen, wanneer A maakt een request-- hey A, ga naar 1. Met andere woorden, in plaats van het verzenden van dat redirect zodanig dat de eerste stap in deze proces is de weg hier, Hij wordt dan verteld om elders te gaan. En dus stap drie is, hij gaat elders. U kunt plaats blijven route naar blijven gebruiken deze term alle gegevens van A's door de load balancer, zodat hij nooit contacten 1, 2 of 3 rechtstreeks. Al het verkeer krijgt "gerouteerd" door de load balancer zelf. En nu zijn we een soort van opzettelijk vervagen de lijnen tussen deze verschillende inrichtingen. Een load balancer kan routegegevens. Het is gewoon een functie die het heeft. Dus een load balancer Ook hierbij is een stukje software, echt. En een router is een stukje software. En je kunt absoluut twee stukken software binnen van één fysieke computer, zodat een lading balancer kunnen deze verschillende dingen te doen. Dus er is een andere kant op om dit te doen, die eigenlijk gaat terug naar een soort van eerste beginselen DNS, die we spraken over Voor pauzes. DNS was Domain Name System. Vergeet niet dat u kunt vraagt ​​een DNS-server, wat is het IP-adres van google.com, facebook.com? En we kunnen eigenlijk dit te doen. Een instrument dat we niet eerder gebruikt is een die is net zo toegankelijk, riep nslookup, voor de naam van de server opzoeken. En ik ga gewoon te typen facebook.com. En ik zie dat Facebook's IP mailadres is blijkbaar dit. Laat me ga je gang en kopieer dat naar een browser, en ga naar http: // en dat IP-adres en druk op Enter. En ja hoor, het lijkt te werken. Nu achteruit werken, wat was binnenzijde van de virtuele envelop dat Facebook reageerde met als Ik bezocht dat IP-adres rechtstreeks? Omdat de mededeling, waar ben ik nu? Waar ben ik nu, het adres? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Bij de veilige versie, en op het www.facebook.com. Dus het is niet eens alleen het beveiligde IP-adres. Facebook heeft op zich genomen om te zeggen, dit is belachelijk. We zijn niet van plan om u te houden in deze lelijke URL dat is numeriek. We gaan u een HTTP-stuur omleiden door middel van diezelfde header die we zagen before-- locatie colon iets. En dus dit betekent gewoon dat eronder de kap is nog steeds het IP-adres. Elke computer op het internet heeft een IP-adres, zo lijkt het. Maar je hoeft niet per se bloot dat voor de gebruiker. En net als terug in de dag, is er was 1-800-COLLECT, 1-800-C-O-L-L-E-C-T, in de VS, was een manier om collect roept via een zeer eenvoudig gedenkwaardige telefoon nummer of 1-800-MATTRESS om een ​​bed te kopen, en soortgelijke ezelsbruggetjes dat je zelfs zien telefonisch soort soort nog steeds, dat de brieven in kaart om nummers. Nu, waarom is dat? Nou, het is een stuk makkelijker om te onthouden 1-800-MATTRESS of 1-800-Collect plaats van 1-800 iets iets iets iets iets iets iets, waarbij elke daarvan is een cijfer. Ook de wereld geleerd snel dat we moeten niet hebben mensen onthouden IP-adressen. Dat zou dom zijn. We gaan om namen te gebruiken. En dat is waarom DNS werd geboren. Oké, dus met dat gezegd, in termen van load balancing, laten we proberen yahoo.com. Nou, dat is interessant. Yahoo lijkt terug te keren drie IPs. Dus afleiden uit deze, als je kon, wat is een andere manier waarop we konden implementeren Deze notie van load balancing misschien zelfs zonder gebruik van een fysieke apparaat, deze nieuwe fysieke apparaat? Met andere woorden, kan ik weg te nemen de financiering je hebt voor de load balancer en u vertellen om te gebruiken een aantal bestaande stukje hardware uit te voeren Deze notie van load balancing? En de spoiler is, ja, maar wat of hoe? Wat is Yahoo hier misschien aan het doen? Kareem? Oké, Chris? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, alle drie van die werkzaamheden. Dus willekeur, round robin, locatie-- Je kunt gewoon hefboomeffect een bestaand stukje van de puzzel dat we het eerder over had van de DNS systeem gewoon zeggen, wanneer de eerste gebruiker van de dag vraagt ​​yahoo.com, geef ze de eerste IP-adres, zoals die eindigt in 45 daarboven. En de volgende keer dat een gebruiker verzoeken het IP-adres van yahoo.com ergens in de wereld, geef ze de tweede IP, dan de derde IP, wordt de eerste IP, dan de tweede. Of wees slim over en doe het grafisch. Of doe het willekeurig en niet gewoon doen Het round robin op deze manier. En in dit geval, dan we niet eens nodig om deze zwarte introduceren box in onze foto. Wij hebben geen nieuwe apparatuur nodig. We zijn gewoon te vertellen computers om direct naar de servers, effectief, maar niet via hun naam. Ze moeten nooit de naam kennen. Ze zijn gewoon te horen dat yahoo.com kaarten één van deze IP-adressen. Dus stuurt exact dezelfde aanvraag. Maar aan de buitenkant van de envelop, het gewoon zet het IP dat het werd ingelicht over. En zo ook kan laden we de balans van de aanvragen door alleen versturen van de envelop een verschillende een van Yahoo's eigen servers? En als we graven houden, we zullen zien waarschijnlijk ook andere bedrijven met meer. CNN heeft twee openbaar blootgesteld. Hoewel eigenlijk als we dit opnieuw doen en again-- cnn.com-- u kunt zien ze veranderen van orde, eigenlijk. Dus wat mechanisme CNN gebruikt, blijkbaar? PUBLIEK: Random. DAVID MALAN: Nou, het willekeurig kan zijn, al lijkt om heen en weer te fietsen. Dus het is waarschijnlijk round robin, waar ze zijn gewoon het inschakelen van de volgorde, zodat dat ik waarschijnlijk neem de eerste. Mijn computer zal nemen de eerste telkens. Dus dat is load balancing. En dat stelt ons in staat, uiteindelijk, om gegevens of kaart aanvragen in kaart brengen, over meerdere servers. Dus wat voor soort problemen nu nog steeds bestaan? Het voelt alsof we gewoon echt loste een goede probleem. We kregen gebruikers verschillende servers. Maar-- oh, en Chris, deed u een vraag voor? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Totally hangt. Dus wat gebeurt er hier? En we kunnen eigenlijk dit te zien. Dus laten we proberen Yahoo's. Eigenlijk, laten we naar Facebook. Omdat we weten dat men werkt. Dus ik ga om te kopiëren dat IP-adres weer. Ik ga al deze tabbladen te sluiten. Ik ga om te gaan openen, dat speciaal netwerk tabblad hier beneden. En ik ga alleen http bezoeken: //. En nu ga ik druk op Enter. En laten we eens kijken wat er gebeurde. Als ik kijk naar die verzoeken, mededelingen dat my-- Facebook is een slecht voorbeeld. Omdat ze een superchique techniek dat verbergt die detail van ons. Laat me gebruiken Yahoo instead-- http: // dat IP. Laten we ons netwerk te openen tab, behouden logboek. En hier gaan we, Enter. Dat is grappig. OK, dus hier is de beroemde 404-bericht. Wat grappig is dat ze waarschijnlijk nooit zal terugkomen. Omdat er waarschijnlijk niet iets mis per se. Ze hoeven alleen maar doelbewust besloten niet te steunen de numerieke vorm van hun adres. Dus wat we eigenlijk zien in de tabblad Netwerk, als ik trek dit hier, is, zoals ik al zei, de befaamde 404, waarbij als ik kijk naar de reactie headers, dit is wat ik heb hier-- 404 Not Found. Dus laten we proberen een ander. Eens kijken of CNN samen met ons. Ik pak een van CNN's IP-adressen, schakelt u dit, http, dah, dah, dah, dah. Dus in antwoord op Chris vraag, dat men werkte. En laten we naar response headers. Eigenlijk niet, oké, ik ben worstelen om een ​​werkend voorbeeld te vinden. Dus CNN heeft besloten, zullen wij je gewoon laat op welk adres je eigenlijk bezoeken, branding vraagstukken buiten beschouwing. Maar wat zou niet gebeuren, indien we konden zien in Facebook's geval, is dat we zouden krijgen een 301 Moved Permanent hoogstwaarschijnlijk binnenste gedeelte is locatie: https: //www.facebook.com. En de kans is www.facebook.com is een alias voor exact dezelfde server we gewoon ging naar. Dus het is een beetje contraproductief. We zijn letterlijk een bezoek aan de server. De server wordt ons dan vertellen, ga weg. Ga naar dit ander adres. Maar we net zo toevallig terug te gaan naar dezelfde server. Maar vermoedelijk we nu blijven op die server, zonder deze heen en weer. Want nu zijn we met behulp van de naam versie van de site niet de numerieke. Goede vraag. OK, dus als we nu assume-- we load balancing hebben opgelost. We hebben nu een mechanisme, of het nu via DNS, of het nu via deze black box, of dat het gebruik van elk van deze technieken. We kunnen het verzoek van een gebruiker te nemen en erachter te komen welke server, 1, 2 of 3, om hem of haar te sturen. Wat begint te breken over onze website? Met andere woorden, we bouwde een bedrijf dat was eerder op een enkele server. Nu dat het bedrijfsleven wordt uitgevoerd over meerdere servers. Welke soorten veronderstellingen, welke soorten van ontwerpbeslissingen, kan nu worden breken? Dit is minder voor de hand. Maar laten we eens kijken of we niet kunnen zetten onze vinger op een aantal van het probleem dat we hebben gecreëerd voor onszelf. Nogmaals, het is een soort van als het vasthouden beneden het lek in de slang. En nu een aantal nieuwe nummer is uitgeklapt hier. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: OK, dus we moeten blijven groeien onze harde schijf ruimte. Ik ben OK met dat recht nu. Omdat ik denk dat ik kan horizontaal schaal. Net als ik laag ben actief, zal ik gewoon een vierde server, misschien een vijfde server, en verhoog onze capaciteit met nogmaals 30% of 50% of zo. Dus ik ben OK met dat, althans voor nu. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: OK, dus dat is een goed punt. Dus stel dat de servers niet identiek. En klantenservice of e gelijkwaardige krijgt een aantal bericht van een gebruiker zeggende: Dit is niet goed werkt. Het is heel goed mogelijk, soms, dat misschien een of meer servers handelt een beetje verkeerd, maar niet de anderen, die zeker kan maken het moeilijker om op te jagen naar beneden de kwestie. Je zou kunnen hebben om meerdere plaatsen te kijken. Dat manifestatie een ander soort insect, dat is dat je waarschijnlijk moet uw infrastructuur zijn zo ontworpen dat alles is echt identiek. Maar het blijkt dat er een nieuw probleem dat we niet eerder hadden. Wat nog meer? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, er is meer complexiteit. Er is fysiek meer draden. Er is een ander apparaat. In feite heb ik een fundamentele introduceerde concept en een fundamenteel probleem bekend als enkelvoudig falen, waarvan zelfs als je nog nooit hebt gehoord de zin, kunt u waarschijnlijk nu terug te werken en figure it out. Wat betekent het dat ik een enkele point of failure in mijn architectuur? En door de architectuur, ik heb net verstaan ​​de topologie van het. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, wat als de load balancer naar beneden gaat? Ik heb dit middelste man, wiens gestoken doel in het leven is om een ​​probleem op te lossen. Maar ik heb een nieuw probleem geïntroduceerd. Een nieuw lek is ontstaan ​​in de slang. Want nu als de load balancer overlijdt of breuken of misfunctions, Nu ik de toegang te verliezen mijn drie servers. En eerder, heb ik niet hebben deze tussenpersoon. En dus dit is een nieuw probleem, misschien wel. We zullen terug te komen op hoe kunnen we dat oplossen. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Dat zou een benadering zijn. Ja, en dus dit gaat heel zijn hole van de rat gaan we naar beneden te gaan. Maar laten we terugkeren naar dat in slechts een moment. Welke andere problemen die we hebben gecreëerd? Dus Dan genoemd database voordat. En zelfs als je niet te bekend technisch, een database is gewoon een server waar veranderende data wordt typisch opgeslagen, misschien een bestelling iemand heeft geplaatst, uw gebruikersprofiel, uw naam, uw e-mailadres, dingen die zouden kunnen worden ingevoerd of veranderd in de tijd. Voorheen was mijn gegevensbestand dezelfde server als mijn webserver. Want ik had net een web hosting account. Alles was allemaal in dezelfde plaats. Waar moet ik mijn gegevensbestand nu op de server 1, 2 of 3? Publiek: 4. DAVID MALAN: 4, OK, alle Goed, dus laten we er naartoe te gaan. Dus ga ik legde mijn database-- en laten we start het labelen van deze www, www, www. En ik ga zeggen, dit is nummer vier. En ik zal zeggen db voor de database. OK, ik hou van deze. Welke lijn moet ik vermoedelijk hier tekenen? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dus de code, als we morgen zullen bespreken, vermoedelijk hetzelfde op alle drie servers. Maar het moet nu niet aan op een database onder lokaal maar ook elders. En dat is prima. We kunnen alleen maar geven de database een te noemen, zoals we hebben, of een nummer. En dat alles werkt prima. Maar wat hebben we gedaan? We hebben horizontaal geschaald door het hebben van drie servers in plaats van één, waarvan is goed. Want nu kunnen we omgaan drie keer zoveel lading. En nog beter, als een of twee van die servers naar beneden gaat, mijn bedrijf kan blijven opereren. Want ik heb nog steeds een, zelfs als ik ben soort hinkt prestaties-wise. Maar wat nieuw probleem heb ik die bij het bewegen van de gegevensbank deze aparte server in plaats van op 1, 2 en 3? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dus nu heb ik nog een single point of failure. Als mijn gegevensbestand overlijdt, of moet worden opgewaardeerd, of wat dan ook, nu zeker, Mijn website is online. En ik kan statische dienen, onveranderlijke inhoud. Maar ik kan niet toestaan ​​dat gebruikers zich aanmelden of wijzigen iets of orde iets, nog erger. Want als 4 is offline, vervolgens 1, 2 en 3 kan echt niet te spreken per definitie. OK dus ja, en dus dit is de reden waarom Ik aarzelen om dit te tekenen. Dus laten we terug naar die komen. Ik bedoel niet te blijven pushen je af. Maar het beeld is erg snel gaan stressvol te krijgen. Omdat je nodig hebt om te beginnen met twee van alles. In feite, als je ooit hebt gezien de movie Contact een paar jaar geleden met Jodie Foster-- nee? OK, dus voor de twee van ons die contact hebben gezien, er is een relatie daar waar ze wezen kocht twee van iets in plaats van één, zij met tweemaal de prijs. Dus het was een soort van een speelse commentaar in de film. Het is een beetje met betrekking tot dit. We kunnen absoluut doen. En je hebt gewoon de kosten ons twee keer zo veel geld. Maar we zullen hierop terugkomen. Dus hebben we deze opgelost. Dus weet je wat? Dit is als een hellend vlak. Ik wil niet om te gaan met het hebben van om een ​​duplicaat database. Het is te veel geld. Weet je wat? Ik wil mijn database net als in versie one waar elke server zijn eigen lokale database. Dus ik ga gewoon tekenen db over elk van deze. Dus nu elke webserver identiek voorzover aangezien het dezelfde code, dezelfde statische activa, dezelfde foto's en tekst enzovoorts. En elk heeft zijn eigen database. Ik bevestigde de single point van mislukking probleem. Nu heb ik een database. Maakt niet uit welke twee of één van deze dingen sterven, er is altijd een links. Maar wat nieuw probleem heb ik gemaakt dat Dan's oplossing vermeden? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Yeah, I moet ze synchroniseren, toch? Omdat beide ik nodig om te synchroniseren wie gaat where-- met andere woorden, Als Alice bezoekt mijn site, is gebeurd en ze om willekeurig of rond robined of wat dan ook, naar de server nummer één, daarna moet ik altijd stuur haar naar de server 1. Waarom? Want als ik haar stuur server 2, het gaat om te kijken alsof ze niet bestaan. Ik ben niet van plan om haar bestelling geschiedenis. Ik ben niet van plan om haar profiel daar. En dat alleen maar voelt als het is uitnodigend problemen. En toen Bob bezoekt, I moet hem altijd te sturen dezelfde server, 2, of welke een, en Charlie aan een derde, en consistent. Dit is niet onredelijk, dat wel. Dit heet partitioneren van uw database. En in feite was dit wat Facebook deed vroeg op. Als je de geschiedenis van de gevolgde Facebook, het begon hier op de campus als www.thefacebook.com. Daarna evolueerde het ooit begon Mark verspreiden naar andere campussen te zijn en harvard.thefacebook.com mit.thefacebook.com, en waarschijnlijk bu.thefacebook.com, en dergelijke. En dat was omdat vroeg op, ik denk niet dat kon je vrienden over campussen hebben. Maar dat is prima. Omdat iedereen van Harvard werd verzonden naar deze server. Iedereen uit de BU werd verzonden naar deze server. Iedereen uit MIT kreeg na deze server-- in theorie. Ik weet niet goed alle onderliggende implementatie details. Maar hij vermoedelijk verdeeld mensen door hun campus, waar hun netwerk was. Dus dat is goed tot het moment waar je moet twee servers voor Harvard, of drie servers voor Harvard. En dan die eenvoud soort breekt. Maar dat is een redelijke benadering. Laten we altijd sturen Alice naar dezelfde plaats, altijd sturen Bob naar dezelfde plek. Maar wat gebeurt er als Alice's server offline gaat? Bob en Charlie kan nog steeds kopen dingen en inloggen op de site. Maar Alice kan niet. Dus je hebt verloren een derde van uw user base. Misschien is dat beter is dan 100%? Maar misschien zou het mooi zijn als we konden nog steeds achter 100% van onze gebruikers zelfs indien een derde van onze servers offline gaat. Dus konden we wat synchroniseren? Niet de gebruikers, per se, maar de databank op al deze servers. Dus nu we soort van wat nodig soort interconnectie Hier zodat de servers zelf kan sync-- niet onredelijk. En in feite is deze technologie bestaat. In de wereld van databases, er het begrip master-slave-databases, of primaire-secundaire, waar naast de functies niet alleen het opslaan van gegevens en antwoorden met data, maar ook gewoon om voortdurend synchroniseren met elkaar. Dus elke keer dat je te schrijven of op te slaan iets deze database het onmiddellijk wordt "gerepliceerd" de andere databases ook. En elke keer dat je van het lezen, het maakt niet uit waar je bent. Want als in theorie ze hebben alle gesynchroniseerde, je bent naar dezelfde weergave van de gegevens op te halen. Dit klinkt zo perfect. Er moet een addertje onder het gras. Wat zou de vangst? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dus drie keer zo veel dingen mis kan gaan. Dat is een realiteit. Het zou allemaal dezelfde geest. Maar iemand nodig heeft om deze te configureren. Er is een grotere kans dat er iets gaat mis te gaan. Net combinatorieel je hebt meer dingen gevoelig voor fouten. Wat is slecht mogelijk? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dus synchronisatie kan slecht zijn. Zelfs als je zou weten van back-ups en dergelijke, als je gewoon blind maken backups, wat als er iets doet misgaan op een database? U verwijdert iets wat je niet zou moeten. Je hebt meteen gerepliceerd dat probleem overal elders. Dus Victoria was talking-- backups zou een goede zaak hier te zijn. En dus zullen we terug naar dat. En om duidelijk te zijn, we hebben het niet om back-ups hier per se. We hebben het over de ware replicatie of synchronisatie over servers. Ze zijn allemaal levend. Ze zijn niet bedoeld om te worden gebruikt voor back-ups. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Wat is dat? PUBLIEK: Higher-- DAVID MALAN: Hogere kosten. We hebben de kosten voor verdrievoudigd dat, hoewel althans wat van de hardware. Omdat een database gewoon een stukje software. En een web server is een stukje software. Het is waarschijnlijk gratis als we gebruiken een aantal open source dingen. Maar als we met behulp van zoiets als Oracle, we betalen Oracle meer geld per licenties, of Microsoft voor de toegang. Er moet hier een ander addertje onder het gras. Het kan dit niet eenvoudig zijn. Dus om je punt, ik denk dat het Kareem, aardrijkskunde earlier-- of nee, Roman, was het, voor geography-- veronderstellen dat we slim over dit, en we zetten een van onze servers, en op zijn beurt onze databases, in de VS, en een in Europa, een in Zuid-Amerika, Afrika andere, een andere in Azië, waar we Misschien wil de hele wereld. We weten al van onze trace routes dat punt A en punt B, indien ze verder uit elkaar, gaan meer tijd in beslag nemen. En als sommige van jullie hebben gebruikt gereedschappen, zoals Facebook of Twitter of een van deze sites deze dagen dat veranderen voortdurend als gevolg van de gebruiker gecreëerde data, soms als je Klik Reload of open dezelfde pagina in een andere browser, zie je verschillende versies, bijna. Je zou de status van iemand te zien werken hier, maar niet hier, en vervolgens opnieuw u, en dan is het verschijnt en je weer herladen, en het verdwijnt. Met andere woorden, houden een oog voor dit, op zijn minst als je gebruik maakt van sociale netwerken in het bijzonder. Nogmaals, alleen omdat de gegevens worden zo snel veranderen, soms servers krijg niet synchroon. En misschien is het een super klein venster. Maar 200 milliseconden, misschien zelfs meer dan het dat-- gaan naar een aantal niet-nul hoeveelheid nemen van tijd voor deze databases te synchroniseren. En we zijn niet alleen praten over een aanvraag. Als een bedrijf heeft duizenden gebruikers het gebruik ervan tegelijkertijd, ze kunnen bufferen. Met andere woorden, er zou zijn een wachtrij of een wachttijd lijn voor al deze databank queries kan gesynchroniseerd. Dus misschien is het eigenlijk een paar seconden. En inderdaad, dit is waar ik denk dat zelfs tot op de dag met Facebook, waarbij wanneer ze synchroniseren vanaf East Coast naar West Coast, het heeft een niet-triviale voortplantingsvertraging zogezegd, dat je gewoon een soort van te tolereren. En dus is het niet zozeer een fout aangezien het een realiteit dat uw gebruikers niet zou kunnen zien de juiste gegevens ten minste een paar seconden. Ik zie dit op Twitter veel eigenlijk, waar soms zal ik tweet in één venster, open een andere aan zie het dan inderdaad bevestigen dat het ging op, en het is er nog niet. En ik moet soort herladen, herladen, reload-- oh, daar is het. En dat is niet omdat het niet is opgeslagen. Het is gewoon niet gepropageerd naar andere servers. Dus dit trade-off, too-- heb je echt jezelf wilt blootstellen aan het risico dat als de gebruiker naar de bestelling geschiedenis, het is nog niet echt daar? Ik zie dit op bepaalde banken. Het ergert me altijd bij, nou ja, voor een, je kunt alleen gaan als zes maanden terug in uw bankafschriften in sommige banken, hoewel in theorie ze zouden moeten in staat zijn om alles online te hebben. Ze nemen gewoon spullen offline soms. Soms too-- wat website is het? Er is een-- oh, het is GoDaddy, denk ik. GoDaddy, wanneer u uitcheckt het kopen van een domeinnaam of iets, zullen ze vaak geven je een link naar uw ontvangstbewijs. En als je op die verwijzen naar rechts afstand, vaak niet werkt. Het zegt enkel, doodlopende weg, hier niets. En dat is ook vanwege deze voortplantingsvertragingen. Want voor welke reden dan ook, ze het nemen van een beetje tijd om daadwerkelijk te genereren dat. Dus dit is een soort als je wilt trek je haar uit op een bepaald punt. Omdat alles wat je probeert te doen is een eenvoudig probleem oplossen. En we houden het creëren van nieuwe problemen voor onszelf. Dus laten we kijken of we kan dit soort ongedaan te maken. Het blijkt dat het combineren databases op al uw webservers is niet echt best practice. In het algemeen, wat een ingenieur zou doen, of systemen architect, anders zou hebben niveaus van servers. En net omwille van de ruimte is, zal ik stellen hun database hier. We zouden database en server nummer vier hier die wel verbindingen elk van deze servers hier. Dus dit kan onze concurrenten voor te zijn end tier, als mensen zouden zeggen. En dit zou onze back end tier zijn. En dat betekent gewoon dat die het gezicht van de gebruiker. En de databases niet het gezicht van de gebruiker. Geen gebruiker kan direct de database. Dus laten we nu misschien naar beneden gaan de route Victoria voorgesteld. Dit is een single point of failure. Dat maakt me ongemakkelijk. Dus wat is misschien wel de meest voor de hand liggende oplossing? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Sorry, zeg dat nog eens. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Non-productie server. Wat bedoelt u? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Oh, OK, dus back-ups. OK, dus we konden doen, zeker. En eigenlijk is dit zeer vaak gedaan. Dit kan de database nummer vijf zijn. Maar dat is alleen aangesloten op nummer vier. En je zou noemen het een hot spare. Deze twee databases kunnen worden geconfigureerd gewoon constant synchroniseren elkaar. En dus als deze machine sterft, voor wat dom reason-- de harde schijf overlijdt, iemand struikelt over de koord, sommige software is gebrekkig en de machine hangt of crashes-- je kan een mens hebben letterlijk stekker deze van de muur en in plaats daarvan sluit deze in. En vervolgens binnen, laten we zeggen, een enkele minuten, misschien een half uur, je bent terug online. Het is niet geweldig, maar het is ook niet verschrikkelijk. En je hoeft geen zorgen te maken over eventuele synchronisatieproblemen. Omdat alles er al is. Want je had een perfect back-up klaar om te gaan. Je zou een beetje te zijn liefhebber over dit, zoals sommige mensen vaak doen, waar je misschien databank nummer vier hier hebben, databank nummer vijf hier, die praten met elkaar. Maar je hebt ook deze soort arrangement-- en het met opzet slordig uitziet, omdat het is-- waar alle front-end servers kunnen praten met alle naherfstservers. En dus als deze databank niet reageren, deze front-end servers de programmering hebben code in hen die zegt: als je niet krijgt een verbinding met deze database de primaire start onmiddellijk praten met de secundaire. Maar dit duwt nu de complexiteit van de code. En nu ontwikkelaars, software ontwikkelaars, moeten weten. En je bent soort van de koppeling van de code die je schrijft uw werkelijke back-end implementatie details, waardoor het moeilijker, vooral in een grotere bedrijf of een grotere website, waar je niet per se willen dat de programmeurs hebben weten hoe de gegevensbank ingenieurs doen hun werk. Je zou willen om die rollen te houden soort functioneel verschillend dus dat er dit laagje abstractie tussen de twee. Dus hoe kunnen we dit oplossen? Nou, we soort opgelost dit probleem een ​​keer eerder. Waarom gaan we niet zetten een van deze dingen hier, waar het spreekt op zijn beurt tot nummer vier en vijf, alle vooreinde webservers praat met deze tussenpersoon, en de tussenpersoon op zijn beurt routes hun gegevens? In feite, wat misschien een goede naam voor dit ding? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: OK, database manager. Maar wat kan een termijn die we kunnen hergebruiken voor dit apparaat? We balanceren. Ja, dus eigenlijk, ik ben hier niet eerlijk. Dus een load balancer zou impliceren dat we schakelen heen en weer hier, die moeten niet echt het geval. Dus er zijn een paar manieren waarop we konden doen. Indien dit inderdaad een load balancer, de verhaal is precies hetzelfde als voorheen. Sommige van de verzoeken naar 4. Sommigen naar 5. En dat is goed. Want nu kunnen we omgaan tweemaal zoveel throughput. Maar deze verbinding hier is super belangrijk. Ze moeten constant blijven gesynchroniseerd en hopelijk zijn niet geografisch te ver uit elkaar, zodat dat de synchronisatie in hoofdzaak onmiddellijk. Anders zouden we een probleem hebben. Dus dat is niet slecht. Maar nogmaals, we hebben introduceerde een nieuw probleem. Welk probleem heb ik gewoon opnieuw? Single point of failure. Dus wat is de oplossing voor dat? Dus als Victoria's dol op om geld te besteden, kunnen we deze man nemen en dit te doen. En ik ga gewoon bewegen hier genoeg ruimte. En het gaat een beetje rommelig te zijn. Ik ga het tekenen van lijnen te houden. Stel dat alle die lijnen gaan in beide? Een veel voorkomende techniek zou hier een techniek genaamd hartslag gebruiken waarbij elk van deze inrichtingen, links en rechts load balancers, of wat we willen hen te bellen, is voortdurend te zeggen: ik leef, Ik leef, ik leef, ik leef. Eén van hen standaard treedt op als eerste. Dus al het verkeer wordt omgeleid via de ene aan de linkerkant, bijvoorbeeld, standaard willekeurig. Maar zodra de man op de juiste niet meer horen van links man, de een aan de rechterkant is geprogrammeerd automatisch, bijvoorbeeld nemen via het IP-adres van de ene aan de linkerkant, en daarom worden de primaire en Misschien stuur dan een e-mail of een SMS-bericht om de mensen te zeggen: hey, de linker primaire is offline. Ik zal primair worden voor nu. Dus vice-president wordt president, om zo te zeggen. En iemand moet gaan redden de president, als je wilt. Want nu hebben we een tijdelijke single point of failure. Dus zo ingewikkeld of stressvol als Dit lijkt om te beginnen wordt, dit is hoe je deze problemen op te lossen. Dat doe je gooit geld in. Je gooit hardware in. Maar helaas je toe te voegen complexiteit voor. Maar het resultaat uiteindelijk, dat heb je een veel meer, in theorie, robuuste architectuur. Het is nog niet perfect. Want zelfs als we have-- we misschien niet een single point of failure. We hebben nu dual points of failure. Maar als twee dingen verkeerd gaan, die absoluut kon, we gaan nog steeds offline zijn. En zo heel gebruikelijk in de industrie te beschrijven je up tijd in termen van negens. En sorteren van het doel te streven naar is 99,999% van de tijd dat uw site online is. Of nog beter, voeg een paar negens dat. Helaas zijn deze negens zijn erg duur. En laten we dit eigenlijk doen uit. Dus als ik open mijn grote rekenmachine weer, 365 dagen per jaar, 24 uur in een dag, 60 minuten in een uur, en 60 seconden in een minuut, dat is hoeveel seconden er in een jaar als ik het goed. Dus als we dit keer door 0,99999, dat is hoeveel tijd we willen streven. Dus dat betekent dat we moeten worden dit aantal seconden gedurende het jaar. Dus als ik nu aftrekken van de oorspronkelijke waarde, of liever Deze nieuwe waarde van de first-- 316 seconden, wat natuurlijk is vijf minuten. Dus als uw website of uw bedrijf claimen "vijf negens", waarbij je bent tot 99,99% van de tijd, dat betekent dat je beter zijn slim genoeg en snel geweest genoeg en flush genoeg met de middelen dat uw servers zijn alleen offline vijf minuten van het jaar. Het is een dure en moeilijk ding om naar te streven. Dus het is een afweging, ook. 99,999% van de tijd is vrij darn moeilijk en duur. Vijf minutes-- je nauwelijks kunt krijgen de server fysiek vervanging iets dat mis is gegaan. En daarom beginnen we bedrading dingen samen ingewikkelder apriori zodat de computers kunnen zich soort vast te stellen. Ja. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: het probleem zou kunnen in een aantal plaatsen. En in fact-- PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Absoluut, absoluut. En als het beeld is steeds ingewikkelder, het zou kunnen zijn de webservers. Het zou de macht om het gebouw. Het zou iets fysieks, zoals zijn de kabels raakte gerafeld of geschopt. Het zou de database reageert niet. Het kan worden ze bijgewerkt hun operationele -systeem en iets opknoping. Dus er zijn zoveel andere bewegende delen. En zo veel van de techniek dat moet gaan hierachter is eigenlijk alleen maar de handel offs, zoals hoe veel tijd, hoeveel geld is het eigenlijk de moeite waard, en wat zijn de bedreigingen je bent echt bezorgd over? Bijvoorbeeld, in de cursussen die ik geef les aan Harvard, We gebruiken veel van cloud computing, die we beginnen met een blik op nu, in feite, wanneer we gebruiken Amazon Web Services. Gewoon omdat dat de degene die we begonnen met. Maar er is steeds meer van deze dagen van Google en Microsoft en anderen. En we bewust voor kiezen om alle zetten virtuele machines onze cursussen ', zoals ze heten, in het denk ik het is West-Virginia datacenter. De meeste van onze studenten toevallig uit de VS, hoewel er zeker een aantal internationaal. Maar de realiteit is dat het gewoon eenvoudiger en het is goedkoper voor ons aan al onze eieren leggen in de Virginia mand, hoewel ik weet dat als er iets misgaat in Virginia, zo heeft af en toe happened-- zoals als er een orkaan of een weer gebeurtenis als dat, als er een aantal machtskwestie rooster of de like-- alle van de gegevens van onze cursussen 'misschien offline te gaan gedurende een aantal minuten of uren of zelfs langer. Maar de hoeveelheid complexiteit dat nodig zou zijn, en de hoeveelheid geld die zou nodig zijn, om alles te bedienen parallel in Europa of California gewoon niet zo veel zin. Dus het is een rationele handel off, maar een pijnlijke als je eigenlijk het hebben van die downtime. Nou, laten we de overgang op dit moment om een aantal van de cloud-gebaseerde oplossingen sommige van deze problemen. Alles wat we zijn geweest bespreking tot dusver is een soort van problemen die moeten bij ons voor enige tijd, of u uw eigen servers in uw bedrijf, of je naar een co-locatie plaats als een datacenter en delen ruimte met iemand anders, of tegenwoordig in de cloud. En wat is er leuk is aan de cloud is dat alle van die dingen die ik ben tekenen als fysieke objecten kan nu worden gezien als soort van virtuele objecten in de cloud die gesimuleerd met software. Met andere woorden, de moderne computers, servers van vandaag, zoals de Dell beeld Ik al eerder liet zien, zijn zo snel, hebben zo veel RAM, zoveel CPU, zo veel disk ruimte, die mensen hebben geschreven software vrijwel partitie één server omhoog in de illusie ervan het zijn twee servers, of 200 servers, dus dat ieder van ons de klanten heeft de illusie van niet alleen een account op een aantal web hosten, maar onze eigen machine die we het huren van iemand anders. Maar het is een virtuele machine Voorzover op een Dell server, opnieuw kan worden opgedeeld in twee of 200 of meer virtuele machines, die allemaal geef iemand administratieve toegang, maar op een manier, waar niemand van ons weet of u toegang tot andere virtuele machines op dezelfde hardware. Dus om een ​​beeld te schetsen in dia's van vandaag, Ik heb dit geschoten hier van een website genaamd Docker. Dus dit is een beetje meer detail dan we eigenlijk nodig hebben. Maar als je dit als uw infrastructure-- dus gewoon de hardware van uw eigen, uw servers, de rekken, de gegevens center, en alle dat-- je zou meestal uitvoeren van een host-besturingssysteem. Zo iets like-- het zou kunnen Windows. Het zou niet Mac OS. Want dat is niet echt enterprise deze dagen. Dus het zou Linux of Solaris worden of Unix of BSD of FreeBSD of een aantal andere besturingssystemen die zijn ofwel gratis of commerciële. En dan loop je een programma, speciaal programma, riep een hypervisor, of virtual machine monitor, VMM. En dit zijn producten, als je vertrouwd, zoals VMware of VirtualBox of Virtual PC of anderen. En wat deze programma's doen is precies die functie ik eerder beschreef. Het creëert de illusie dat één fysieke machine kunnen meerdere virtuele machines. En dus deze kleurrijke dozen up top is het schilderen van een beeld van het volgende. Deze hypervisor, dit stukje software, noem het VMware, die draait op een andere besturingssysteem, noem het Linux, is het creëren van de illusie dat Deze fysieke computer daadwerkelijk één, twee, drie virtuele computers. Dus ik heb nu gekocht, als eigenaar van Deze hardware, één fysieke computer. En nu ben ik het huren aan drie klanten. En die drie klanten denk dat alle zij hebben een toegewezen virtuele machine. En het is niet bait and switch. Het is meer dat openbaarmaking u een virtuele machine. Maar technologisch, we hebben allemaal hebben volledige administratieve controle meer dan elk van die gast besturingssystemen, waardoor zijn een aantal besturingssystemen. Ik kan wat ik wil installeren. Ik kan het upgraden als ik wil. En ik weet niet eens te weten of zorg over de overige bedrijfskosten systemen op die computer, de andere virtuele machines, tenzij de eigenaar van al deze grijze spul is een beetje hebberig en opdringen van zijn of haar middelen. Dus als je het nemen van een fysieke machine en verkopen maar niet 200 400 klanten, ergens we gaan trippen in deze Dezelfde problemen met de prestaties als voorheen. Want je hebt maar een eindige hoeveelheid schijfruimte en RAM enzovoort. En een virtuele machine is gewoon een programma dat is doen alsof ze een zijn volwaardige computer. Dus je krijgt waar je voor betaalt. Dus u online zult merken dat je zou kunnen betalen een gerenommeerd bedrijf misschien $ 100 per maand voor je eigen virtuele machine, of uw eigen virtual private server, dat is een andere term voor het. Of je zou een aantal fly door vinden 's nachts waar je betaalt $ 5,99 per maand voor uw eigen virtuele machine. Maar kansen zijn je hoeft lang niet hebben zo veel prestaties voor u beschikbaar, want ze zijn opdringen is dus, dan je zou doen met de hogere tier van de dienst of de betere leverancier. Dus wat betekent dit eigenlijk voor ons? Dus laat me gaan naar dit. Ik ga om te gaan naar aws.amazon.com. Gewoon omdat ze hebben een mooi menu met opties. Maar deze zelfde lessen toepassen op een heleboel andere cloud leveranciers. Helaas, het is vaak meer marketing spreken dan wat dan ook. En dit blijft veranderen. Dus ga je naar een website als deze. En dit is echt niet zeg je veel van alles. En zelfs ik, als ik kijk naar dit, doe niet echt weten wat een van deze dingen per se doen tot ik duik in. Maar laten we beginnen aan de linkerkant, Compute. En ik ga dit klikken. En nu Amazon heeft eerlijk gezegd een overweldigend aantal diensten de laatste tijd. Maar Amazon EC2 is misschien wel de eenvoudigste. Amazon EC2 zal precies te creëren voor ons het beeld zagen we een ogenblik geleden. Het is hoe ze maken veel hun geld in de cloud. Blijkbaar Netflix en anderen zijn in de cloud met hen. Dit is allemaal typisch pluizige marketing spreken. Dus wat ik wil doen is naar Pricing-- of liever laten we naar Instances eerst alleen maar om een ​​beeld van dit te schilderen. Dus dit is afhankelijk van de leverancier. En we hoeven niet te diep in te krijgen het onkruid hier van hoe dit allemaal werkt. Maar zoals Amazon bijvoorbeeld huurt u een virtuele machine of een server in de cloud wordt ze hebben dit soort grappige namen, zoals t2.nano, die kleine middelen, of t2.large, die groot betekent. Elk van hen geeft je ofwel één of twee virtuele CPU's. Waarom is het een virtuele CPU? Nou ja, de fysieke machine zou hebben 64 of meer werkelijke CPU's. Maar nogmaals, door middel van software, creëren ze de illusie dat een machine kan worden divvied aan meerdere gebruikers. Dus kunnen we denken aan dit als het hebben van een Intel CPU of twee. CPU credits per hour-- zou ik moet u de kleine lettertjes te lezen wat dit eigenlijk betekent. Het betekent hoeveel van de machine u kunt gebruiken per uur vis-à-vis andere klanten die hardware. Hier is hoeveel RAM-geheugen of geheugen get-- ofwel een halve gigabyte, of 500 megabytes, of 1 gigabyte, of 2. En dan de opslag alleen betrekking heeft op wat voor soort schijven geven ze je. Er zijn verschillende storage technologieën die zij aanbieden. Maar interessanter dan dit dan zou de prijsstelling zijn. Dus als je de CTO of een ingenieur die dat niet doet wil een server draaien in uw kantoor, om welke reden dan ook, en het is veel te ingewikkelde of dure om servers te kopen en co-lokaliseren hen en huur betalen in een aantal fysieke ruimte kooi somewhere-- je gewoon wilt zitten op uw laptop 's avonds laat, typt u in uw credit card informatie, en huur servers in de cloud-- goed, we kunnen het hier doen. Ik ga naar beneden te gaan to-- Linux is een populaire besturingssysteem. En laten we gewoon een gevoel van dingen. Whoops-- te groot. Dus laten we eens kijken naar hun kleinste virtual machine, die lijkt te hebben, voor onze doeleinden, een CPU en 500 MB RAM-geheugen. Dat is vrij klein. Maar eerlijk gezegd, webservers niet moeten zo veel te doen. Je hebt een betere specs in uw laptop. Maar je hoeft niet degenen specs van deze dag voor dingen. Je gaat naar $ 0,0065 per uur te betalen. Dus laten we eens kijken. Als er 24 uur in een dag, en we betalen dit veel per uur, het kost je $ 0,15 te huur dat bepaalde server in de cloud. En dat is nog maar voor een dag. Als we dit doen 365-- $ 57 tot huren die bepaalde server. het klinkt zo super goedkoop. Dat is ook super lage prestaties. Dus we, voor cursussen die ik leer hier, hebben de neiging te gebruiken Ik denk t2.smalls of t2.mediums. En we zouden een paar honderd hebben gebruikers, een paar duizend gebruikers, totaal. Het is vrij bescheiden. Dus laten we zien wat dit zou kosten. Dus als ik doe dit de kosten tijden 24 uur tijd 365, deze is $ 225. En voor de cursussen Ik geef les, wij over het algemeen lopen twee van alles, voor redundantie en ook voor prestaties. Dus we kunnen besteden, dus $ 500 voor de servers dat we nodig zou kunnen hebben per jaar. Nu, als je meer nodig hebt performance-- laten we eens een kijkje nemen op het geheugen. We hebben gesproken over het geheugen nogal wat. En als je meer nodig hebt memory-- en 64 gigabytes is het nummer dat ik hield mentioning-- dit is bijna $ 1 per uur. En je kunt vrij snel zien waar dit goes-- dus 24 uur 365 keer. Dus nu is het $ 8000 per jaar voor een heel behoorlijk server. Dus op een gegeven moment, er is dit buigpunt Waar nu we konden besteden $ 6000 waarschijnlijk en koop een machine als dat en afschrijven de kosten dan misschien twee, drie jaar, de levensduur van de machine. Maar wat zou je duwen in gunst of ongenade van de huur een machine in de cloud als dit? Nogmaals, dit is vergelijkbaar waarschijnlijk een van die Dell-servers we zagen afgebeeld een beetje geleden. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, dat is een enorme ondersteboven. Omdat we niet kopen van de machine, hoeven we niet te Unbox. We hoeven niet op te tillen. We hoeven niet aan te sluiten in onze rack. We hoeven niet aan te sluiten in. We hoeven niet te betalen de elektrische factuur. We hoeven niet te draaien de airconditioning aan. Wanneer een harde schijf sterft, hebben we niet te rijden in het midden van de nacht om het te repareren. We hoeven niet op te zetten monitoring. We hebben geen to-- de lijst gaat maar door en van alle fysieke dingen je hoeft niet te doen als gevolg van "de cloud." En om duidelijk te zijn, cloud computing Dit is zeer veel gebruikt term. Het is echt gewoon betekent dat het betalen van iemand anders te servers draaien voor u, of het huren van ruimte op servers van iemand anders. Dus de term "cloud computing" is nieuw. Het idee is tientallen jaren oud. Dus dat is behoorlijk overtuigend. En wat wil je dan? Nou, krijgt u ook de mogelijkheid om te doe alles op een laptop thuis. Met andere woorden, alle foto's die ik was gewoon drawing-- en het was niet zo lang geleden dat zelfs Ik kroop rond op een server vloer inpluggen van de kabels voor elk van de lijnen die je ziet, en upgraden van het besturingssysteem systemen en veranderen rijdt rond. Er is een heleboel lichamelijkheid om dat allemaal. Maar wat is mooi over virtual machines, zoals de naam doet vermoeden soort, nu zijn er web-based interfaces waarbij als je wilt het equivalent van een lijn van deze server naar de andere, typ je gewoon, het type, type, klik en sleep op Submit, en voila, heb je het bedraad virtueel. Omdat het allemaal gedaan in software. En de reden waarom het is gebeurd software weer want we hebben zo veel RAM en zo veel CPU beschikbaar is voor ons deze dagen, hoewel alle dat spul kost tijd, het is trager om dingen te draaien in software dan hardware, Zoals het ook langzamer mechanische gebruiken apparaat zoals een harde schijf dan RAM, wat zuiver elektronisch. We hebben zo veel middelen beschikbaar voor ons. Wij mensen zijn een soort invariant traag. En nu de machines kunnen doen dus veel meer per tijdseenheid. We hebben deze vaardigheden om dingen vrijwel doen. En ik zal zeggen voor cursussen Ik geef les, bijvoorbeeld hier, we hebben ongeveer misschien een dozijn of dus totaal van virtuele machines als dat draait op elk tijd doen front end spul, het doen van back-end spul. We hebben al onze opslag. Dus geen video's, met inbegrip van de dingen als deze die we schieten, belanden we het in de cloud. Amazon heeft diensten genoemd Amazon S3, hun eenvoudige storage service, die is net als schijfruimte in de cloud. Ze hebben iets genaamd CloudFront, die is een CDN service, Content Delivery Network dienst, die betekent dat ze nemen al uw bestanden en voor u automagisch repliceren rond de wereld. Zodat ze niet preventief te doen. Maar de eerste keer dat iemand in India vraagt ​​uw dossier, ze zullen mogelijk lokaal cache het. De eerste keer in China, de eerste keer in Brazilië dat gebeurt, ze zullen beginnen lokaal caching het. En je hoeft niet aan een van die te doen. En zo is het zo ongelooflijk dwingende deze dagen om dingen te verplaatsen in de cloud. Want je moet dit vermogen letterlijk om niet de mens doet bijna net zo veel werken. En je letterlijk niet zo veel nodig mensen doen deze banen anymore-- "Ops" of operationele taken, meer. Je moet echt hoeft alleen maar ontwikkelaars en engineers minder die gewoon dingen doen praktisch. In feite, alleen maar om te geven je een gevoel van deze, laat me gaan naar de prijsstelling voor een ander product hier. Laten we eens kijken zoiets als CDN S3. Dus dit is in wezen een virtuele harde schijf in de cloud. En als we naar beneden scrollen om pricing-- dus het is $ 0,007 per gigabyte. En dat is-- hoe kunnen we dit doen? Ik denk dat dat per maand. Dus als dat is per maand-- of per dag? Dan, is dit per dag? Dit is per maand, OK. Dus als dit per maand-- sorry, het is de $ 0,03 per maand. Er is 12 maanden van het jaar. Dus hoeveel gegevens kunnen u opslaan in de cloud? Een gigabyte is niet groot, maar ik weet het niet, zoals 1 terabyte, dus als 1000 van die. Dat is niet zo heel veel. Het is $ 368 tot een terabyte op te slaan van de gegevens in de cloud van Amazon. Dus wat zijn enkele van de trade offs, dan? Het kan niet allemaal goed. Niets van wat we hebben gesproken over vandaag de dag is soort zonder vangst of een kostprijs. Dus wat is slecht over het verplaatsen van alles in de cloud? PUBLIEK: Beveiliging. DAVID MALAN: OK, wat bedoel je? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, tuurlijk. En wil je echt enkele willekeurige ingenieurs Amazon dat je nooit zult ontmoeten met fysieke toegang tot die computers, en als ze echt wilde, virtuele toegang? En hoewel in theorie software-- goed, encryptie kan absoluut u te beschermen tegen dit. Dus als wat je bent opslaan op uw servers is encrypted-- minder een punt van zorg. Maar zodra een mens heeft fysieke Toegang tot een machine encryptie opzij, alle weddenschappen zijn een soort van off. Je zou kunnen kennen van weleer Pc's bijzonder, zelfs als je had die dingen "BIOS wachtwoorden," waren toen het bureaublad opgestart, je zou worden gevraagd met een wachtwoord heeft niets te maken met Windows, kunt u doorgaans opent u het chassis van de machine, vind piepkleine pinnen, en het gebruik van een zogenaamde een jumper en gewoon aansluiten deze twee draden gedurende een tweede, waardoor een circuit te voltooien. En dat zou het wachtwoord te elimineren. Dus als je fysieke toegang tot een apparaat, kunt u dat soort dingen te doen. U kunt de harde schijf te verwijderen. U kunt de toegang tot het systeem kan krijgen op die manier. En dus dit is de reden waarom, in het geval van Dropbox, Zo, het is een beetje zorgelijk dat niet alleen zij de data, hoewel het versleutelde, ze hebben ook de sleutel. Andere zorgen? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, het is heel true-- de Googles, de appels, de Microsofts van de wereld. En in feite, hoe lang hebben je had je iPhone voor? Ja, geven of te nemen. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Het spijt me? Je bent onder degenen die heeft een iPhone, toch? Publiek: Ja. DAVID MALAN: Hoe lang Hebt u uw iPhone? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: OK, dus Apple letterlijk weet waar je elk uur van zijn geweest de dag voor de laatste vijf jaar. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Wat is een prachtige eigenschap. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, maar afweging zeker. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Ja, het is heel gemakkelijk om. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Andere minpunten? PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: Absolutely-- technologisch, economisch, het is vrij overtuigend aan soort van krijgen deze schaalvoordelen en ga alles in de zogenaamde cloud. Maar je waarschijnlijk wilt gaan met enkele van de grootste vissen, de Amazones, de Googles, de Microsofts-- Rackspace is vrij big-- en een paar anderen, en niet noodzakelijkerwijs vliegen 's nachts mensen voor wie het is heel makkelijk om te doen dergelijke techniek tegenwoordig. En dat is wie je kunt betalen $ 5,99 per maand. Maar je zult zeker krijgt wat je betaalt voor. Als je zegt dat [ONHOORBAAR], dat is wanneer dingen zoals deze vijf negens komen, waarbij zelfs als technologisch we kunnen niet echt garanderen 99.999, we zullen gewoon op te bouwen in een soort van de straf van het contract zodat als dat gebeurt, althans is er een aantal kosten voor ons, de leverancier. En dat is wat u gewend bent worden om ze in te stemmen met. PUBLIEK: [ONVERSTAANBAAR] DAVID MALAN: En de een soort van zegen is dat zelfs wanneer we naar beneden gaan, voor bijvoorbeeld, of zelfs bepaalde bedrijven, de realiteit is Amazon, Zo heeft zoveel darn klanten, bekende klanten, opereren vanuit bepaalde datacenters dat wanneer er iets echt mis gaat, zoals daden van God en het weer en dergelijke, als er een soort van zilveren voering, het is dat je in goed gezelschap. Uw website kan offline zijn. Maar dat is net als de helft van de de populaire internet. En dus is het misschien wel een beetje beter verteerbaar voor uw klanten als het meer van een internet wat is dan een acme.com zaak. Maar dat is een beetje een cheat. Dus in termen van andere dingen om naar te kijken, gewoon zo dat we niet uit te sluiten anderen, als je naar Windows Azure, ze hebben zowel Linux als Windows stuff Dat is vergelijkbaar met Amazon's. Als je naar Google Compute Engine, ze hebben iets soortgelijks ook. En net te ronden deze cloud-aanbod, Ik zal melding gemaakt van een ander ding te maken. Dit is een populaire website dat is representatief een klasse van technologieën. Degene die we net gesproken over, Amazon, zou IAAS zijn, Infrastructure As A Service, waar u soort van fysieke hardware als een service. Er is SAAS. Eigenlijk, laat me noteren deze naar beneden. IAAS-- Infrastructuur As A Service, SAAS, en Paas, die zijn opmerkelijk verwarrende acroniemen die wel beschrijven drie verschillende soorten dingen. En de acroniemen zelf niet echt toe. Dit is allemaal van de wolk spul we hebben net gesproken over, het lagere niveau spul, de virtualisatie van hardware en opslag in de zogenaamde cloud, of het Amazon, Microsoft, Google, of andere. Software als een service-- ieder van ons soort dit van te gebruiken. Als u gebruik maken van Google Apps voor Gmail of agenda's, een van deze web-based toepassingen die 10 jaar geleden zijn we dubbel zouden klikte pictogrammen op hebben onze desktop, software as a service is nu echt webapplicatie. En platform als een dienst soort hangt. En een voorbeeld dat ik je hier geven in het kader van cloud computerwerk er is een bedrijf dat is heel populair deze dagen, Heroku. En ze zijn een dienst, een platform, als je wil, die draait bovenop Amazon's infrastructuur. En ze gewoon maken het nog makkelijker voor ontwikkelaars en engineers naar web-based applicaties online te krijgen. Het is lastig, aanvankelijk te gebruiken Amazon Web Services en andere dingen. Omdat je eigenlijk kennen en begrijpen over databases en webservers en load balancers en alle spullen Ik heb net gesproken over. Omdat alle Amazon heeft gedaan is niet verborgen die ontwerp uitdagingen. Ze hebben net gevirtualiseerd hen en zet ze in een browser, in de software in plaats van hardware. Maar bedrijven als Heroku en andere PAAS providers, Platform as a Service zij gebruiken deze barebone fundamentals dat we net gesproken over, en ze bouwen makkelijker te gebruik maken van software op de top van het zodat als je wilt krijg je een web-based aanvraag online deze dagen, je zeker moeten weten hoe te programmeren. U moet weten Java of Python of PHP of Ruby of een heleboel andere talen. Maar je moet ook een plek om het te zetten. En we eerder over gesproken het krijgen van een web hosting bedrijf. Dat is een soort van het soortgelijke mid-2000s benadering van het krijgen van iets online. Tegenwoordig is dat u misschien in plaats daarvan iemand betalen zoals Heroku een paar dollar per maand. En in wezen, als je eenmaal hebt gedaan een aantal initiële configuratie, om uw website te updaten, u typ een opdracht in een venster. En wat code die je hebt geschreven hier op uw laptop onmiddellijk wordt verspreid aan een aantal van servers in de cloud. En Heroku zorgt alle van de complexiteit. Ze denken allemaal de database stuff, alle load balancing, alle van de hoofdpijn die we hebben gewoon geschreven op het bord, en verbergen dat alles voor je. En in ruil daarvoor, je gewoon betalen ze een beetje meer. Dus je hebt deze infrastructuur als een dienst, platforms als een dienst, en dan software as a service. Het is, nogmaals, dit abstractie of gelaagdheid. Heeft u vragen over de cloud of het bouwen van een eigen infrastructuur? Oké, dat was een stuk. Waarom gaan we niet doorgaan en nemen onze pauze van 15 minuten hier. We zullen terug te komen met een aantal nieuwe concepten en een beetje hands-on mogelijkheid voordat de avond voorbij.