1 00:00:00,000 --> 00:00:00,629 2 00:00:00,629 --> 00:00:02,170 DAVID MALAN: Okej, välkommen tillbaka. 3 00:00:02,170 --> 00:00:06,520 Innan vi dyker in cloud computing, Jag trodde att jag skulle stanna upp en stund 4 00:00:06,520 --> 00:00:11,740 om det finns några utestående frågor eller ämnen som kom upp under lunchen 5 00:00:11,740 --> 00:00:13,834 som kan nu vara av intresse. 6 00:00:13,834 --> 00:00:18,470 7 00:00:18,470 --> 00:00:21,410 >> PUBLIK: [OHÖRBART] 8 00:00:21,410 --> 00:00:22,090 >> DAVID MALAN: OK. 9 00:00:22,090 --> 00:00:23,555 Åh, OK. 10 00:00:23,555 --> 00:00:24,430 PUBLIK: [OHÖRBART] 11 00:00:24,430 --> 00:00:29,880 12 00:00:29,880 --> 00:00:31,420 >> DAVID MALAN: Nej, naturligtvis. 13 00:00:31,420 --> 00:00:35,180 OK, väl förhoppningsvis alla dina problem uppstår i de närmaste timmarna 14 00:00:35,180 --> 00:00:36,410 och i morgon speciellt. 15 00:00:36,410 --> 00:00:42,700 Men låt oss ta en titt, då, på där den sista diskussionen om att inrätta 16 00:00:42,700 --> 00:00:45,730 en webbplats leder, mer allmänt när det gäller cloud computing, 17 00:00:45,730 --> 00:00:48,210 inrätta en serverarkitektur, de typer av beslut 18 00:00:48,210 --> 00:00:50,800 att ingenjörer och utvecklare och chefer 19 00:00:50,800 --> 00:00:53,210 måste göra när det gäller att göra mer än bara 20 00:00:53,210 --> 00:00:56,550 registrera dig för en $ 10 per månad webbhotell när du verkligen vill bygga ut 21 00:00:56,550 --> 00:00:57,550 din egen infrastruktur. 22 00:00:57,550 --> 00:01:00,400 Och vi ska försöka knyta den tillbaka, till exempel, till Dropbox och andra 23 00:01:00,400 --> 00:01:01,350 som dem. 24 00:01:01,350 --> 00:01:06,250 >> Så låt oss börja att överväga vilka problem uppstår som företag 25 00:01:06,250 --> 00:01:09,390 blir bra och uppstår goda problem. 26 00:01:09,390 --> 00:01:14,720 Så i mycket enklaste fallet att ha vissa företag som har en webbserver, 27 00:01:14,720 --> 00:01:21,470 du kan ha, låt oss säga, en server som Vi ska bara dra det ser ut så här. 28 00:01:21,470 --> 00:01:25,620 Och dessa dagar, mest servers-- och låt oss faktiskt lägga in en bild på det här bara så 29 00:01:25,620 --> 00:01:27,680 att det är en lite mindre oklar. 30 00:01:27,680 --> 00:01:31,510 >> Så Dell rack server-- tillbaka i dag, där 31 00:01:31,510 --> 00:01:33,730 var stordatorer som tog upp hela rum. 32 00:01:33,730 --> 00:01:35,710 Dessa dagar, om du var för att få en server, det 33 00:01:35,710 --> 00:01:38,520 kan se en liten sak som denna. 34 00:01:38,520 --> 00:01:41,760 Servrar mäts i vad kallas rackenheter eller RU. 35 00:01:41,760 --> 00:01:45,280 Och en RU är 1,5 inches, som är en branschstandard. 36 00:01:45,280 --> 00:01:49,300 Så det här ser ut som en två RU-server. 37 00:01:49,300 --> 00:01:51,240 Så det är 3 inches tall. 38 00:01:51,240 --> 00:01:54,430 Och de är i allmänhet 19 inches bred, vilket innebär alla den här typen av saker 39 00:01:54,430 --> 00:01:55,160 är standardiserad. 40 00:01:55,160 --> 00:01:59,420 >> Så om du tittar på en data center-- inte bara på en server, men låt oss 41 00:01:59,420 --> 00:02:02,110 ta en titt på Googles datacenter och se om vi 42 00:02:02,110 --> 00:02:04,280 se en fin bild i Google Bilder. 43 00:02:04,280 --> 00:02:09,090 Detta är mycket bättre belysning än du skulle normalt hittar, och mycket 44 00:02:09,090 --> 00:02:14,900 sexigare ser som följd. Men Detta är vad som ser ut som en par 45 00:02:14,900 --> 00:02:17,380 hundra servrar alla ungefär samma storlek, 46 00:02:17,380 --> 00:02:21,450 faktiskt, i rack efter rack efter rack efter rack i ett datacenter. 47 00:02:21,450 --> 00:02:26,150 >> Något som this-- Detta kan mycket väl vara Googles, eftersom jag googlade Googles. 48 00:02:26,150 --> 00:02:28,330 Men det skulle kunna vara representativt av mer generellt 49 00:02:28,330 --> 00:02:31,480 ett datacenter där många företag vanligtvis samlokaliseras. 50 00:02:31,480 --> 00:02:34,940 Och samlokaliserade innebär i allmänhet att du går till en plats som Equinix 51 00:02:34,940 --> 00:02:40,280 eller andra leverantörer som har stora lager som har massor av kraft, 52 00:02:40,280 --> 00:02:42,950 massor av kylning, förhoppningsvis massor av säkerhet, 53 00:02:42,950 --> 00:02:47,910 och individuella burar omslutande rack servrar, och du antingen hyra rack 54 00:02:47,910 --> 00:02:49,150 eller du föra ställningar i. 55 00:02:49,150 --> 00:02:51,420 >> Och enskilda företag, startup speciellt, 56 00:02:51,420 --> 00:02:54,820 kommer att ha någon form av biometri att komma in i sin bur, eller en nyckel, 57 00:02:54,820 --> 00:02:55,640 eller ett passerkort. 58 00:02:55,640 --> 00:02:56,990 Du öppnar dörren. 59 00:02:56,990 --> 00:03:00,354 Och insida det finns bara en kvadratmeter fotavtryck 60 00:03:00,354 --> 00:03:03,270 att du betalar för, insida som du kan lägga vad du vill. 61 00:03:03,270 --> 00:03:04,770 >> Och du normalt betalar för makt. 62 00:03:04,770 --> 00:03:06,920 Och du betalar för fotspår. 63 00:03:06,920 --> 00:03:08,770 Och då du betalar själv för servrar 64 00:03:08,770 --> 00:03:10,560 att du föra in det utrymmet. 65 00:03:10,560 --> 00:03:12,850 Och vad du då har möjlighet att göra är att betala någon 66 00:03:12,850 --> 00:03:15,120 för din Internetleverantör anslutning. 67 00:03:15,120 --> 00:03:17,240 Du kan betala ett obegränsat antal leverantörer, varav alla 68 00:03:17,240 --> 00:03:19,210 typiskt komma in i den datacenter. 69 00:03:19,210 --> 00:03:22,740 >> Men den verkliga intressant fråga är, vad som faktiskt går i dessa ställningar? 70 00:03:22,740 --> 00:03:25,020 De kan alla mycket väl ser ut som vad vi såg bara. 71 00:03:25,020 --> 00:03:27,870 Men de utför olika funktioner och kan behöva göra olika saker. 72 00:03:27,870 --> 00:03:29,661 Och låt oss faktiskt motivera denna diskussion 73 00:03:29,661 --> 00:03:35,370 med frågan om vad problemet börjar uppstå om du lyckas? 74 00:03:35,370 --> 00:03:37,900 >> Så du har en webbplats att du har byggt. 75 00:03:37,900 --> 00:03:40,450 Och kanske det säljer widgets eller något sådant. 76 00:03:40,450 --> 00:03:43,620 Och du har gjort mycket bra med försäljning av widgets på nätet. 77 00:03:43,620 --> 00:03:48,490 Och du börjar känna några symtom, din webbplats. 78 00:03:48,490 --> 00:03:51,070 Vad som kan vara en del av de tekniska symptom 79 00:03:51,070 --> 00:03:54,040 att användarna rapportera företag växer och högvarv 80 00:03:54,040 --> 00:03:59,482 och din webbplats är gynnas av det? 81 00:03:59,482 --> 00:04:02,690 >> PUBLIK: [OHÖRBART] 82 00:04:02,690 --> 00:04:05,910 83 00:04:05,910 --> 00:04:07,050 >> DAVID MALAN: Ja, exakt. 84 00:04:07,050 --> 00:04:10,040 Så du kan ha en avmattning av din webbplats. 85 00:04:10,040 --> 00:04:11,240 Och varför skulle det hända? 86 00:04:11,240 --> 00:04:12,660 Tja, om vi antar, för diskussionens skull 87 00:04:12,660 --> 00:04:15,160 just nu, att du är på en av dessa kommersiella webbhotell 88 00:04:15,160 --> 00:04:17,860 att vi talade om före lunch, att du betalar ett visst antal dollar 89 00:04:17,860 --> 00:04:20,859 till per månad, och du har redan betalat för den årliga kostnaden för din domän 90 00:04:20,859 --> 00:04:25,300 nämna att webbhotell är förmodligen overselling sina resurser 91 00:04:25,300 --> 00:04:26,050 i viss utsträckning. 92 00:04:26,050 --> 00:04:29,000 Så du kan ha ett användarnamn och lösenord på deras server. 93 00:04:29,000 --> 00:04:32,410 Men så kanske flera andra, eller flera dussin andra, eller kanske till och med flera 94 00:04:32,410 --> 00:04:33,980 hundra andra, användare. 95 00:04:33,980 --> 00:04:37,190 >> Och webbplatser lever fysiskt på samma server. 96 00:04:37,190 --> 00:04:38,340 Varför är detta möjligt? 97 00:04:38,340 --> 00:04:40,680 Väl dessa dagar, servrar så här typiskt 98 00:04:40,680 --> 00:04:44,610 har flera hårddiskar, kanske så många som sex eller flera hårddiskar, 99 00:04:44,610 --> 00:04:47,665 vilka var och en skulle kunna vara så mycket som 4 terabyte dessa dagar. 100 00:04:47,665 --> 00:04:52,140 Så du kan ha 24 terabyte utrymme i bara en liten server som denna. 101 00:04:52,140 --> 00:04:55,710 >> Och även om du stjäl en del av det utrymmet för redundans, för säkerhetskopiering, 102 00:04:55,710 --> 00:04:57,110 det är fortfarande en hel del utrymme. 103 00:04:57,110 --> 00:05:00,070 Och visst, en typisk webbplats inte behöver så mycket utrymme. 104 00:05:00,070 --> 00:05:03,100 Bara registrera användare och lagring av stockar av order 105 00:05:03,100 --> 00:05:04,640 tar inte så mycket utrymme. 106 00:05:04,640 --> 00:05:07,550 Så du kan partitionera det ganska lite och ge varje användare 107 00:05:07,550 --> 00:05:08,980 bara en liten del av det. 108 00:05:08,980 --> 00:05:11,310 >> Under tiden en dator såhär dessa dagar 109 00:05:11,310 --> 00:05:16,370 typiskt har flera CPUs-- inte bara en, kanske två, kanske fyra, kanske 16, 110 00:05:16,370 --> 00:05:17,149 eller ännu mer. 111 00:05:17,149 --> 00:05:18,940 Och var och en av dessa processorer har något som kallas 112 00:05:18,940 --> 00:05:22,230 en kärna, som är ungefär som en hjärna insidan av en hjärna. 113 00:05:22,230 --> 00:05:26,800 Så i själva verket de flesta alla här med moderna bärbara datorer har förmodligen en dual core 114 00:05:26,800 --> 00:05:32,030 eller quad core CPU-- och förmodligen bara en CPU insidan av en bärbar dator i dessa dagar. 115 00:05:32,030 --> 00:05:35,030 Men stationära datorer och rack datorer som 116 00:05:35,030 --> 00:05:39,000 Detta kan ha en hel del fler processorer, och i sin tur kärnor. 117 00:05:39,000 --> 00:05:44,180 >> Och ärligt talat, även i våra Mac och PC för idag, behöver du inte verkligen behöver dubbla kärnor 118 00:05:44,180 --> 00:05:46,550 eller quad kärnor för att kontrollera din e-post. 119 00:05:46,550 --> 00:05:49,090 Om det finns någon flaskhals när det gäller att använda en dator, 120 00:05:49,090 --> 00:05:51,925 du människan är förmodligen långsammaste sak om datorn. 121 00:05:51,925 --> 00:05:54,800 Och du kommer inte att kunna kolla din e-post fortare om du 122 00:05:54,800 --> 00:05:57,170 har fyra gånger så många processorer eller kärnor. 123 00:05:57,170 --> 00:05:59,700 >> Men samma är snäll av fallet med en server. 124 00:05:59,700 --> 00:06:02,970 En enda webbplats kanske inte nödvändigtvis mer än en 125 00:06:02,970 --> 00:06:05,756 CPU eller en kärna, en liten hjärna inuti göra 126 00:06:05,756 --> 00:06:07,380 alla tänkande och behandlingen. 127 00:06:07,380 --> 00:06:10,561 Så tillverkarna har liknande börjat skära upp dessa resurser 128 00:06:10,561 --> 00:06:13,435 så att kanske din webbplats får en kärna, blir din webbplats en kärna, 129 00:06:13,435 --> 00:06:15,290 eller kanske vi delar en sådan kärna. 130 00:06:15,290 --> 00:06:16,820 Vi också dela diskutrymme. 131 00:06:16,820 --> 00:06:20,000 Och vi också dela RAM, eller Random Access Memory 132 00:06:20,000 --> 00:06:22,520 från före varav, Det finns också en begränsad mängd. 133 00:06:22,520 --> 00:06:23,420 >> Och det är nyckeln. 134 00:06:23,420 --> 00:06:25,960 Oavsett hur dyr datorn var, 135 00:06:25,960 --> 00:06:28,440 Det finns fortfarande en ändlig mängd resurser i det. 136 00:06:28,440 --> 00:06:31,360 Och så mer och mer du Försök att konsumera dessa resurser, 137 00:06:31,360 --> 00:06:32,850 de långsammare saker kan bli. 138 00:06:32,850 --> 00:06:34,646 Men varför? 139 00:06:34,646 --> 00:06:39,352 Varför skulle det sakta ner som en symptom på en server överbelastas? 140 00:06:39,352 --> 00:06:40,060 Vad händer? 141 00:06:40,060 --> 00:06:42,895 142 00:06:42,895 --> 00:06:46,388 >> PUBLIK: [OHÖRBART] 143 00:06:46,388 --> 00:06:54,036 144 00:06:54,036 --> 00:06:55,160 DAVID MALAN: Ja, exakt. 145 00:06:55,160 --> 00:06:57,730 Jag föreslog tidigare att RAM är en typ av minne. 146 00:06:57,730 --> 00:07:00,290 Det är flyktig, varvid det är där program och data 147 00:07:00,290 --> 00:07:01,890 lagras när de används. 148 00:07:01,890 --> 00:07:03,990 Och så därför finns det endast ett begränsat antal 149 00:07:03,990 --> 00:07:05,790 saker kan man tydligen göra på en gång. 150 00:07:05,790 --> 00:07:07,740 Och det är också snabbare, vilket är en bra sak. 151 00:07:07,740 --> 00:07:09,990 Men det är också dyrare, vilket är en dålig sak. 152 00:07:09,990 --> 00:07:15,376 Och det är också därför förekommer i lägre mängder än diskutrymme, hårddisk 153 00:07:15,376 --> 00:07:16,750 utrymme, som tenderar att vara billigare. 154 00:07:16,750 --> 00:07:18,830 >> Med andra ord, du kan ha 4 terabyte 155 00:07:18,830 --> 00:07:20,440 diskutrymme i datorn. 156 00:07:20,440 --> 00:07:24,300 Men du kan ha 4 gigabyte eller 64 gigabyte, 157 00:07:24,300 --> 00:07:29,180 i storleksordning, en faktor 1000 mindre, RAM i din dator. 158 00:07:29,180 --> 00:07:30,320 Så vad gör en dator göra? 159 00:07:30,320 --> 00:07:32,236 Tja, antar att du har 64 gigabyte 160 00:07:32,236 --> 00:07:35,110 RAM i en server som denna, som skulle vara ganska vanligt, om inte låga 161 00:07:35,110 --> 00:07:36,140 dessa dagar. 162 00:07:36,140 --> 00:07:39,220 Men antar att du har så många användare gör så många saker 163 00:07:39,220 --> 00:07:42,480 att du typ av sorts behöver 65 gigabyte minne 164 00:07:42,480 --> 00:07:44,960 att hantera alla som samtidig användning? 165 00:07:44,960 --> 00:07:47,580 >> Tja, du kan bara säga, ledsen, vissa antal användare 166 00:07:47,580 --> 00:07:48,840 bara kan inte få tillgång till webbplatsen. 167 00:07:48,840 --> 00:07:51,410 Och det är ett mått sista utväg, verkligen. 168 00:07:51,410 --> 00:07:55,570 Eller du som drifts system som Windows eller Mac 169 00:07:55,570 --> 00:07:59,480 OS eller Linux eller Solaris eller någon antal andra operativsystem på den servern, 170 00:07:59,480 --> 00:08:01,280 kan bara bestämma, vet du vad? 171 00:08:01,280 --> 00:08:03,780 Jag har bara 64 gigabyte RAM. 172 00:08:03,780 --> 00:08:05,440 Jag slags behöver 65. 173 00:08:05,440 --> 00:08:06,210 Så du vet vad? 174 00:08:06,210 --> 00:08:10,030 Jag kommer att ta en gigabyte värde av data i RAM-minnet 175 00:08:10,030 --> 00:08:15,240 som var minst nyligen visats och bara flytta den till disk tillfälligt, 176 00:08:15,240 --> 00:08:19,050 bokstavligen kopiera den från den snabba minne till långsammare minne 177 00:08:19,050 --> 00:08:24,000 så att jag sedan kan hantera det 65. Gigabyte behov av minne, 178 00:08:24,000 --> 00:08:25,650 göra några beräkningar på det. 179 00:08:25,650 --> 00:08:28,580 Sen när jag är klar att göra det, Jag ska bara flytta den till disk, 180 00:08:28,580 --> 00:08:35,030 flytta den andra RAM jag satte tillfälligt på disk tillbaka in i själva maskinvaran 181 00:08:35,030 --> 00:08:37,280 så att jag är typ av multitasking. 182 00:08:37,280 --> 00:08:41,190 >> Så jag slags sätta saker tillfälligt i detta långsammare utrymme 183 00:08:41,190 --> 00:08:44,159 så jag skapa en illusion att hantera alla. 184 00:08:44,159 --> 00:08:45,290 Men det finns en avmattning. 185 00:08:45,290 --> 00:08:45,790 Varför? 186 00:08:45,790 --> 00:08:49,380 Tja, insidan av dessa hårt skivor nuförtiden är vad? 187 00:08:49,380 --> 00:08:52,030 Snarare vad som gör en hård driva olika från RAM 188 00:08:52,030 --> 00:08:53,495 så gott du vet nu? 189 00:08:53,495 --> 00:08:56,750 >> PUBLIK: [OHÖRBART] 190 00:08:56,750 --> 00:08:59,540 191 00:08:59,540 --> 00:09:01,445 >> DAVID MALAN: OK, sant. 192 00:09:01,445 --> 00:09:02,320 PUBLIK: [OHÖRBART] 193 00:09:02,320 --> 00:09:05,440 194 00:09:05,440 --> 00:09:06,750 >> DAVID MALAN: Så mycket riktigt. 195 00:09:06,750 --> 00:09:13,709 Och det är en bieffekt eller funktion av det faktum att RAM är verkligen snabbare. 196 00:09:13,709 --> 00:09:15,750 Och därför du vill använda den för nuvarande användning. 197 00:09:15,750 --> 00:09:17,290 Och en skiva är långsammare. 198 00:09:17,290 --> 00:09:19,630 Men det är permanent eller beständigt. 199 00:09:19,630 --> 00:09:21,480 Så du använder det för långtidsförvaring. 200 00:09:21,480 --> 00:09:25,160 Men när det gäller genomförande, om jag ser upp 201 00:09:25,160 --> 00:09:29,297 vad som kallas en DIMM, Dual Inline Memory Modul, det är vad en del av RAM 202 00:09:29,297 --> 00:09:30,380 kan normalt ser ut. 203 00:09:30,380 --> 00:09:35,050 >> Så inne i vår Mac-- som är en bugg. 204 00:09:35,050 --> 00:09:41,080 Inuti våra Mac och PC, vår stationära datorer skulle ha pinnar av minne, 205 00:09:41,080 --> 00:09:43,220 som du skulle kalla dem, eller DIMM eller SIMM tillbaka 206 00:09:43,220 --> 00:09:44,970 i dag, minne som ser ut så här. 207 00:09:44,970 --> 00:09:47,900 Våra bärbara datorer har antagligen saker som är en tredjedel av storleken eller hälften så stor. 208 00:09:47,900 --> 00:09:50,066 De är lite mindre, men samma idea-- lilla 209 00:09:50,066 --> 00:09:52,110 bitar av grön kisel wafer eller plast som 210 00:09:52,110 --> 00:09:56,237 har små svarta marker på dem med massor trådar som förbinder allt. 211 00:09:56,237 --> 00:09:58,820 Du kanske har en massa dessa insidan av din dator. 212 00:09:58,820 --> 00:10:00,903 Men takeaway här är det är helt elektronisk. 213 00:10:00,903 --> 00:10:03,130 Det finns bara elektroner flyter på den här enheten. 214 00:10:03,130 --> 00:10:08,170 Däremot, om vi tittar på insidan av en hårddisk 215 00:10:08,170 --> 00:10:10,760 och dra upp en bild Här skulle man istället 216 00:10:10,760 --> 00:10:16,600 se ut ungefär så här, som har el 217 00:10:16,600 --> 00:10:17,950 gå igenom det i slutändan. 218 00:10:17,950 --> 00:10:20,265 Men vad också hoppar ut på dig om det här? 219 00:10:20,265 --> 00:10:21,140 PUBLIK: [OHÖRBART] 220 00:10:21,140 --> 00:10:22,710 DAVID MALAN: Ja, det finns tydligen rörliga delar. 221 00:10:22,710 --> 00:10:25,210 Det är ungefär som en gammal rekord spelare eller grammofonspelare. 222 00:10:25,210 --> 00:10:26,200 Och det är ganska mycket är. 223 00:10:26,200 --> 00:10:28,950 Det är lite snyggare än that-- medan en fonograf spelare används 224 00:10:28,950 --> 00:10:33,150 spår i posten, detta faktiskt använder små små magnetiska partiklar 225 00:10:33,150 --> 00:10:34,550 att vi kan inte riktigt se. 226 00:10:34,550 --> 00:10:38,520 Men om en liten magnetisk partikel ser ut så här, är det betraktas som en 1. 227 00:10:38,520 --> 00:10:41,230 Och om det ser ut så här, nord-syd i stället för syd-nord, 228 00:10:41,230 --> 00:10:42,252 kan det vara en 0. 229 00:10:42,252 --> 00:10:45,460 Och vi får se i morgon hur vi kan bygga från det till mer intressanta saker. 230 00:10:45,460 --> 00:10:47,590 >> Men något som är fick fysiskt flytta 231 00:10:47,590 --> 00:10:51,010 säkerligen kommer att gå långsammare än ljusets hastighet, 232 00:10:51,010 --> 00:10:53,250 som i teorin är det en elektron kan flyta på, 233 00:10:53,250 --> 00:10:54,620 men realistiskt inte riktigt. 234 00:10:54,620 --> 00:10:56,900 Så mekanisk devices-- mycket långsammare. 235 00:10:56,900 --> 00:10:58,320 Men de är billigare. 236 00:10:58,320 --> 00:11:00,944 Och du kan passa så mycket mer data inne i dem. 237 00:11:00,944 --> 00:11:03,110 Så det faktum att det finns i världen något 238 00:11:03,110 --> 00:11:06,840 kallas virtuellt minne, med hjälp av en hårddisk som denna 239 00:11:06,840 --> 00:11:10,160 som om det vore RAM transparent för användaren, 240 00:11:10,160 --> 00:11:15,320 genom att helt enkelt flytta data från RAM till hårddisken, 241 00:11:15,320 --> 00:11:18,714 sedan flytta tillbaka när du behöver det igen, skapar avmattningen. 242 00:11:18,714 --> 00:11:21,380 Eftersom du bokstavligen måste kopiera den från en plats till en annan. 243 00:11:21,380 --> 00:11:25,100 Och det du kopierar den till och från är faktiskt långsammare än RAM 244 00:11:25,100 --> 00:11:26,150 där du vill att det ska vara. 245 00:11:26,150 --> 00:11:29,030 >> Den alternativa lösningen här-- om du inte gillar att sakta ner, 246 00:11:29,030 --> 00:11:32,014 och virtuella minnet är sortera av att overtaxed, 247 00:11:32,014 --> 00:11:33,680 vad är en annan lösning på detta problem? 248 00:11:33,680 --> 00:11:35,260 >> PUBLIK: [OHÖRBART] 249 00:11:35,260 --> 00:11:37,260 DAVID MALAN: Tja, öka den virtuella minnet 250 00:11:37,260 --> 00:11:39,135 skulle låta oss göra detta på en ännu större skala. 251 00:11:39,135 --> 00:11:43,540 Vi kunde hantera 66 gigabyte värda minnes behov, eller 67 gigabyte. 252 00:11:43,540 --> 00:11:45,830 Men antar att jag inte gillar denna avmattning, i själva verket 253 00:11:45,830 --> 00:11:49,380 Jag vill stänga av virtuella minne om det ens är möjligt, 254 00:11:49,380 --> 00:11:52,350 vad skulle jag kasta på detta problem att lösa det, 255 00:11:52,350 --> 00:11:56,900 där jag vill hantera fler användare och flera minneskrav 256 00:11:56,900 --> 00:11:59,100 än jag har fysiskt just nu? 257 00:11:59,100 --> 00:12:02,600 >> PUBLIK: [OHÖRBART] 258 00:12:02,600 --> 00:12:04,800 259 00:12:04,800 --> 00:12:06,140 >> DAVID MALAN: Tyvärr ingen. 260 00:12:06,140 --> 00:12:09,850 Så CPU och kärnorna de är i är en ändlig resurs. 261 00:12:09,850 --> 00:12:13,280 Och det finns ingen analog i detta sammanhang. 262 00:12:13,280 --> 00:12:14,990 Bra fråga, men. 263 00:12:14,990 --> 00:12:19,270 Så bara för att vara tydlig, även om insidan av denna dator är, 264 00:12:19,270 --> 00:12:24,510 låt oss säga, en pinne av RAM som ser som this-- och så vi kallar detta RAM. 265 00:12:24,510 --> 00:12:27,070 Och här är hårddisken. 266 00:12:27,070 --> 00:12:30,130 Och jag ska bara dra denna bildmässigt som en liten cirkel. 267 00:12:30,130 --> 00:12:33,740 Det finns 0 s och 1 s i båda these-- data vi generalisera det som. 268 00:12:33,740 --> 00:12:38,030 >> Och i huvudsak, om en användare är köra ett program som, 269 00:12:38,030 --> 00:12:46,070 låt oss säga, en webbplats som kräver denna mycket RAM per användare, vad jag föreslår, 270 00:12:46,070 --> 00:12:48,380 med hjälp av denna sak kallas virtuellt minne, 271 00:12:48,380 --> 00:12:53,990 är bara tillfälligt flytta att över här så att jag nu 272 00:12:53,990 --> 00:12:57,810 kan flytta någon annans minne krav borta. 273 00:12:57,810 --> 00:13:00,420 Och sedan när det är gjort, Jag kan kopiera tillbaka över 274 00:13:00,420 --> 00:13:04,550 och detta går här, varigenom vad jag ville där någon annanstans 275 00:13:04,550 --> 00:13:05,050 sammanlagt. 276 00:13:05,050 --> 00:13:07,820 >> Så det finns bara en massa switcheroo är takeaway här. 277 00:13:07,820 --> 00:13:12,380 Så om du inte gillar det, och du inte vill sätta något på hårddisken, 278 00:13:12,380 --> 00:13:16,440 vad slags uppenbara näringsidkare lösning 279 00:13:16,440 --> 00:13:19,684 på problemet, eller ingenjörens lösning, för den delen, också? 280 00:13:19,684 --> 00:13:21,950 >> PUBLIK: [OHÖRBART] 281 00:13:21,950 --> 00:13:24,750 >> DAVID MALAN: Ja, jag menar bokstavligen kasta pengar på problemet. 282 00:13:24,750 --> 00:13:27,541 Och faktiskt, är detta den perfekta segue till några av den högre nivån 283 00:13:27,541 --> 00:13:28,870 diskussioner om cloud computing. 284 00:13:28,870 --> 00:13:31,390 Eftersom mycket av det motiveras av ekonomiska beslut, 285 00:13:31,390 --> 00:13:33,040 inte ens nödvändigtvis teknisk. 286 00:13:33,040 --> 00:13:37,830 Om 64 gig RAM är för lite, ja, varför inte få 128 gigabyte RAM? 287 00:13:37,830 --> 00:13:40,440 Varför inte få 256 gigabyte RAM? 288 00:13:40,440 --> 00:13:41,732 Tja, varför inte? 289 00:13:41,732 --> 00:13:42,608 >> PUBLIK: [OHÖRBART] 290 00:13:42,608 --> 00:13:44,482 DAVID MALAN: Tja, det kostar mer pengar, visst. 291 00:13:44,482 --> 00:13:46,970 Och om du redan har reserv hårddiskutrymme, effektivt, 292 00:13:46,970 --> 00:13:51,407 eller ekvivalent, är hårddiskutrymme så mycket billigare du kan lika gärna använda den. 293 00:13:51,407 --> 00:13:54,490 Så återigen, det är det här avvägning som vi såg även tidigare i morse, 294 00:13:54,490 --> 00:13:56,656 där det är verkligen inte nödvändigtvis en rätt svar, 295 00:13:56,656 --> 00:14:01,360 Det finns bara en bättre eller sämre svar baserat på vad du faktiskt bryr sig om. 296 00:14:01,360 --> 00:14:04,500 >> Så det finns även tekniska realiteter. 297 00:14:04,500 --> 00:14:06,870 Jag kan inte köpa en dator, såvitt jag vet, 298 00:14:06,870 --> 00:14:09,490 med en biljon gigabyte RAM just nu. 299 00:14:09,490 --> 00:14:11,540 Det bara fysiskt inte existerar. 300 00:14:11,540 --> 00:14:13,240 Så finns det vissa övre gräns. 301 00:14:13,240 --> 00:14:15,990 Men om du någonsin även shoppat för en konsument Mac eller PC, 302 00:14:15,990 --> 00:14:20,180 Även i allmänhet finns det denna kurva av funktioner 303 00:14:20,180 --> 00:14:23,410 där det kan vara en bra, en bättre, och en bästa dator. 304 00:14:23,410 --> 00:14:25,730 >> Och marginal på din dollar köper 305 00:14:25,730 --> 00:14:30,227 den bästa datorn kontra bättre dator 306 00:14:30,227 --> 00:14:32,560 kanske inte är nästan lika hög som tillbringat lite mer pengar 307 00:14:32,560 --> 00:14:35,599 och få bättre dator över bra dator. 308 00:14:35,599 --> 00:14:38,390 Med andra ord, du betalar en premie för att få toppen av raden. 309 00:14:38,390 --> 00:14:40,790 >> Och vad vi ser i diskussion av cloud computing 310 00:14:40,790 --> 00:14:44,940 är att det är mycket vanligt dessa dagar, och vilka företag som Google 311 00:14:44,940 --> 00:14:50,560 tidigt populärt, inte betalar för och bygga riktigt snygga, dyra 312 00:14:50,560 --> 00:14:53,540 trimmad upp datorer med massor av allt, 313 00:14:53,540 --> 00:15:00,140 utan snarare att köpa eller bygga ganska blygsamma datorer men massor av dem, 314 00:15:00,140 --> 00:15:03,280 och använda något som är generellt kallad horisontell skalning istället 315 00:15:03,280 --> 00:15:04,320 av vertikal skalning. 316 00:15:04,320 --> 00:15:08,115 >> Så vertikal skalning skulle innebära få mer RAM, mer disk, mer av allt, 317 00:15:08,115 --> 00:15:10,187 och typ av investeringar vertikalt i maskinvaran 318 00:15:10,187 --> 00:15:12,520 så att du bara få bästa av de bästa av de bästa, 319 00:15:12,520 --> 00:15:13,650 men du betalar för det. 320 00:15:13,650 --> 00:15:17,580 Horisontell skalning slags få nedre nivån saker, bra modell, 321 00:15:17,580 --> 00:15:19,922 eller till och med värre modell, men få massor av dem. 322 00:15:19,922 --> 00:15:22,630 Men så fort du får massor av them-- exempelvis, i detta fall, 323 00:15:22,630 --> 00:15:27,330 webbservrar, om denna server eller ett webbhotell är otillräcklig, 324 00:15:27,330 --> 00:15:32,310 sedan bara intuitivt, det lösning på detta problem med belastning 325 00:15:32,310 --> 00:15:36,460 eller överbelastning på dina servrar är antingen få en större server 326 00:15:36,460 --> 00:15:40,770 eller, vad jag föreslår här istället av skalning vertikalt så att säga, 327 00:15:40,770 --> 00:15:41,920 skulle vara, vet du vad? 328 00:15:41,920 --> 00:15:43,580 Bara få en andra av dessa. 329 00:15:43,580 --> 00:15:46,560 Eller kanske till och med få en tredje. 330 00:15:46,560 --> 00:15:48,900 Men nu har vi skapat ett tekniskt problem 331 00:15:48,900 --> 00:15:51,920 som på grund av denna verksamhet eller finansiella beslut. 332 00:15:51,920 --> 00:15:54,312 Vad är den tekniska problem nu? 333 00:15:54,312 --> 00:15:56,040 >> PUBLIK: [OHÖRBART] 334 00:15:56,040 --> 00:15:59,740 >> DAVID MALAN: Ja, hur gör du ansluter dem och-- ledsen? 335 00:15:59,740 --> 00:16:00,651 >> PUBLIK: [OHÖRBART] 336 00:16:00,651 --> 00:16:02,400 DAVID MALAN: Höger, eftersom jag fortfarande have-- 337 00:16:02,400 --> 00:16:07,280 om jag återinföra mig i den här bilden, om detta är min laptop någonstans 338 00:16:07,280 --> 00:16:12,400 på Internet, som nu är mellan mig och företaget vi pratar om, 339 00:16:12,400 --> 00:16:17,960 Nu måste jag räkna ut, till vilken server skickar jag denna användare? 340 00:16:17,960 --> 00:16:25,090 Och om det finns andra användare, som detta och sedan detta en hit, 341 00:16:25,090 --> 00:16:28,850 och kanske detta är användare A, detta är användare B, är den här användaren C, 342 00:16:28,850 --> 00:16:34,720 och detta är servern en, två, och 3-- nu en intuitiv svar kan här vara bara, 343 00:16:34,720 --> 00:16:37,460 Vi skickar användare A till en och B till 2 och C till 3. 344 00:16:37,460 --> 00:16:39,900 Och vi kan hantera 3 gånger så många användare. 345 00:16:39,900 --> 00:16:41,360 >> Men det är en förenkling. 346 00:16:41,360 --> 00:16:44,480 Hur bestämmer ni vem att skicka där? 347 00:16:44,480 --> 00:16:46,400 Så låt oss försöka att resonera igenom det här. 348 00:16:46,400 --> 00:16:50,110 Så antar att datorer A, B, och C är kunder, 349 00:16:50,110 --> 00:16:53,972 och servrar 1, 2 och 3 är horisontellt skalas servrar. 350 00:16:53,972 --> 00:16:55,180 Så de är slags identiska. 351 00:16:55,180 --> 00:16:57,200 De är alla som kör samma mjukvara. 352 00:16:57,200 --> 00:16:59,770 Och de kan alla göra samma sak. 353 00:16:59,770 --> 00:17:01,520 Men anledningen till att vi har tre av dem är så 354 00:17:01,520 --> 00:17:04,710 att vi kan hantera tre gånger så många människor på en gång. 355 00:17:04,710 --> 00:17:07,960 >> Så vi vet från vår diskussion före lunch 356 00:17:07,960 --> 00:17:11,460 att det finns hårdvara mellan bärbara datorer och servrar. 357 00:17:11,460 --> 00:17:14,920 Men vi ska bara sorts generalisera som nu som Internet eller molnet. 358 00:17:14,920 --> 00:17:18,707 Men vi vet att i mitt hem, Det finns förmodligen en router. 359 00:17:18,707 --> 00:17:21,290 Nära servrar, det finns förmodligen en router, DNS-server, DHCP. 360 00:17:21,290 --> 00:17:24,780 Det kan vara vad som helst vi vill ha i den här historien. 361 00:17:24,780 --> 00:17:33,360 >> Så hur gör vi börjar besluta när användare A går till something.com, 362 00:17:33,360 --> 00:17:36,630 vilken server för att dirigera användaren? 363 00:17:36,630 --> 00:17:39,409 Hur kan vi börja berätta den här historien? 364 00:17:39,409 --> 00:17:40,450 PUBLIK: Lastbalansering? 365 00:17:40,450 --> 00:17:41,120 DAVID MALAN: lastbalansering. 366 00:17:41,120 --> 00:17:42,502 Vad menar du med det? 367 00:17:42,502 --> 00:17:44,660 >> PUBLIK: Åter där den mest användningen är 368 00:17:44,660 --> 00:17:47,472 och som en har de de flesta tillgängliga resurser. 369 00:17:47,472 --> 00:17:49,930 DAVID MALAN: OK, så låt mig införa en ny typ av hårdvara 370 00:17:49,930 --> 00:17:53,627 att vi ännu inte har diskuterat, som är just det, en lastbalanserare. 371 00:17:53,627 --> 00:17:54,960 Även detta kan bara vara en server. 372 00:17:54,960 --> 00:17:58,130 Det kan se ut exakt som den vi såg för en stund sedan. 373 00:17:58,130 --> 00:18:01,000 En lastbalanserare egentligen är bara en mjukvara 374 00:18:01,000 --> 00:18:02,660 som du kör på en del av maskinvaran. 375 00:18:02,660 --> 00:18:07,310 >> Eller så kan du betala en leverantör, som Citrix eller andra, Cisco eller andra. 376 00:18:07,310 --> 00:18:10,465 Du kan betala för sin egen hårdvara, vilket är en maskinvara för belastningsutjämning. 377 00:18:10,465 --> 00:18:12,840 Men det betyder bara att de förinstallerade lastbalansering 378 00:18:12,840 --> 00:18:15,580 programvara på deras hårdvara och sålde den till er alla tillsammans. 379 00:18:15,580 --> 00:18:18,670 Så vi ska bara göra det som en rektangel för våra ändamål. 380 00:18:18,670 --> 00:18:22,040 >> Hur nu implementerar jag en lastbalanserare? 381 00:18:22,040 --> 00:18:28,150 Med andra ord, när användaren A vill besöka min hemsida, deras begäran på något sätt 382 00:18:28,150 --> 00:18:31,070 eller annan, troligen med hjälp av de routrar vi talat om tidigare, 383 00:18:31,070 --> 00:18:33,750 kommer att så småningom nå denna lastbalanserare, som sedan 384 00:18:33,750 --> 00:18:36,210 måste göra en routing-liknande beslut. 385 00:18:36,210 --> 00:18:38,320 Men det är routing för sort av ett högre syfte nu. 386 00:18:38,320 --> 00:18:40,361 Det handlar inte bara om att få från punkt A till punkt 387 00:18:40,361 --> 00:18:44,730 B. Det handlar om att avgöra vilken punkt B är den bästa bland them-- 388 00:18:44,730 --> 00:18:46,660 1, 2 eller 3 i det här fallet. 389 00:18:46,660 --> 00:18:51,000 >> Så hur gör jag avgöra om att gå till en, till 2, till 3? 390 00:18:51,000 --> 00:18:55,180 Vad kan denna svarta låda, så att tala, vara att göra på insidan? 391 00:18:55,180 --> 00:18:57,880 Detta är för ett annat exempel i datavetenskap av abstraktion. 392 00:18:57,880 --> 00:19:02,410 Jag har bokstavligen dragit en lastbalanserare som en svart låda i svart bläck, inne 393 00:19:02,410 --> 00:19:05,300 varav en viss intressant logik, eller magi även, 394 00:19:05,300 --> 00:19:07,840 ur vilken måste komma en decision-- 1, 2, eller 3. 395 00:19:07,840 --> 00:19:12,220 Och ingången är bara A. 396 00:19:12,220 --> 00:19:13,442 >> PUBLIK: [OHÖRBART] 397 00:19:13,442 --> 00:19:14,400 DAVID MALAN: Jag är ledsen? 398 00:19:14,400 --> 00:19:14,770 PUBLIK: [OHÖRBART] 399 00:19:14,770 --> 00:19:18,310 DAVID MALAN: Okej, hur kan vi kategorisera typer av transaktioner 400 00:19:18,310 --> 00:19:19,095 här? 401 00:19:19,095 --> 00:19:23,772 >> PUBLIK: Visning av en webbsida kontra att fråga en databas. 402 00:19:23,772 --> 00:19:24,980 DAVID MALAN: OK, det är bra. 403 00:19:24,980 --> 00:19:29,210 Så kanske denna användare A vill visa en webbsida. 404 00:19:29,210 --> 00:19:32,954 Och kanske är det även statiskt innehåll, något som förändrar sällan, om någonsin. 405 00:19:32,954 --> 00:19:34,870 Och det verkar som en ganska enkel operation. 406 00:19:34,870 --> 00:19:38,260 Så kanske vi ska bara godtyckligt, men rimligen, säger, 407 00:19:38,260 --> 00:19:42,750 server en, är hans syfte i livet att bara tjäna upp statiskt innehåll, 408 00:19:42,750 --> 00:19:45,150 filer som sällan, om någonsin, förändring. 409 00:19:45,150 --> 00:19:46,870 Kanske är det bilder på sidan. 410 00:19:46,870 --> 00:19:50,180 Kanske är det text på sidan eller annan sådan typ av ointressanta saker, 411 00:19:50,180 --> 00:19:52,460 inget transaktions, ingenting dynamisk. 412 00:19:52,460 --> 00:19:57,000 >> Om däremot användaren A är att kontrollera av hans eller hennes kundvagn som 413 00:19:57,000 --> 00:20:00,972 kräver en databas, att någonstans lagra och kom ihåg att transaktionen väl 414 00:20:00,972 --> 00:20:02,680 kanske denna begäran bör gå till servern 2. 415 00:20:02,680 --> 00:20:03,610 Så det är bra. 416 00:20:03,610 --> 00:20:07,010 Så vi kan ladda balans baserad på typen av förfrågningar. 417 00:20:07,010 --> 00:20:08,278 Hur annars kan vi göra detta? 418 00:20:08,278 --> 00:20:13,690 419 00:20:13,690 --> 00:20:14,686 Vilken annan-- 420 00:20:14,686 --> 00:20:17,382 >> AUDIENCE: Baserat på serverns utnyttjandet och kapacitet. 421 00:20:17,382 --> 00:20:18,340 DAVID MALAN: Höger, OK. 422 00:20:18,340 --> 00:20:19,950 Så du nämnde att tidigare Kareem. 423 00:20:19,950 --> 00:20:26,850 Så vad händer om vi ger lite input på [OHÖRBART] bland servrar 1, 2, 424 00:20:26,850 --> 00:20:32,070 och 3 till detta belastningsutjämnaren så att de är bara ständigt informera 425 00:20:32,070 --> 00:20:36,420 lastbalanserare vad deras status är? 426 00:20:36,420 --> 00:20:39,842 Liksom, hej, lastbalanserare, Jag är på 50% utnyttjande. 427 00:20:39,842 --> 00:20:41,550 Med andra ord, har jag hälften så många användare 428 00:20:41,550 --> 00:20:43,520 jag kan faktiskt hantera just nu. 429 00:20:43,520 --> 00:20:45,480 Hej, lastbalanserare, jag vid 100% utnyttjande. 430 00:20:45,480 --> 00:20:47,929 Hej, lastbalanserare, 0% utnyttjande. 431 00:20:47,929 --> 00:20:49,970 Lastbalanserare, om det är utformade på ett sätt som 432 00:20:49,970 --> 00:20:53,990 kan ta i dessa kommentarer som indata, kan det då 433 00:20:53,990 --> 00:20:57,420 besluta ooh, är nummer två på 100%. 434 00:20:57,420 --> 00:21:01,440 Låt mig skicka några framtida ansökningar till honom andra än användarna redan är ansluten. 435 00:21:01,440 --> 00:21:02,360 Den här killen är på 0%. 436 00:21:02,360 --> 00:21:03,940 Låt oss skicka en massa trafik till honom. 437 00:21:03,940 --> 00:21:05,480 Den här killen sa att han är vid 50%. 438 00:21:05,480 --> 00:21:08,080 Låt oss skicka några trafik till honom. 439 00:21:08,080 --> 00:21:12,012 >> Så det skulle vara en ingrediens, som vi kunde ta belastningen beaktas. 440 00:21:12,012 --> 00:21:13,470 Och det kommer att förändras över tiden. 441 00:21:13,470 --> 00:21:14,678 Så besluten kommer att förändras. 442 00:21:14,678 --> 00:21:17,350 Så det är en riktigt bra teknik, en som vanligen används. 443 00:21:17,350 --> 00:21:18,410 Vad kan vi göra? 444 00:21:18,410 --> 00:21:20,380 Och låt oss faktiskt bara sammanfatta här. 445 00:21:20,380 --> 00:21:29,510 Så beslut här kan vara efter typ av trafik, jag kallar det. 446 00:21:29,510 --> 00:21:32,220 Den kan vara baserad på belastning. 447 00:21:32,220 --> 00:21:34,692 Låt oss se om vi kan inte komma med några andra. 448 00:21:34,692 --> 00:21:35,934 >> PUBLIK: [OHÖRBART] 449 00:21:35,934 --> 00:21:36,850 DAVID MALAN: Location. 450 00:21:36,850 --> 00:21:37,724 Så det är en bra en. 451 00:21:37,724 --> 00:21:40,880 Så location-- hur kan du utnyttja denna information? 452 00:21:40,880 --> 00:21:44,317 >> PUBLIK: [OHÖRBART] 453 00:21:44,317 --> 00:21:54,140 454 00:21:54,140 --> 00:21:57,040 >> DAVID MALAN: Åh, det är bra. 455 00:21:57,040 --> 00:21:59,450 Och om hur många millisekunder skulle det minska med 456 00:21:59,450 --> 00:22:02,466 baserat på vad vi såg detta morgon, skulle du säga? 457 00:22:02,466 --> 00:22:04,330 >> PUBLIK: [OHÖRBART] 458 00:22:04,330 --> 00:22:06,550 >> DAVID MALAN: Tja, baserat på de spår rutter 459 00:22:06,550 --> 00:22:09,070 vi såg tidigare, vilket är bara ett grovt mått på något, 460 00:22:09,070 --> 00:22:11,800 åtminstone hur lång tid det tar för data att ta sig från A till B 461 00:22:11,800 --> 00:22:16,140 känns som något lokal var, vad, som 74 millisekunder, ge eller ta? 462 00:22:16,140 --> 00:22:19,200 Och sedan något 100 plus, 200 plus var förmodligen utomlands. 463 00:22:19,200 --> 00:22:22,110 Och så bygger på att ensam, Det verkar rimligt att anta 464 00:22:22,110 --> 00:22:25,310 att för en användare i USA att få tillgång till en europeisk server 465 00:22:25,310 --> 00:22:28,900 kan ta två eller tre gånger så länge, till och med i millisekunder, 466 00:22:28,900 --> 00:22:31,280 än det skulle ta om det server var belägna här 467 00:22:31,280 --> 00:22:33,370 geografiskt, eller vice versa. 468 00:22:33,370 --> 00:22:35,120 Så när jag föreslog tidigare att särskilt 469 00:22:35,120 --> 00:22:37,880 när du korsar att 200 millisekunder tröskel, ge eller ta, 470 00:22:37,880 --> 00:22:39,210 människor börjar att märka. 471 00:22:39,210 --> 00:22:42,960 Och trace route är bara förutsatt rå, ointressanta data. 472 00:22:42,960 --> 00:22:46,570 När du har en webbplats, måste du få användaren att hämta bilder eller film 473 00:22:46,570 --> 00:22:49,150 filer, massor av text, efterföljande förfrågningar. 474 00:22:49,150 --> 00:22:53,116 Vi såg när vi besökte, vad var det, Facebook eller Amazon tidigare 475 00:22:53,116 --> 00:22:55,490 Det finns en hel del saker som måste laddas ned. 476 00:22:55,490 --> 00:22:56,573 Så det kommer att lägga upp. 477 00:22:56,573 --> 00:23:00,259 Så multi-sekunder kanske inte vara orimligt. 478 00:23:00,259 --> 00:23:01,800 Så bra, är geografi en ingrediens. 479 00:23:01,800 --> 00:23:05,920 Så i själva verket företag som Akamai, om du har hört talas om dem, 480 00:23:05,920 --> 00:23:10,000 eller andra har länge tagit geografi i beaktande. 481 00:23:10,000 --> 00:23:14,170 Och det visar sig att av naturen av en IP-adress, min laptop IP-adress, 482 00:23:14,170 --> 00:23:18,277 du kan sluta med en viss sannolikhet, där du befinner dig i världen. 483 00:23:18,277 --> 00:23:20,110 Och i själva verket finns det tjänster tredje part dig 484 00:23:20,110 --> 00:23:24,480 kan betala som underhåller databaser IP-adresser och geografiska 485 00:23:24,480 --> 00:23:28,660 som med hög tillförlitlighet kommer att vara sant när bad, var i världen 486 00:23:28,660 --> 00:23:30,090 är denna IP-adress? 487 00:23:30,090 --> 00:23:32,130 >> Och så i själva verket vad andra företag använder detta? 488 00:23:32,130 --> 00:23:35,900 Om du har Hulu eller Netflix, om du någonsin varit reser utomlands, 489 00:23:35,900 --> 00:23:38,640 och du försöker titta på något på Hulu, och du är inte i USA, 490 00:23:38,640 --> 00:23:41,280 du kan se ett meddelande säger, inte i USA. 491 00:23:41,280 --> 00:23:43,208 Tyvärr, du kan inte se detta innehåll. 492 00:23:43,208 --> 00:23:44,420 >> PUBLIK: [OHÖRBART] 493 00:23:44,420 --> 00:23:46,020 >> DAVID MALAN: Åh, egentligen? 494 00:23:46,020 --> 00:23:48,480 Men ja, så faktiskt det är en perfekt applikation 495 00:23:48,480 --> 00:23:51,060 något mycket tekniskt till en faktisk problem. 496 00:23:51,060 --> 00:23:55,100 Om du skulle VPN från Europa eller Asien eller någonstans 497 00:23:55,100 --> 00:23:57,950 i världen för att företagets huvudkontor i New York 498 00:23:57,950 --> 00:24:00,670 eller var du är, du är kommer att ge sken 499 00:24:00,670 --> 00:24:03,580 utomstående webbplatser som du är faktiskt i New York, 500 00:24:03,580 --> 00:24:05,660 även om du är fysiskt ganska långt borta. 501 00:24:05,660 --> 00:24:08,057 >> Nu är du användaren kommer att vet att du är uppenbarligen bort. 502 00:24:08,057 --> 00:24:11,140 Men du kommer också att känna det eftersom av dessa ytterligare millisekunder. 503 00:24:11,140 --> 00:24:14,510 Att ytterligare avstånd och kryptering som händer i VPN 504 00:24:14,510 --> 00:24:15,760 kommer att sakta ner saker. 505 00:24:15,760 --> 00:24:17,680 Så det kanske eller kanske inte vara en stor upplevelse. 506 00:24:17,680 --> 00:24:21,050 Men Hulu och Netflix kommer att se du som sitter någonstans i New York, 507 00:24:21,050 --> 00:24:23,817 som du har tydligt utläsa. 508 00:24:23,817 --> 00:24:25,150 Vad en perfekt lösning på detta. 509 00:24:25,150 --> 00:24:28,490 >> Okej, så geografi är ett beslut. 510 00:24:28,490 --> 00:24:32,290 Vad kan vi använda för att bestämma hur att dirigera trafik från A, B och C 511 00:24:32,290 --> 00:24:37,040 till 1, 2, och 3, återigen, att sätta ingenjörs hatt? 512 00:24:37,040 --> 00:24:38,850 Detta låter alla mycket komplicerat. 513 00:24:38,850 --> 00:24:41,490 Öh, jag vet inte ens var att börja genomföra dem. 514 00:24:41,490 --> 00:24:44,450 Ge mig något som är enklare. 515 00:24:44,450 --> 00:24:48,160 Vad är det enklaste sättet att fatta detta beslut? 516 00:24:48,160 --> 00:24:49,840 >> PUBLIK: Är servern finns? 517 00:24:49,840 --> 00:24:51,650 >> DAVID MALAN: Är servern finns? 518 00:24:51,650 --> 00:24:53,970 Så inte illa. 519 00:24:53,970 --> 00:24:54,470 Det är bra. 520 00:24:54,470 --> 00:24:56,260 Det är en slags nuancing belastning. 521 00:24:56,260 --> 00:24:58,070 Så låt oss hålla det i last kategori. 522 00:24:58,070 --> 00:25:00,010 Om du är tillgänglig, jag är bara kommer att sända data där. 523 00:25:00,010 --> 00:25:01,343 Men som skulle kunna slå tillbaka snabbt. 524 00:25:01,343 --> 00:25:05,720 För om jag använder denna logik, och om jag alltid fråga en, är du, är du på, 525 00:25:05,720 --> 00:25:08,970 är du på, om svaret är alltid ja, Jag kommer att skicka 100% av trafiken 526 00:25:08,970 --> 00:25:11,060 till honom, 0% för alla andra. 527 00:25:11,060 --> 00:25:14,430 Och någon gång kommer vi att slå att nedgången eller webbplats tillgänglig. 528 00:25:14,430 --> 00:25:17,630 Så vad är något bättre än det men ändå ganska enkel 529 00:25:17,630 --> 00:25:22,412 och inte alls lika smart som att ta alla dessa ytterligare uppgifter i beaktande? 530 00:25:22,412 --> 00:25:23,992 >> PUBLIK: Kostnad per server. 531 00:25:23,992 --> 00:25:25,200 DAVID MALAN: Kostnad per server. 532 00:25:25,200 --> 00:25:28,010 OK, så låt mig kasta att i lastkategori, för. 533 00:25:28,010 --> 00:25:30,790 För vad du hittar i ett företag, too-- att om du 534 00:25:30,790 --> 00:25:32,790 uppgradera dina servrar över tiden eller köpa mer, 535 00:25:32,790 --> 00:25:36,242 du kanske inte kunna få exakt samma versioner av hårdvara. 536 00:25:36,242 --> 00:25:37,450 Eftersom det faller föråldrad. 537 00:25:37,450 --> 00:25:38,491 Du kan inte köpa det längre. 538 00:25:38,491 --> 00:25:39,360 Priserna förändras. 539 00:25:39,360 --> 00:25:42,500 >> Så du kan ha skilda servrar i klustret, så att säga. 540 00:25:42,500 --> 00:25:43,890 Det är helt bra. 541 00:25:43,890 --> 00:25:47,100 Men nästa års hårdvara kan vara dubbelt så snabbt, 542 00:25:47,100 --> 00:25:49,390 dubbelt så kapabla som årets. 543 00:25:49,390 --> 00:25:51,500 Så vi kan kasta det in i last kategori. 544 00:25:51,500 --> 00:25:54,260 Denna återkopplingsslinga mellan en, 2, och 3 i lastbalanser 545 00:25:54,260 --> 00:25:57,650 kan säkert säga det, hej, jag är på 50% kapacitet. 546 00:25:57,650 --> 00:26:00,100 Men förresten, jag också har dubbelt så många kärnor. 547 00:26:00,100 --> 00:26:02,319 Använda den informationen. 548 00:26:02,319 --> 00:26:05,110 Även simpler-- och detta kommer att vara ett tema i datavetenskap. 549 00:26:05,110 --> 00:26:08,990 När du är osäker, eller när du vill ha en enkel lösning som i allmänhet fungerar bra 550 00:26:08,990 --> 00:26:12,730 över tid, inte välja samma server hela tiden, men choose-- 551 00:26:12,730 --> 00:26:14,039 >> PUBLIK: Ett slumpmässigt ett? 552 00:26:14,039 --> 00:26:15,330 DAVID MALAN: --a slumpmässig server. 553 00:26:15,330 --> 00:26:16,780 Ja, välj en eller det andra. 554 00:26:16,780 --> 00:26:21,160 Så slumpmässighet är faktiskt detta mycket kraftfull ingrediens 555 00:26:21,160 --> 00:26:23,170 i datavetenskap, och inom teknik mer 556 00:26:23,170 --> 00:26:27,160 i allmänhet, särskilt när du vill att göra ett enkelt beslut snabbt 557 00:26:27,160 --> 00:26:30,480 utan att komplicera det med alla av dessa mycket smart, men också 558 00:26:30,480 --> 00:26:34,330 mycket smarta lösningar som kräver desto mer teknik, allt 559 00:26:34,330 --> 00:26:36,220 den mer eftertanke, när egentligen, varför inte jag 560 00:26:36,220 --> 00:26:39,200 bara typ av singla slant, eller en tresidig mynt i detta fall, 561 00:26:39,200 --> 00:26:41,690 och besluta om att gå en, två, tre? 562 00:26:41,690 --> 00:26:45,610 >> Det kan slå probabilistiskt, men likt oddsen 563 00:26:45,610 --> 00:26:48,860 av vända huvuden igen och igen och igen och igen 564 00:26:48,860 --> 00:26:53,870 och igen och igen är möjligt i reality-- super, super osannolik. 565 00:26:53,870 --> 00:26:58,170 Så över tiden, oddsen är bara skicka användare slumpmässigt 566 00:26:58,170 --> 00:27:00,660 till 1, 2, och 3 kommer att träna alldeles utmärkt. 567 00:27:00,660 --> 00:27:03,380 Och detta är en teknik allmänt känd som round robin. 568 00:27:03,380 --> 00:27:05,160 >> Eller faktiskt, det är inte round robin. 569 00:27:05,160 --> 00:27:06,980 Detta skulle vara slump strategi. 570 00:27:06,980 --> 00:27:09,250 Och om du vill bli ännu lite enklare än så, 571 00:27:09,250 --> 00:27:12,820 round robin skulle vara första personen går till en andra person 2, tredje person 572 00:27:12,820 --> 00:27:16,056 till 3, fjärde person en. 573 00:27:16,056 --> 00:27:17,430 Och däri ligger round robin. 574 00:27:17,430 --> 00:27:19,580 Du bara typ av gå runt i en cykel. 575 00:27:19,580 --> 00:27:21,300 >> Nu bör du vara smart om det. 576 00:27:21,300 --> 00:27:26,490 Du bör inte blint skickar användaren till server nummer ett om vad som är fallet? 577 00:27:26,490 --> 00:27:30,060 578 00:27:30,060 --> 00:27:32,870 Om det är på max kapacitet, eller det är bara inte längre reagerar. 579 00:27:32,870 --> 00:27:35,270 Så helst du vill ha typ av återkopplingsslingan. 580 00:27:35,270 --> 00:27:38,040 Annars du bara skicka alla av dina användare till en återvändsgränd. 581 00:27:38,040 --> 00:27:40,790 Men som kan tas med i beräkningen, för. 582 00:27:40,790 --> 00:27:46,520 >> Så inte i uppskatta värdet av bara slumpmässighet, vilket är ganska ofta 583 00:27:46,520 --> 00:27:48,970 en lösning på dessa typer av problem. 584 00:27:48,970 --> 00:27:51,580 Och vi ska skriva ner round robin. 585 00:27:51,580 --> 00:27:55,090 Så hur vissa företag genomför round robin eller slumpmässighet 586 00:27:55,090 --> 00:27:56,840 eller någon av dessa beslut? 587 00:27:56,840 --> 00:28:01,840 Väl tyvärr de göra saker som detta. 588 00:28:01,840 --> 00:28:03,660 Låt mig dra upp en annan snabb skärmdump. 589 00:28:03,660 --> 00:28:13,052 590 00:28:13,052 --> 00:28:14,470 >> Faktiskt, låt oss göra två. 591 00:28:14,470 --> 00:28:17,420 592 00:28:17,420 --> 00:28:21,370 Jag vet inte varför vi är få alla dessa rätter. 593 00:28:21,370 --> 00:28:22,280 Det är mycket märkligt. 594 00:28:22,280 --> 00:28:31,714 595 00:28:31,714 --> 00:28:33,630 Okej, vad jag verkligen vill ha är en skärmdump. 596 00:28:33,630 --> 00:28:36,990 597 00:28:36,990 --> 00:28:40,100 Det är konstigt. 598 00:28:40,100 --> 00:28:42,930 Okej, så jag kan förfalska detta. 599 00:28:42,930 --> 00:28:46,080 Jag vet inte hur mycket längre Jag vill hålla rullning. 600 00:28:46,080 --> 00:28:53,220 >> Så mycket vanligt, hittar du dig själv på en adress som www.2.acme.com, 601 00:28:53,220 --> 00:28:56,030 kanske www.3 eller 4 eller 5. 602 00:28:56,030 --> 00:28:57,424 Och hålla ett öga på detta. 603 00:28:57,424 --> 00:28:58,590 Du ser inte det så ofta. 604 00:28:58,590 --> 00:29:02,621 Men när du gör, typ av tenderar att vara större, äldre, stodgier företag 605 00:29:02,621 --> 00:29:05,370 som tekniskt inte riktigt verkar veta vad de gör. 606 00:29:05,370 --> 00:29:08,150 Och du ser detta på teknikföretag ibland, de äldre. 607 00:29:08,150 --> 00:29:09,270 >> Så vad gör de? 608 00:29:09,270 --> 00:29:11,890 Hur de genomföra lastbalansering, verkar det? 609 00:29:11,890 --> 00:29:15,986 Om du befinner dig som användar typning www.something.com, 610 00:29:15,986 --> 00:29:19,760 och plötsligt är du på www.2.something.com, 611 00:29:19,760 --> 00:29:21,866 vad har deras last balanserare förmodligen gjort? 612 00:29:21,866 --> 00:29:22,741 PUBLIK: [OHÖRBART] 613 00:29:22,741 --> 00:29:28,210 614 00:29:28,210 --> 00:29:31,079 >> DAVID MALAN: Ja, så lastbalanserare är förmodligen 615 00:29:31,079 --> 00:29:33,870 fattar ett beslut baserat på en av dessa besluts processes-- 616 00:29:33,870 --> 00:29:35,210 spelar egentligen ingen roll vilken. 617 00:29:35,210 --> 00:29:38,650 Men mycket som jag har dragit numren på bordet här, 618 00:29:38,650 --> 00:29:40,650 servrarna är inte bara kallas ett, två, och tre. 619 00:29:40,650 --> 00:29:43,870 De är förmodligen kallas www1, www2, www3. 620 00:29:43,870 --> 00:29:47,200 Och det visar sig att insidan av en HTTP-begäran är den här funktionen. 621 00:29:47,200 --> 00:29:48,950 Och jag kommer att simulera detta på följande sätt. 622 00:29:48,950 --> 00:29:53,230 >> Jag kommer att öppna upp samma Fliken Developer Network som tidigare bara 623 00:29:53,230 --> 00:29:55,560 så att vi kan se vad som händer på under huven. 624 00:29:55,560 --> 00:29:57,130 Jag kommer att rensa skärmen. 625 00:29:57,130 --> 00:30:03,420 Och jag kommer att gå till, låt oss säga, http://harvard.edu. 626 00:30:03,420 --> 00:30:06,560 Nu oavsett affärsmässiga skäl, Harvard 627 00:30:06,560 --> 00:30:08,930 har beslutat, liksom många, många andra webbplatser, 628 00:30:08,930 --> 00:30:12,712 att standardisera sin webbplats på www.harvard.edu 629 00:30:12,712 --> 00:30:14,420 både tekniskt och marknadsföringsskäl. 630 00:30:14,420 --> 00:30:16,326 Det är bara typ av i vogue att ha www. 631 00:30:16,326 --> 00:30:20,500 >> Så servern vid Harvard har att på något sätt omdirigera användaren, 632 00:30:20,500 --> 00:30:23,830 som jag fortsätter att säga, från en webbadress till en annan. 633 00:30:23,830 --> 00:30:24,670 Hur fungerar det? 634 00:30:24,670 --> 00:30:26,740 Nåväl, låt mig gå vidare och tryck på Retur. 635 00:30:26,740 --> 00:30:30,830 Och lägg märke till webbadressen verkligen snabbt ändrats till www.harvard.edu. 636 00:30:30,830 --> 00:30:35,560 Låt mig rulla tillbaka i detta historia och klicka på denna debug 637 00:30:35,560 --> 00:30:37,650 diagnosinformation, om man så vill. 638 00:30:37,650 --> 00:30:39,170 Låt mig titta på min begäran. 639 00:30:39,170 --> 00:30:41,020 >> Så här är begäran jag gjorde. 640 00:30:41,020 --> 00:30:44,870 Och märker att det är förenligt med den typ av begär jag gjort av Facebook innan. 641 00:30:44,870 --> 00:30:48,010 Men märker svaret. 642 00:30:48,010 --> 00:30:50,430 Vad är annorlunda i svaret här gången? 643 00:30:50,430 --> 00:30:51,890 >> PUBLIK: [OHÖRBART] 644 00:30:51,890 --> 00:30:54,290 >> DAVID MALAN: Ja, så det är inte en 200 OK. 645 00:30:54,290 --> 00:30:56,130 Det är inte en 404 Not Found. 646 00:30:56,130 --> 00:31:00,150 Det är en 301 Flyttad permanent, vilket är typ av ett roligt sätt att säga, 647 00:31:00,150 --> 00:31:05,270 Harvard har höjde och flyttade någon annanstans för att www.harvard.edu. 648 00:31:05,270 --> 00:31:08,220 De 301 innebär att en detta är en omdirigering. 649 00:31:08,220 --> 00:31:12,812 Och där ska användaren tydligen omdirigeras? 650 00:31:12,812 --> 00:31:15,520 Det finns en extra godbit av information inom detta kuvert. 651 00:31:15,520 --> 00:31:19,650 Och var och en av dessa linjer kommer nu börja ringa ett HTTP-huvud. 652 00:31:19,650 --> 00:31:23,620 Nick är bara ett nyckelvärde pair-- något kolon något. 653 00:31:23,620 --> 00:31:24,850 Det är en bit av information. 654 00:31:24,850 --> 00:31:27,131 Var ska den nya läge tydligen vara? 655 00:31:27,131 --> 00:31:31,120 656 00:31:31,120 --> 00:31:33,692 Lägg märke till den sista raden bland alla dessa rubriker. 657 00:31:33,692 --> 00:31:34,940 >> PUBLIK: [OHÖRBART] 658 00:31:34,940 --> 00:31:37,148 >> DAVID MALAN: Ja, så det finns extra information. 659 00:31:37,148 --> 00:31:40,120 Den första raden som jag har markerat säger 301 Flyttad permanent. 660 00:31:40,120 --> 00:31:42,820 Jo, där har det gått? 661 00:31:42,820 --> 00:31:45,340 Den sista line-- och de gör inte måste vara i denna ordning. 662 00:31:45,340 --> 00:31:47,020 Det kan vara slumpmässigt. 663 00:31:47,020 --> 00:31:52,120 Plats kolon betyder hej webbläsare, gå till denna URL istället. 664 00:31:52,120 --> 00:31:55,180 >> Så webbläsare förstår HTTP omdirigeringar. 665 00:31:55,180 --> 00:31:57,540 Och detta är en mycket, mycket vanligt sätt att studsa 666 00:31:57,540 --> 00:31:59,680 användaren från en plats till en annan. 667 00:31:59,680 --> 00:32:02,660 Till exempel, om du någonsin försökt att besöka en webbplats som du inte 668 00:32:02,660 --> 00:32:06,360 loggat in, kan du plötsligt befinner själv på en ny webbadress helt vara 669 00:32:06,360 --> 00:32:07,530 ombedd att logga in. 670 00:32:07,530 --> 00:32:08,400 >> Hur fungerar det? 671 00:32:08,400 --> 00:32:10,920 Servern är troligen skicka en 301. 672 00:32:10,920 --> 00:32:14,510 Det finns även andra siffror, som 302, något annorlunda innebörd, 673 00:32:14,510 --> 00:32:16,490 att skicka dig till en annan webbadress. 674 00:32:16,490 --> 00:32:18,770 Och då servern, När du har loggat in, 675 00:32:18,770 --> 00:32:22,000 kommer att skicka dig tillbaka till där du faktiskt tänkt. 676 00:32:22,000 --> 00:32:27,700 >> Så vad är då dåligt manipulerade webbplatser gör? 677 00:32:27,700 --> 00:32:31,340 När du besöker www.acme.com, och de bara 678 00:32:31,340 --> 00:32:35,490 råkar ha namngett sina servrar www1, www2, www3, och så vidare, 679 00:32:35,490 --> 00:32:39,100 de är mycket simply-- som är rättvist, men mycket 680 00:32:39,100 --> 00:32:46,080 sorts foolishly-- omdirigera dig till en faktiskt annorlunda namngiven server. 681 00:32:46,080 --> 00:32:48,650 Och det fungerar alldeles utmärkt. 682 00:32:48,650 --> 00:32:49,930 Det är trevligt och enkelt. 683 00:32:49,930 --> 00:32:52,200 >> Vi har sett hur det skulle vara gjort under huven 684 00:32:52,200 --> 00:32:53,490 i den virtuella kuvertet. 685 00:32:53,490 --> 00:32:56,450 Men varför är detta utan tvekan en dåligt engineering beslut? 686 00:32:56,450 --> 00:33:00,345 Och varför är jag slags nedlåtande mot denna teknik 687 00:33:00,345 --> 00:33:00,845 närma sig? 688 00:33:00,845 --> 00:33:06,420 689 00:33:06,420 --> 00:33:07,850 Argumentera varför det är dåligt. 690 00:33:07,850 --> 00:33:09,375 Ben? 691 00:33:09,375 --> 00:33:10,250 PUBLIK: [OHÖRBART] 692 00:33:10,250 --> 00:33:12,864 693 00:33:12,864 --> 00:33:16,030 DAVID MALAN: Varje server måste har ett exemplar av webbplatsen. 694 00:33:16,030 --> 00:33:16,738 Jag är OK med det. 695 00:33:16,738 --> 00:33:19,490 Och faktiskt, det är vad jag är antar för hela den här historien, 696 00:33:19,490 --> 00:33:22,104 eftersom om vi wanted-- väl faktiskt, med undantag för Dan tidigare 697 00:33:22,104 --> 00:33:25,270 förslag, där om du har olika servrar gör olika saker, då 698 00:33:25,270 --> 00:33:27,740 kanske de faktiskt skulle kunna vara funktionellt göra olika saker. 699 00:33:27,740 --> 00:33:30,698 >> Men även då, vid någon tidpunkt, din Databasen kommer att bli överbelastad. 700 00:33:30,698 --> 00:33:33,030 Din statiska tillgångar server kommer att bli överbelastad. 701 00:33:33,030 --> 00:33:34,850 Så någon gång, vi är tillbaka på den här historien, där vi 702 00:33:34,850 --> 00:33:36,475 behöver flera kopior av samma sak. 703 00:33:36,475 --> 00:33:37,395 Så jag är OK med det. 704 00:33:37,395 --> 00:33:38,270 PUBLIK: [OHÖRBART] 705 00:33:38,270 --> 00:33:42,340 706 00:33:42,340 --> 00:33:45,350 >> DAVID MALAN: Ok, så några sidor kan vara oproportionerligt populär. 707 00:33:45,350 --> 00:33:50,460 Och så fixera på en adress är inte nödvändigtvis den bästa. 708 00:33:50,460 --> 00:33:51,110 [OHÖRBAR]? 709 00:33:51,110 --> 00:33:51,985 >> PUBLIK: [OHÖRBART] 710 00:33:51,985 --> 00:33:54,770 711 00:33:54,770 --> 00:33:57,623 >> DAVID MALAN: Vad menar du med det? 712 00:33:57,623 --> 00:33:58,498 PUBLIK: [OHÖRBART] 713 00:33:58,498 --> 00:34:03,820 714 00:34:03,820 --> 00:34:05,072 >> DAVID MALAN: Ja, exakt. 715 00:34:05,072 --> 00:34:07,280 Så du vill inte nödvändigtvis have-- du säkert 716 00:34:07,280 --> 00:34:11,370 vill inte ha dina användare manuellt skriva in www1 eller www2. 717 00:34:11,370 --> 00:34:14,550 Ur ett varumärkesperspektiv, det bara ser lite löjligt. 718 00:34:14,550 --> 00:34:17,340 Om du bara vill ha en slags ren, elegant erfarenhet, 719 00:34:17,340 --> 00:34:20,364 med denna typ av slumpmässigt numrerade webbadresser är verkligen inte bra. 720 00:34:20,364 --> 00:34:22,780 För då användarna är säkert kommer att kopiera och klistra in dem 721 00:34:22,780 --> 00:34:24,449 i e-post eller snabbmeddelanden. 722 00:34:24,449 --> 00:34:25,659 >> Nu är de föröknings. 723 00:34:25,659 --> 00:34:28,600 Nu är du slags förvirrande din mindre tekniska publik, som tänker 724 00:34:28,600 --> 00:34:32,239 din webbadress är www2.something.com. 725 00:34:32,239 --> 00:34:35,434 Det finns inga övertygande semantik till det. 726 00:34:35,434 --> 00:34:38,100 Det råkar bara vara en underliggande teknisk detalj som du har 727 00:34:38,100 --> 00:34:40,190 numrerade dina servrar på detta sätt. 728 00:34:40,190 --> 00:34:45,760 >> Och ännu värre, tänk om, till exempel, kanske runt juletid när 729 00:34:45,760 --> 00:34:50,090 affärer är verkligen blomstrar, du har www1 genom www99, 730 00:34:50,090 --> 00:34:53,530 men i januari och februari och framåt, stänger du av hälften av dem 731 00:34:53,530 --> 00:34:56,440 så du behöver bara www1 genom www50? 732 00:34:56,440 --> 00:35:01,963 Vad är implikationen nu för att mycket rimligt affärsbeslut? 733 00:35:01,963 --> 00:35:02,838 PUBLIK: [OHÖRBART] 734 00:35:02,838 --> 00:35:05,628 735 00:35:05,628 --> 00:35:07,752 DAVID MALAN: Du måste hantera alla dem som fortfarande. 736 00:35:07,752 --> 00:35:10,515 PUBLIK: [OHÖRBART] 737 00:35:10,515 --> 00:35:11,390 DAVID MALAN: Exakt. 738 00:35:11,390 --> 00:35:12,681 Det är typ av fångsten där. 739 00:35:12,681 --> 00:35:16,800 Om dina kunder är vana att bookmarking saker, e-posta dem, precis 740 00:35:16,800 --> 00:35:19,351 sparar URL någonstans, eller om det bara är i sin auto 741 00:35:19,351 --> 00:35:22,350 slutföra i sin webbläsare så att de är inte riktigt avsikt skriva det, 742 00:35:22,350 --> 00:35:25,560 det är bara händer, de kan, 11 månader av året 743 00:35:25,560 --> 00:35:27,190 effektivt nå en återvändsgränd. 744 00:35:27,190 --> 00:35:30,100 Och bara de mest skarpsinniga av användare kommer att inse, 745 00:35:30,100 --> 00:35:32,040 Kanske borde jag manuellt ta bort detta nummer. 746 00:35:32,040 --> 00:35:35,610 Jag menar, det är bara inte att hända med många användare, så dåligt för företag, 747 00:35:35,610 --> 00:35:37,750 dålig implementering engineering klokt. 748 00:35:37,750 --> 00:35:40,230 >> Så tack och lov är det inte ens nödvändigt. 749 00:35:40,230 --> 00:35:43,120 Det visar sig att det lastbalanserare kan göra 750 00:35:43,120 --> 00:35:48,130 är istället för att säga, när A gör en request-- hey A, gå till en. 751 00:35:48,130 --> 00:35:50,280 Med andra ord, i stället skicka att omdirigera 752 00:35:50,280 --> 00:35:53,540 så att steg ett i denna Processen är i farten här, 753 00:35:53,540 --> 00:35:55,280 han sedan berättade att gå någon annanstans. 754 00:35:55,280 --> 00:35:57,530 Och så steg tre är, han går någon annanstans. 755 00:35:57,530 --> 00:36:04,600 >> Du kan i stället fortsätta att dirigera till fortsätta att använda den termen, alla A: s uppgifter 756 00:36:04,600 --> 00:36:10,590 genom belastningsutjämnaren så att han aldrig kontakter 1, 2 eller 3 direkt. 757 00:36:10,590 --> 00:36:15,150 All trafik skulle bli "dirigeras" av lastbalanseraren själv. 758 00:36:15,150 --> 00:36:17,524 Och så nu är vi sorts medvetet sudda ut gränserna 759 00:36:17,524 --> 00:36:18,690 bland dessa olika enheter. 760 00:36:18,690 --> 00:36:20,930 En lastbalanserare kan ruttdata. 761 00:36:20,930 --> 00:36:22,435 Det är bara en funktion som den har. 762 00:36:22,435 --> 00:36:25,420 >> Så en lastbalanserare, också, är det ett program, verkligen. 763 00:36:25,420 --> 00:36:27,130 Och en router är en mjukvara. 764 00:36:27,130 --> 00:36:29,660 Och du kan absolut ha två bitar av programvara inuti 765 00:36:29,660 --> 00:36:34,000 av en fysisk dator så en last balanserare kan göra dessa multipla saker. 766 00:36:34,000 --> 00:36:36,130 >> Så det finns ett annat sätt att göra detta, som faktiskt 767 00:36:36,130 --> 00:36:39,670 går tillbaka till slags första principer DNS, som vi talade om 768 00:36:39,670 --> 00:36:40,230 före paus. 769 00:36:40,230 --> 00:36:41,634 DNS var Domain Name System. 770 00:36:41,634 --> 00:36:43,550 Kom ihåg att du kan frågar en DNS-server, vad är 771 00:36:43,550 --> 00:36:46,460 IP-adressen för google.com, facebook.com? 772 00:36:46,460 --> 00:36:48,250 >> Och vi kan faktiskt göra detta. 773 00:36:48,250 --> 00:36:51,940 Ett verktyg som vi använde inte tidigare är en som är lika tillgänglig, 774 00:36:51,940 --> 00:36:55,510 kallas nslookup, för namnserver uppslag. 775 00:36:55,510 --> 00:36:57,410 Och jag ska bara skriva facebook.com. 776 00:36:57,410 --> 00:37:02,500 Och jag ser att Facebook IP adress är tydligen detta. 777 00:37:02,500 --> 00:37:05,520 Låt mig gå vidare och kopiera att gå till en webbläsare, 778 00:37:05,520 --> 00:37:11,690 och gå till http: // och att IP-adress och tryck på Retur. 779 00:37:11,690 --> 00:37:14,140 Och mycket riktigt, verkar det att fungera. 780 00:37:14,140 --> 00:37:18,610 >> Nu arbetar bakåt, vad var insidan av den virtuella kuvertet 781 00:37:18,610 --> 00:37:25,454 att Facebook svarade med när Jag besökte att IP-adress direkt? 782 00:37:25,454 --> 00:37:26,745 Eftersom varsel, där är jag nu? 783 00:37:26,745 --> 00:37:29,250 784 00:37:29,250 --> 00:37:32,484 Var är jag nu, adress? 785 00:37:32,484 --> 00:37:33,450 >> PUBLIK: [OHÖRBART] 786 00:37:33,450 --> 00:37:36,116 >> DAVID MALAN: På den säkra versionen, och vid den www.facebook.com. 787 00:37:36,116 --> 00:37:38,520 Så det är inte ens bara det säkra IP-adress. 788 00:37:38,520 --> 00:37:42,650 Facebook har tagit på sig att säga, detta är löjligt. 789 00:37:42,650 --> 00:37:45,710 Vi kommer inte att hålla dig på detta ful ser URL som är numeriskt. 790 00:37:45,710 --> 00:37:50,120 Vi kommer att skicka dig en HTTP omdirigera genom samma rubrik 791 00:37:50,120 --> 00:37:53,010 som vi såg before-- plats kolon något. 792 00:37:53,010 --> 00:37:56,340 >> Och så detta betyder helt enkelt att under huven är fortfarande här IP-adressen. 793 00:37:56,340 --> 00:37:59,010 Varje dator på Internet har en IP-adress, verkar det. 794 00:37:59,010 --> 00:38:01,480 Men du behöver inte nödvändigtvis att exponera det för användaren. 795 00:38:01,480 --> 00:38:07,190 Och mycket som förr i tiden, där var 1-800-COLLECT, 1-800-C-O-L-L-E-C-T, 796 00:38:07,190 --> 00:38:11,700 i USA, var ett sätt att samla in samtal via en mycket lätt minnesvärd telefon 797 00:38:11,700 --> 00:38:17,140 nummer eller 1-800-madrass att köpa en säng, och liknande mnemonics att du även se 798 00:38:17,140 --> 00:38:20,460 i telefon typ av sorts fortfarande, att brev karta till siffror. 799 00:38:20,460 --> 00:38:21,470 >> Nu, varför är det? 800 00:38:21,470 --> 00:38:26,080 Tja, det är mycket lättare att komma ihåg 1-800-madrass eller 1-800-COLLECT istället 801 00:38:26,080 --> 00:38:29,100 av 1-800 något något något något något något 802 00:38:29,100 --> 00:38:31,030 något, där varje av dessa är en siffra. 803 00:38:31,030 --> 00:38:34,390 På samma sätt lärde världen snabbt att vi inte bör 804 00:38:34,390 --> 00:38:35,940 har människor memorera IP-adresser. 805 00:38:35,940 --> 00:38:36,826 Det skulle vara dumt. 806 00:38:36,826 --> 00:38:38,200 Vi kommer att använda namn istället. 807 00:38:38,200 --> 00:38:40,420 Och det är därför DNS föddes. 808 00:38:40,420 --> 00:38:45,510 >> Okej, så som sagt, när det gäller lastbalansering, låt oss försöka yahoo.com. 809 00:38:45,510 --> 00:38:47,030 Tja, det är intressant. 810 00:38:47,030 --> 00:38:51,464 Yahoo verkar att återvända tre IP-adresser. 811 00:38:51,464 --> 00:38:53,940 Så sluta från detta, om du kunde, vad är 812 00:38:53,940 --> 00:38:58,600 ett annat sätt att vi skulle kunna genomföra denna föreställning om lastbalansering 813 00:38:58,600 --> 00:39:04,310 kanske utan att ens använda en fysisk enhet, den nya fysiska enhet? 814 00:39:04,310 --> 00:39:08,070 >> Med andra ord, kan jag ta bort finansiering du har för belastningsutjämnaren 815 00:39:08,070 --> 00:39:10,990 och berätta för dig att använda vissa befintliga del av maskinvaran för att genomföra 816 00:39:10,990 --> 00:39:12,680 denna föreställning om lastbalansering? 817 00:39:12,680 --> 00:39:18,870 818 00:39:18,870 --> 00:39:22,510 Och spoilern är, ja, men vad, eller hur? 819 00:39:22,510 --> 00:39:27,605 Vad är Yahoo kanske gör här? 820 00:39:27,605 --> 00:39:29,200 Kareem? 821 00:39:29,200 --> 00:39:30,635 OK, Chris? 822 00:39:30,635 --> 00:39:31,510 PUBLIK: [OHÖRBART] 823 00:39:31,510 --> 00:39:35,119 824 00:39:35,119 --> 00:39:36,910 DAVID MALAN: Ja, alla tre av dem arbete. 825 00:39:36,910 --> 00:39:39,890 Så slumpmässighet, round robin, location-- du kan bara 826 00:39:39,890 --> 00:39:44,160 utnyttja en befintlig pusselbit som vi talat om tidigare i DNS 827 00:39:44,160 --> 00:39:49,580 systemet och helt enkelt säga, när den första användaren för dagen begär yahoo.com, 828 00:39:49,580 --> 00:39:52,970 ge dem den första IP-adress, som den som slutar på 45 uppe. 829 00:39:52,970 --> 00:39:55,762 Och nästa gång en användare begär IP-adressen för yahoo.com 830 00:39:55,762 --> 00:39:57,970 från någonstans i världen, ge dem den andra IP, 831 00:39:57,970 --> 00:39:59,920 sedan den tredje IP, sedan första IP, sedan den andra. 832 00:39:59,920 --> 00:40:01,850 Eller vara smart om det och gör det grafiskt. 833 00:40:01,850 --> 00:40:05,200 Eller gör det slumpmässigt och inte bara göra det round robin på detta sätt. 834 00:40:05,200 --> 00:40:07,580 >> Och i detta fall, då Vi behöver inte ens 835 00:40:07,580 --> 00:40:10,190 att införa denna svarta rutan i vår bild. 836 00:40:10,190 --> 00:40:11,690 Vi behöver inte en ny enhet. 837 00:40:11,690 --> 00:40:16,930 Vi är helt enkelt tala om datorer att gå till servrarna direkt, 838 00:40:16,930 --> 00:40:18,680 ett effektivt sätt, men inte genom sitt namn. 839 00:40:18,680 --> 00:40:20,054 De behöver aldrig veta namnet. 840 00:40:20,054 --> 00:40:25,690 De är bara att höra att yahoo.com kartor till någon av dessa IP-adresser. 841 00:40:25,690 --> 00:40:28,180 >> Så det sänder exakt samma begäran. 842 00:40:28,180 --> 00:40:30,100 Men på utsidan av kuvertet, det helt enkelt 843 00:40:30,100 --> 00:40:32,740 sätter IP som det informerades om. 844 00:40:32,740 --> 00:40:35,590 Och på detta sätt också, kunde Vi laddar balansera förfrågningar 845 00:40:35,590 --> 00:40:39,330 genom att skicka kuvertet till en annan av Yahoos egna servrar? 846 00:40:39,330 --> 00:40:42,390 >> Och om vi håller gräva, vi får se förmodligen andra företag med fler. 847 00:40:42,390 --> 00:40:44,380 CNN har två offentligt utsatt. 848 00:40:44,380 --> 00:40:49,610 Även faktiskt om vi gör det igen och igen-- cnn.com-- du kan se 849 00:40:49,610 --> 00:40:51,730 de förändrar ordning, faktiskt. 850 00:40:51,730 --> 00:40:56,680 Så vilken mekanism är CNN att använda, tydligen? 851 00:40:56,680 --> 00:40:57,440 >> PUBLIK: Random. 852 00:40:57,440 --> 00:40:59,440 DAVID MALAN: Tja, det kan vara slumpmässigt, även om det 853 00:40:59,440 --> 00:41:01,110 verkar vara cykla fram och tillbaka. 854 00:41:01,110 --> 00:41:04,380 Så det är nog round robin där de är bara att växla ordning så 855 00:41:04,380 --> 00:41:05,880 att jag förmodligen kommer att ta den första. 856 00:41:05,880 --> 00:41:08,860 Min dator kommer att ta den första varje gång. 857 00:41:08,860 --> 00:41:10,490 Så det är lastbalansering. 858 00:41:10,490 --> 00:41:18,450 Och det gör att vi i slutändan, att kartlägga uppgifter, eller kart förfrågningar, 859 00:41:18,450 --> 00:41:21,240 över flera servrar. 860 00:41:21,240 --> 00:41:24,226 Så vad slags problem nu fortfarande existerar? 861 00:41:24,226 --> 00:41:26,350 Det känns som om vi bara verkligen löst ett bra problem. 862 00:41:26,350 --> 00:41:28,740 Vi fick användare till olika servrar. 863 00:41:28,740 --> 00:41:31,420 Men-- oh, och Chris, gjorde du har en fråga innan? 864 00:41:31,420 --> 00:41:34,378 >> PUBLIK: [OHÖRBART] 865 00:41:34,378 --> 00:41:43,670 866 00:41:43,670 --> 00:41:45,120 >> DAVID MALAN: beror helt. 867 00:41:45,120 --> 00:41:47,042 Så vad händer här? 868 00:41:47,042 --> 00:41:48,250 Och vi kan faktiskt se detta. 869 00:41:48,250 --> 00:41:51,649 Så låt oss försöka Yahoos. 870 00:41:51,649 --> 00:41:52,940 Faktiskt, låt oss gå till Facebook. 871 00:41:52,940 --> 00:41:54,520 Eftersom vi vet att man arbetar. 872 00:41:54,520 --> 00:41:56,545 Så jag kommer att kopiera IP-adressen igen. 873 00:41:56,545 --> 00:41:58,820 Jag kommer att stänga alla dessa flikar. 874 00:41:58,820 --> 00:42:03,800 Jag kommer att gå öppet att speciell nätverks fliken här nere. 875 00:42:03,800 --> 00:42:07,800 Och jag kommer att besöka bara http: //. 876 00:42:07,800 --> 00:42:10,694 Och nu ska jag slå Enter. 877 00:42:10,694 --> 00:42:11,860 Och låt oss se vad som hände. 878 00:42:11,860 --> 00:42:20,662 >> Om jag tittar på denna begäran, meddelande att my-- Facebook är ett dåligt exempel. 879 00:42:20,662 --> 00:42:22,370 Eftersom de har en super snygga teknik 880 00:42:22,370 --> 00:42:25,960 som döljer den detaljen från oss. 881 00:42:25,960 --> 00:42:30,690 Låt mig använda Yahoo instead-- http: // den IP. 882 00:42:30,690 --> 00:42:36,030 Låt oss öppna vårt nätverk fliken, bevara log. 883 00:42:36,030 --> 00:42:37,945 Och här vi går, Enter. 884 00:42:37,945 --> 00:42:40,669 885 00:42:40,669 --> 00:42:41,210 Det är roligt. 886 00:42:41,210 --> 00:42:44,480 OK, så här är den berömda 404 meddelande. 887 00:42:44,480 --> 00:42:48,500 Vad är roligt här är att de förmodligen aldrig kommer att vara tillbaka. 888 00:42:48,500 --> 00:42:51,430 Eftersom det är nog inte något fel i sig. 889 00:42:51,430 --> 00:42:54,050 De har bara medvetet beslutat att inte stödja 890 00:42:54,050 --> 00:42:56,250 den numeriska form av sin adress. 891 00:42:56,250 --> 00:43:00,270 >> Så vad vi faktiskt ser i fliken Nätverk, om jag drar upp det här, 892 00:43:00,270 --> 00:43:06,140 är, som sagt, den berömda 404, där Om jag tittar på rubrikerna svars, 893 00:43:06,140 --> 00:43:09,070 detta är vad jag fick här-- 404 Not Found. 894 00:43:09,070 --> 00:43:11,360 Så låt oss försöka en annan. 895 00:43:11,360 --> 00:43:13,180 Låt oss se om CNN samarbetar med oss. 896 00:43:13,180 --> 00:43:19,440 Jag tar en av CNN: s IP-adresser, rensa detta http, dah, dah, dah, dah. 897 00:43:19,440 --> 00:43:21,620 Så svaret på Chris fråga, arbetade som en. 898 00:43:21,620 --> 00:43:24,140 899 00:43:24,140 --> 00:43:26,255 >> Och låt oss gå till svarshuvuden. 900 00:43:26,255 --> 00:43:30,810 901 00:43:30,810 --> 00:43:33,640 Egentligen ingen, okej, jag är kämpar för att hitta ett fungerande exempel. 902 00:43:33,640 --> 00:43:38,270 Så CNN har beslutat, kommer vi bara lämna dig oavsett på vilken adress du faktiskt besöka, 903 00:43:38,270 --> 00:43:40,359 varumärkesfrågor åt sidan. 904 00:43:40,359 --> 00:43:43,275 Men vad som inte skulle hända, om vi kunde se det i Facebooks fall 905 00:43:43,275 --> 00:43:46,700 är att vi skulle få en 301 Flyttade Permanent, troligen, 906 00:43:46,700 --> 00:43:54,420 inuti vilket är Plats: https: //www.facebook.com. 907 00:43:54,420 --> 00:44:01,210 Och oddsen är www.facebook.com är en alias för exakt samma server som vi just 908 00:44:01,210 --> 00:44:01,710 gick till. 909 00:44:01,710 --> 00:44:03,500 >> Så det är lite kontraproduktivt. 910 00:44:03,500 --> 00:44:05,170 Vi bokstavligen besöker servern. 911 00:44:05,170 --> 00:44:07,040 Servern sedan berätta, försvinna. 912 00:44:07,040 --> 00:44:08,320 Gå till denna annan adress. 913 00:44:08,320 --> 00:44:10,870 Men vi bara så råkar vara gå tillbaka till samma server. 914 00:44:10,870 --> 00:44:14,550 Men förmodligen vi nu stanna på den server utan detta fram och tillbaka. 915 00:44:14,550 --> 00:44:18,600 För nu vi använder den namngivna version av webbplatsen, inte den numeriska. 916 00:44:18,600 --> 00:44:20,060 Bra fråga. 917 00:44:20,060 --> 00:44:23,690 >> OK, så om vi nu assume-- vi har löst lastbalansering. 918 00:44:23,690 --> 00:44:25,894 Vi har nu en mekanism, oavsett om det är via DNS, 919 00:44:25,894 --> 00:44:29,060 oavsett om det är via detta svarta lådan, om det använder någon av dessa tekniker. 920 00:44:29,060 --> 00:44:33,810 Vi kan ta en användares begäran och räkna ut till vilken server, en, två, eller tre, 921 00:44:33,810 --> 00:44:35,420 att skicka honom eller henne. 922 00:44:35,420 --> 00:44:39,180 >> Vad börjar bryta om vår hemsida? 923 00:44:39,180 --> 00:44:41,160 Med andra ord, har vi byggt ett företag som 924 00:44:41,160 --> 00:44:43,480 var tidigare på en enda server. 925 00:44:43,480 --> 00:44:46,870 Nu när verksamheten är igång över flera servrar. 926 00:44:46,870 --> 00:44:51,770 Vilka typer av antaganden, vilka typer av designbeslut, 927 00:44:51,770 --> 00:44:54,870 kan nu bryta? 928 00:44:54,870 --> 00:44:55,745 >> Detta är mindre uppenbar. 929 00:44:55,745 --> 00:44:58,620 Men låt oss se om vi inte kan sätta vår fingret på några av de problem som vi har 930 00:44:58,620 --> 00:44:59,780 skapat för oss själva. 931 00:44:59,780 --> 00:45:02,750 Återigen, det är ungefär som att hålla ner läckaget i slangen. 932 00:45:02,750 --> 00:45:05,094 Och nu några nyemission har dykt upp här. 933 00:45:05,094 --> 00:45:07,880 934 00:45:07,880 --> 00:45:11,380 >> PUBLIK: [OHÖRBART] 935 00:45:11,380 --> 00:45:16,574 936 00:45:16,574 --> 00:45:19,240 DAVID MALAN: OK, så vi måste fortsätta växa vår hårddiskutrymme. 937 00:45:19,240 --> 00:45:20,450 Jag är OK med det just nu. 938 00:45:20,450 --> 00:45:23,212 Eftersom jag tror att jag kan horisontellt skala. 939 00:45:23,212 --> 00:45:26,420 Som om jag börjar ta slut, ska jag bara få en fjärde server, kanske en femte server, 940 00:45:26,420 --> 00:45:30,820 och sedan öka vår kapacitet av en annan 30% eller 50% eller allt. 941 00:45:30,820 --> 00:45:32,759 Så jag är OK med det, åtminstone för tillfället. 942 00:45:32,759 --> 00:45:33,634 PUBLIK: [OHÖRBART] 943 00:45:33,634 --> 00:45:37,314 944 00:45:37,314 --> 00:45:38,980 DAVID MALAN: OK, så det är en bra poäng. 945 00:45:38,980 --> 00:45:42,340 Så antar servrarna är inte identiska. 946 00:45:42,340 --> 00:45:45,260 Och kundservice eller e-post motsvarande 947 00:45:45,260 --> 00:45:48,690 blir lite meddelande från en användare säger, detta är inte fungerar rätt. 948 00:45:48,690 --> 00:45:52,070 Det är mycket möjligt, ibland, att kanske en eller flera servrar 949 00:45:52,070 --> 00:45:55,000 agerar lite snett, men inte de andra, vilka kan säkert 950 00:45:55,000 --> 00:45:57,096 gör det svårare att jaga problemet. 951 00:45:57,096 --> 00:45:58,720 Du kan behöva se flera ställen. 952 00:45:58,720 --> 00:46:00,960 >> Det är manifestationen av en annan typ av bugg, 953 00:46:00,960 --> 00:46:03,950 vilket är att du förmodligen borde har utformat infrastrukturen så 954 00:46:03,950 --> 00:46:06,200 att allt är verkligen identiska. 955 00:46:06,200 --> 00:46:10,390 Men det visar en ny problem att vi inte hade tidigare. 956 00:46:10,390 --> 00:46:11,715 Vad annars? 957 00:46:11,715 --> 00:46:12,590 PUBLIK: [OHÖRBART] 958 00:46:12,590 --> 00:46:16,390 959 00:46:16,390 --> 00:46:19,500 >> DAVID MALAN: Ja, det finns mer komplexitet. 960 00:46:19,500 --> 00:46:20,792 Det finns fysiskt fler trådar. 961 00:46:20,792 --> 00:46:21,750 Det finns en annan enhet. 962 00:46:21,750 --> 00:46:26,310 I själva verket har jag infört en grundläggande koncept och ett grundläggande problem här 963 00:46:26,310 --> 00:46:28,300 känd som en enda punkt av misslyckande, vilket, 964 00:46:28,300 --> 00:46:30,110 även om du har aldrig hört frasen, kan du förmodligen 965 00:46:30,110 --> 00:46:31,780 nu arbeta baklänges och räkna ut det. 966 00:46:31,780 --> 00:46:35,560 Vad betyder det att jag har en enda point of failure i min arkitektur? 967 00:46:35,560 --> 00:46:39,694 Och genom arkitektur, jag bara betyda topologin för den. 968 00:46:39,694 --> 00:46:40,610 >> PUBLIK: [OHÖRBART] 969 00:46:40,610 --> 00:46:42,901 >> DAVID MALAN: Ja, tänk om belastningsutjämnaren går ner? 970 00:46:42,901 --> 00:46:46,290 Jag har satt denna mellanhand vars syfte i livet är att lösa ett problem. 971 00:46:46,290 --> 00:46:47,740 Men jag har infört ett nytt problem. 972 00:46:47,740 --> 00:46:49,350 En ny läcka har fjädrat i slangen. 973 00:46:49,350 --> 00:46:53,500 Eftersom nu om lastbalanserare dör eller går sönder eller misfunctions, 974 00:46:53,500 --> 00:46:56,350 Nu förlorar jag tillgång till alla tre av mina servrar. 975 00:46:56,350 --> 00:46:58,880 Och innan, det gjorde jag inte har denna mellanhand. 976 00:46:58,880 --> 00:47:03,020 Och så detta är ett nytt problem, utan tvekan. 977 00:47:03,020 --> 00:47:05,245 Vi ska återkomma till hur vi kan fixa det. 978 00:47:05,245 --> 00:47:06,734 >> PUBLIK: [OHÖRBART] 979 00:47:06,734 --> 00:47:08,400 DAVID MALAN: Det skulle vara en metod. 980 00:47:08,400 --> 00:47:13,926 Ja, och så detta kommer att vara ganska råttans hålet vi börjar gå ner. 981 00:47:13,926 --> 00:47:15,800 Men låt oss återkomma till att på bara ett ögonblick. 982 00:47:15,800 --> 00:47:17,299 Vilka andra problem har vi skapat? 983 00:47:17,299 --> 00:47:25,540 984 00:47:25,540 --> 00:47:27,470 >> Så Dan nämnde databasen innan. 985 00:47:27,470 --> 00:47:29,500 Och även om du inte alltför bekant tekniskt 986 00:47:29,500 --> 00:47:33,220 en databas är bara en server där ändring av data lagras typiskt, 987 00:47:33,220 --> 00:47:36,430 kanske en order någon har placerat, din användarprofil, ditt namn, 988 00:47:36,430 --> 00:47:40,810 din e-postadress, saker som kan inmatas eller förändrats över tiden. 989 00:47:40,810 --> 00:47:44,599 >> Tidigare min databas var samma server som min webbserver. 990 00:47:44,599 --> 00:47:46,390 Eftersom jag hade bara en webbhotell. 991 00:47:46,390 --> 00:47:48,480 Allt var alla på samma plats. 992 00:47:48,480 --> 00:47:54,200 Var ska jag sätta min databas nu, på servern 1, 2 eller 3? 993 00:47:54,200 --> 00:47:55,100 >> PUBLIK: 4. 994 00:47:55,100 --> 00:47:58,070 >> DAVID MALAN: 4, OK, alla höger, så låt oss gå dit. 995 00:47:58,070 --> 00:48:01,650 Så jag kommer att sätta min database-- och låt oss 996 00:48:01,650 --> 00:48:06,520 börja märka dessa www, www, www. 997 00:48:06,520 --> 00:48:08,780 Och jag kommer att säga, detta är nummer fyra. 998 00:48:08,780 --> 00:48:11,270 Och jag ska säga db för databasen. 999 00:48:11,270 --> 00:48:12,870 OK, jag gillar det här. 1000 00:48:12,870 --> 00:48:17,021 Vilken linje ska jag antagligen ritning här? 1001 00:48:17,021 --> 00:48:18,850 >> PUBLIK: [OHÖRBART] 1002 00:48:18,850 --> 00:48:22,740 >> DAVID MALAN: Ja, så koden, som vi kommer att diskutera i morgon, 1003 00:48:22,740 --> 00:48:24,900 förmodligen är den samma på alla tre servrar. 1004 00:48:24,900 --> 00:48:28,374 Men det måste nu ansluta inte en databas körs lokalt men någon annanstans. 1005 00:48:28,374 --> 00:48:29,040 Och det är bra. 1006 00:48:29,040 --> 00:48:31,623 Vi kan bara ge databasen ett namn, som vi har, eller ett nummer. 1007 00:48:31,623 --> 00:48:33,930 Och att allt fungerar bra. 1008 00:48:33,930 --> 00:48:35,820 Men vad har vi gjort? 1009 00:48:35,820 --> 00:48:40,640 Vi har horisontellt skalas genom att tre servrar i stället för en, vilket 1010 00:48:40,640 --> 00:48:41,140 är bra. 1011 00:48:41,140 --> 00:48:44,240 För nu kan vi hantera tre gånger så mycket last. 1012 00:48:44,240 --> 00:48:47,710 >> Och ännu bättre, om en eller två av dessa servrar går ner, 1013 00:48:47,710 --> 00:48:49,350 mitt företag kan fortsätta att fungera. 1014 00:48:49,350 --> 00:48:53,960 Eftersom jag fortfarande har en, även om jag slags haltande längs prestandamässigt. 1015 00:48:53,960 --> 00:49:01,020 Men vad nytt problem har jag infördes genom att flytta databasen 1016 00:49:01,020 --> 00:49:04,350 till detta separat server i stället för på ett, två, och tre? 1017 00:49:04,350 --> 00:49:05,412 >> PUBLIK: [OHÖRBART] 1018 00:49:05,412 --> 00:49:08,120 DAVID MALAN: Ja, så nu har jag annan single point of failure. 1019 00:49:08,120 --> 00:49:12,330 Om min databas dör, eller behöver uppgraderas, eller vad som helst, nu säker, 1020 00:49:12,330 --> 00:49:13,610 min hemsida är online. 1021 00:49:13,610 --> 00:49:16,270 Och jag kan tjäna statisk, oföränderlig innehåll. 1022 00:49:16,270 --> 00:49:21,210 Men jag kan inte låta användare loggar in eller ändra något eller beställa något ännu värre. 1023 00:49:21,210 --> 00:49:24,120 För om fyra är offline, därefter 1, 2, och 3 1024 00:49:24,120 --> 00:49:27,710 verkligen kan inte prata med den per definition. 1025 00:49:27,710 --> 00:49:31,560 >> OK så ja, och så det är därför Jag tvekar att dra denna. 1026 00:49:31,560 --> 00:49:32,690 Så låt oss återkomma till detta. 1027 00:49:32,690 --> 00:49:33,700 Jag menar inte att hålla driver dig. 1028 00:49:33,700 --> 00:49:36,030 Men bilden är mycket snabbt kommer att få stressande. 1029 00:49:36,030 --> 00:49:38,620 Eftersom du behöver för att börja har två av allting. 1030 00:49:38,620 --> 00:49:41,850 I själva verket, om du någonsin har sett film Kontakta för några år sedan 1031 00:49:41,850 --> 00:49:45,310 med Jodie Foster-- nej? 1032 00:49:45,310 --> 00:49:47,410 >> OK, så för två av oss som har sett Kontakt, 1033 00:49:47,410 --> 00:49:50,800 det finns en relation där där de huvudsakligen köpte två av något 1034 00:49:50,800 --> 00:49:53,250 snarare än ett, om än till dubbelt pris. 1035 00:49:53,250 --> 00:49:55,922 Så det var typ av en skämtsam kommentera i filmen. 1036 00:49:55,922 --> 00:49:57,130 Det är typ av i samband med detta. 1037 00:49:57,130 --> 00:49:58,290 Vi kunde absolut göra det. 1038 00:49:58,290 --> 00:50:00,123 Och du har bara kostnad oss dubbelt så mycket pengar. 1039 00:50:00,123 --> 00:50:01,300 Men vi ska återkomma till det. 1040 00:50:01,300 --> 00:50:02,400 >> Så vi har löst detta. 1041 00:50:02,400 --> 00:50:03,108 Så du vet vad? 1042 00:50:03,108 --> 00:50:04,450 Detta är som en hal backe. 1043 00:50:04,450 --> 00:50:07,033 Jag vill inte ta itu med att ha att ha en dubblett databas. 1044 00:50:07,033 --> 00:50:08,037 Det är för mycket pengar. 1045 00:50:08,037 --> 00:50:08,620 Vet du vad? 1046 00:50:08,620 --> 00:50:12,880 Jag vill ha min databas precis som i version ett 1047 00:50:12,880 --> 00:50:17,450 där varje server har sin egen lokala databas. 1048 00:50:17,450 --> 00:50:19,480 Så jag ska bara rita db på var och en av dessa. 1049 00:50:19,480 --> 00:50:22,240 >> Så nu varje webbserver är identisk i den mån 1050 00:50:22,240 --> 00:50:25,650 eftersom den har samma kod, samma statiska tillgångar, samma bilder och text 1051 00:50:25,650 --> 00:50:26,720 och så vidare. 1052 00:50:26,720 --> 00:50:29,580 Och alla har sin egen databas. 1053 00:50:29,580 --> 00:50:31,450 Jag fast enda punkt av fel problem. 1054 00:50:31,450 --> 00:50:32,570 Nu har jag en databas. 1055 00:50:32,570 --> 00:50:36,210 Oavsett vilken två eller en av dessa saker dör, det finns alltid en kvar. 1056 00:50:36,210 --> 00:50:41,156 Men vad nytt problem har jag skapat Dan lösning undvikas? 1057 00:50:41,156 --> 00:50:42,470 >> PUBLIK: [OHÖRBART] 1058 00:50:42,470 --> 00:50:44,386 >> DAVID MALAN: Ja, jag måste synkronisera dem, eller hur? 1059 00:50:44,386 --> 00:50:47,860 Eftersom antingen jag vill synkronisera som kommer where-- med andra ord, 1060 00:50:47,860 --> 00:50:50,570 om Alice besöker min plats, hände och hon 1061 00:50:50,570 --> 00:50:55,070 att få slumpmässigt eller runda robined eller vad som helst, till server nummer ett, 1062 00:50:55,070 --> 00:50:58,770 därefter jag måste alltid skicka henne till servern 1. 1063 00:50:58,770 --> 00:50:59,420 Varför? 1064 00:50:59,420 --> 00:51:01,540 För om jag skickar henne till servern 2, det kommer 1065 00:51:01,540 --> 00:51:03,140 att se ut som hon inte finns där. 1066 00:51:03,140 --> 00:51:04,450 >> Jag tänker inte ha henne orderhistorik. 1067 00:51:04,450 --> 00:51:06,300 Jag tänker inte ha hennes profil där. 1068 00:51:06,300 --> 00:51:09,360 Och det känns bara som det inbjudande problem. 1069 00:51:09,360 --> 00:51:11,400 Och när Bob besöker jag måste skicka honom alltid 1070 00:51:11,400 --> 00:51:14,800 till samma server, 2, eller vilken en, och Charlie till en tredje en, 1071 00:51:14,800 --> 00:51:15,797 och konsekvent. 1072 00:51:15,797 --> 00:51:17,130 Detta är inte orimligt, men. 1073 00:51:17,130 --> 00:51:19,270 Det här kallas partitionering din databas. 1074 00:51:19,270 --> 00:51:21,270 Och i själva verket var det Facebook gjorde tidigt. 1075 00:51:21,270 --> 00:51:24,020 >> Om du har följt historia Facebook började det här på campus 1076 00:51:24,020 --> 00:51:25,770 som www.thefacebook.com. 1077 00:51:25,770 --> 00:51:29,260 Sedan utvecklades det en gång Mark började spridning till andra campus 1078 00:51:29,260 --> 00:51:34,450 vara harvard.thefacebook.com och mit.thefacebook.com, och förmodligen 1079 00:51:34,450 --> 00:51:37,027 bu.thefacebook.com, och liknande. 1080 00:51:37,027 --> 00:51:38,860 Och det var därför tidigt, tror jag inte 1081 00:51:38,860 --> 00:51:40,484 du kan ha vänner över campus. 1082 00:51:40,484 --> 00:51:41,410 Men det är bra. 1083 00:51:41,410 --> 00:51:43,930 Eftersom någon från Harvard fick skickas till servern. 1084 00:51:43,930 --> 00:51:45,744 Någon från BU fick skickas till servern. 1085 00:51:45,744 --> 00:51:47,910 Någon från MIT fick skickas till denna server-- i teorin. 1086 00:51:47,910 --> 00:51:50,540 Jag vet inte riktigt alla underliggande implementeringsdetaljer. 1087 00:51:50,540 --> 00:51:55,610 Men han förmodligen partitione människor genom deras campus, där deras nätverk var. 1088 00:51:55,610 --> 00:51:58,772 >> Så det är bra fram till den punkt där du behöver två servrar för Harvard, 1089 00:51:58,772 --> 00:51:59,980 eller tre servrar för Harvard. 1090 00:51:59,980 --> 00:52:01,800 Och då enkelhet typ av går sönder. 1091 00:52:01,800 --> 00:52:03,174 Men det är en rimlig strategi. 1092 00:52:03,174 --> 00:52:04,950 Låt oss alltid skicka Alice till samma plats, 1093 00:52:04,950 --> 00:52:06,366 alltid skicka Bob till samma plats. 1094 00:52:06,366 --> 00:52:09,680 Men vad händer om Alices server går offline? 1095 00:52:09,680 --> 00:52:12,300 Bob och Charlie kan fortfarande köpa saker och logga in på webbplatsen. 1096 00:52:12,300 --> 00:52:13,462 Men Alice kan inte. 1097 00:52:13,462 --> 00:52:15,170 Så du har förlorat en tredjedel av din användarbas. 1098 00:52:15,170 --> 00:52:16,980 Kanske det är bättre än 100%? 1099 00:52:16,980 --> 00:52:20,580 Men kanske det skulle vara trevligt om vi kunde fortfarande stöder 100% av våra användare 1100 00:52:20,580 --> 00:52:23,470 även när en tredjedel av vår servrar går offline. 1101 00:52:23,470 --> 00:52:24,760 >> Så vi kunde synkronisera vad? 1102 00:52:24,760 --> 00:52:29,250 Inte användarna, per se, men den databas över alla dessa servrar. 1103 00:52:29,250 --> 00:52:33,350 Så nu har vi slags behöver typ av sammankoppling 1104 00:52:33,350 --> 00:52:37,880 här så att servrarna själva kan sync-- inte orimligt. 1105 00:52:37,880 --> 00:52:40,090 Och i själva verket finns denna teknik. 1106 00:52:40,090 --> 00:52:45,550 I en värld av databaser, det finns begreppet master-slave databaser, 1107 00:52:45,550 --> 00:52:48,240 eller primär-sekundär, där bland funktionerna 1108 00:52:48,240 --> 00:52:51,050 är inte bara för att lagra data och svara med data, 1109 00:52:51,050 --> 00:52:53,375 men också bara att ständigt synkronisera med varandra. 1110 00:52:53,375 --> 00:52:56,480 Så när du skriver eller spara något till databasen, 1111 00:52:56,480 --> 00:53:00,040 det omedelbart blir "replikerade" till de andra databaser också. 1112 00:53:00,040 --> 00:53:02,870 >> Och varje gång du läser från den, det spelar ingen roll var du befinner dig. 1113 00:53:02,870 --> 00:53:05,170 För om i teorin de har alla synkroniseras, du är 1114 00:53:05,170 --> 00:53:07,710 kommer att få samma vy av data. 1115 00:53:07,710 --> 00:53:10,800 Så här låter perfekt. 1116 00:53:10,800 --> 00:53:11,883 Det måste finnas en hake. 1117 00:53:11,883 --> 00:53:15,200 1118 00:53:15,200 --> 00:53:18,990 Vad kan fångsten vara? 1119 00:53:18,990 --> 00:53:21,790 >> PUBLIK: [OHÖRBART] 1120 00:53:21,790 --> 00:53:25,830 >> DAVID Malan: Ja, så tre gånger så mycket saker kan gå fel. 1121 00:53:25,830 --> 00:53:26,930 Det är en verklighet. 1122 00:53:26,930 --> 00:53:28,480 Det kan alla vara densamma i anden. 1123 00:53:28,480 --> 00:53:30,404 Men någon måste konfigurera dessa. 1124 00:53:30,404 --> 00:53:33,070 Det finns en högre sannolikhet att något som kommer att gå fel. 1125 00:53:33,070 --> 00:53:38,130 Bara kombinatoriskt du har mer saker benägna att fel. 1126 00:53:38,130 --> 00:53:40,505 Vad är dåligt potentiellt? 1127 00:53:40,505 --> 00:53:41,380 PUBLIK: [OHÖRBART] 1128 00:53:41,380 --> 00:53:44,100 1129 00:53:44,100 --> 00:53:46,180 >> DAVID MALAN: Ja, så synkronisering kan vara dåligt. 1130 00:53:46,180 --> 00:53:48,110 Även som ni kanske vet från säkerhetskopior och sådant, 1131 00:53:48,110 --> 00:53:50,520 om du bara är blint göra säkerhetskopiering, vad om något 1132 00:53:50,520 --> 00:53:51,560 gå fel på en databas? 1133 00:53:51,560 --> 00:53:53,018 Du tar bort något du inte borde. 1134 00:53:53,018 --> 00:53:56,299 Du har omedelbart replik detta problem överallt. 1135 00:53:56,299 --> 00:53:58,840 Så Victoria var talking-- säkerhetskopior skulle vara en bra sak här. 1136 00:53:58,840 --> 00:54:00,549 Och så återkommer vi till det. 1137 00:54:00,549 --> 00:54:03,090 Och för att vara tydlig, vi pratar inte om säkerhetskopior här i sig. 1138 00:54:03,090 --> 00:54:08,240 Vi pratar om sann replikering eller synkronisering mellan servrar. 1139 00:54:08,240 --> 00:54:09,110 De är alla levande. 1140 00:54:09,110 --> 00:54:12,074 De är inte avsedda att användas för säkerhetskopiering. 1141 00:54:12,074 --> 00:54:13,294 >> PUBLIK: [OHÖRBART] 1142 00:54:13,294 --> 00:54:14,335 DAVID MALAN: Vad är det? 1143 00:54:14,335 --> 00:54:14,710 PUBLIK: Higher-- 1144 00:54:14,710 --> 00:54:15,751 DAVID MALAN: Högre kostnader. 1145 00:54:15,751 --> 00:54:20,180 Vi har tredubblat kostnaden för säker, men åtminstone när det gäller 1146 00:54:20,180 --> 00:54:21,100 av hårdvaran. 1147 00:54:21,100 --> 00:54:23,200 Eftersom en databas är bara en mjukvara. 1148 00:54:23,200 --> 00:54:25,189 Och en webbserver är en mjukvara. 1149 00:54:25,189 --> 00:54:27,980 Det är förmodligen gratis om vi använder valfritt antal open source saker. 1150 00:54:27,980 --> 00:54:30,480 Men om vi använder något som Oracle, 1151 00:54:30,480 --> 00:54:36,574 vi betalar Oracle mer pengar per licenser, eller Microsoft för tillträde. 1152 00:54:36,574 --> 00:54:38,240 Det måste vara någon annan fångst här. 1153 00:54:38,240 --> 00:54:39,240 Det kan inte vara så enkelt. 1154 00:54:39,240 --> 00:54:42,990 1155 00:54:42,990 --> 00:54:47,300 >> Så för att din poäng, jag tror det var Kareem för geografi earlier-- eller nej, 1156 00:54:47,300 --> 00:54:50,870 Roman, var det, för geography-- anta att vi är smarta om detta, 1157 00:54:50,870 --> 00:54:54,080 och vi sätter en av våra servrar, och i sin tur våra databaser, i USA, 1158 00:54:54,080 --> 00:54:56,910 och en annan i Europa, en annan i Sydamerika, en annan i Afrika, 1159 00:54:56,910 --> 00:55:00,290 en annan i Asien, någonstans vi kanske vill runt om i världen. 1160 00:55:00,290 --> 00:55:04,220 Vi vet redan från vår spår vägar som punkt A och punkt 1161 00:55:04,220 --> 00:55:06,910 B, om de är längre ifrån varandra, kommer att ta mer tid. 1162 00:55:06,910 --> 00:55:10,312 >> Och om någon av er har använt verktyg som Facebook eller Twitter 1163 00:55:10,312 --> 00:55:13,520 eller någon av dessa platser i dessa dagar som ständigt förändras på grund av användarens 1164 00:55:13,520 --> 00:55:16,880 skapade data ibland om du hit Ladda eller öppna samma sida 1165 00:55:16,880 --> 00:55:20,270 i en annan webbläsare, ser du olika versioner, nästan. 1166 00:55:20,270 --> 00:55:22,875 Du kan se någons status uppdatera här men inte här, 1167 00:55:22,875 --> 00:55:25,500 och sedan ladda om, och då är det visas, och du ladda igen, 1168 00:55:25,500 --> 00:55:26,640 och det försvinner. 1169 00:55:26,640 --> 00:55:29,076 Med andra ord, hålla ett utkik efter detta, åtminstone 1170 00:55:29,076 --> 00:55:30,950 Om du använder sociala nätverkssamarbete, särskilt. 1171 00:55:30,950 --> 00:55:33,320 >> Återigen, bara för att data som förändras så snabbt, 1172 00:55:33,320 --> 00:55:35,710 ibland servrar får ur synk. 1173 00:55:35,710 --> 00:55:37,230 Och kanske är det en super litet fönster. 1174 00:55:37,230 --> 00:55:39,970 Men 200 millisekunder, kanske ännu mer än that-- det är 1175 00:55:39,970 --> 00:55:43,415 kommer att ta vissa icke-noll mängd om tid för dessa databaser för att synkronisera. 1176 00:55:43,415 --> 00:55:45,290 Och vi är inte bara talar om en begäran. 1177 00:55:45,290 --> 00:55:48,540 Om ett företag har tusentals användare använder det samtidigt, 1178 00:55:48,540 --> 00:55:49,460 de kan buffra. 1179 00:55:49,460 --> 00:55:52,240 Med andra ord, det kanske vara en kö eller en vänta linje 1180 00:55:52,240 --> 00:55:54,950 innan alla dessa databas frågor kan synkroniseras. 1181 00:55:54,950 --> 00:55:56,610 Så kanske det är faktiskt ett par sekunder. 1182 00:55:56,610 --> 00:55:59,820 >> Och detta är sant att jag tror att även till denna dag med Facebook, varvid 1183 00:55:59,820 --> 00:56:02,010 när de synkroniserar från Östkusten till västkusten, 1184 00:56:02,010 --> 00:56:06,026 den har en icke-trivial utbredningsfördröjning, så att säga, 1185 00:56:06,026 --> 00:56:07,650 att du bara slags måste tolerera. 1186 00:56:07,650 --> 00:56:11,210 Och så är det inte så mycket ett programfel som det är en realitet 1187 00:56:11,210 --> 00:56:14,230 att användarna inte kan se korrekta data för åtminstone 1188 00:56:14,230 --> 00:56:14,970 ett par sekunder. 1189 00:56:14,970 --> 00:56:17,410 >> Jag ser detta på Twitter en hel del faktiskt där Ibland kommer jag 1190 00:56:17,410 --> 00:56:21,227 tweet i ett fönster, öppna ett annat till sedan se det för att bekräfta att det verkligen 1191 00:56:21,227 --> 00:56:22,560 gick upp, och det är inte där ännu. 1192 00:56:22,560 --> 00:56:25,340 Och jag måste slags ladda, reload, reload-- åh, det är det. 1193 00:56:25,340 --> 00:56:27,150 Och det är inte för att det inte sparades. 1194 00:56:27,150 --> 00:56:29,850 Det bara inte har förökats till andra servrar. 1195 00:56:29,850 --> 00:56:33,120 >> Så denna avvägning, gör too-- du verkligen vill utsätta sig för risken 1196 00:56:33,120 --> 00:56:37,254 att om användaren går till deras ordning historia, det är faktiskt inte där ännu? 1197 00:56:37,254 --> 00:56:38,420 Jag ser detta på vissa banker. 1198 00:56:38,420 --> 00:56:42,100 Det retar mig alltid när väl, för en, Du kan bara gå ut sex månader tillbaka 1199 00:56:42,100 --> 00:56:45,160 i ditt kontoutdrag i vissa banker, även om de i teorin borde 1200 00:56:45,160 --> 00:56:46,576 kunna ha allt på nätet. 1201 00:56:46,576 --> 00:56:48,630 De tar bara saker offline ibland. 1202 00:56:48,630 --> 00:56:51,430 Ibland too-- vilken webbplats är det? 1203 00:56:51,430 --> 00:56:53,570 Det finns en-- åh, det är GoDaddy, tror jag. 1204 00:56:53,570 --> 00:56:56,620 GoDaddy, när du checkar ut köpa ett domännamn eller något, 1205 00:56:56,620 --> 00:56:58,630 de kommer ofta ge dig en länk till ditt kvitto. 1206 00:56:58,630 --> 00:57:01,470 Och om du klickar på länken till höger bort, det ofta inte fungerar. 1207 00:57:01,470 --> 00:57:03,290 Det säger bara, återvändsgränd, ingenting här. 1208 00:57:03,290 --> 00:57:05,450 >> Och det är också på grund av dessa utbredningsfördröjningar. 1209 00:57:05,450 --> 00:57:08,290 Eftersom av någon anledning, de tar lite tid 1210 00:57:08,290 --> 00:57:09,670 att faktiskt skapa det. 1211 00:57:09,670 --> 00:57:12,070 Så det här är ungefär som du vill Dra ditt hår vid någon tidpunkt. 1212 00:57:12,070 --> 00:57:14,486 Eftersom allt du försöker göra är att lösa ett enkelt problem. 1213 00:57:14,486 --> 00:57:16,590 Och vi håller skapa nya problem för oss. 1214 00:57:16,590 --> 00:57:18,770 Så låt oss se om vi kan sorts ångra. 1215 00:57:18,770 --> 00:57:22,730 >> Det visar sig att en kombination av databaser på alla dina webbservrar 1216 00:57:22,730 --> 00:57:25,090 är egentligen inte bästa praxis. 1217 00:57:25,090 --> 00:57:27,950 I allmänhet, vad en ingenjör skulle göra, eller systemarkitekt, 1218 00:57:27,950 --> 00:57:30,340 skulle vara att ha olika nivåer av servrar. 1219 00:57:30,340 --> 00:57:33,160 Och bara för utrymme skull, jag hämtar sin databas upp här. 1220 00:57:33,160 --> 00:57:38,060 >> Vi kan ha databas och server nummer fyra här 1221 00:57:38,060 --> 00:57:42,430 som har kopplingar till var och en av dessa servrar här. 1222 00:57:42,430 --> 00:57:45,400 Så detta kan vara vår front avsluta nivå, som skulle säga. 1223 00:57:45,400 --> 00:57:47,770 Och detta skulle vara vår backend grupp. 1224 00:57:47,770 --> 00:57:50,580 Och det betyder bara att dessa vänd mot användaren. 1225 00:57:50,580 --> 00:57:53,010 Och databaserna inte vänd mot användaren. 1226 00:57:53,010 --> 00:57:55,480 Ingen användare kan direkt åtkomst till databasen. 1227 00:57:55,480 --> 00:57:59,280 >> Så låt oss nu kanske gå ner rutten Victoria föreslås. 1228 00:57:59,280 --> 00:58:00,940 Detta är en single point of failure. 1229 00:58:00,940 --> 00:58:02,290 Det gör mig obekväm. 1230 00:58:02,290 --> 00:58:05,790 Så vad är kanske mest uppenbara lösningen? 1231 00:58:05,790 --> 00:58:06,665 PUBLIK: [OHÖRBART] 1232 00:58:06,665 --> 00:58:09,979 1233 00:58:09,979 --> 00:58:11,437 DAVID MALAN: Tyvärr, säger det igen. 1234 00:58:11,437 --> 00:58:12,352 PUBLIK: [OHÖRBART] 1235 00:58:12,352 --> 00:58:13,810 DAVID MALAN: Icke-produktionsserver. 1236 00:58:13,810 --> 00:58:15,364 Vad menar du? 1237 00:58:15,364 --> 00:58:17,120 >> PUBLIK: [OHÖRBART] 1238 00:58:17,120 --> 00:58:19,120 >> DAVID MALAN: Åh, OK, så säkerhetskopior. 1239 00:58:19,120 --> 00:58:21,110 OK, så vi kunde göra det, säkert. 1240 00:58:21,110 --> 00:58:23,790 Och faktiskt detta är mycket vanligt gjort. 1241 00:58:23,790 --> 00:58:26,470 Detta kan vara databas nummer fem. 1242 00:58:26,470 --> 00:58:28,510 Men det är bara ansluten till nummer fyra. 1243 00:58:28,510 --> 00:58:31,110 Och man kan kalla det en reserv. 1244 00:58:31,110 --> 00:58:35,080 Dessa två databaser kan konfigureras att bara ständigt synkronisera 1245 00:58:35,080 --> 00:58:35,850 varandra. 1246 00:58:35,850 --> 00:58:39,010 Och så om denna maskin dör, för oavsett dum reason-- hårddisken 1247 00:58:39,010 --> 00:58:42,100 dör, någon snubblar över sladd, är vissa program bristfällig 1248 00:58:42,100 --> 00:58:46,560 och maskinen hänger sig eller crashes-- du kan ha en människa bokstavligen 1249 00:58:46,560 --> 00:58:51,090 koppla denna från väggen och i stället koppla detta i. 1250 00:58:51,090 --> 00:58:56,340 Och sedan i, låt oss säga, en några minuter, kanske en halvtimme, 1251 00:58:56,340 --> 00:58:57,210 du är online igen. 1252 00:58:57,210 --> 00:58:59,259 >> Det är inte bra, men det är också inte hemskt. 1253 00:58:59,259 --> 00:59:01,800 Och du behöver inte oroa dig om eventuella synkroniseringsproblem. 1254 00:59:01,800 --> 00:59:03,080 Eftersom allt är redan där. 1255 00:59:03,080 --> 00:59:05,000 Eftersom du hade en perfekt backup redo att gå. 1256 00:59:05,000 --> 00:59:07,100 >> Du kan vara lite snyggare om detta, 1257 00:59:07,100 --> 00:59:12,990 som vissa människor ofta gör, där du kan ha databas nummer fyra här, 1258 00:59:12,990 --> 00:59:17,480 databas nummer fem här, som pratar med varandra. 1259 00:59:17,480 --> 00:59:24,120 Men du har också denna typ av arrangement-- 1260 00:59:24,120 --> 00:59:27,440 och det avsiktligt ser rörigt, eftersom det 1261 00:59:27,440 --> 00:59:30,220 är-- där alla frontservrar kan 1262 00:59:30,220 --> 00:59:32,870 tala med alla de backend servrar. 1263 00:59:32,870 --> 00:59:38,130 Och så om denna databas inte svarar dessa front servrar har 1264 00:59:38,130 --> 00:59:40,212 att ha programmering kod i dem som säger, 1265 00:59:40,212 --> 00:59:42,170 om du inte får en anslutning till denna databas, 1266 00:59:42,170 --> 00:59:45,830 den primära omedelbart startar prata med den sekundära. 1267 00:59:45,830 --> 00:59:48,310 >> Men detta nu skjuter komplexitet till koden. 1268 00:59:48,310 --> 00:59:52,070 Och nu dina utvecklare, din programvara utvecklare, måste veta om detta. 1269 00:59:52,070 --> 00:59:56,454 Och du typ av binda den kod som du skriver till din faktiska bakre änden 1270 00:59:56,454 --> 00:59:58,370 implementeringsdetaljer, vilket gör det svårare, 1271 00:59:58,370 --> 01:00:00,670 särskilt i en större företag eller en större webbplats, 1272 01:00:00,670 --> 01:00:05,020 där du inte nödvändigtvis vill att programmerare att ha 1273 01:00:05,020 --> 01:00:10,890 att veta hur databasen ingenjörer gör sitt jobb. 1274 01:00:10,890 --> 01:00:13,810 Du kanske vill behålla dessa roller slags funktionellt distinkta så 1275 01:00:13,810 --> 01:00:16,810 att det är det här lagret av abstraktion mellan de två. 1276 01:00:16,810 --> 01:00:17,940 >> Så hur kan vi fixa det här? 1277 01:00:17,940 --> 01:00:20,290 Tja, vi typ av löst detta problem en gång tidigare. 1278 01:00:20,290 --> 01:00:25,680 Varför vi inte sätta en av dessa saker här där 1279 01:00:25,680 --> 01:00:30,947 Det talar i sin tur till nummer fyra och fem, alla den främre änden webbservrar 1280 01:00:30,947 --> 01:00:33,780 prata med denna mellanhand, och den mellanhand i sin tur rutter sina data? 1281 01:00:33,780 --> 01:00:38,494 I själva verket, vad som kan vara en bra namn för denna sak? 1282 01:00:38,494 --> 01:00:39,704 >> PUBLIK: [OHÖRBART] 1283 01:00:39,704 --> 01:00:41,120 DAVID MALAN: OK, databashanterare. 1284 01:00:41,120 --> 01:00:48,030 Men vad kan en term vara att vi kunde återanvända för denna enhet? 1285 01:00:48,030 --> 01:00:49,760 Vi balansering. 1286 01:00:49,760 --> 01:00:52,480 Ja, så egentligen är jag inte vara rättvis här. 1287 01:00:52,480 --> 01:00:56,760 Så en lastbalanserare skulle innebära att vi växla fram och tillbaka här, 1288 01:00:56,760 --> 01:00:58,836 som behöver faktiskt inte vara fallet. 1289 01:00:58,836 --> 01:01:00,460 Så det finns några sätt vi kan göra detta. 1290 01:01:00,460 --> 01:01:03,920 >> Om detta är i själva verket en lastbalanse, den historia är exakt densamma som tidigare. 1291 01:01:03,920 --> 01:01:05,230 Några av de förfrågningar gå till fyra. 1292 01:01:05,230 --> 01:01:06,150 Några av dem går till fem. 1293 01:01:06,150 --> 01:01:06,710 Och det är bra. 1294 01:01:06,710 --> 01:01:08,835 För nu kan vi hantera dubbelt så mycket genomströmning. 1295 01:01:08,835 --> 01:01:11,120 Men detta sammanhang här är super viktigt. 1296 01:01:11,120 --> 01:01:14,050 De måste ständigt vara synkroniserad och förhoppningsvis 1297 01:01:14,050 --> 01:01:17,670 är inte geografiskt alltför långt ifrån varandra så att synkroniseringen är i huvudsak 1298 01:01:17,670 --> 01:01:18,520 momentan. 1299 01:01:18,520 --> 01:01:20,410 Annars kan vi kanske har ett problem. 1300 01:01:20,410 --> 01:01:21,330 >> Så det är inte dåligt. 1301 01:01:21,330 --> 01:01:25,132 Men återigen, vi har infördes ett nytt problem. 1302 01:01:25,132 --> 01:01:26,590 Vilket problem har jag just åter? 1303 01:01:26,590 --> 01:01:30,000 1304 01:01:30,000 --> 01:01:31,020 Single point of failure. 1305 01:01:31,020 --> 01:01:32,390 Så vad är lösningen på det? 1306 01:01:32,390 --> 01:01:39,270 Så Victorias fond att spendera pengar, Vi kan ta den här killen ut och göra det. 1307 01:01:39,270 --> 01:01:41,731 Och jag ska bara flytta hit tillräckligt med utrymme. 1308 01:01:41,731 --> 01:01:43,230 Och det kommer att bli lite rörigt. 1309 01:01:43,230 --> 01:01:44,563 Jag kommer att hålla rita linjer. 1310 01:01:44,563 --> 01:01:47,080 Antag att alla av dessa linjer går in båda? 1311 01:01:47,080 --> 01:01:52,670 >> En mycket vanlig teknik här skulle vara att använda en teknik som kallas hjärtslag 1312 01:01:52,670 --> 01:01:57,390 varigenom var och en av dessa enheter, vänster och höger lastbalanserare, 1313 01:01:57,390 --> 01:02:00,740 eller vad vi nu vill kalla dem, ständigt säger, jag lever, 1314 01:02:00,740 --> 01:02:03,220 Jag lever, jag lever, jag lever. 1315 01:02:03,220 --> 01:02:05,910 En av dem som standard fungerar som den primära. 1316 01:02:05,910 --> 01:02:09,620 Så all trafik dirigeras genom den till vänster, till exempel, 1317 01:02:09,620 --> 01:02:11,260 som standard, godtyckligt. 1318 01:02:11,260 --> 01:02:16,890 >> Men så snart killen till höger inte höra från vänster killen längre, 1319 01:02:16,890 --> 01:02:20,440 den till höger är programmerad att automatiskt, till exempel, 1320 01:02:20,440 --> 01:02:24,110 ta över IP-adressen å ena till vänster, 1321 01:02:24,110 --> 01:02:28,240 och därför blir den primära, och kanske skicka ett mail eller ett textmeddelande 1322 01:02:28,240 --> 01:02:31,570 till människorna att säga, hej, den vänstra primära är offline. 1323 01:02:31,570 --> 01:02:33,310 Jag kommer att bli primärt för nu. 1324 01:02:33,310 --> 01:02:35,760 Så vice vd blir president, så att säga. 1325 01:02:35,760 --> 01:02:38,180 Och någon måste gå spara presidenten, om du vill. 1326 01:02:38,180 --> 01:02:41,090 För nu har vi en tillfällig single point of failure. 1327 01:02:41,090 --> 01:02:45,020 >> Så komplicerat eller stress som Detta kan tyckas att börja vara, 1328 01:02:45,020 --> 01:02:46,990 detta är hur man löser dessa problem. 1329 01:02:46,990 --> 01:02:48,190 Du behöver kasta pengar på det. 1330 01:02:48,190 --> 01:02:49,370 Du kastar hårdvara på det. 1331 01:02:49,370 --> 01:02:52,170 Men tyvärr du lägga komplexiteten för den. 1332 01:02:52,170 --> 01:02:56,450 Men resultatet i slutändan är att du har en mycket mer, i teorin, 1333 01:02:56,450 --> 01:02:57,670 robust arkitektur. 1334 01:02:57,670 --> 01:02:58,850 Det är fortfarande inte perfekt. 1335 01:02:58,850 --> 01:03:02,470 Eftersom även när vi have-- vi kanske inte en enda punkt av misslyckande. 1336 01:03:02,470 --> 01:03:05,240 Vi har nu dubbla felpunkter. 1337 01:03:05,240 --> 01:03:07,630 Men om två saker går fel, som absolut skulle kunna, 1338 01:03:07,630 --> 01:03:09,030 vi fortfarande kommer att vara offline. 1339 01:03:09,030 --> 01:03:11,660 >> Och så mycket vanligt i industrin är att beskriva 1340 01:03:11,660 --> 01:03:14,000 din upp tid i termer av nior. 1341 01:03:14,000 --> 01:03:18,610 Och typ av mål att sträva efter att är 99,999% 1342 01:03:18,610 --> 01:03:21,580 av tiden din webbplats är online. 1343 01:03:21,580 --> 01:03:24,170 Eller ännu bättre, lägga till en några fler nior till det. 1344 01:03:24,170 --> 01:03:28,159 Tyvärr är dessa nior är mycket dyra. 1345 01:03:28,159 --> 01:03:29,450 Och låt oss faktiskt göra detta. 1346 01:03:29,450 --> 01:03:35,510 Så om jag öppnar min stora räknaren igen, 365 dagar på ett år, 24 timmar på en dag, 1347 01:03:35,510 --> 01:03:44,780 60 minuter i en timme, och 60 sekunder i en minut, 1348 01:03:44,780 --> 01:03:48,690 det är hur många sekunder det finns i ett år om jag gjorde detta på rätt sätt. 1349 01:03:48,690 --> 01:03:55,740 Så om vi gånger detta genom 0,99999, det är hur mycket tid vi vill sträva efter. 1350 01:03:55,740 --> 01:04:00,600 Så det betyder att vi bör vara upp så många sekunder under året. 1351 01:04:00,600 --> 01:04:03,920 Så om jag nu subtrahera ursprungliga värdet, eller snarare 1352 01:04:03,920 --> 01:04:07,480 detta nya värde från first-- 316 sekunder, 1353 01:04:07,480 --> 01:04:09,640 vilket naturligtvis är fem minuter. 1354 01:04:09,640 --> 01:04:13,770 >> Så om din webbplats eller ditt företag är hävdar "fem nior", där du är 1355 01:04:13,770 --> 01:04:17,050 upp 99,99% av tiden, det betyder att du bättre 1356 01:04:17,050 --> 01:04:23,470 har varit smart nog och snabb tillräckligt och spola nog med resurser 1357 01:04:23,470 --> 01:04:27,890 att dina servrar är endast offline fem minuter av året. 1358 01:04:27,890 --> 01:04:29,980 Det är en dyr och svår sak att sträva efter. 1359 01:04:29,980 --> 01:04:31,430 >> Så det är en avvägning, alltför. 1360 01:04:31,430 --> 01:04:35,866 99,999% av tiden är ganska allra svårt och dyrt. 1361 01:04:35,866 --> 01:04:38,740 Fem minutes-- du knappt kan få till servern för att fysiskt ersätta 1362 01:04:38,740 --> 01:04:40,040 något som har gått fel. 1363 01:04:40,040 --> 01:04:42,810 Och det är därför vi börjar ledningar saker tillsammans mer komplicerade 1364 01:04:42,810 --> 01:04:48,240 apriori så att datorerna kan sorts fixa sig. 1365 01:04:48,240 --> 01:04:49,446 Ja. 1366 01:04:49,446 --> 01:04:52,344 >> PUBLIK: [OHÖRBART] 1367 01:04:52,344 --> 01:05:02,014 1368 01:05:02,014 --> 01:05:04,430 DAVID MALAN: Problemet kunde vara i valfritt antal platser. 1369 01:05:04,430 --> 01:05:05,090 Och i fact-- 1370 01:05:05,090 --> 01:05:07,101 >> PUBLIK: [OHÖRBART] 1371 01:05:07,101 --> 01:05:08,600 DAVID MALAN: Absolut, absolut. 1372 01:05:08,600 --> 01:05:10,720 Och eftersom bilden är blir mer komplicerat, 1373 01:05:10,720 --> 01:05:12,110 Det kan vara webbservrar. 1374 01:05:12,110 --> 01:05:14,690 Det kan vara strömmen till byggnaden. 1375 01:05:14,690 --> 01:05:17,900 Det kan vara något fysiskt, som kablarna fick sliten eller sparkas ut. 1376 01:05:17,900 --> 01:05:19,879 Det kan vara databasen svarar inte. 1377 01:05:19,879 --> 01:05:22,920 Det kan de uppdaterade sin drifts systemet och något hängande. 1378 01:05:22,920 --> 01:05:24,634 Så det finns så många andra rörliga delar. 1379 01:05:24,634 --> 01:05:27,050 Och så mycket av den tekniska som måste gå bakom detta 1380 01:05:27,050 --> 01:05:30,431 är egentligen bara avvägningar, som hur mycket tid, hur mycket pengar är det faktiskt 1381 01:05:30,431 --> 01:05:32,930 värd, och vilka är de hot du verkligen orolig? 1382 01:05:32,930 --> 01:05:35,471 Till exempel i den kurser jag undervisar på Harvard, 1383 01:05:35,471 --> 01:05:38,470 Vi använder en hel del av cloud computing, som vi börjar ta en titt på nu, 1384 01:05:38,470 --> 01:05:41,107 i själva verket, där vi använder Amazon Web Services. 1385 01:05:41,107 --> 01:05:42,940 Bara för att det är vi började med. 1386 01:05:42,940 --> 01:05:45,856 Men det finns allt mer i dessa dagar från Google och Microsoft och andra. 1387 01:05:45,856 --> 01:05:50,030 Och vi medvetet väljer att sätta alla av våra kurser "virtuella maskiner, 1388 01:05:50,030 --> 01:05:55,400 som de kallas, i tror jag det västra Virginia datacenter. 1389 01:05:55,400 --> 01:05:57,560 De flesta av våra studenter råkar vara från USA, 1390 01:05:57,560 --> 01:05:59,820 men det finns säkert några internationellt. 1391 01:05:59,820 --> 01:06:02,630 >> Men verkligheten är det bara enklare och det är billigare för oss 1392 01:06:02,630 --> 01:06:05,540 att sätta alla våra ägg i Virginia korgen, 1393 01:06:05,540 --> 01:06:08,050 även om jag vet om något går fel i Virginia, 1394 01:06:08,050 --> 01:06:12,760 som har ibland happened-- som om det finns en orkan eller någon väder 1395 01:06:12,760 --> 01:06:15,890 händelse som, om det finns några elnätet fråga eller like-- alla 1396 01:06:15,890 --> 01:06:20,240 av våra kursernas uppgifter kan gå offline för ett visst antal minuter eller timmar 1397 01:06:20,240 --> 01:06:21,600 eller ännu längre. 1398 01:06:21,600 --> 01:06:24,020 >> Men mängden komplexitet som skulle krävas, 1399 01:06:24,020 --> 01:06:26,895 och hur mycket pengar som skulle krävas för att driva allt 1400 01:06:26,895 --> 01:06:31,420 parallellt i Europa eller i Kalifornien bara inte göra så mycket känsla. 1401 01:06:31,420 --> 01:06:35,080 Så det är en rationell handel off, men en smärtsam en 1402 01:06:35,080 --> 01:06:37,740 när du faktiskt med att driftstopp. 1403 01:06:37,740 --> 01:06:41,830 >> Nåväl, låt oss övergång just nu några av de molnbaserade lösningar 1404 01:06:41,830 --> 01:06:43,320 till några av dessa problem. 1405 01:06:43,320 --> 01:06:45,040 Allt vi har varit diskuterar hittills 1406 01:06:45,040 --> 01:06:47,527 är typ av problem som har varit med oss ​​under en längre tid, 1407 01:06:47,527 --> 01:06:49,610 om du har en egen servrar i ditt företag, 1408 01:06:49,610 --> 01:06:52,740 om du går till en co-location plats som ett datacenter och dela 1409 01:06:52,740 --> 01:06:55,110 utrymme med någon annan, eller numera i molnet. 1410 01:06:55,110 --> 01:06:57,040 >> Och vad är trevligt om molnet är att alla 1411 01:06:57,040 --> 01:06:59,540 av dessa saker jag är teckning som fysiska objekt 1412 01:06:59,540 --> 01:07:02,400 kan nu betraktas som slags virtuella föremål 1413 01:07:02,400 --> 01:07:04,659 i molnet som är simuleras med mjukvara. 1414 01:07:04,659 --> 01:07:07,700 Med andra ord, den datorer idag, servrar i dag, som Dell bilden 1415 01:07:07,700 --> 01:07:11,720 Jag visade tidigare, är så snabb, har så mycket RAM, så mycket CPU, så mycket disk 1416 01:07:11,720 --> 01:07:16,140 utrymme, att folk har skrivit programvara för att praktiskt taget partition 1417 01:07:16,140 --> 01:07:21,130 en server upp i en illusion av det är två servrar, eller 200 servrar, så 1418 01:07:21,130 --> 01:07:24,150 att var och en av oss kunder har illusionen av att ha 1419 01:07:24,150 --> 01:07:29,110 inte bara ett konto på några web värd, men vår egen maskin som vi är 1420 01:07:29,110 --> 01:07:30,490 hyra från någon annan. 1421 01:07:30,490 --> 01:07:34,140 >> Men det är en virtuell maskin i så långt som på en Dell-server, 1422 01:07:34,140 --> 01:07:39,160 det igen kan partitioneras upp i två eller 200 eller flera virtuella maskiner, 1423 01:07:39,160 --> 01:07:43,770 som alla ger någon administrativ tillgång, men på ett sätt där ingen av oss 1424 01:07:43,770 --> 01:07:48,040 vet eller kan få tillgång till andra virtuella maskiner på samma hårdvara. 1425 01:07:48,040 --> 01:07:53,430 Så för att måla en bild i dagens diabilder, Jag har detta in här från en webbplats 1426 01:07:53,430 --> 01:07:54,160 kallas Docker. 1427 01:07:54,160 --> 01:07:56,970 >> Så det här är lite mer detalj än vad vi faktiskt behöver. 1428 01:07:56,970 --> 01:07:59,830 Men om du ser detta som din infrastructure-- 1429 01:07:59,830 --> 01:08:02,910 så bara hårdvaran ditt eget, servrar, rack, data 1430 01:08:02,910 --> 01:08:06,480 centrum, och alla that-- du skulle typiskt kör ett värdoperativsystemet. 1431 01:08:06,480 --> 01:08:08,275 Så något like-- det kan vara Windows. 1432 01:08:08,275 --> 01:08:09,430 Det skulle inte vara Mac OS. 1433 01:08:09,430 --> 01:08:11,430 Eftersom det är inte riktigt företag i dessa dagar. 1434 01:08:11,430 --> 01:08:15,670 Så det skulle vara Linux eller Solaris eller Unix eller BSD eller FreeBSD 1435 01:08:15,670 --> 01:08:19,779 eller valfritt antal andra operativsystem som är antingen gratis eller kommersiellt. 1436 01:08:19,779 --> 01:08:22,120 >> Och sedan kör en program, särskilt program, 1437 01:08:22,120 --> 01:08:26,479 kallas en hypervisor, eller virtuell maskin bildskärm, VMM. 1438 01:08:26,479 --> 01:08:31,649 Och dessa är produkter, om du är bekant, som VMware eller VirtualBox 1439 01:08:31,649 --> 01:08:34,080 eller Virtual PC eller andra. 1440 01:08:34,080 --> 01:08:38,430 Och vad dessa program gör är exakt den funktionen jag beskrev tidigare. 1441 01:08:38,430 --> 01:08:41,779 Det skapar en illusion att en fysisk maskin 1442 01:08:41,779 --> 01:08:44,550 kan vara flera virtuella maskiner. 1443 01:08:44,550 --> 01:08:48,260 >> Och så dessa färgglada lådor där uppe är måla en bild av följande. 1444 01:08:48,260 --> 01:08:50,260 Denna hypervisor, detta mjukvara, kallar det 1445 01:08:50,260 --> 01:08:54,090 VMware, som körs på någon annan operativsystem, kalla det Linux, 1446 01:08:54,090 --> 01:08:56,910 skapar en illusion av att denna fysiska dator är faktiskt 1447 01:08:56,910 --> 01:09:00,149 en, två, tre virtuella datorer. 1448 01:09:00,149 --> 01:09:04,270 Så jag har nu köpt, som ägare av denna hårdvara, en fysisk dator. 1449 01:09:04,270 --> 01:09:06,200 Och nu är jag hyra det till tre kunder. 1450 01:09:06,200 --> 01:09:09,731 >> Och dessa tre kunder tycker de har en dedikerad virtuell maskin. 1451 01:09:09,731 --> 01:09:10,939 Och det är inte bete och switch. 1452 01:09:10,939 --> 01:09:13,750 Det är mer avslöjande som du använder en virtuell maskin. 1453 01:09:13,750 --> 01:09:17,589 Men tekniskt, vi alla ha full administrativ kontroll 1454 01:09:17,589 --> 01:09:19,880 över var och en av de gäst operativsystem, vilket kan 1455 01:09:19,880 --> 01:09:21,370 vara vilken som helst antal operativsystem. 1456 01:09:21,370 --> 01:09:23,029 >> Jag kan installera vad jag vill. 1457 01:09:23,029 --> 01:09:24,640 Jag kan uppgradera det som jag vill. 1458 01:09:24,640 --> 01:09:27,470 Och jag behöver inte ens veta eller bryr sig om övriga rörelse 1459 01:09:27,470 --> 01:09:29,678 system på datorn, de andra virtuella maskiner, 1460 01:09:29,678 --> 01:09:35,290 om inte ägaren av allt detta grå grejer är lite girig 1461 01:09:35,290 --> 01:09:37,540 och overselling sina resurser. 1462 01:09:37,540 --> 01:09:40,800 >> Så om du tar en fysisk maskin och sälja det 1463 01:09:40,800 --> 01:09:44,399 att inte 200 utan 400 kunder, vid någon punkt 1464 01:09:44,399 --> 01:09:47,270 vi kommer att resa in i de samma prestandaproblem som tidigare. 1465 01:09:47,270 --> 01:09:50,460 Eftersom du bara har en begränsad mängden disk och RAM och så vidare. 1466 01:09:50,460 --> 01:09:53,450 Och en virtuell maskin är bara ett program som är 1467 01:09:53,450 --> 01:09:56,140 låtsas vara en fullt utvecklad dator. 1468 01:09:56,140 --> 01:09:58,040 Så du får vad du betalar för här. 1469 01:09:58,040 --> 01:10:02,150 >> Så du hittar på nätet du kan betala en välkänt företag kanske $ 100 per månad 1470 01:10:02,150 --> 01:10:05,660 för din egen virtuell maskin, eller din egen virtuell privat server, 1471 01:10:05,660 --> 01:10:07,090 som är en annan term för det. 1472 01:10:07,090 --> 01:10:10,400 Eller du kan hitta några flyga genom natten där du betalar $ 5,99 per månad 1473 01:10:10,400 --> 01:10:12,080 för din egen virtuella maskin. 1474 01:10:12,080 --> 01:10:15,614 Men oddsen är att du inte har nästan så mycket prestanda tillgängliga för dig, 1475 01:10:15,614 --> 01:10:18,530 eftersom de har overselling det så, än du skulle med högre 1476 01:10:18,530 --> 01:10:22,340 tier service eller bättre leverantör. 1477 01:10:22,340 --> 01:10:24,590 >> Så vad betyder det egentligen betyder för oss? 1478 01:10:24,590 --> 01:10:26,110 Så låt mig gå till denna. 1479 01:10:26,110 --> 01:10:29,580 Jag kommer att gå till aws.amazon.com. 1480 01:10:29,580 --> 01:10:31,590 Bara för att de har en trevlig meny med alternativ. 1481 01:10:31,590 --> 01:10:34,700 Men samma lektioner gäller en massa andra molnleverantörer. 1482 01:10:34,700 --> 01:10:38,201 Tyvärr är det ofta mer marknadsföring talar än något annat. 1483 01:10:38,201 --> 01:10:39,200 Och detta håller på att förändras. 1484 01:10:39,200 --> 01:10:41,820 Så du går till en webbplats som denna. 1485 01:10:41,820 --> 01:10:44,560 Och detta har verkligen inte berätta mycket av någonting. 1486 01:10:44,560 --> 01:10:47,780 >> Och även jag, som jag ser på detta, inte verkligen vet vad någon av dessa saker 1487 01:10:47,780 --> 01:10:49,334 nödvändigtvis göra tills jag dyka i. 1488 01:10:49,334 --> 01:10:50,875 Men låt oss börja på vänster, Compute. 1489 01:10:50,875 --> 01:10:52,980 Och jag kommer att klicka på denna. 1490 01:10:52,980 --> 01:10:56,960 Och nu Amazon har sagt en överväldigande antal tjänster 1491 01:10:56,960 --> 01:10:57,960 dessa dagar. 1492 01:10:57,960 --> 01:11:01,040 Men Amazon EC2 är kanske det enklaste. 1493 01:11:01,040 --> 01:11:05,840 >> Amazon EC2 skapar för oss exakt bilden vi såg för en stund sedan. 1494 01:11:05,840 --> 01:11:10,240 Det är hur de gör en hel del sina pengar i molnet. 1495 01:11:10,240 --> 01:11:12,910 Tydligen Netflix och andra är i molnet med dem. 1496 01:11:12,910 --> 01:11:16,260 Detta är allt normalt fluffigt marknadsföring tala. 1497 01:11:16,260 --> 01:11:19,720 Så vad jag vill göra är att gå till Pricing-- eller snarare låt oss gå till instanser 1498 01:11:19,720 --> 01:11:23,790 först bara för att måla en bild av detta. 1499 01:11:23,790 --> 01:11:25,800 >> Så detta kommer att variera beroende på leverantör. 1500 01:11:25,800 --> 01:11:29,590 Och vi behöver inte bli alltför djupt in ogräs här om hur detta fungerar. 1501 01:11:29,590 --> 01:11:34,720 Men vägen Amazon, till exempel, hyr du en virtuell maskin eller en server 1502 01:11:34,720 --> 01:11:37,200 i molnet är de har fått denna typ av roliga namn, 1503 01:11:37,200 --> 01:11:41,000 liknande t2.nano, vilket innebär små, eller t2.large, vilket innebär stor. 1504 01:11:41,000 --> 01:11:43,970 Var och en av dem ger dig antingen en eller två virtuella processorer. 1505 01:11:43,970 --> 01:11:45,470 >> Varför är det en virtuell processor? 1506 01:11:45,470 --> 01:11:49,440 Tja, den fysiska maskinen kanske har 64 eller fler verkliga processorer. 1507 01:11:49,440 --> 01:11:52,125 Men återigen, genom programvara, de skapar en illusion 1508 01:11:52,125 --> 01:11:55,410 att att en maskin kan vara divvied upp till flera användare. 1509 01:11:55,410 --> 01:11:58,765 Så vi kan tänka på detta som med en Intel-processor eller två. 1510 01:11:58,765 --> 01:12:01,290 CPU poäng per hour-- jag skulle måste läsa det finstilta 1511 01:12:01,290 --> 01:12:02,581 vad detta egentligen innebär. 1512 01:12:02,581 --> 01:12:05,850 Det betyder hur mycket av maskinens du kan använda per timme gentemot 1513 01:12:05,850 --> 01:12:07,730 andra kunder på den hårdvara. 1514 01:12:07,730 --> 01:12:11,560 >> Här är hur mycket RAM eller minne du get-- antingen en halv gigabyte eller 500 1515 01:12:11,560 --> 01:12:14,120 megabyte, eller en gigabyte eller två. 1516 01:12:14,120 --> 01:12:17,390 Och sedan lagring hänvisar bara till vilken typ av skivor som de ger dig. 1517 01:12:17,390 --> 01:12:19,950 Det finns olika lagrings tekniker som de erbjuder. 1518 01:12:19,950 --> 01:12:22,870 Men mer intressant än detta då kanske prissättningen. 1519 01:12:22,870 --> 01:12:25,860 >> Så om du är CTO eller en ingenjör som inte 1520 01:12:25,860 --> 01:12:28,420 vill köra en server i din kontor, av någon anledning, 1521 01:12:28,420 --> 01:12:30,230 och det är alldeles för komplicerade eller dyra 1522 01:12:30,230 --> 01:12:33,930 att köpa servrar och samlokalisera dem och betala hyra i någon fysisk bur utrymme 1523 01:12:33,930 --> 01:12:36,670 somewhere-- du bara vill sitta på din laptop sent på natten, 1524 01:12:36,670 --> 01:12:40,480 Skriv in dina kreditkortsuppgifter, och hyr servrar i cloud-- väl, 1525 01:12:40,480 --> 01:12:41,920 vi kan göra det här. 1526 01:12:41,920 --> 01:12:45,769 Jag kommer att gå ner att-- Linux är ett populärt operativsystem. 1527 01:12:45,769 --> 01:12:47,310 Och låt oss bara få en känsla av saker. 1528 01:12:47,310 --> 01:12:48,990 Whoops-- för stor. 1529 01:12:48,990 --> 01:12:53,670 >> Så låt oss titta på deras minsta virtuell maskin, som verkar ha, 1530 01:12:53,670 --> 01:12:57,440 för våra syften, en CPU och 500 megabyte RAM. 1531 01:12:57,440 --> 01:12:58,440 Det är ganska liten. 1532 01:12:58,440 --> 01:13:00,820 Men ärligt talat, webbservrar inte behöver göra så mycket. 1533 01:13:00,820 --> 01:13:02,630 Du har bättre specs i din bärbara dator. 1534 01:13:02,630 --> 01:13:04,990 Men du behöver inte de specs dessa dagar för saker. 1535 01:13:04,990 --> 01:13:11,490 Du kommer att betala $ 0,0065 per timme. 1536 01:13:11,490 --> 01:13:12,080 >> Så låt oss se. 1537 01:13:12,080 --> 01:13:15,970 Om det finns 24 timmar på en dag, och vi betalar så mycket per timme, 1538 01:13:15,970 --> 01:13:20,680 det kommer att kosta $ 0,15 till hyra som viss server i molnet. 1539 01:13:20,680 --> 01:13:22,210 Och det är bara för en dag. 1540 01:13:22,210 --> 01:13:27,050 Om vi ​​gör detta 365-- $ 57 hyr just den servern. 1541 01:13:27,050 --> 01:13:28,420 Så det låter super billigt. 1542 01:13:28,420 --> 01:13:31,100 >> Det är också super låg prestanda. 1543 01:13:31,100 --> 01:13:37,169 Så vi, för kurser jag undervisar här tenderar att använda Jag tror t2.smalls eller t2.mediums. 1544 01:13:37,169 --> 01:13:39,960 Och vi kan ha ett par hundra användare, ett par tusen användare, totalt. 1545 01:13:39,960 --> 01:13:40,900 Det är ganska blygsam. 1546 01:13:40,900 --> 01:13:42,360 Så låt oss se vad det skulle kosta. 1547 01:13:42,360 --> 01:13:49,260 Så om jag gör detta kostnads ​​gånger 24 tiderna 365, detta är $ 225. 1548 01:13:49,260 --> 01:13:51,160 Och för kurserna Jag undervisar vi i allmänhet 1549 01:13:51,160 --> 01:13:54,970 köra två av allt, för redundans och även för prestanda. 1550 01:13:54,970 --> 01:13:59,230 Så vi kan spendera därför $ 500 för servrar 1551 01:13:59,230 --> 01:14:00,860 att vi kanske behöver per år. 1552 01:14:00,860 --> 01:14:05,210 >> Nu, om du behöver mer performance-- låt oss ta en titt på minne. 1553 01:14:05,210 --> 01:14:06,810 Vi har talat om minnet ganska lite. 1554 01:14:06,810 --> 01:14:09,330 Och om du behöver mer memory-- och 64 gigabyte 1555 01:14:09,330 --> 01:14:12,310 är numret jag höll mentioning-- detta är nästan $ 1 per timme. 1556 01:14:12,310 --> 01:14:16,180 Och du kan ganska snabbt se var detta goes-- så 24 timmar gånger 365. 1557 01:14:16,180 --> 01:14:20,580 Så nu är det $ 8000 per år för en ganska ordentlig server. 1558 01:14:20,580 --> 01:14:23,010 >> Så någon gång, det finns denna inflexionspunkt 1559 01:14:23,010 --> 01:14:29,510 där vi nu kan ägna $ 6000 förmodligen och köpa en maskin som det 1560 01:14:29,510 --> 01:14:33,800 och amortera kostnaden över kanske två, tre år, livet i maskinen. 1561 01:14:33,800 --> 01:14:38,880 Men vad som kan skjuta dig i gynna eller onåd för att hyra 1562 01:14:38,880 --> 01:14:41,230 en maskin i molnet så här? 1563 01:14:41,230 --> 01:14:44,110 Återigen, detta kan jämföras, förmodligen, till en av de Dell-servrar 1564 01:14:44,110 --> 01:14:47,208 Vi såg bilden lite sedan. 1565 01:14:47,208 --> 01:14:51,016 >> PUBLIK: [OHÖRBART] 1566 01:14:51,016 --> 01:14:54,350 1567 01:14:54,350 --> 01:14:56,190 >> DAVID MALAN: Ja, det är en enorm upp. 1568 01:14:56,190 --> 01:14:58,640 Eftersom vi inte köpa maskin, har vi inte att unbox det. 1569 01:14:58,640 --> 01:14:59,600 Vi behöver inte lyfta den. 1570 01:14:59,600 --> 01:15:01,110 Vi behöver inte koppla in den i vår rack. 1571 01:15:01,110 --> 01:15:02,080 Vi behöver inte koppla in den. 1572 01:15:02,080 --> 01:15:03,140 Vi behöver inte betala den elektriska räkningen. 1573 01:15:03,140 --> 01:15:05,120 >> Vi behöver inte vända luftkonditioneringen. 1574 01:15:05,120 --> 01:15:07,620 När en hårddisk dör, har vi inte att köra i mitt i natten 1575 01:15:07,620 --> 01:15:08,172 att åtgärda det. 1576 01:15:08,172 --> 01:15:09,630 Vi behöver inte ställa in övervakning. 1577 01:15:09,630 --> 01:15:13,750 Vi har inte att-- listan fortsätter och på av alla de fysiska saker 1578 01:15:13,750 --> 01:15:15,810 du behöver inte göra på grund av "molnet". 1579 01:15:15,810 --> 01:15:18,620 >> Och för att vara tydlig, cloud computing detta är mycket överutnyttjas sikt. 1580 01:15:18,620 --> 01:15:22,790 Det är verkligen bara innebär att betala någon annat att köra servrar för dig, 1581 01:15:22,790 --> 01:15:25,300 eller hyra utrymme på någon annans servrar. 1582 01:15:25,300 --> 01:15:27,110 Så termen "cloud computing" är nytt. 1583 01:15:27,110 --> 01:15:30,260 Tanken är decennier gamla. 1584 01:15:30,260 --> 01:15:32,070 Så det är ganska övertygande. 1585 01:15:32,070 --> 01:15:33,960 >> Och vad mer får du? 1586 01:15:33,960 --> 01:15:38,287 Tja, du får också möjlighet att göra allt på en bärbar dator hemma. 1587 01:15:38,287 --> 01:15:40,620 Med andra ord, alla bilder jag bara drawing-- 1588 01:15:40,620 --> 01:15:44,010 och det var inte så länge sedan att även Jag kröp runt på en server golv 1589 01:15:44,010 --> 01:15:46,680 ansluta kablarna i för var och en av de linjer som du ser, 1590 01:15:46,680 --> 01:15:49,590 och uppgradera operativsystemet system och förändrade kör runt. 1591 01:15:49,590 --> 01:15:51,610 Det finns en hel del kroppslighet till allt detta. 1592 01:15:51,610 --> 01:15:55,300 >> Men vad är vackert om virtuell maskiner, som namnet slags antyder, 1593 01:15:55,300 --> 01:15:57,600 nu finns det webbaserade gränssnitt varigenom 1594 01:15:57,600 --> 01:15:59,900 om du vill att motsvarande om en linje från denna server 1595 01:15:59,900 --> 01:16:03,959 till en annan, bara skriver, typ, typ, klicka och dra, klicka på Skicka, och voila, 1596 01:16:03,959 --> 01:16:05,250 du har det trådbundna upp virtuellt. 1597 01:16:05,250 --> 01:16:07,235 Eftersom det är allt gjort i mjukvara. 1598 01:16:07,235 --> 01:16:09,110 Och anledningen till det är gjort i programvara är igen 1599 01:16:09,110 --> 01:16:12,650 eftersom vi har så mycket RAM-minne och så mycket CPU tillgänglig för oss dessa dagar, 1600 01:16:12,650 --> 01:16:14,880 trots allt sånt tar tid, 1601 01:16:14,880 --> 01:16:18,450 det är långsammare att köra saker i mjukvara än hårdvara, 1602 01:16:18,450 --> 01:16:23,710 precis som det är långsammare att använda en mekanisk enhet som en hårddisk än RAM, 1603 01:16:23,710 --> 01:16:25,190 något rent elektronisk. 1604 01:16:25,190 --> 01:16:27,490 Vi har så många resurser tillgängliga för oss. 1605 01:16:27,490 --> 01:16:29,920 Vi människor är slags invariantly långsam. 1606 01:16:29,920 --> 01:16:33,840 Och så nu maskinerna kan göra så mycket mer per tidsenhet. 1607 01:16:33,840 --> 01:16:36,640 Vi har dessa förmågor att göra saker virtuellt. 1608 01:16:36,640 --> 01:16:39,120 >> Och jag kommer att säga för kurser Jag undervisar, till exempel här, 1609 01:16:39,120 --> 01:16:43,464 vi har om kanske ett dussin eller så totalt virtuella maskiner 1610 01:16:43,464 --> 01:16:45,880 så körs vid varje given tid gör front saker, 1611 01:16:45,880 --> 01:16:47,620 gör backend saker. 1612 01:16:47,620 --> 01:16:50,237 Vi har alla vårt lager. 1613 01:16:50,237 --> 01:16:52,820 Så några videoklipp, inklusive saker så här att vi skjuter, 1614 01:16:52,820 --> 01:16:54,330 vi hamna sätta in i molnet. 1615 01:16:54,330 --> 01:16:58,710 Amazon har tjänster som kallas Amazon S3, deras enkla lagringstjänst, som 1616 01:16:58,710 --> 01:17:00,397 är precis som diskutrymme i molnet. 1617 01:17:00,397 --> 01:17:02,230 De har något kallas Cloudfront, som 1618 01:17:02,230 --> 01:17:06,040 är en CDN tjänster, innehåll Delivery Network service, som 1619 01:17:06,040 --> 01:17:10,190 innebär att de tar alla dina filer och för dig auto replikera det 1620 01:17:10,190 --> 01:17:11,290 runt världen. 1621 01:17:11,290 --> 01:17:12,780 >> Så att de inte gör det i förebyggande syfte. 1622 01:17:12,780 --> 01:17:15,159 Men första gången någon i Indien begär filen, 1623 01:17:15,159 --> 01:17:16,700 de kommer potentiellt cache det lokalt. 1624 01:17:16,700 --> 01:17:19,325 Första gången i Kina, första gången i Brasilien som händer, 1625 01:17:19,325 --> 01:17:20,880 de börjar caching det lokalt. 1626 01:17:20,880 --> 01:17:22,730 Och du behöver inte göra något av det. 1627 01:17:22,730 --> 01:17:26,710 Och så är det så otroligt tvingande dessa dagar att flytta saker 1628 01:17:26,710 --> 01:17:27,890 i molnet. 1629 01:17:27,890 --> 01:17:31,890 Eftersom du har denna förmåga bokstav att inte ha människor gör nästan lika mycket 1630 01:17:31,890 --> 01:17:32,390 arbete. 1631 01:17:32,390 --> 01:17:35,930 Och du bokstavligen inte behöver så många människor gör dessa jobb anymore-- 1632 01:17:35,930 --> 01:17:38,450 "ops" eller operativa roller, längre. 1633 01:17:38,450 --> 01:17:43,150 Du egentligen bara behöver utvecklare och färre ingenjörer 1634 01:17:43,150 --> 01:17:44,840 som bara kan göra saker virtuellt. 1635 01:17:44,840 --> 01:17:46,590 I själva verket bara för att ge dig en känsla av detta, 1636 01:17:46,590 --> 01:17:51,800 Låt mig gå till prissättning för en annan produkt här. 1637 01:17:51,800 --> 01:17:58,170 Låt oss se något som CDN S3. 1638 01:17:58,170 --> 01:18:01,140 Så detta är i huvudsak en virtuell hårddisk i molnet. 1639 01:18:01,140 --> 01:18:14,360 Och om vi bläddra ner till pricing-- så det är $ 0,007 per gigabyte. 1640 01:18:14,360 --> 01:18:16,300 Och that's-- hur gör vi det? 1641 01:18:16,300 --> 01:18:17,410 Jag tror att det är per månad. 1642 01:18:17,410 --> 01:18:21,530 >> Så om det är per month-- eller per dag? 1643 01:18:21,530 --> 01:18:23,200 Dan, är det per dag? 1644 01:18:23,200 --> 01:18:24,700 Detta är per månad, OK. 1645 01:18:24,700 --> 01:18:28,280 Så om detta är per month-- Tyvärr är det $ 0,03 per månad. 1646 01:18:28,280 --> 01:18:29,820 Det finns 12 månader av året. 1647 01:18:29,820 --> 01:18:32,250 Så hur mycket data kan du lagra i molnet? 1648 01:18:32,250 --> 01:18:37,410 En gigabyte är inte stor, men jag vet inte, som en terabyte, 1649 01:18:37,410 --> 01:18:38,460 så som 1000 av dem. 1650 01:18:38,460 --> 01:18:39,501 Det är inte så mycket. 1651 01:18:39,501 --> 01:18:44,382 Det är $ 368 för att lagra en terabyte av data i Amazons moln. 1652 01:18:44,382 --> 01:18:46,090 Så vad är några av de avvägningar, då? 1653 01:18:46,090 --> 01:18:47,970 Det kan inte alla vara bra. 1654 01:18:47,970 --> 01:18:52,260 Ingenting vi har talat om i dag är typ av utan en hake eller en kostnad. 1655 01:18:52,260 --> 01:18:55,269 Så vad är dåligt om att flytta allt i molnet? 1656 01:18:55,269 --> 01:18:56,060 PUBLIK: Säkerhet. 1657 01:18:56,060 --> 01:18:57,721 DAVID MALAN: OK, vad menar du? 1658 01:18:57,721 --> 01:18:58,596 PUBLIK: [OHÖRBART] 1659 01:18:58,596 --> 01:19:01,589 1660 01:19:01,589 --> 01:19:02,630 DAVID MALAN: Jo, rätt. 1661 01:19:02,630 --> 01:19:05,130 Och vill du verkligen vissa slumpmässiga ingenjörer 1662 01:19:05,130 --> 01:19:08,750 på Amazon att du aldrig träffa med fysisk tillgång till dessa datorer, 1663 01:19:08,750 --> 01:19:11,010 och om de verkligen ville, virtuell tillgång? 1664 01:19:11,010 --> 01:19:15,070 Och även om det i teori software-- väl, 1665 01:19:15,070 --> 01:19:17,442 kryptering kan absolut skydda dig mot detta. 1666 01:19:17,442 --> 01:19:19,150 Så om vad du lagring på dina servrar 1667 01:19:19,150 --> 01:19:21,470 är encrypted-- mindre problematiska. 1668 01:19:21,470 --> 01:19:25,010 >> Men så snart som en människa har fysisk tillgång till en maskin, kryptering åt sidan, 1669 01:19:25,010 --> 01:19:26,100 alla satsningar är slags off. 1670 01:19:26,100 --> 01:19:28,240 Du kanske känner igen från förr att datorer i synnerhet, 1671 01:19:28,240 --> 01:19:30,360 även om du hade dessa saker kallade "BIOS-lösenord" 1672 01:19:30,360 --> 01:19:33,360 var när skrivbordet startas upp, du skulle bli tillfrågad med ett lösenord som 1673 01:19:33,360 --> 01:19:35,980 har ingenting att göra med Windows kan du vanligtvis 1674 01:19:35,980 --> 01:19:39,750 bara öppna chassi maskin, hitta små små stift, 1675 01:19:39,750 --> 01:19:42,240 och använda något som kallas en bygel och bara koppla 1676 01:19:42,240 --> 01:19:45,690 dessa två ledningar för ungefär en sekund, därigenom fullborda en krets. 1677 01:19:45,690 --> 01:19:47,360 Och det skulle eliminera lösenord. 1678 01:19:47,360 --> 01:19:49,800 >> Så när du har fysisk tillgång till en enhet, kan du göra saker som. 1679 01:19:49,800 --> 01:19:51,110 Du kan ta bort hårddisken. 1680 01:19:51,110 --> 01:19:53,060 Du kan få tillgång till det på det sättet. 1681 01:19:53,060 --> 01:19:55,442 Och så det är därför, i fallet med Dropbox, 1682 01:19:55,442 --> 01:19:57,900 till exempel, det är lite oroande att inte bara göra de 1683 01:19:57,900 --> 01:20:02,860 ha data, även om det är krypterad, har de också nyckeln. 1684 01:20:02,860 --> 01:20:04,993 Andra bekymmer? 1685 01:20:04,993 --> 01:20:08,430 >> PUBLIK: [OHÖRBART] 1686 01:20:08,430 --> 01:20:27,740 1687 01:20:27,740 --> 01:20:30,240 DAVID MALAN: Ja, det är mycket true-- det Googles, äpplen, 1688 01:20:30,240 --> 01:20:31,406 de Microsofts av världen. 1689 01:20:31,406 --> 01:20:34,400 Och faktiskt, hur länge har du hade din iPhone för? 1690 01:20:34,400 --> 01:20:35,885 Ja, ge eller ta. 1691 01:20:35,885 --> 01:20:36,760 PUBLIK: [OHÖRBART] 1692 01:20:36,760 --> 01:20:37,780 DAVID MALAN: Jag är ledsen? 1693 01:20:37,780 --> 01:20:39,667 Du är bland dem som har en iPhone, eller hur? 1694 01:20:39,667 --> 01:20:40,250 PUBLIK: Ja. 1695 01:20:40,250 --> 01:20:42,208 DAVID MALAN: Hur länge har du haft din iPhone? 1696 01:20:42,208 --> 01:20:43,372 PUBLIK: [OHÖRBART] 1697 01:20:43,372 --> 01:20:45,080 DAVID MALAN: OK, så Äpple rally vet 1698 01:20:45,080 --> 01:20:49,030 där du har varit varje timme dagen för de senaste fem åren. 1699 01:20:49,030 --> 01:20:51,112 >> PUBLIK: [OHÖRBART] 1700 01:20:51,112 --> 01:20:54,626 1701 01:20:54,626 --> 01:20:56,375 DAVID MALAN: Vilket är en underbar funktion. 1702 01:20:56,375 --> 01:20:57,860 PUBLIK: [OHÖRBART] 1703 01:20:57,860 --> 01:21:00,875 DAVID MALAN: Ja, men avvägning för säker. 1704 01:21:00,875 --> 01:21:01,750 PUBLIK: [OHÖRBART] 1705 01:21:01,750 --> 01:21:04,720 1706 01:21:04,720 --> 01:21:07,813 >> DAVID MALAN: Ja, det är mycket lätt att. 1707 01:21:07,813 --> 01:21:08,688 PUBLIK: [OHÖRBART] 1708 01:21:08,688 --> 01:21:12,040 1709 01:21:12,040 --> 01:21:13,248 DAVID MALAN: Andra nackdelar? 1710 01:21:13,248 --> 01:21:16,995 PUBLIK: [OHÖRBART] 1711 01:21:16,995 --> 01:21:26,151 1712 01:21:26,151 --> 01:21:27,900 DAVID MALAN: Absolutely-- teknologiskt, 1713 01:21:27,900 --> 01:21:31,550 ekonomiskt, det är ganska övertygande att sorts få dessa stordriftsfördelar 1714 01:21:31,550 --> 01:21:33,579 och flytta allt till den så kallade molnet. 1715 01:21:33,579 --> 01:21:35,870 Men du förmodligen vill gå med några av de största 1716 01:21:35,870 --> 01:21:39,380 fisk, Amazon, den Googles den Microsofts-- Rackspace är ganska big-- 1717 01:21:39,380 --> 01:21:42,200 och några andra, och inte nödvändigtvis flyga by night folks 1718 01:21:42,200 --> 01:21:45,640 för vilka det är väldigt lätt att göra denna typ av teknik nuförtiden. 1719 01:21:45,640 --> 01:21:49,140 Och det är som du kan betala $ 5,99 per månad. 1720 01:21:49,140 --> 01:21:50,890 Men du kommer säkert får vad du betalar för. 1721 01:21:50,890 --> 01:21:54,014 >> När du säger [OHÖRBART], det är då saker som dessa fem nior kommit upp, 1722 01:21:54,014 --> 01:21:58,017 varigenom även om tekniskt Vi kan inte riktigt garantera 99,999, 1723 01:21:58,017 --> 01:22:00,350 Vi ska bara bygga på någon form påföljd att avtalet 1724 01:22:00,350 --> 01:22:03,910 så att om det sker, åtminstone Det finns vissa kostnader för oss, säljaren. 1725 01:22:03,910 --> 01:22:07,950 Och det är vad du skulle normalt att få dem att gå med på. 1726 01:22:07,950 --> 01:22:09,590 >> PUBLIK: [OHÖRBART] 1727 01:22:09,590 --> 01:22:12,290 >> DAVID MALAN: Och ett slags välsignelse 1728 01:22:12,290 --> 01:22:15,630 är att även när vi går ner, för exempel, eller ens vissa företag, 1729 01:22:15,630 --> 01:22:17,800 verkligheten är Amazon, till exempel, har så många 1730 01:22:17,800 --> 01:22:21,780 darn kunder, välkända kunder, drift av vissa datacenter 1731 01:22:21,780 --> 01:22:26,224 att när något går riktigt fel, som force majeure och väder och sådant, 1732 01:22:26,224 --> 01:22:29,390 om det finns någon form av silver lining, det är att du är i mycket gott sällskap. 1733 01:22:29,390 --> 01:22:30,680 Din webbplats kan vara offline. 1734 01:22:30,680 --> 01:22:32,750 Men så är som hälften av den populära Internet. 1735 01:22:32,750 --> 01:22:36,230 Och så är det utan tvekan lite mer tilltalande för kunderna 1736 01:22:36,230 --> 01:22:38,780 om det är mer av en internet sak än en acme.com sak. 1737 01:22:38,780 --> 01:22:41,780 Men det är lite av en fuskare. 1738 01:22:41,780 --> 01:22:46,740 >> Så när det gäller andra saker att titta på, bara så att vi inte utesluter andra, 1739 01:22:46,740 --> 01:22:51,210 Om du går till Microsoft Azure, de har både Linux och Windows stuff 1740 01:22:51,210 --> 01:22:53,190 som är jämförbar med Amazons. 1741 01:22:53,190 --> 01:22:57,540 Om du går till Google Compute Engine, de har något liknande också. 1742 01:22:57,540 --> 01:23:00,500 Och bara för att spetsa dessa moln erbjudanden, 1743 01:23:00,500 --> 01:23:02,762 Jag ska göra nämna en annan sak. 1744 01:23:02,762 --> 01:23:04,720 Detta är en populär webbplats det är representativt 1745 01:23:04,720 --> 01:23:08,590 av en klass av tekniker. 1746 01:23:08,590 --> 01:23:12,350 De som vi just talat om, Amazon, skulle vara IAAS, 1747 01:23:12,350 --> 01:23:17,150 Infrastruktur som en tjänst, där man form av fysisk hårdvara som en tjänst. 1748 01:23:17,150 --> 01:23:18,757 Det finns SAAS. 1749 01:23:18,757 --> 01:23:20,090 Faktiskt, låt mig anteckna dessa ned. 1750 01:23:20,090 --> 01:23:23,290 1751 01:23:23,290 --> 01:23:28,190 >> IAAS-- infrastruktur As a Service, SaaS 1752 01:23:28,190 --> 01:23:31,870 och PAAS, vilka är anmärkningsvärt förvirrande akronymer 1753 01:23:31,870 --> 01:23:34,400 som inte beskriver tre olika typer av saker. 1754 01:23:34,400 --> 01:23:36,400 Och akronymer själva inte egentligen ingen roll. 1755 01:23:36,400 --> 01:23:38,360 Detta är allt i molnet saker Vi har just talat om, 1756 01:23:38,360 --> 01:23:41,570 den lägre nivån saker, den virtualisering av hårdvara och lagring 1757 01:23:41,570 --> 01:23:44,890 i den så kallade molnet, oavsett om det är Amazon, Microsoft, Google eller någon annan. 1758 01:23:44,890 --> 01:23:47,270 >> Software as a service-- vi alla typer av använda detta. 1759 01:23:47,270 --> 01:23:49,810 Om du använder Google Apps för Gmail eller kalandrering, 1760 01:23:49,810 --> 01:23:52,530 någon av dessa webbaserade applikationer som 10 år sedan vi 1761 01:23:52,530 --> 01:23:55,560 skulle ha dubbel klickade ikoner våra skrivbord, software as a service 1762 01:23:55,560 --> 01:23:57,400 är nu verkligen webbapplikation. 1763 01:23:57,400 --> 01:24:00,110 Och plattform som en tjänsten typ av beroende. 1764 01:24:00,110 --> 01:24:03,140 >> Och ett exempel jag ska ge dig här i samband med molnet computing-- 1765 01:24:03,140 --> 01:24:06,250 Det finns ett företag som är helt populära dessa dagar, Heroku. 1766 01:24:06,250 --> 01:24:08,940 Och de är en tjänst, en plattform, om du vill, 1767 01:24:08,940 --> 01:24:11,730 som körs på toppen av Amazons infrastruktur. 1768 01:24:11,730 --> 01:24:15,800 Och de bara göra det ännu enklare för utvecklare och ingenjörer 1769 01:24:15,800 --> 01:24:18,330 att få webbaserade applikationer på nätet. 1770 01:24:18,330 --> 01:24:22,170 >> Det är en smärta, inledningsvis, att använda Amazon Web Services och annat. 1771 01:24:22,170 --> 01:24:24,170 Eftersom du faktiskt har att känna och förstå 1772 01:24:24,170 --> 01:24:27,617 om databaser och webbservrar och lastbalanserare och alla grejer 1773 01:24:27,617 --> 01:24:28,450 Jag talade om. 1774 01:24:28,450 --> 01:24:32,780 Eftersom alla Amazon har gjort är inte dolt dessa designutmaningar. 1775 01:24:32,780 --> 01:24:35,790 De har bara virtualise dem och flytta dem i en webbläsare, 1776 01:24:35,790 --> 01:24:37,770 i programvaran i stället för hårdvara. 1777 01:24:37,770 --> 01:24:43,020 >> Men företag som Heroku och andra Paas leverantörer, Platform as a Service, 1778 01:24:43,020 --> 01:24:46,900 de använder dessa barebone fundamenta att vi bara talade om, 1779 01:24:46,900 --> 01:24:50,340 och de bygger lättare att använda programvara ovanpå det 1780 01:24:50,340 --> 01:24:54,241 så att om du vill få en webbaserad ansökan online dessa dagar, 1781 01:24:54,241 --> 01:24:55,990 du verkligen måste vet hur man programmerar. 1782 01:24:55,990 --> 01:25:00,280 Du behöver veta Java eller Python eller PHP eller Ruby eller en massa andra språk. 1783 01:25:00,280 --> 01:25:02,180 >> Men du behöver också en plats för att uttrycka det. 1784 01:25:02,180 --> 01:25:04,790 Och vi pratade tidigare om få ett webbhotell. 1785 01:25:04,790 --> 01:25:08,630 Det är typ av liknande mitten av 2000-talet tillvägagångssätt för att få något på nätet. 1786 01:25:08,630 --> 01:25:12,140 Numera du kanske istället betala någon som Heroku några dollar i månaden. 1787 01:25:12,140 --> 01:25:15,370 Och i huvudsak, när du har gjort en del inledande konfigurationen, 1788 01:25:15,370 --> 01:25:18,704 uppdatera din webbplats, du bara skriva ett kommando i ett fönster. 1789 01:25:18,704 --> 01:25:21,370 Och vad koden du har skrivit här på din bärbara dator omedelbart 1790 01:25:21,370 --> 01:25:24,350 får distribueras till valfritt antal av servrar i molnet. 1791 01:25:24,350 --> 01:25:26,440 >> Och Heroku tar hand om alla av komplexitet. 1792 01:25:26,440 --> 01:25:28,930 De räkna alla databasen grejer, hela lastbalansering, 1793 01:25:28,930 --> 01:25:31,480 alla huvudvärk som vi ve just skrivit på tavlan, 1794 01:25:31,480 --> 01:25:33,320 och dölja allt detta för dig. 1795 01:25:33,320 --> 01:25:36,170 Och i gengäld, du bara betala dem lite mer. 1796 01:25:36,170 --> 01:25:39,810 Så du har dessa infrastrukturer som en tjänst, plattformar som en tjänst, 1797 01:25:39,810 --> 01:25:41,400 och sedan software as a service. 1798 01:25:41,400 --> 01:25:45,390 Det är, återigen, detta abstraktion eller skiktning. 1799 01:25:45,390 --> 01:25:51,187 >> Eventuella frågor om molnet eller bygga en egen infrastruktur? 1800 01:25:51,187 --> 01:25:52,270 Okej, det var en hel del. 1801 01:25:52,270 --> 01:25:54,200 Varför vi inte gå vidare och ta våra 15 minuters paus här. 1802 01:25:54,200 --> 01:25:57,241 Vi kommer tillbaka med några nya koncept och lite praktisk möjlighet 1803 01:25:57,241 --> 01:25:59,110 innan kvällen är över. 1804 01:25:59,110 --> 01:26:00,332