1 00:00:00,000 --> 00:00:00,629 2 00:00:00,629 --> 00:00:02,170 DAVID MALAN: All right, velkommen tilbake. 3 00:00:02,170 --> 00:00:06,520 Før vi dykke inn i cloud computing, Jeg tenkte jeg skulle ta en liten pause 4 00:00:06,520 --> 00:00:11,740 hvis det er noen utestående spørsmål eller emner som kom opp under lunsj 5 00:00:11,740 --> 00:00:13,834 som kan nå være av interesse. 6 00:00:13,834 --> 00:00:18,470 7 00:00:18,470 --> 00:00:21,410 >> PUBLIKUM: [uhørlig] 8 00:00:21,410 --> 00:00:22,090 >> DAVID MALAN: OK. 9 00:00:22,090 --> 00:00:23,555 Oh, OK. 10 00:00:23,555 --> 00:00:24,430 PUBLIKUM: [uhørlig] 11 00:00:24,430 --> 00:00:29,880 12 00:00:29,880 --> 00:00:31,420 >> DAVID MALAN: Nei, selvfølgelig. 13 00:00:31,420 --> 00:00:35,180 OK, vel forhåpentligvis alle dine problemer oppstår i de neste timene 14 00:00:35,180 --> 00:00:36,410 og i morgen spesielt. 15 00:00:36,410 --> 00:00:42,700 Men la oss ta en titt, da, at der den siste diskusjonen om å sette opp 16 00:00:42,700 --> 00:00:45,730 et nettsted fører, mer generelt når det kommer til cloud computing, 17 00:00:45,730 --> 00:00:48,210 sette opp en server-arkitektur, hvilke beslutninger 18 00:00:48,210 --> 00:00:50,800 som utvikler og utviklere og ledere 19 00:00:50,800 --> 00:00:53,210 trenger å gjøre når det gjelder å gjøre mer enn bare 20 00:00:53,210 --> 00:00:56,550 registrere seg for en $ 10 per måned web host når du faktisk ønsker å bygge ut 21 00:00:56,550 --> 00:00:57,550 din egen infrastruktur. 22 00:00:57,550 --> 00:01:00,400 Og vi skal prøve å knytte dette tilbake, for eksempel, for å Dropbox og andre 23 00:01:00,400 --> 00:01:01,350 som dem. 24 00:01:01,350 --> 00:01:06,250 >> Så la oss begynne å vurdere hvilke problemer oppstår som virksomheten 25 00:01:06,250 --> 00:01:09,390 får god og gode problemer oppstår. 26 00:01:09,390 --> 00:01:14,720 Så i den aller enkleste tilfelle av å ha noen selskap som har en web-server, 27 00:01:14,720 --> 00:01:21,470 du kan ha, la oss si, en server som Vi vil bare trekke som ser ut som dette. 28 00:01:21,470 --> 00:01:25,620 Og i disse dager, mest servers-- og la oss faktisk sette et bilde til dette så 29 00:01:25,620 --> 00:01:27,680 at det er litt mindre tåkete. 30 00:01:27,680 --> 00:01:31,510 >> Så Dell stativ server-- tilbake i dag, er det 31 00:01:31,510 --> 00:01:33,730 var stormaskiner som tok opp hele rom. 32 00:01:33,730 --> 00:01:35,710 I disse dager, hvis du var for å få en server, det 33 00:01:35,710 --> 00:01:38,520 kan se litt noe sånt som dette. 34 00:01:38,520 --> 00:01:41,760 Serverne er målt i hvilken kalles rack-enheter eller jernbaneforetakene. 35 00:01:41,760 --> 00:01:45,280 Og en RU er 1,5 inches, som er en industristandard. 36 00:01:45,280 --> 00:01:49,300 Så dette ser ut som en to RU server. 37 00:01:49,300 --> 00:01:51,240 Så det er 3 inches høy. 38 00:01:51,240 --> 00:01:54,430 Og de er vanligvis 19 inches bred, som betyr at alt av denne type ting 39 00:01:54,430 --> 00:01:55,160 er standardisert. 40 00:01:55,160 --> 00:01:59,420 >> Så hvis du ser i en data center-- ikke bare på en server, men la oss 41 00:01:59,420 --> 00:02:02,110 ta en titt på Googles datasenter og se om vi 42 00:02:02,110 --> 00:02:04,280 se et fint bilde på Google Images. 43 00:02:04,280 --> 00:02:09,090 Dette er mye bedre opplyst enn deg vanligvis ville finne, og mye 44 00:02:09,090 --> 00:02:14,900 sexier ser som resultat. Men Dette er det som ser ut som et par 45 00:02:14,900 --> 00:02:17,380 hundre servere alle omtrent den samme størrelse, 46 00:02:17,380 --> 00:02:21,450 faktisk, i stativ etter stativ etter stativ etter stativ i et datasenter. 47 00:02:21,450 --> 00:02:26,150 >> Noe som dette-- dette kan godt være Googles, siden jeg googlet Googles. 48 00:02:26,150 --> 00:02:28,330 Men det kan være representative på mer generelt 49 00:02:28,330 --> 00:02:31,480 et datasenter der mange selskaper er vanligvis samlokaliseres. 50 00:02:31,480 --> 00:02:34,940 Og samlokalisert betyr vanligvis at du går til et sted som Equinix 51 00:02:34,940 --> 00:02:40,280 eller andre leverandører som har store varehus som har mye makt, 52 00:02:40,280 --> 00:02:42,950 massevis av kjøling, forhåpentligvis massevis av sikkerhet, 53 00:02:42,950 --> 00:02:47,910 og individuelle bur omsluttende racks servere, og du enten leie stativene 54 00:02:47,910 --> 00:02:49,150 eller du tar stativene i. 55 00:02:49,150 --> 00:02:51,420 >> Og enkeltselskaper, startups spesielt, 56 00:02:51,420 --> 00:02:54,820 vil ha noen form for biometri for å komme inn i sine bur, eller en nøkkel, 57 00:02:54,820 --> 00:02:55,640 eller et nøkkelkort. 58 00:02:55,640 --> 00:02:56,990 Du åpner opp døren. 59 00:02:56,990 --> 00:03:00,354 Og innsiden av det er bare en arealet fotavtrykk 60 00:03:00,354 --> 00:03:03,270 som du betaler for, på innsiden av som du kan sette noe du ønsker. 61 00:03:03,270 --> 00:03:04,770 >> Og du vanligvis betale for strømmen. 62 00:03:04,770 --> 00:03:06,920 Og du betaler for overføringene. 63 00:03:06,920 --> 00:03:08,770 Og så betaler du selv for servere 64 00:03:08,770 --> 00:03:10,560 at du bringer inn i det rommet. 65 00:03:10,560 --> 00:03:12,850 Og det du da ha muligheten til å gjøre er å betale noen 66 00:03:12,850 --> 00:03:15,120 for Internett-tjenesten tilkobling. 67 00:03:15,120 --> 00:03:17,240 Du kan betale noen tall av leverandører, som alle 68 00:03:17,240 --> 00:03:19,210 vanligvis kommer inn i det datasenter. 69 00:03:19,210 --> 00:03:22,740 >> Men det virkelige interessante spørsmålet er, hva som faktisk går i disse stativene? 70 00:03:22,740 --> 00:03:25,020 De kan alle veldig godt ser ut som det vi nettopp så. 71 00:03:25,020 --> 00:03:27,870 Men de utfører ulike funksjoner og kanskje trenger å gjøre forskjellige ting. 72 00:03:27,870 --> 00:03:29,661 Og la oss faktisk motivere denne diskusjonen 73 00:03:29,661 --> 00:03:35,370 med spørsmålet om hva problemet begynner å oppstå hvis du er vellykket? 74 00:03:35,370 --> 00:03:37,900 >> Så du har et nettsted at du har bygget. 75 00:03:37,900 --> 00:03:40,450 Og kanskje det selger widgets eller noe sånt. 76 00:03:40,450 --> 00:03:43,620 Og du har gjort det veldig bra med salg av widgets online. 77 00:03:43,620 --> 00:03:48,490 Og du begynner å oppleve noen symptomer, ditt nettsted. 78 00:03:48,490 --> 00:03:51,070 Hva kan være noen av de tekniske symptomer 79 00:03:51,070 --> 00:03:54,040 at brukere rapporterer som virksomheten vokser og blomstrende 80 00:03:54,040 --> 00:03:59,482 og nettstedet er drar nytte av det? 81 00:03:59,482 --> 00:04:02,690 >> PUBLIKUM: [uhørlig] 82 00:04:02,690 --> 00:04:05,910 83 00:04:05,910 --> 00:04:07,050 >> DAVID MALAN: Ja, akkurat. 84 00:04:07,050 --> 00:04:10,040 Så du kan ha en nedgang på ditt nettsted. 85 00:04:10,040 --> 00:04:11,240 Og hvorfor kan det skje? 86 00:04:11,240 --> 00:04:12,660 Vel, hvis vi antar, for skyld diskusjonen 87 00:04:12,660 --> 00:04:15,160 akkurat nå, at du er på en av disse kommersielle web verter 88 00:04:15,160 --> 00:04:17,860 som vi snakket om før lunsj at du betaler et visst antall dollar 89 00:04:17,860 --> 00:04:20,859 til per måned, og du har allerede betalt for den årlige kostnaden for ditt domene 90 00:04:20,859 --> 00:04:25,300 nevne at webverten er sannsynligvis overselling sine ressurser 91 00:04:25,300 --> 00:04:26,050 til en viss grad. 92 00:04:26,050 --> 00:04:29,000 Så du kan ha et brukernavn og passord på deres server. 93 00:04:29,000 --> 00:04:32,410 Men så kanskje flere andre, eller flere dusin andre, eller kanskje til og med flere 94 00:04:32,410 --> 00:04:33,980 hundre andre, brukere. 95 00:04:33,980 --> 00:04:37,190 >> Og nettsteder leve fysisk på samme server. 96 00:04:37,190 --> 00:04:38,340 Hvorfor er dette mulig? 97 00:04:38,340 --> 00:04:40,680 Vel disse dager, servere som dette vanligvis 98 00:04:40,680 --> 00:04:44,610 har flere harddisker, kanskje så mange som seks eller flere harddisker, 99 00:04:44,610 --> 00:04:47,665 hver av hvilke kan være så mye som 4 terabyte i disse dager. 100 00:04:47,665 --> 00:04:52,140 Så du kan ha 24 terabyte med plass i bare en liten server som dette. 101 00:04:52,140 --> 00:04:55,710 >> Og selv om du stjeler noe av det rommet for redundans, for sikkerhetskopiering, 102 00:04:55,710 --> 00:04:57,110 det er fortsatt ganske mye plass. 103 00:04:57,110 --> 00:05:00,070 Og sikkert, en vanlig nettside ikke trenger så mye plass. 104 00:05:00,070 --> 00:05:03,100 Bare å registrere brukere og lagring av logger av ordre 105 00:05:03,100 --> 00:05:04,640 tar ikke så mye plass. 106 00:05:04,640 --> 00:05:07,550 Så du kan partisjonere den ganske litt og gi hver bruker 107 00:05:07,550 --> 00:05:08,980 bare en liten bit av det. 108 00:05:08,980 --> 00:05:11,310 >> I mellomtiden, en datamaskin som dette i disse dager 109 00:05:11,310 --> 00:05:16,370 vanligvis har flere CPUs-- ikke bare en, kanskje to, kanskje fire, kanskje 16, 110 00:05:16,370 --> 00:05:17,149 eller til og med mer. 111 00:05:17,149 --> 00:05:18,940 Og hver av disse CPUer har noe som kalles 112 00:05:18,940 --> 00:05:22,230 en kjerne, som er typen som en hjerne innsiden av en hjerne. 113 00:05:22,230 --> 00:05:26,800 Så faktisk de fleste alle her med moderne bærbare datamaskiner har sannsynligvis en dual core 114 00:05:26,800 --> 00:05:32,030 eller quad core CPU-- og sannsynligvis bare en CPU innsiden av en bærbar PC i disse dager. 115 00:05:32,030 --> 00:05:35,030 Men stasjonære datamaskiner og rack datamaskiner som 116 00:05:35,030 --> 00:05:39,000 dette kan ha ganske mange flere CPUer, og i sin tur kjerner. 117 00:05:39,000 --> 00:05:44,180 >> Og ærlig talt, selv i våre Mac og PC av i dag, trenger du egentlig ikke trenger doble kjerner 118 00:05:44,180 --> 00:05:46,550 eller fire kjerner for å sjekke e-posten. 119 00:05:46,550 --> 00:05:49,090 Hvis det er noen flaskehals når det gjelder å bruke en datamaskin, 120 00:05:49,090 --> 00:05:51,925 du menneske er trolig den tregeste ting om at datamaskinen. 121 00:05:51,925 --> 00:05:54,800 Og du kommer ikke til å være i stand til å Sjekk e-posten noen raskere hvis du 122 00:05:54,800 --> 00:05:57,170 har fire ganger så mange prosessorer eller støpekjerner. 123 00:05:57,170 --> 00:05:59,700 >> Men det samme er snill av sann av en server. 124 00:05:59,700 --> 00:06:02,970 Ett enkelt nettsted kanskje ikke nødvendigvis trenger mer enn ett 125 00:06:02,970 --> 00:06:05,756 CPU eller en kjerne, en liten hjerne inni gjøre 126 00:06:05,756 --> 00:06:07,380 alle tenke og behandlingen. 127 00:06:07,380 --> 00:06:10,561 Så produsenter har tilsvar begynte å skjære opp disse ressursene 128 00:06:10,561 --> 00:06:13,435 slik at kanskje ditt nettsted får en kjerne, får din nettside en kjerne, 129 00:06:13,435 --> 00:06:15,290 eller kanskje vi deler en slik kjerne. 130 00:06:15,290 --> 00:06:16,820 Vi er også å dele diskplass. 131 00:06:16,820 --> 00:06:20,000 Og vi også dele RAM, eller Random Access Memory 132 00:06:20,000 --> 00:06:22,520 fra før, hvorav det er også en begrenset mengde. 133 00:06:22,520 --> 00:06:23,420 >> Og det er nøkkelen. 134 00:06:23,420 --> 00:06:25,960 Uansett hvor dyrt datamaskinen var, 135 00:06:25,960 --> 00:06:28,440 det er fortsatt et endelig mye ressurser i det. 136 00:06:28,440 --> 00:06:31,360 Og så mer og mer du prøve å konsumere disse ressursene, 137 00:06:31,360 --> 00:06:32,850 tregere ting kan bli. 138 00:06:32,850 --> 00:06:34,646 Men hvorfor? 139 00:06:34,646 --> 00:06:39,352 Hvorfor skulle ting tregere som en symptom på en server blir overbelastet? 140 00:06:39,352 --> 00:06:40,060 Hva skjer? 141 00:06:40,060 --> 00:06:42,895 142 00:06:42,895 --> 00:06:46,388 >> PUBLIKUM: [uhørlig] 143 00:06:46,388 --> 00:06:54,036 144 00:06:54,036 --> 00:06:55,160 DAVID MALAN: Ja, akkurat. 145 00:06:55,160 --> 00:06:57,730 Jeg foreslo tidligere at RAM er en type minne. 146 00:06:57,730 --> 00:07:00,290 Det er flyktige, der det er der programmer og data er 147 00:07:00,290 --> 00:07:01,890 lagres når de blir brukt. 148 00:07:01,890 --> 00:07:03,990 Og så derfor er det bare et endelig antall 149 00:07:03,990 --> 00:07:05,790 ting du kan tydeligvis gjøre på en gang. 150 00:07:05,790 --> 00:07:07,740 Og det er også raskere, som er en god ting. 151 00:07:07,740 --> 00:07:09,990 Men det er også dyrere, som er en dårlig ting. 152 00:07:09,990 --> 00:07:15,376 Og det er også derfor til stede i nedre mengder enn diskplass, harddisk 153 00:07:15,376 --> 00:07:16,750 plass, som har en tendens til å være billigere. 154 00:07:16,750 --> 00:07:18,830 >> Med andre ord, du kan ha 4 terabyte 155 00:07:18,830 --> 00:07:20,440 diskplass på datamaskinen. 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 størrelsesorden, en faktor 1000 mindre, RAM i datamaskinen. 158 00:07:29,180 --> 00:07:30,320 Så hva gjør en datamaskin gjøre? 159 00:07:30,320 --> 00:07:32,236 Vel, antar at du har 64 gigabyte 160 00:07:32,236 --> 00:07:35,110 RAM i en server som dette, som ville være ganske vanlig, hvis ikke lav 161 00:07:35,110 --> 00:07:36,140 disse dager. 162 00:07:36,140 --> 00:07:39,220 Men antar at du har så mange brukere gjør så mange ting 163 00:07:39,220 --> 00:07:42,480 at du slags type trenger 65 gigabyte minne 164 00:07:42,480 --> 00:07:44,960 å håndtere alt dette samtidig bruk? 165 00:07:44,960 --> 00:07:47,580 >> Vel, kan du bare si: sorry, noen antall brukere 166 00:07:47,580 --> 00:07:48,840 bare ikke kan få tilgang til området. 167 00:07:48,840 --> 00:07:51,410 Og det er et mål siste utvei, absolutt. 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 noen rekke andre operativsystemer på denne serveren, 170 00:07:59,480 --> 00:08:01,280 bare kunne bestemme, vet du hva? 171 00:08:01,280 --> 00:08:03,780 Jeg har bare 64 GB RAM. 172 00:08:03,780 --> 00:08:05,440 Jeg slags trenger 65. 173 00:08:05,440 --> 00:08:06,210 Så vet du hva? 174 00:08:06,210 --> 00:08:10,030 Jeg kommer til å ta en gigabyte verdt av dataene i RAM 175 00:08:10,030 --> 00:08:15,240 som ble minst nylig åpnet og bare flytte den til disk midlertidig, 176 00:08:15,240 --> 00:08:19,050 bokstavelig talt kopiere den fra den raske minne til lavere minne 177 00:08:19,050 --> 00:08:24,000 slik at jeg kan da håndtere det 65th gigabyte behovet for minne, 178 00:08:24,000 --> 00:08:25,650 gjøre noen beregninger på den. 179 00:08:25,650 --> 00:08:28,580 Så når jeg er ferdig med det, Jeg skal bare flytte det til disken, 180 00:08:28,580 --> 00:08:35,030 flytte den andre RAM jeg midlertidig satt på disken tilbake inn i selve maskinvaren 181 00:08:35,030 --> 00:08:37,280 slik at jeg er litt multitasking. 182 00:08:37,280 --> 00:08:41,190 >> Så jeg liksom sette ting midlertidig i denne tregere plass 183 00:08:41,190 --> 00:08:44,159 så jeg skape illusjonen håndtere alle. 184 00:08:44,159 --> 00:08:45,290 Men det er en nedgang. 185 00:08:45,290 --> 00:08:45,790 Hvorfor? 186 00:08:45,790 --> 00:08:49,380 Vel, på innsiden av disse hardt disker i disse dager er hva? 187 00:08:49,380 --> 00:08:52,030 Snarere, hva som gjør en hard kjøre forskjellig fra RAM 188 00:08:52,030 --> 00:08:53,495 som best vet du nå? 189 00:08:53,495 --> 00:08:56,750 >> PUBLIKUM: [uhørlig] 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 PUBLIKUM: [uhørlig] 193 00:09:02,320 --> 00:09:05,440 194 00:09:05,440 --> 00:09:06,750 >> DAVID MALAN: Så veldig sant. 195 00:09:06,750 --> 00:09:13,709 Og det er en bivirkning eller funksjon av det faktum at RAM er faktisk raskere. 196 00:09:13,709 --> 00:09:15,750 Og derfor du vil bruke det til dagens bruk. 197 00:09:15,750 --> 00:09:17,290 Og en disk er tregere. 198 00:09:17,290 --> 00:09:19,630 Men det er permanent eller ikke-flyktig. 199 00:09:19,630 --> 00:09:21,480 Så du bruker det for langtidslagring. 200 00:09:21,480 --> 00:09:25,160 Men når det gjelder implementering, hvis jeg ser opp 201 00:09:25,160 --> 00:09:29,297 det som kalles en DIMM, Dual Inline Memory Module, dette er hva et stykke RAM 202 00:09:29,297 --> 00:09:30,380 kan typisk se ut. 203 00:09:30,380 --> 00:09:35,050 >> Så innsiden av våre Mac-- det er en bug. 204 00:09:35,050 --> 00:09:41,080 Innsiden av våre Mac og PC, vår stasjonære datamaskiner ville ha stokker av minne, 205 00:09:41,080 --> 00:09:43,220 som du vil kalle dem, eller DIMM eller SIMM tilbake 206 00:09:43,220 --> 00:09:44,970 i dag, av hukommelse som ser ut som dette. 207 00:09:44,970 --> 00:09:47,900 Våre bærbare sannsynligvis har ting som er en tredje størrelsen eller halvparten så stor. 208 00:09:47,900 --> 00:09:50,066 De er litt mindre, men den samme idea-- lite 209 00:09:50,066 --> 00:09:52,110 biter av grønn silisium wafer eller plast som 210 00:09:52,110 --> 00:09:56,237 har små svarte brikker på dem med mye ledninger sammenhengende alt. 211 00:09:56,237 --> 00:09:58,820 Du har kanskje en hel haug med disse innsiden av datamaskinen. 212 00:09:58,820 --> 00:10:00,903 Men takeaway her er det er helt elektronisk. 213 00:10:00,903 --> 00:10:03,130 Det er bare elektroner flyter på denne enheten. 214 00:10:03,130 --> 00:10:08,170 Derimot, hvis vi ser på på innsiden av en harddisk 215 00:10:08,170 --> 00:10:10,760 og trekke opp et bilde her, ville du i stedet 216 00:10:10,760 --> 00:10:16,600 se noe som dette, som har elektrisitet 217 00:10:16,600 --> 00:10:17,950 gå gjennom det til slutt. 218 00:10:17,950 --> 00:10:20,265 Men hva hopper også ut på deg om dette? 219 00:10:20,265 --> 00:10:21,140 PUBLIKUM: [uhørlig] 220 00:10:21,140 --> 00:10:22,710 DAVID MALAN: Ja, det er tilsynelatende bevegelige deler. 221 00:10:22,710 --> 00:10:25,210 Det er litt som en gammel rekord spiller eller grammofon spiller. 222 00:10:25,210 --> 00:10:26,200 Og det er ganske mye. 223 00:10:26,200 --> 00:10:28,950 Det er litt mer avansert enn at-- mens en grammofon spiller brukt 224 00:10:28,950 --> 00:10:33,150 spor i posten, dette faktisk bruker bitte små magnetiske partikler 225 00:10:33,150 --> 00:10:34,550 at vi kan ikke helt se. 226 00:10:34,550 --> 00:10:38,520 Men hvis en liten magnetiske partikler ser ut som dette, er det ansett som en 1. 227 00:10:38,520 --> 00:10:41,230 Og hvis det ser ut som dette, nord-sør i stedet for sør-nord, 228 00:10:41,230 --> 00:10:42,252 det kan være en 0. 229 00:10:42,252 --> 00:10:45,460 Og vi får se i morgen hvordan vi kan bygge fra det til mer interessante ting. 230 00:10:45,460 --> 00:10:47,590 >> Men noe som er kom til fysisk flytte 231 00:10:47,590 --> 00:10:51,010 er helt sikkert kommer til å gå saktere enn lysets hastighet, 232 00:10:51,010 --> 00:10:53,250 som i teorien er hva et elektron kan flyte på, 233 00:10:53,250 --> 00:10:54,620 men realistisk ikke helt. 234 00:10:54,620 --> 00:10:56,900 Så mekanisk devices-- mye tregere. 235 00:10:56,900 --> 00:10:58,320 Men de er billigere. 236 00:10:58,320 --> 00:11:00,944 Og du kan passe så mye mer data på innsiden av dem. 237 00:11:00,944 --> 00:11:03,110 Slik at der eksisterer i verden noe 238 00:11:03,110 --> 00:11:06,840 kalles virtuelt minne, ved hjelp av en harddisk som dette 239 00:11:06,840 --> 00:11:10,160 som om det var RAM transparent for brukeren, 240 00:11:10,160 --> 00:11:15,320 simpelthen ved å bevege data fra RAM til harddisken, 241 00:11:15,320 --> 00:11:18,714 deretter flytte den tilbake når du trenger det igjen, skaper nedgangen. 242 00:11:18,714 --> 00:11:21,380 Fordi du har bokstavelig talt å kopiere den fra ett sted til et annet. 243 00:11:21,380 --> 00:11:25,100 Og ting du kopierer det til og fra faktisk er langsommere enn den RAM- 244 00:11:25,100 --> 00:11:26,150 der du vil den skal være. 245 00:11:26,150 --> 00:11:29,030 >> Den alternative løsningen her-- hvis du ikke liker det tregere, 246 00:11:29,030 --> 00:11:32,014 og din virtuelle minnet er liksom blir pålagt tunge, 247 00:11:32,014 --> 00:11:33,680 hva er en annen løsning på dette problemet? 248 00:11:33,680 --> 00:11:35,260 >> PUBLIKUM: [uhørlig] 249 00:11:35,260 --> 00:11:37,260 DAVID MALAN: Vel, øke det virtuelle minnet 250 00:11:37,260 --> 00:11:39,135 ville la oss gjøre dette på en enda større skala. 251 00:11:39,135 --> 00:11:43,540 Vi kunne håndtere 66 gigabyte av minnebehov, eller 67 gigabyte. 252 00:11:43,540 --> 00:11:45,830 Men antar jeg ikke liker dette tregere, faktisk 253 00:11:45,830 --> 00:11:49,380 Jeg ønsker å slå av virtuelle minne hvis det er enda mulig, 254 00:11:49,380 --> 00:11:52,350 hva annet kan jeg kaste på dette problemet for å løse det, 255 00:11:52,350 --> 00:11:56,900 der jeg ønsker å håndtere flere brukere og flere krav til minne 256 00:11:56,900 --> 00:11:59,100 enn jeg fysisk har i øyeblikket? 257 00:11:59,100 --> 00:12:02,600 >> PUBLIKUM: [uhørlig] 258 00:12:02,600 --> 00:12:04,800 259 00:12:04,800 --> 00:12:06,140 >> DAVID MALAN: Dessverre ingen. 260 00:12:06,140 --> 00:12:09,850 Så CPU og kjernene de er i er en begrenset ressurs. 261 00:12:09,850 --> 00:12:13,280 Og det er ingen analog i den sammenheng. 262 00:12:13,280 --> 00:12:14,990 Godt spørsmål, though. 263 00:12:14,990 --> 00:12:19,270 Så bare for å være klar, også, hvis innsiden av denne maskinen er, 264 00:12:19,270 --> 00:12:24,510 la oss si, en stokk med RAM som ser som dette-- og så får vi kalle dette RAM. 265 00:12:24,510 --> 00:12:27,070 Og over her er harddisken. 266 00:12:27,070 --> 00:12:30,130 Og jeg vil bare trekke dette billedlig som en liten sirkel. 267 00:12:30,130 --> 00:12:33,740 Det er 0 og 1-ere i begge these-- data, vil vi generalisere det som. 268 00:12:33,740 --> 00:12:38,030 >> Og egentlig, hvis en bruker er kjører et program som, 269 00:12:38,030 --> 00:12:46,070 la oss si, en nettside som krever dette mye RAM per bruker, hva jeg foreslår, 270 00:12:46,070 --> 00:12:48,380 ved hjelp av denne tingen kalles virtuelt minne, 271 00:12:48,380 --> 00:12:53,990 er å bare midlertidig flytte som over her, slik at nå jeg 272 00:12:53,990 --> 00:12:57,810 kan flytte andres minne krav der borte. 273 00:12:57,810 --> 00:13:00,420 Og når det er gjort, Jeg kan kopiere dette tilbake over 274 00:13:00,420 --> 00:13:04,550 og dette går her, og dermed flytte hva jeg ville i det et annet sted 275 00:13:04,550 --> 00:13:05,050 helt. 276 00:13:05,050 --> 00:13:07,820 >> Så det er bare en masse switcheroo, er det takeaway her. 277 00:13:07,820 --> 00:13:12,380 Så hvis du ikke liker dette, og du trenger ikke ønsker å sette noe på harddisken, 278 00:13:12,380 --> 00:13:16,440 hva er liksom den åpen business person løsning 279 00:13:16,440 --> 00:13:19,684 på problemet, eller ingeniørens løsning, for den saks skyld, også? 280 00:13:19,684 --> 00:13:21,950 >> PUBLIKUM: [uhørlig] 281 00:13:21,950 --> 00:13:24,750 >> DAVID MALAN: Ja, jeg mener bokstavelig kaste penger på problemet. 282 00:13:24,750 --> 00:13:27,541 Og faktisk, er dette det perfekte naturlig overgang til noen av de høyere nivå 283 00:13:27,541 --> 00:13:28,870 diskusjoner om cloud computing. 284 00:13:28,870 --> 00:13:31,390 Fordi mye av det er motivert av finansielle beslutninger, 285 00:13:31,390 --> 00:13:33,040 ikke engang nødvendigvis teknologisk. 286 00:13:33,040 --> 00:13:37,830 Hvis 64 gigabyte RAM er for lite, vel, hvorfor ikke få 128 gigabyte med RAM? 287 00:13:37,830 --> 00:13:40,440 Hvorfor ikke få 256 gigabyte med RAM? 288 00:13:40,440 --> 00:13:41,732 Vel, hvorfor ikke? 289 00:13:41,732 --> 00:13:42,608 >> PUBLIKUM: [uhørlig] 290 00:13:42,608 --> 00:13:44,482 DAVID MALAN: Vel, det koster mer penger, sikker. 291 00:13:44,482 --> 00:13:46,970 Og hvis du allerede har ledig plass på harddisken, effektivt, 292 00:13:46,970 --> 00:13:51,407 eller ekvivalent, er plass på harddisken slik mye billigere du kan like godt bruke den. 293 00:13:51,407 --> 00:13:54,490 Så igjen, det er denne handelen av at vi så enda tidligere denne morgenen, 294 00:13:54,490 --> 00:13:56,656 hvor det er egentlig ikke nødvendigvis et riktig svar, 295 00:13:56,656 --> 00:14:01,360 det er bare et bedre eller verre svar basert på hva du faktisk bryr deg om. 296 00:14:01,360 --> 00:14:04,500 >> Så det er også teknologiske realiteter. 297 00:14:04,500 --> 00:14:06,870 Jeg kan ikke kjøpe en datamaskin, så vidt jeg vet, 298 00:14:06,870 --> 00:14:09,490 med en trillion gigabyte RAM akkurat nå. 299 00:14:09,490 --> 00:14:11,540 Det bare fysisk ikke eksisterer. 300 00:14:11,540 --> 00:14:13,240 Så det er noen øvre grense. 301 00:14:13,240 --> 00:14:15,990 Men hvis du noen gang har selv handlet for en forbruker Mac eller PC, 302 00:14:15,990 --> 00:14:20,180 også, generelt er det denne kurven av funksjoner 303 00:14:20,180 --> 00:14:23,410 hvor det kan være en god, en bedre og beste datamaskin. 304 00:14:23,410 --> 00:14:25,730 >> Og de marginale avkastning på din dollar kjøp 305 00:14:25,730 --> 00:14:30,227 den beste maskinen versus jo bedre datamaskin 306 00:14:30,227 --> 00:14:32,560 kan ikke være på langt nær så høy som tilbringe litt mer penger 307 00:14:32,560 --> 00:14:35,599 og få bedre maskin over god datamaskin. 308 00:14:35,599 --> 00:14:38,390 Med andre ord, du betaler en premie å få toppen av linjen. 309 00:14:38,390 --> 00:14:40,790 >> Og det vi ser i drøfting av cloud computing 310 00:14:40,790 --> 00:14:44,940 er at det er veldig vanlig disse dager, og hva selskaper som Google 311 00:14:44,940 --> 00:14:50,560 tidlig på popularisert, var ikke betaler for og bygge virkelig fancy, dyrt 312 00:14:50,560 --> 00:14:53,540 souped opp datamaskiner med mye og mye av alt, 313 00:14:53,540 --> 00:15:00,140 men heller å kjøpe eller bygge pen beskjedne datamaskiner, men mange av dem, 314 00:15:00,140 --> 00:15:03,280 og ved hjelp av noe som er generelt kalt horisontal skalering stedet 315 00:15:03,280 --> 00:15:04,320 vertikal skalering. 316 00:15:04,320 --> 00:15:08,115 >> Så vertikal skalering ville bety få mer RAM, mer disk, mer av alt, 317 00:15:08,115 --> 00:15:10,187 og liksom investere vertikalt i maskinvaren 318 00:15:10,187 --> 00:15:12,520 slik at du bare får beste av det beste av det beste, 319 00:15:12,520 --> 00:15:13,650 men du betaler for det. 320 00:15:13,650 --> 00:15:17,580 Horisontal skalering er liksom få bunn tier ting, den gode modellen, 321 00:15:17,580 --> 00:15:19,922 eller enda verre modellen, men får mange av dem. 322 00:15:19,922 --> 00:15:22,630 Men så snart du får masse mer testing for eksempel i dette tilfellet 323 00:15:22,630 --> 00:15:27,330 webservere, hvis dette én server eller en web-vert er utilstrekkelig, 324 00:15:27,330 --> 00:15:32,310 så bare intuitivt, det Løsningen på dette problemet med belastning 325 00:15:32,310 --> 00:15:36,460 eller overbelastning på serverne er enten få en større server 326 00:15:36,460 --> 00:15:40,770 eller, hva jeg foreslår her i stedet skalere vertikalt så å si, 327 00:15:40,770 --> 00:15:41,920 ville være, vet du hva? 328 00:15:41,920 --> 00:15:43,580 Bare få en ny en av disse. 329 00:15:43,580 --> 00:15:46,560 Eller kanskje til og med få en tredje. 330 00:15:46,560 --> 00:15:48,900 Men nå har vi laget en teknisk problem 331 00:15:48,900 --> 00:15:51,920 av naturen av denne virksomheten eller økonomisk beslutning. 332 00:15:51,920 --> 00:15:54,312 Hva er ingeniør problemet nå? 333 00:15:54,312 --> 00:15:56,040 >> PUBLIKUM: [uhørlig] 334 00:15:56,040 --> 00:15:59,740 >> DAVID MALAN: Ja, hvordan gjør du kobler dem og-- lei? 335 00:15:59,740 --> 00:16:00,651 >> PUBLIKUM: [uhørlig] 336 00:16:00,651 --> 00:16:02,400 DAVID MALAN: Høyre, fordi jeg fortsatt Opptaktene 337 00:16:02,400 --> 00:16:07,280 hvis jeg gjeninnføre meg inn i dette bildet, hvis dette er min laptop sted 338 00:16:07,280 --> 00:16:12,400 på internett, som nå er mellom meg og selskapet vi snakker om, 339 00:16:12,400 --> 00:16:17,960 nå må jeg finne ut, som Serveren sender jeg denne brukeren? 340 00:16:17,960 --> 00:16:25,090 Og hvis det er andre brukere, som dette, og så er dette en over her, 341 00:16:25,090 --> 00:16:28,850 og kanskje dette er brukeren A, dette er bruker B, er denne brukeren C, 342 00:16:28,850 --> 00:16:34,720 og dette er serveren 1, 2, og nå 3-- en intuitiv svaret kan her være like, 343 00:16:34,720 --> 00:16:37,460 sender vi bruker A til en og B 2 og C til 3. 344 00:16:37,460 --> 00:16:39,900 Og vi kan håndtere 3 ganger så mange brukere. 345 00:16:39,900 --> 00:16:41,360 >> Men det er en overforenkling. 346 00:16:41,360 --> 00:16:44,480 Hvordan avgjør du hvem du skal sende der? 347 00:16:44,480 --> 00:16:46,400 Så la oss prøve å resonnere gjennom dette. 348 00:16:46,400 --> 00:16:50,110 Så anta at datamaskiner A, B og C er kunder, 349 00:16:50,110 --> 00:16:53,972 og servere 1, 2 og 3 er horisontalt skalert servere. 350 00:16:53,972 --> 00:16:55,180 Så de er liksom identisk. 351 00:16:55,180 --> 00:16:57,200 De er alle kjører samme programvare. 352 00:16:57,200 --> 00:16:59,770 Og de kan alle gjøre det samme. 353 00:16:59,770 --> 00:17:01,520 Men grunnen til at vi har tre av dem er så 354 00:17:01,520 --> 00:17:04,710 at vi kan håndtere tre ganger så mange mennesker på en gang. 355 00:17:04,710 --> 00:17:07,960 >> Så vi vet fra vår diskusjon før lunsj 356 00:17:07,960 --> 00:17:11,460 at det er hardware i mellom bærbare datamaskiner og servere. 357 00:17:11,460 --> 00:17:14,920 Men vi må bare slags general at nå som internett eller skyen. 358 00:17:14,920 --> 00:17:18,707 Men vi vet at i mitt hjem, er det sannsynligvis et hjem ruter. 359 00:17:18,707 --> 00:17:21,290 Nær servere, er det sannsynligvis en ruter, DNS-server, DHCP. 360 00:17:21,290 --> 00:17:24,780 Det kan være hva som helst Vi ønsker i denne historien. 361 00:17:24,780 --> 00:17:33,360 >> Så hvordan skal vi begynne å bestemme, når brukeren A går til something.com, 362 00:17:33,360 --> 00:17:36,630 hvilken server til å rute brukeren til? 363 00:17:36,630 --> 00:17:39,409 Hvordan kan vi begynne å fortelle denne historien? 364 00:17:39,409 --> 00:17:40,450 PUBLIKUM: Lastbalansering? 365 00:17:40,450 --> 00:17:41,120 DAVID MALAN: lastbalansering. 366 00:17:41,120 --> 00:17:42,502 Hva mener du med det? 367 00:17:42,502 --> 00:17:44,660 >> PUBLIKUM: Retur hvor de mest bruk er 368 00:17:44,660 --> 00:17:47,472 og hvilken som har de fleste tilgjengelige ressurser. 369 00:17:47,472 --> 00:17:49,930 DAVID MALAN: OK, så la meg innføre en ny type maskinvare 370 00:17:49,930 --> 00:17:53,627 at vi ennå ikke har diskutert, noe som er akkurat det, en lastbalansering. 371 00:17:53,627 --> 00:17:54,960 Også dette kan bare være en server. 372 00:17:54,960 --> 00:17:58,130 Det kan se ut som den vi så for et øyeblikk siden. 373 00:17:58,130 --> 00:18:01,000 En lastbalansering egentlig er bare et stykke programvare 374 00:18:01,000 --> 00:18:02,660 at du kjører på et stykke maskinvare. 375 00:18:02,660 --> 00:18:07,310 >> Eller du kan betale en leverandør, som Citrix eller andre, Cisco eller andre. 376 00:18:07,310 --> 00:18:10,465 Du kan betale for sin egen maskinvare, som er en hardware lastbalansering. 377 00:18:10,465 --> 00:18:12,840 Men det betyr bare at de pre-installert lastbalansering 378 00:18:12,840 --> 00:18:15,580 programvare på maskinvare og solgte den til dere alle sammen. 379 00:18:15,580 --> 00:18:18,670 Så får vi bare tegne det som en rektangel for vårt formål. 380 00:18:18,670 --> 00:18:22,040 >> Hvordan nå implementerer jeg en lastbalansering? 381 00:18:22,040 --> 00:18:28,150 Med andre ord, når brukeren A vil besøke nettstedet mitt, deres anmodning liksom 382 00:18:28,150 --> 00:18:31,070 eller annen, sannsynligvis ved hjelp av disse rutere vi snakket om tidligere, 383 00:18:31,070 --> 00:18:33,750 kommer til slutt nå Dette lastbalansering, som deretter 384 00:18:33,750 --> 00:18:36,210 behov for å lage en ruting-lignende avgjørelse. 385 00:18:36,210 --> 00:18:38,320 Men det er ruting for sortering av et høyere formål nå. 386 00:18:38,320 --> 00:18:40,361 Det handler ikke bare om å få fra punkt A til punkt 387 00:18:40,361 --> 00:18:44,730 B. Det handler om å avgjøre hvilke punkt B er den beste blant mer testing 388 00:18:44,730 --> 00:18:46,660 1, 2 eller 3 i dette tilfelle. 389 00:18:46,660 --> 00:18:51,000 >> Så hvordan jeg bestemme om do for å gå til 1, 2, 3? 390 00:18:51,000 --> 00:18:55,180 Hva kan denne svarte boksen, så å snakke, være å gjøre på innsiden? 391 00:18:55,180 --> 00:18:57,880 Det er også et annet eksempel i informatikk av abstraksjon. 392 00:18:57,880 --> 00:19:02,410 Jeg har bokstavelig talt trukket en lastbalansering som en svart boks i svart blekk, inne 393 00:19:02,410 --> 00:19:05,300 av hvilke er noen interessante logikk, eller magi selv, 394 00:19:05,300 --> 00:19:07,840 ut av som trenger å komme en decision-- 1, 2 eller 3. 395 00:19:07,840 --> 00:19:12,220 Og inngangen er bare A. 396 00:19:12,220 --> 00:19:13,442 >> PUBLIKUM: [uhørlig] 397 00:19:13,442 --> 00:19:14,400 DAVID MALAN: Jeg beklager? 398 00:19:14,400 --> 00:19:14,770 PUBLIKUM: [uhørlig] 399 00:19:14,770 --> 00:19:18,310 DAVID MALAN: Greit, Hvordan kan vi kategorisere typer transaksjoner 400 00:19:18,310 --> 00:19:19,095 her? 401 00:19:19,095 --> 00:19:23,772 >> PUBLIKUM: Ser på en webside versus spørre en database. 402 00:19:23,772 --> 00:19:24,980 DAVID MALAN: OK, det er bra. 403 00:19:24,980 --> 00:19:29,210 Så kanskje denne brukeren A ønsker å vise en nettside. 404 00:19:29,210 --> 00:19:32,954 Og kanskje er det til og med statisk innhold, noe som endrer sjelden, om noensinne. 405 00:19:32,954 --> 00:19:34,870 Og det virker som en ganske enkel operasjon. 406 00:19:34,870 --> 00:19:38,260 Så kanskje vi bare vilkårlig, men rimelig, sier, 407 00:19:38,260 --> 00:19:42,750 server 1, hans mål i livet er å bare tjene opp statisk innhold, 408 00:19:42,750 --> 00:19:45,150 filer som sjelden, om noensinne, endring. 409 00:19:45,150 --> 00:19:46,870 Kanskje det er de bildene på siden. 410 00:19:46,870 --> 00:19:50,180 Kanskje det er tekst på siden eller andre slike slags uinteressante ting, 411 00:19:50,180 --> 00:19:52,460 ingenting transaksjons, noe dynamisk. 412 00:19:52,460 --> 00:19:57,000 >> I motsetning til dette, hvis brukeren A kontrollerer ut av hans eller hennes handlekurv som 413 00:19:57,000 --> 00:20:00,972 krever en database, et sted for å lagre og husk at transaksjonen godt 414 00:20:00,972 --> 00:20:02,680 kanskje det forespørsel bør gå til server 2. 415 00:20:02,680 --> 00:20:03,610 Så det er bra. 416 00:20:03,610 --> 00:20:07,010 Så vi kan laste balanse basert av type forespørsler. 417 00:20:07,010 --> 00:20:08,278 Hvordan ellers kan vi gjøre dette? 418 00:20:08,278 --> 00:20:13,690 419 00:20:13,690 --> 00:20:14,686 Hvilken annen-- 420 00:20:14,686 --> 00:20:17,382 >> PUBLIKUM: Basert på serverens utnyttelse og kapasitet. 421 00:20:17,382 --> 00:20:18,340 DAVID MALAN: Høyre, OK. 422 00:20:18,340 --> 00:20:19,950 Så du nevnte at tidligere, Kareem. 423 00:20:19,950 --> 00:20:26,850 Så hva om vi gi noen innspill på [hørbar] blant servere 1, 2, 424 00:20:26,850 --> 00:20:32,070 og 3 til denne lastbalansering slik at de er bare hele tiden informere 425 00:20:32,070 --> 00:20:36,420 lastbalansering hva deres status er? 426 00:20:36,420 --> 00:20:39,842 Som, hei, lastbalansering, Jeg er på 50% utnyttelse. 427 00:20:39,842 --> 00:20:41,550 Med andre ord, har jeg halvparten så mange brukere 428 00:20:41,550 --> 00:20:43,520 som jeg faktisk kan håndtere akkurat nå. 429 00:20:43,520 --> 00:20:45,480 Hei, lastbalansering, jeg ved 100% utnyttelse. 430 00:20:45,480 --> 00:20:47,929 Hei, lastbalansering, 0% utnyttelse. 431 00:20:47,929 --> 00:20:49,970 Lastbalansering, hvis det er utformet på en slik måte at 432 00:20:49,970 --> 00:20:53,990 kan ta i disse kommentarene som input, kan det da 433 00:20:53,990 --> 00:20:57,420 bestemme, ooh, nummer to er på 100%. 434 00:20:57,420 --> 00:21:01,440 La meg sende noen fremtidige forespørsler til ham annen enn brukeren allerede er koblet. 435 00:21:01,440 --> 00:21:02,360 Denne fyren er på 0%. 436 00:21:02,360 --> 00:21:03,940 La oss sende mye trafikk til ham. 437 00:21:03,940 --> 00:21:05,480 Denne fyren sa at han er på 50%. 438 00:21:05,480 --> 00:21:08,080 La oss sende noen trafikk til ham. 439 00:21:08,080 --> 00:21:12,012 >> Så det ville være en ingrediens, som vi kunne ta belastningen i betraktning. 440 00:21:12,012 --> 00:21:13,470 Og det kommer til å endre seg over tid. 441 00:21:13,470 --> 00:21:14,678 Så beslutningene vil endre seg. 442 00:21:14,678 --> 00:21:17,350 Så det er en veldig god teknikk, en som er vanlig brukt. 443 00:21:17,350 --> 00:21:18,410 Hva annet kan vi gjøre? 444 00:21:18,410 --> 00:21:20,380 Og la oss egentlig bare oppsummere her. 445 00:21:20,380 --> 00:21:29,510 Så beslutningene her kan være av type trafikk, vil jeg kalle det. 446 00:21:29,510 --> 00:21:32,220 Det kan være basert på belastning. 447 00:21:32,220 --> 00:21:34,692 La oss se om vi ikke kan komme opp med noen andre. 448 00:21:34,692 --> 00:21:35,934 >> PUBLIKUM: [uhørlig] 449 00:21:35,934 --> 00:21:36,850 DAVID MALAN: Location. 450 00:21:36,850 --> 00:21:37,724 Så det er en god en. 451 00:21:37,724 --> 00:21:40,880 Så beliggenhet-- hvordan kan du utnytte denne informasjonen? 452 00:21:40,880 --> 00:21:44,317 >> PUBLIKUM: [uhørlig] 453 00:21:44,317 --> 00:21:54,140 454 00:21:54,140 --> 00:21:57,040 >> DAVID MALAN: Å, det er bra. 455 00:21:57,040 --> 00:21:59,450 Og om hvor mange millisekunder ville det reduseres med 456 00:21:59,450 --> 00:22:02,466 basert på hva vi så dette morgen, ville du si? 457 00:22:02,466 --> 00:22:04,330 >> PUBLIKUM: [uhørlig] 458 00:22:04,330 --> 00:22:06,550 >> DAVID MALAN: Vel, basert på sporveier 459 00:22:06,550 --> 00:22:09,070 vi så tidligere, som er like et grovt mål på noe, 460 00:22:09,070 --> 00:22:11,800 i det minste hvor lang tid det tar for data for å komme fra A til B 461 00:22:11,800 --> 00:22:16,140 føles som noe lokalt var, hva, som 74 millisekunder, gi eller ta? 462 00:22:16,140 --> 00:22:19,200 Og så noe 100 pluss, 200 pluss var trolig i utlandet. 463 00:22:19,200 --> 00:22:22,110 Og så basert på det alene, Det synes rimelig å anta 464 00:22:22,110 --> 00:22:25,310 som for en bruker i USA å få tilgang til en europeisk server 465 00:22:25,310 --> 00:22:28,900 kan ta to eller tre ganger så lenge, selv i millisekunder, 466 00:22:28,900 --> 00:22:31,280 enn det kan ta hvis det Serveren ble plassert her 467 00:22:31,280 --> 00:22:33,370 geografisk, eller vice versa. 468 00:22:33,370 --> 00:22:35,120 Så når jeg foreslo tidligere at spesielt 469 00:22:35,120 --> 00:22:37,880 når du krysser som 200 millisekund terskel, gi eller ta, 470 00:22:37,880 --> 00:22:39,210 mennesker begynner å legge merke til. 471 00:22:39,210 --> 00:22:42,960 Og spor rute er bare forutsatt rå, uinteressante data. 472 00:22:42,960 --> 00:22:46,570 Når du har et nettsted, må du får brukeren laster ned bilder eller film 473 00:22:46,570 --> 00:22:49,150 filer, mye tekst, senere forespørsler. 474 00:22:49,150 --> 00:22:53,116 Vi så da vi besøkte, hva var det, Facebook eller Amazon tidligere, 475 00:22:53,116 --> 00:22:55,490 det er en hel masse ting som må lastes ned. 476 00:22:55,490 --> 00:22:56,573 Så det kommer til å legge opp. 477 00:22:56,573 --> 00:23:00,259 Så multi-sekunder makt ikke være urimelig. 478 00:23:00,259 --> 00:23:01,800 Så bra, er geografi en ingrediens. 479 00:23:01,800 --> 00:23:05,920 Så faktisk selskaper som Akamai, hvis du har hørt om dem, 480 00:23:05,920 --> 00:23:10,000 eller andre har lenge tatt geografi i betraktning. 481 00:23:10,000 --> 00:23:14,170 Og det viser seg at ved natur en IP-adresse, min laptop IP-adresse, 482 00:23:14,170 --> 00:23:18,277 du kan antyde, med en viss sannsynlighet, hvor du er i verden. 483 00:23:18,277 --> 00:23:20,110 Og faktisk er det tredjeparts tjenester du 484 00:23:20,110 --> 00:23:24,480 kan betale som vedlikeholde databaser IP-adresser og geografiske 485 00:23:24,480 --> 00:23:28,660 at med høy tillit vil være sant når de blir spurt, hvor i verden 486 00:23:28,660 --> 00:23:30,090 er denne IP-adressen? 487 00:23:30,090 --> 00:23:32,130 >> Og så faktisk hva andre selskaper bruker dette? 488 00:23:32,130 --> 00:23:35,900 Hvis du har Hulu eller Netflix, hvis du noen gang har vært på reise i utlandet, 489 00:23:35,900 --> 00:23:38,640 og du prøver å se noe på Hulu, og du er ikke i USA, 490 00:23:38,640 --> 00:23:41,280 du kan se en melding si, ikke i USA. 491 00:23:41,280 --> 00:23:43,208 Beklager, du kan ikke se innholdet. 492 00:23:43,208 --> 00:23:44,420 >> PUBLIKUM: [uhørlig] 493 00:23:44,420 --> 00:23:46,020 >> DAVID MALAN: Oh, really? 494 00:23:46,020 --> 00:23:48,480 Men ja, så faktisk det er en perfekt applikasjon 495 00:23:48,480 --> 00:23:51,060 av noe veldig teknisk til en faktisk problem. 496 00:23:51,060 --> 00:23:55,100 Hvis du skulle VPN fra Europa eller Asia eller hvor som helst 497 00:23:55,100 --> 00:23:57,950 i verden til bedriftens hovedkvarter i New York 498 00:23:57,950 --> 00:24:00,670 eller uansett hvor du er, du er kommer til å skape inntrykk 499 00:24:00,670 --> 00:24:03,580 til eksterne nettsteder som du er faktisk i New York, 500 00:24:03,580 --> 00:24:05,660 selv om du er fysisk ganske langt unna. 501 00:24:05,660 --> 00:24:08,057 >> Nå du brukeren skal vet du er tydeligvis borte. 502 00:24:08,057 --> 00:24:11,140 Men du er også kommer til å føle det på grunn av de ekstra millisekunder. 503 00:24:11,140 --> 00:24:14,510 At ytterligere avstand og kryptering som skjer i VPN 504 00:24:14,510 --> 00:24:15,760 kommer til å bremse ting ned. 505 00:24:15,760 --> 00:24:17,680 Så det kan eller ikke kan være en stor opplevelse. 506 00:24:17,680 --> 00:24:21,050 Men Hulu og Netflix kommer til å se du som sitter et sted i New York, 507 00:24:21,050 --> 00:24:23,817 som du har klart sanket. 508 00:24:23,817 --> 00:24:25,150 Hva en perfekt løsning på det. 509 00:24:25,150 --> 00:24:28,490 >> Greit, så geografi er en avgjørelse. 510 00:24:28,490 --> 00:24:32,290 Hva annet kan vi bruke til å bestemme hvordan å rute trafikk fra A, B og C 511 00:24:32,290 --> 00:24:37,040 til 1, 2 og 3, igjen, å sette prosjektering lue på? 512 00:24:37,040 --> 00:24:38,850 Dette høres veldig komplisert. 513 00:24:38,850 --> 00:24:41,490 Uh, jeg vet ikke engang hvor å begynne å implementere dem. 514 00:24:41,490 --> 00:24:44,450 Gi meg noe som er enklere. 515 00:24:44,450 --> 00:24:48,160 Hva er den enkleste måten å ta denne beslutningen? 516 00:24:48,160 --> 00:24:49,840 >> PUBLIKUM: Er server tilgjengelig? 517 00:24:49,840 --> 00:24:51,650 >> DAVID MALAN: Er server tilgjengelig? 518 00:24:51,650 --> 00:24:53,970 Så det er ikke ille. 519 00:24:53,970 --> 00:24:54,470 Det er bra. 520 00:24:54,470 --> 00:24:56,260 Det er liksom en nyansering av last. 521 00:24:56,260 --> 00:24:58,070 Så la oss holde det i lasten kategorien. 522 00:24:58,070 --> 00:25:00,010 Hvis du er tilgjengelig, jeg er bare kommer til å sende data der. 523 00:25:00,010 --> 00:25:01,343 Men det kan slå tilbake raskt. 524 00:25:01,343 --> 00:25:05,720 For hvis jeg bruker den logikken, og hvis jeg alltid spørre en, er du på, er du på, 525 00:25:05,720 --> 00:25:08,970 er du på, hvis svaret er alltid ja, Jeg kommer til å sende 100% av trafikken 526 00:25:08,970 --> 00:25:11,060 til ham, 0% til alle andre. 527 00:25:11,060 --> 00:25:14,430 Og på et tidspunkt, vi kommer til å treffe at nedgangen eller nettstedet utilgjengelig. 528 00:25:14,430 --> 00:25:17,630 Så hva er litt bedre enn det, men fortsatt ganske enkelt 529 00:25:17,630 --> 00:25:22,412 og ikke på langt nær så flink som tar alle disse tilleggsdata i betraktning? 530 00:25:22,412 --> 00:25:23,992 >> PUBLIKUM: 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å la meg kaste det i belastningen kategorien, også. 533 00:25:28,010 --> 00:25:30,790 Fordi det du finner i et selskap, også-- at hvis du 534 00:25:30,790 --> 00:25:32,790 oppgradere dine servere over tid, eller kjøpe mer, 535 00:25:32,790 --> 00:25:36,242 kan du ikke være i stand til å få nøyaktig de samme versjoner av maskinvare. 536 00:25:36,242 --> 00:25:37,450 Fordi det faller ut av dato. 537 00:25:37,450 --> 00:25:38,491 Du kan ikke kjøpe det lenger. 538 00:25:38,491 --> 00:25:39,360 Prisene endres. 539 00:25:39,360 --> 00:25:42,500 >> Så du kan ha ulike servere i klyngen, så å si. 540 00:25:42,500 --> 00:25:43,890 Det er helt greit. 541 00:25:43,890 --> 00:25:47,100 Men neste års maskinvare kan være dobbelt så raskt, 542 00:25:47,100 --> 00:25:49,390 dobbelt så dyktige som årets. 543 00:25:49,390 --> 00:25:51,500 Så vi kan kaste det i belastningen kategorien. 544 00:25:51,500 --> 00:25:54,260 Dette feedback loop mellom 1, 2 og 3 i lastbalansering 545 00:25:54,260 --> 00:25:57,650 kan sikkert fortelle det, hei, jeg er på 50% kapasitet. 546 00:25:57,650 --> 00:26:00,100 Men forresten, jeg også har dobbelt så mange kjerner. 547 00:26:00,100 --> 00:26:02,319 Bruk denne informasjonen. 548 00:26:02,319 --> 00:26:05,110 Selv simpler-- og dette kommer å være et tema i informatikk. 549 00:26:05,110 --> 00:26:08,990 Når du er i tvil, eller når du vil ha en enkel løsning som vanligvis fungerer godt 550 00:26:08,990 --> 00:26:12,730 over tid, ikke velger det samme serveren hele tiden, men choose-- 551 00:26:12,730 --> 00:26:14,039 >> PUBLIKUM: En tilfeldig en? 552 00:26:14,039 --> 00:26:15,330 DAVID MALAN: -A tilfeldig server. 553 00:26:15,330 --> 00:26:16,780 Ja, velge det ene eller det andre. 554 00:26:16,780 --> 00:26:21,160 Så tilfeldig er faktisk dette svært kraftig ingrediens 555 00:26:21,160 --> 00:26:23,170 i informatikk, og i ingeniørfag mer 556 00:26:23,170 --> 00:26:27,160 generelt, spesielt når du vil å lage en enkel beslutning raskt 557 00:26:27,160 --> 00:26:30,480 uten kompliserende det med alt av disse veldig flink, men også 558 00:26:30,480 --> 00:26:34,330 veldig smart, løsninger som krever desto mer engineering, alle 559 00:26:34,330 --> 00:26:36,220 jo mer tenkte, når egentlig, hvorfor gjør ikke jeg 560 00:26:36,220 --> 00:26:39,200 bare slags knipse en mynt, eller en tre-sidig mynt i dette tilfellet 561 00:26:39,200 --> 00:26:41,690 og bestemme om du vil gå ett, to, tre? 562 00:26:41,690 --> 00:26:45,610 >> Det kan slå tilbake på sannsynlighets, men mye som oddsen 563 00:26:45,610 --> 00:26:48,860 av bla hoder igjen og igjen og igjen og igjen 564 00:26:48,860 --> 00:26:53,870 og igjen og igjen er mulig i reality-- super, super usannsynlig. 565 00:26:53,870 --> 00:26:58,170 Så over tid, oddsen er bare å sende brukere tilfeldig 566 00:26:58,170 --> 00:27:00,660 til 1, 2 og 3 skal trene helt greit. 567 00:27:00,660 --> 00:27:03,380 Og dette er en teknikk vanligvis kjent som round robin. 568 00:27:03,380 --> 00:27:05,160 >> Eller egentlig, det er ikke round robin. 569 00:27:05,160 --> 00:27:06,980 Dette ville være tilfeldig måte. 570 00:27:06,980 --> 00:27:09,250 Og hvis du ønsker å bli enda en litt enklere enn det, 571 00:27:09,250 --> 00:27:12,820 round robin ville være, første person går til 1, andre person til 2, tredje person 572 00:27:12,820 --> 00:27:16,056 til 3 fjerde person til en. 573 00:27:16,056 --> 00:27:17,430 Og deri ligger round robin. 574 00:27:17,430 --> 00:27:19,580 Du bare slags gå rundt i en syklus. 575 00:27:19,580 --> 00:27:21,300 >> Nå bør du være smart om det. 576 00:27:21,300 --> 00:27:26,490 Du bør ikke blindt sende brukeren til Serveren nummer en hvis det er tilfelle? 577 00:27:26,490 --> 00:27:30,060 578 00:27:30,060 --> 00:27:32,870 Hvis det er på maks kapasitet, eller det er bare ikke lenger responsive. 579 00:27:32,870 --> 00:27:35,270 Så ideelt du ønsker noen slags feedback loop. 580 00:27:35,270 --> 00:27:38,040 Ellers, du bare sende alle av brukerne til en blindvei. 581 00:27:38,040 --> 00:27:40,790 Men som kan tas i betraktning, også. 582 00:27:40,790 --> 00:27:46,520 >> Så ikke i henhold setter pris på verdien av bare tilfeldig, noe som er ganske ofte 583 00:27:46,520 --> 00:27:48,970 en løsning på disse problemene. 584 00:27:48,970 --> 00:27:51,580 Og vi skal skrive ned round robin. 585 00:27:51,580 --> 00:27:55,090 Så hvordan gjennomføre noen selskaper round robin eller tilfeldig 586 00:27:55,090 --> 00:27:56,840 eller en hvilken som helst av disse beslutningene? 587 00:27:56,840 --> 00:28:01,840 Vel dessverre, de gjøre ting som dette. 588 00:28:01,840 --> 00:28:03,660 La meg trekke opp en annen rask skjermbilde. 589 00:28:03,660 --> 00:28:13,052 590 00:28:13,052 --> 00:28:14,470 >> Egentlig, la oss gjøre to. 591 00:28:14,470 --> 00:28:17,420 592 00:28:17,420 --> 00:28:21,370 Jeg vet ikke hvorfor vi er får alle disse rettene. 593 00:28:21,370 --> 00:28:22,280 Det er veldig rart. 594 00:28:22,280 --> 00:28:31,714 595 00:28:31,714 --> 00:28:33,630 Greit, det jeg egentlig ønsker er et skjermbilde. 596 00:28:33,630 --> 00:28:36,990 597 00:28:36,990 --> 00:28:40,100 Det er merkelig. 598 00:28:40,100 --> 00:28:42,930 Greit, så jeg kan forfalske dette. 599 00:28:42,930 --> 00:28:46,080 Jeg vet ikke hvor mye lenger Jeg ønsker å beholde rulling. 600 00:28:46,080 --> 00:28:53,220 >> Så veldig ofte, vil du finne deg selv på en adresse som www.2.acme.com, 601 00:28:53,220 --> 00:28:56,030 kanskje www.3 eller fire eller fem. 602 00:28:56,030 --> 00:28:57,424 Og holde et øye for dette. 603 00:28:57,424 --> 00:28:58,590 Du ser det ikke så ofte. 604 00:28:58,590 --> 00:29:02,621 Men når du gjør det, den slags tendens til å være større, eldre, stodgier selskaper 605 00:29:02,621 --> 00:29:05,370 som teknologisk egentlig ikke synes å vite hva de gjør. 606 00:29:05,370 --> 00:29:08,150 Og du ser dette på tech selskaper noen ganger, de eldre. 607 00:29:08,150 --> 00:29:09,270 >> Så hva gjør de? 608 00:29:09,270 --> 00:29:11,890 Hvordan er de å implementere lastbalansering, ville det virke? 609 00:29:11,890 --> 00:29:15,986 Hvis du befinner deg som bruker skrive www.something.com, 610 00:29:15,986 --> 00:29:19,760 og plutselig er du på www.2.something.com, 611 00:29:19,760 --> 00:29:21,866 hva har sin last balanserer sannsynligvis gjort? 612 00:29:21,866 --> 00:29:22,741 PUBLIKUM: [uhørlig] 613 00:29:22,741 --> 00:29:28,210 614 00:29:28,210 --> 00:29:31,079 >> DAVID MALAN: Ja, så lastbalansering er antagelig 615 00:29:31,079 --> 00:29:33,870 tar en beslutning basert på en av disse beslutnings processes-- 616 00:29:33,870 --> 00:29:35,210 spiller ingen rolle hvilken. 617 00:29:35,210 --> 00:29:38,650 Men mye som jeg har trukket tall på bordet her, 618 00:29:38,650 --> 00:29:40,650 serverne er ikke bare kalt en, to og tre. 619 00:29:40,650 --> 00:29:43,870 De er sannsynligvis kalt www1, www2, www3. 620 00:29:43,870 --> 00:29:47,200 Og det viser seg at innsiden av en HTTP-forespørsel er denne funksjonen. 621 00:29:47,200 --> 00:29:48,950 Og jeg kommer til å simulere denne som følger. 622 00:29:48,950 --> 00:29:53,230 >> Jeg kommer til å åpne opp det samme Kategorien utvikler nettverket som før bare 623 00:29:53,230 --> 00:29:55,560 slik at vi kan se hva som skjer på under panseret. 624 00:29:55,560 --> 00:29:57,130 Jeg kommer til å tømme skjermen. 625 00:29:57,130 --> 00:30:03,420 Og jeg kommer til å gå til, la oss si, http://harvard.edu. 626 00:30:03,420 --> 00:30:06,560 Nå uansett forretningsmessige årsaker, Harvard 627 00:30:06,560 --> 00:30:08,930 har bestemt seg, som mange, mange andre nettsteder, 628 00:30:08,930 --> 00:30:12,712 å standardisere sin nettside om www.harvard.edu 629 00:30:12,712 --> 00:30:14,420 for både teknisk og markedsmessige årsaker. 630 00:30:14,420 --> 00:30:16,326 Det er bare slags i moten å ha www. 631 00:30:16,326 --> 00:30:20,500 >> Slik at serveren ved Harvard har å liksom omdirigere brukeren, 632 00:30:20,500 --> 00:30:23,830 som jeg holde si, fra en URL til den andre. 633 00:30:23,830 --> 00:30:24,670 Hvordan fungerer det? 634 00:30:24,670 --> 00:30:26,740 Vel, la meg gå videre og trykk Enter. 635 00:30:26,740 --> 00:30:30,830 Og legg merke til nettadressen faktisk raskt endret til www.harvard.edu. 636 00:30:30,830 --> 00:30:35,560 La meg bla tilbake i denne historie og klikk på denne debug 637 00:30:35,560 --> 00:30:37,650 diagnostisk informasjon, hvis du vil. 638 00:30:37,650 --> 00:30:39,170 La meg se på min forespørsel. 639 00:30:39,170 --> 00:30:41,020 >> Så her er forespørsel jeg gjorde. 640 00:30:41,020 --> 00:30:44,870 Og legg merke til det er i samsvar med den type av be jeg laget av Facebook før. 641 00:30:44,870 --> 00:30:48,010 Men legg merke til svaret. 642 00:30:48,010 --> 00:30:50,430 Hva er annerledes i responsen denne gangen? 643 00:30:50,430 --> 00:30:51,890 >> PUBLIKUM: [uhørlig] 644 00:30:51,890 --> 00:30:54,290 >> DAVID MALAN: Ja, så det er ikke en 200 OK. 645 00:30:54,290 --> 00:30:56,130 Det er ikke en 404 Not Found. 646 00:30:56,130 --> 00:31:00,150 Det er en 301 flyttet permanent, noe som er en slags morsom måte å si: 647 00:31:00,150 --> 00:31:05,270 Harvard har upped og flyttet andre steder for å www.harvard.edu. 648 00:31:05,270 --> 00:31:08,220 De 301 betyr at Dette er en viderekobling. 649 00:31:08,220 --> 00:31:12,812 Og der bør brukeren tilsynelatende bli omdirigert? 650 00:31:12,812 --> 00:31:15,520 Det er en ekstra godbit av Informasjonen i konvolutten. 651 00:31:15,520 --> 00:31:19,650 Og hver av disse linjene vil nå begynne å kalle en HTTP-header. 652 00:31:19,650 --> 00:31:23,620 Header er bare en nøkkelverdi pair-- noe kolon noe. 653 00:31:23,620 --> 00:31:24,850 Det er en bit av informasjon. 654 00:31:24,850 --> 00:31:27,131 Hvor bør den nye plassering tilsynelatende være? 655 00:31:27,131 --> 00:31:31,120 656 00:31:31,120 --> 00:31:33,692 Legg merke til den siste linjen blant alle disse overskriftene. 657 00:31:33,692 --> 00:31:34,940 >> PUBLIKUM: [uhørlig] 658 00:31:34,940 --> 00:31:37,148 >> DAVID MALAN: Ja, så det er tilleggsinformasjon. 659 00:31:37,148 --> 00:31:40,120 Den første linjen som jeg har uthevet sier 301 flyttet permanent. 660 00:31:40,120 --> 00:31:42,820 Vel, der har det flyttet? 661 00:31:42,820 --> 00:31:45,340 Den siste line-- og de ikke må være i denne rekkefølgen. 662 00:31:45,340 --> 00:31:47,020 Det kan være tilfeldig. 663 00:31:47,020 --> 00:31:52,120 Sted kolon betyr, hei leseren, gå til denne nettadressen i stedet. 664 00:31:52,120 --> 00:31:55,180 >> Så lesere forstår HTTP omdirigeringer. 665 00:31:55,180 --> 00:31:57,540 Og dette er en veldig, veldig vanlig måte å sprette 666 00:31:57,540 --> 00:31:59,680 brukeren fra ett sted til et annet. 667 00:31:59,680 --> 00:32:02,660 For eksempel, hvis du noen gang har prøvd å besøke en nettside som du ikke 668 00:32:02,660 --> 00:32:06,360 logget inn, kan du plutselig finne selv på en ny nettadresse helt å være 669 00:32:06,360 --> 00:32:07,530 bedt om å logge inn. 670 00:32:07,530 --> 00:32:08,400 >> Hvordan fungerer det? 671 00:32:08,400 --> 00:32:10,920 Serveren er trolig sender en 301. 672 00:32:10,920 --> 00:32:14,510 Det finnes også andre tall, som 302, noe annerledes i betydning, 673 00:32:14,510 --> 00:32:16,490 som sender deg til en annen URL. 674 00:32:16,490 --> 00:32:18,770 Og deretter serveren, når du har logget inn, 675 00:32:18,770 --> 00:32:22,000 vil sende deg tilbake til der du faktisk ment. 676 00:32:22,000 --> 00:32:27,700 >> Så hva da, er dårlig utviklet nettsteder gjør? 677 00:32:27,700 --> 00:32:31,340 Når du besøker www.acme.com, og de bare 678 00:32:31,340 --> 00:32:35,490 tilfeldigvis har kalt sine servere www1, www2, www3, og så videre, 679 00:32:35,490 --> 00:32:39,100 de er veldig simply-- som er rettferdig, men veldig 680 00:32:39,100 --> 00:32:46,080 slags foolishly-- omdirigere deg til en faktisk annerledes heter server. 681 00:32:46,080 --> 00:32:48,650 Og det fungerer helt greit. 682 00:32:48,650 --> 00:32:49,930 Det er fint og lett. 683 00:32:49,930 --> 00:32:52,200 >> Vi har sett hvordan det ville være gjort under panseret 684 00:32:52,200 --> 00:32:53,490 i den virtuelle konvolutten. 685 00:32:53,490 --> 00:32:56,450 Men hvorfor er dette uten tvil en dårlig prosjektering avgjørelse? 686 00:32:56,450 --> 00:33:00,345 Og hvorfor er jeg slags nedlatende mot denne spesielle ingeniør 687 00:33:00,345 --> 00:33:00,845 nærme seg? 688 00:33:00,845 --> 00:33:06,420 689 00:33:06,420 --> 00:33:07,850 Argumentere hvorfor dette er dårlig. 690 00:33:07,850 --> 00:33:09,375 Ben? 691 00:33:09,375 --> 00:33:10,250 PUBLIKUM: [uhørlig] 692 00:33:10,250 --> 00:33:12,864 693 00:33:12,864 --> 00:33:16,030 DAVID MALAN: Hver server måtte har en kopi av nettsiden. 694 00:33:16,030 --> 00:33:16,738 Jeg er OK med det. 695 00:33:16,738 --> 00:33:19,490 Og faktisk, det er hva jeg er antok for hele denne historien, 696 00:33:19,490 --> 00:33:22,104 siden hvis vi wanted-- godt faktisk, med unntak av Dan tidligere 697 00:33:22,104 --> 00:33:25,270 forslag, der hvis du har forskjellig servere gjøre forskjellige ting, så 698 00:33:25,270 --> 00:33:27,740 kanskje de kan faktisk være funksjonelt å gjøre forskjellige ting. 699 00:33:27,740 --> 00:33:30,698 >> Men selv da, på et tidspunkt, din Databasen skal bli overbelastet. 700 00:33:30,698 --> 00:33:33,030 Din statisk eiendeler serveren kommer til å bli overbelastet. 701 00:33:33,030 --> 00:33:34,850 Så på et tidspunkt, er vi tilbake på denne historien, hvor vi 702 00:33:34,850 --> 00:33:36,475 trenger flere kopier av det samme. 703 00:33:36,475 --> 00:33:37,395 Så jeg er OK med det. 704 00:33:37,395 --> 00:33:38,270 PUBLIKUM: [uhørlig] 705 00:33:38,270 --> 00:33:42,340 706 00:33:42,340 --> 00:33:45,350 >> DAVID MALAN: Ok, så noen sider kan være uforholdsmessig populært. 707 00:33:45,350 --> 00:33:50,460 Og så å fiksere på en adresse er ikke nødvendigvis det beste. 708 00:33:50,460 --> 00:33:51,110 [Hørbar]? 709 00:33:51,110 --> 00:33:51,985 >> PUBLIKUM: [uhørlig] 710 00:33:51,985 --> 00:33:54,770 711 00:33:54,770 --> 00:33:57,623 >> DAVID MALAN: Hva mener du med det? 712 00:33:57,623 --> 00:33:58,498 PUBLIKUM: [uhørlig] 713 00:33:58,498 --> 00:34:03,820 714 00:34:03,820 --> 00:34:05,072 >> DAVID MALAN: Ja, akkurat. 715 00:34:05,072 --> 00:34:07,280 Så du ikke ønsker å nødvendigvis Opptaktene du sikkert 716 00:34:07,280 --> 00:34:11,370 ønsker ikke å ha brukerne manuelt skrive inn www1 eller www2. 717 00:34:11,370 --> 00:34:14,550 Fra en branding perspektiv, det bare ser litt latterlig. 718 00:34:14,550 --> 00:34:17,340 Hvis du bare vil ha en slags ren, elegant opplevelse, 719 00:34:17,340 --> 00:34:20,364 å ha disse slags tilfeldig nummererte webadresser er virkelig ikke bra. 720 00:34:20,364 --> 00:34:22,780 Fordi da brukerne er sikkert kommer til å kopiere og lime dem 721 00:34:22,780 --> 00:34:24,449 i e-post eller direktemeldinger. 722 00:34:24,449 --> 00:34:25,659 >> Nå er de forplanter seg. 723 00:34:25,659 --> 00:34:28,600 Nå er du liksom forvirrende din mindre teknisk publikum, som mener 724 00:34:28,600 --> 00:34:32,239 din web-adresse er www2.something.com. 725 00:34:32,239 --> 00:34:35,434 Det finnes ingen overbevisende semantikk til det. 726 00:34:35,434 --> 00:34:38,100 Det skjer bare for å være en underliggende tekniske detaljer som du har 727 00:34:38,100 --> 00:34:40,190 nummerert serverne på denne måten. 728 00:34:40,190 --> 00:34:45,760 >> Og enda verre, hva om, for eksempel, kanskje rundt juletider da 729 00:34:45,760 --> 00:34:50,090 virksomheten er virkelig blomstrende, du har fått www1 gjennom www99, 730 00:34:50,090 --> 00:34:53,530 men i januar og februar, og videre, slår du av halvparten av de 731 00:34:53,530 --> 00:34:56,440 slik at du bare har www1 gjennom www50? 732 00:34:56,440 --> 00:35:01,963 Hva er konsekvensen nå for at svært rimelig forretningsmessig beslutning? 733 00:35:01,963 --> 00:35:02,838 PUBLIKUM: [uhørlig] 734 00:35:02,838 --> 00:35:05,628 735 00:35:05,628 --> 00:35:07,752 DAVID MALAN: Du må administrere alle de som fortsatt. 736 00:35:07,752 --> 00:35:10,515 PUBLIKUM: [uhørlig] 737 00:35:10,515 --> 00:35:11,390 DAVID MALAN: Nettopp. 738 00:35:11,390 --> 00:35:12,681 Det er litt av fangsten der. 739 00:35:12,681 --> 00:35:16,800 Hvis kundene er i vane bookmarking ting, sende dem, bare 740 00:35:16,800 --> 00:35:19,351 lagre URL sted, eller hvis det er bare i sin auto 741 00:35:19,351 --> 00:35:22,350 full i nettleseren slik at de er egentlig ikke med vilje å skrive det, 742 00:35:22,350 --> 00:35:25,560 det er bare skjer, de kunne, for 11 måneder av året 743 00:35:25,560 --> 00:35:27,190 effektivt, nå en blindvei. 744 00:35:27,190 --> 00:35:30,100 Og bare de mest gløgg av brukerne kommer til å realisere, 745 00:35:30,100 --> 00:35:32,040 Kanskje jeg burde manuelt fjerne dette nummeret. 746 00:35:32,040 --> 00:35:35,610 Jeg mener, det er bare ikke til å skje med mange brukere, så dårlig for business, 747 00:35:35,610 --> 00:35:37,750 dårlig implementering ingeniør klok. 748 00:35:37,750 --> 00:35:40,230 >> Så heldigvis er det ikke engang nødvendig. 749 00:35:40,230 --> 00:35:43,120 Det viser seg at det belastningsfordelt kan gjøre 750 00:35:43,120 --> 00:35:48,130 er stedet for å si, når A gjør en request-- hei A, gå til en. 751 00:35:48,130 --> 00:35:50,280 Med andre ord, i stedet sende som viderekobling 752 00:35:50,280 --> 00:35:53,540 slik at trinn en i denne Prosessen er farten her, 753 00:35:53,540 --> 00:35:55,280 Han blir deretter bedt om å gå andre steder. 754 00:35:55,280 --> 00:35:57,530 Og så trinn tre er, han går andre steder. 755 00:35:57,530 --> 00:36:04,600 >> Du kan i stedet fortsette å rute, til fortsette å bruke det uttrykket, alle av en data 756 00:36:04,600 --> 00:36:10,590 gjennom lastbalansering slik at han aldri kontakter 1, 2, eller 3 direkte. 757 00:36:10,590 --> 00:36:15,150 All trafikk får "rutet" av lastbalansering selv. 758 00:36:15,150 --> 00:36:17,524 Og så nå er vi liksom bevisst å viske ut linjene 759 00:36:17,524 --> 00:36:18,690 blant disse ulike enheter. 760 00:36:18,690 --> 00:36:20,930 En lastbalansering kan rutedata. 761 00:36:20,930 --> 00:36:22,435 Det er bare en funksjon som den har. 762 00:36:22,435 --> 00:36:25,420 >> Så en lastbalansering, også, det er et stykke programvare, egentlig. 763 00:36:25,420 --> 00:36:27,130 Og en ruter er et stykke programvare. 764 00:36:27,130 --> 00:36:29,660 Og du kan absolutt ha to stykker av programvare inne 765 00:36:29,660 --> 00:36:34,000 fra en fysisk maskin så en belastning balancer kan gjøre disse flere ting. 766 00:36:34,000 --> 00:36:36,130 >> Så det er en annen måte å gjøre dette, som faktisk 767 00:36:36,130 --> 00:36:39,670 går tilbake til slags første prinsipper av DNS, som vi snakket om 768 00:36:39,670 --> 00:36:40,230 før pause. 769 00:36:40,230 --> 00:36:41,634 DNS var Domain Name System. 770 00:36:41,634 --> 00:36:43,550 Husk at du kan spør en DNS-server, hva er 771 00:36:43,550 --> 00:36:46,460 IP-adressen google.com, facebook.com? 772 00:36:46,460 --> 00:36:48,250 >> Og vi kan faktisk gjøre dette. 773 00:36:48,250 --> 00:36:51,940 Et verktøy vi bruker ikke tidligere er en som er like tilgjengelig, 774 00:36:51,940 --> 00:36:55,510 kalt nslookup, for navneserver oppslag. 775 00:36:55,510 --> 00:36:57,410 Og jeg skal bare skrive facebook.com. 776 00:36:57,410 --> 00:37:02,500 Og jeg ser at Facebook IP Adressen er tydeligvis dette. 777 00:37:02,500 --> 00:37:05,520 La meg gå videre og kopiere det, gå til en nettleser, 778 00:37:05,520 --> 00:37:11,690 og gå til http: // og at IP-adresse og trykk Enter. 779 00:37:11,690 --> 00:37:14,140 Og ganske riktig, virker det til å fungere. 780 00:37:14,140 --> 00:37:18,610 >> Nå arbeider baklengs, hva var på innsiden av den virtuelle konvolutten 781 00:37:18,610 --> 00:37:25,454 som Facebook svarte med når Jeg besøkte den IP-adressen direkte? 782 00:37:25,454 --> 00:37:26,745 Fordi varsel, hvor er jeg nå? 783 00:37:26,745 --> 00:37:29,250 784 00:37:29,250 --> 00:37:32,484 Hvor er jeg nå, adressen? 785 00:37:32,484 --> 00:37:33,450 >> PUBLIKUM: [uhørlig] 786 00:37:33,450 --> 00:37:36,116 >> DAVID MALAN: På den sikre versjonen, og ved www.facebook.com. 787 00:37:36,116 --> 00:37:38,520 Så det er ikke engang bare det sikre IP-adresse. 788 00:37:38,520 --> 00:37:42,650 Facebook har tatt det på seg selv å si, dette er latterlig. 789 00:37:42,650 --> 00:37:45,710 Vi kommer ikke til å holde deg på dette stygg leter URL som er numeriske. 790 00:37:45,710 --> 00:37:50,120 Vi kommer til å sende deg en HTTP omdirigere ved hjelp av den samme header 791 00:37:50,120 --> 00:37:53,010 som vi så before-- plassering kolon noe. 792 00:37:53,010 --> 00:37:56,340 >> Og så dette betyr bare at under panseret er fortsatt denne IP-adressen. 793 00:37:56,340 --> 00:37:59,010 Hver datamaskin på Internett har en IP-adresse, vil det synes. 794 00:37:59,010 --> 00:38:01,480 Men du trenger ikke nødvendigvis å utsette det for brukeren. 795 00:38:01,480 --> 00:38:07,190 Og mye som tilbake i dag, er det 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 en måte å gjøre collect kaller via et svært enkelt minneverdig telefon 797 00:38:11,700 --> 00:38:17,140 nummer, eller 1-800-madrass å kjøpe en seng, og lignende huskeregler som du selv se 798 00:38:17,140 --> 00:38:20,460 på telefon type slags fortsatt, at brev kart til tall. 799 00:38:20,460 --> 00:38:21,470 >> Nå, hvorfor er det? 800 00:38:21,470 --> 00:38:26,080 Vel, det er mye lettere å huske 1-800-madrass eller 1-800-SAMLE stedet 801 00:38:26,080 --> 00:38:29,100 fra 1-800 noe noe noe noe noe noe 802 00:38:29,100 --> 00:38:31,030 noe, hvor hver enkelt av dem er et siffer. 803 00:38:31,030 --> 00:38:34,390 Tilsvarende har lært verden raskt at vi ikke skal 804 00:38:34,390 --> 00:38:35,940 har folk huske IP-adresser. 805 00:38:35,940 --> 00:38:36,826 Det ville være dumt. 806 00:38:36,826 --> 00:38:38,200 Vi kommer til å bruke navn i stedet. 807 00:38:38,200 --> 00:38:40,420 Og det er derfor DNS ble født. 808 00:38:40,420 --> 00:38:45,510 >> All right, så med det sagt, når det gjelder lastbalansering, la oss prøve yahoo.com. 809 00:38:45,510 --> 00:38:47,030 Vel, det er interessant. 810 00:38:47,030 --> 00:38:51,464 Yahoo ser ut til å være tilbake tre IP-adresser. 811 00:38:51,464 --> 00:38:53,940 Så slutte fra dette, hvis du kunne, hva er 812 00:38:53,940 --> 00:38:58,600 en annen måte at vi kunne gjennomføre denne oppfatningen av lastbalansering 813 00:38:58,600 --> 00:39:04,310 kanskje uten engang å bruke en fysisk enhet, denne nye fysisk enhet? 814 00:39:04,310 --> 00:39:08,070 >> Med andre ord, kan jeg ta bort finansiering du ha for lastbalansering 815 00:39:08,070 --> 00:39:10,990 og fortelle deg å bruke noen eksisterende stykke maskinvare for å implementere 816 00:39:10,990 --> 00:39:12,680 denne oppfatningen av lastbalansering? 817 00:39:12,680 --> 00:39:18,870 818 00:39:18,870 --> 00:39:22,510 Og spoiler er, ja, men hva, eller hvordan? 819 00:39:22,510 --> 00:39:27,605 Hva er Yahoo kanskje gjør her? 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 PUBLIKUM: [uhørlig] 823 00:39:31,510 --> 00:39:35,119 824 00:39:35,119 --> 00:39:36,910 DAVID MALAN: Ja, alle tre av dem arbeid. 825 00:39:36,910 --> 00:39:39,890 Så tilfeldig, round robin, beliggenhet-- du kan bare 826 00:39:39,890 --> 00:39:44,160 utnytte en eksisterende brikke i puslespillet som vi snakket om tidligere i DNS 827 00:39:44,160 --> 00:39:49,580 system og bare si, når den første Brukeren av dagen ber yahoo.com, 828 00:39:49,580 --> 00:39:52,970 gi dem den første IP-adresse, som den slutter i 45 der oppe. 829 00:39:52,970 --> 00:39:55,762 Og neste gang en bruker ber om IP-adressen til yahoo.com 830 00:39:55,762 --> 00:39:57,970 fra et sted i verden, gi dem den andre IP, 831 00:39:57,970 --> 00:39:59,920 Da den tredje IP, deretter første IP, deretter den andre. 832 00:39:59,920 --> 00:40:01,850 Eller være smart om det og gjøre det grafisk. 833 00:40:01,850 --> 00:40:05,200 Eller gjør det tilfeldig og ikke bare gjøre det round robin på denne måten. 834 00:40:05,200 --> 00:40:07,580 >> Og i dette tilfellet, så vi trenger ikke engang 835 00:40:07,580 --> 00:40:10,190 å innføre denne svart boksen inn i vårt bilde. 836 00:40:10,190 --> 00:40:11,690 Vi trenger ikke en ny enhet. 837 00:40:11,690 --> 00:40:16,930 Vi er rett og slett fortelle datamaskiner å gå til servere direkte, 838 00:40:16,930 --> 00:40:18,680 effektivt, men ikke ved hjelp av sitt navn. 839 00:40:18,680 --> 00:40:20,054 De aldri trenger å vite navnet. 840 00:40:20,054 --> 00:40:25,690 De er bare å bli fortalt at yahoo.com Kartene til hvilket som helst av disse IP-adresser. 841 00:40:25,690 --> 00:40:28,180 >> Så det sender nøyaktig samme forespørsel. 842 00:40:28,180 --> 00:40:30,100 Men på utsiden av konvolutten, det rett og slett 843 00:40:30,100 --> 00:40:32,740 setter IP at det ble informert om. 844 00:40:32,740 --> 00:40:35,590 Og på denne måten også kunne vi laster balansere forespørsler 845 00:40:35,590 --> 00:40:39,330 bare ved å sende konvolutten til en annen av Yahoos egne servere? 846 00:40:39,330 --> 00:40:42,390 >> Og hvis vi holder graving, vi får se sannsynligvis andre selskaper med mer. 847 00:40:42,390 --> 00:40:44,380 CNN har to offentlig eksponert. 848 00:40:44,380 --> 00:40:49,610 Selv om faktisk hvis vi gjør dette igjen og igjen-- cnn.com-- du kan se 849 00:40:49,610 --> 00:40:51,730 de endrer rekkefølge, faktisk. 850 00:40:51,730 --> 00:40:56,680 Så hva mekanismen er CNN bruker, tilsynelatende? 851 00:40:56,680 --> 00:40:57,440 >> PUBLIKUM: Random. 852 00:40:57,440 --> 00:40:59,440 DAVID MALAN: Vel, det kan være tilfeldig, men det 853 00:40:59,440 --> 00:41:01,110 ser ut til å være sykling frem og tilbake. 854 00:41:01,110 --> 00:41:04,380 Så det er nok round robin der de er bare å bytte rekkefølge slik 855 00:41:04,380 --> 00:41:05,880 at jeg vil antagelig ta det første. 856 00:41:05,880 --> 00:41:08,860 Datamaskinen vil ta den første hver gang. 857 00:41:08,860 --> 00:41:10,490 Så det er lastbalansering. 858 00:41:10,490 --> 00:41:18,450 Og det gir oss, til slutt, å kartlegge data, eller kart forespørsler, 859 00:41:18,450 --> 00:41:21,240 over flere servere. 860 00:41:21,240 --> 00:41:24,226 Så hva slags problemer eksisterer nå likevel? 861 00:41:24,226 --> 00:41:26,350 Det føles som om vi bare virkelig løste en god problem. 862 00:41:26,350 --> 00:41:28,740 Vi fikk brukerne til forskjellige servere. 863 00:41:28,740 --> 00:41:31,420 Men-- oh, og Chris, gjorde du har et spørsmål før? 864 00:41:31,420 --> 00:41:34,378 >> PUBLIKUM: [uhørlig] 865 00:41:34,378 --> 00:41:43,670 866 00:41:43,670 --> 00:41:45,120 >> DAVID MALAN: Helt avhengig av. 867 00:41:45,120 --> 00:41:47,042 Så hva som skjer her? 868 00:41:47,042 --> 00:41:48,250 Og vi kan faktisk se dette. 869 00:41:48,250 --> 00:41:51,649 Så la oss prøve Yahoo. 870 00:41:51,649 --> 00:41:52,940 Egentlig, la oss gå til Facebook. 871 00:41:52,940 --> 00:41:54,520 Fordi vi vet at man jobber. 872 00:41:54,520 --> 00:41:56,545 Så jeg kommer til å kopiere at IP-adressen igjen. 873 00:41:56,545 --> 00:41:58,820 Jeg kommer til å lukke alle disse kategoriene. 874 00:41:58,820 --> 00:42:03,800 Jeg kommer til å gå åpent som spesielle nettverk fanen her nede. 875 00:42:03,800 --> 00:42:07,800 Og jeg kommer til å besøke bare http: //. 876 00:42:07,800 --> 00:42:10,694 Og nå kommer jeg til å trykke Enter. 877 00:42:10,694 --> 00:42:11,860 Og la oss se hva som skjedde. 878 00:42:11,860 --> 00:42:20,662 >> Hvis jeg ser på denne anmodning varsel at my-- Facebook er et dårlig eksempel. 879 00:42:20,662 --> 00:42:22,370 Fordi de har en super fancy teknikk 880 00:42:22,370 --> 00:42:25,960 som skjuler at detaljer fra oss. 881 00:42:25,960 --> 00:42:30,690 La meg bruke Yahoo instead-- http: // som IP. 882 00:42:30,690 --> 00:42:36,030 La oss åpne vårt nettverk tab, bevare logg. 883 00:42:36,030 --> 00:42:37,945 Og her vi går, Enter. 884 00:42:37,945 --> 00:42:40,669 885 00:42:40,669 --> 00:42:41,210 Det er morsomt. 886 00:42:41,210 --> 00:42:44,480 OK, så her er den berømte 404-melding. 887 00:42:44,480 --> 00:42:48,500 Hva er morsomt her er at de trolig aldri kommer tilbake. 888 00:42:48,500 --> 00:42:51,430 Fordi det er nok ikke noe galt i seg selv. 889 00:42:51,430 --> 00:42:54,050 De har bare bevisst besluttet ikke å støtte 890 00:42:54,050 --> 00:42:56,250 numerisk form av sin adresse. 891 00:42:56,250 --> 00:43:00,270 >> Så det vi faktisk ser i Network-kategorien, hvis jeg trekke dette opp her, 892 00:43:00,270 --> 00:43:06,140 er, som jeg sier, den berømte 404, hvor hvis jeg ser på respons overskrifter, 893 00:43:06,140 --> 00:43:09,070 dette er hva jeg fikk her-- 404 Not Found. 894 00:43:09,070 --> 00:43:11,360 Så la oss prøve en annen. 895 00:43:11,360 --> 00:43:13,180 La oss se om CNN samarbeider med oss. 896 00:43:13,180 --> 00:43:19,440 Jeg skal hente en av CNN IP-adresser, klare dette, http, dah, dah, dah, dah. 897 00:43:19,440 --> 00:43:21,620 Så som svar på Chris spørsmålet, jobbet som en. 898 00:43:21,620 --> 00:43:24,140 899 00:43:24,140 --> 00:43:26,255 >> Og la oss gå til respons overskrifter. 900 00:43:26,255 --> 00:43:30,810 901 00:43:30,810 --> 00:43:33,640 Egentlig ikke, greit, jeg er sliter med å finne en fungerende eksempel. 902 00:43:33,640 --> 00:43:38,270 Så CNN har besluttet, vil vi bare la deg uansett hvilken adresse du faktisk besøker, 903 00:43:38,270 --> 00:43:40,359 merkevarebygging problemer til side. 904 00:43:40,359 --> 00:43:43,275 Men hva ville skje hvis vi kunne se det i Facebooks tilfelle, 905 00:43:43,275 --> 00:43:46,700 er vi ville få en 301 flyttet Permanent, mest sannsynlig, 906 00:43:46,700 --> 00:43:54,420 på innsiden av hvilken er plassering: https: //www.facebook.com. 907 00:43:54,420 --> 00:44:01,210 Og oddsen er www.facebook.com er en alias for nøyaktig samme serveren vi bare 908 00:44:01,210 --> 00:44:01,710 gikk til. 909 00:44:01,710 --> 00:44:03,500 >> Så det er litt mot sin hensikt. 910 00:44:03,500 --> 00:44:05,170 Vi bokstavelig besøker serveren. 911 00:44:05,170 --> 00:44:07,040 Serveren er da å fortelle oss, gå bort. 912 00:44:07,040 --> 00:44:08,320 Gå til denne annen adresse. 913 00:44:08,320 --> 00:44:10,870 Men vi bare så måtte være gå tilbake til det samme server. 914 00:44:10,870 --> 00:44:14,550 Men antagelig vi nå holde på den server uten at dette frem og tilbake. 915 00:44:14,550 --> 00:44:18,600 Fordi nå vi bruker den navngitte versjon av nettstedet, ikke numerisk. 916 00:44:18,600 --> 00:44:20,060 Godt spørsmål. 917 00:44:20,060 --> 00:44:23,690 >> OK, så hvis vi nå assume-- vi har løst lastbalansering. 918 00:44:23,690 --> 00:44:25,894 Vi har nå en mekanisme, enten det er via DNS, 919 00:44:25,894 --> 00:44:29,060 enten det er via denne svarte boksen, enten den er ved hjelp av en hvilken som helst av disse teknikkene. 920 00:44:29,060 --> 00:44:33,810 Vi kan ta en brukers anmodning og finne ut hvilken server, 1, 2 eller 3, 921 00:44:33,810 --> 00:44:35,420 å sende ham eller henne. 922 00:44:35,420 --> 00:44:39,180 >> Det som begynner å bryte om nettstedet vårt? 923 00:44:39,180 --> 00:44:41,160 Med andre ord, har vi bygget en virksomhet som 924 00:44:41,160 --> 00:44:43,480 var tidligere på en enkelt server. 925 00:44:43,480 --> 00:44:46,870 Nå som virksomheten er i gang over flere servere. 926 00:44:46,870 --> 00:44:51,770 Hva slags forutsetninger, hva slags design beslutninger, 927 00:44:51,770 --> 00:44:54,870 kan nå være å bryte? 928 00:44:54,870 --> 00:44:55,745 >> Dette er mindre åpenbare. 929 00:44:55,745 --> 00:44:58,620 Men la oss se om vi ikke kan sette vår fingeren på noe av problemet vi har 930 00:44:58,620 --> 00:44:59,780 skapt for oss selv. 931 00:44:59,780 --> 00:45:02,750 Igjen, det er typen som holder ned lekkasje i slangen. 932 00:45:02,750 --> 00:45:05,094 Og nå noen ny emisjon har dukket opp over her. 933 00:45:05,094 --> 00:45:07,880 934 00:45:07,880 --> 00:45:11,380 >> PUBLIKUM: [uhørlig] 935 00:45:11,380 --> 00:45:16,574 936 00:45:16,574 --> 00:45:19,240 DAVID MALAN: OK, så vi må fortsette å vokse vår plass på harddisken. 937 00:45:19,240 --> 00:45:20,450 Jeg er OK med det akkurat nå. 938 00:45:20,450 --> 00:45:23,212 Fordi jeg tror jeg kan horisontalt skala. 939 00:45:23,212 --> 00:45:26,420 Som hvis jeg kjører lav, vil jeg bare få en fjerde server, kanskje en femte server, 940 00:45:26,420 --> 00:45:30,820 og deretter øke vår kapasitet med ytterligere 30% eller 50% eller hva. 941 00:45:30,820 --> 00:45:32,759 Så jeg er OK med det, i hvert fall for nå. 942 00:45:32,759 --> 00:45:33,634 PUBLIKUM: [uhørlig] 943 00:45:33,634 --> 00:45:37,314 944 00:45:37,314 --> 00:45:38,980 DAVID MALAN: OK, så det er et godt poeng. 945 00:45:38,980 --> 00:45:42,340 Så antar serverne er ikke identiske. 946 00:45:42,340 --> 00:45:45,260 Og kundeservice eller e tilsvar 947 00:45:45,260 --> 00:45:48,690 er å få noen melding fra en bruker si, dette fungerer ikke riktig. 948 00:45:48,690 --> 00:45:52,070 Det er meget mulig, noen ganger, at kanskje en eller flere servere 949 00:45:52,070 --> 00:45:55,000 opptrer litt forkjært, men ikke de andre, som kan sikkert 950 00:45:55,000 --> 00:45:57,096 gjøre det vanskeligere å jage ned problemet. 951 00:45:57,096 --> 00:45:58,720 Du må kanskje se flere steder. 952 00:45:58,720 --> 00:46:00,960 >> Det er manifestasjon av en annen form for feil, 953 00:46:00,960 --> 00:46:03,950 som er at du sannsynligvis bør har utviklet infrastrukturen slik 954 00:46:03,950 --> 00:46:06,200 at alt er helt identiske. 955 00:46:06,200 --> 00:46:10,390 Men det gjør avdekke et nytt problem at vi ikke hadde før. 956 00:46:10,390 --> 00:46:11,715 Hva annet? 957 00:46:11,715 --> 00:46:12,590 PUBLIKUM: [uhørlig] 958 00:46:12,590 --> 00:46:16,390 959 00:46:16,390 --> 00:46:19,500 >> DAVID MALAN: Ja, det er mer kompleksitet. 960 00:46:19,500 --> 00:46:20,792 Det er fysisk flere ledninger. 961 00:46:20,792 --> 00:46:21,750 Det er en annen enhet. 962 00:46:21,750 --> 00:46:26,310 Faktisk har jeg innført en fundamental konsept og et grunnleggende problem her 963 00:46:26,310 --> 00:46:28,300 kjent som et enkelt punkt for svikt, som, 964 00:46:28,300 --> 00:46:30,110 selv om du aldri har hørt uttrykket, kan du sannsynligvis 965 00:46:30,110 --> 00:46:31,780 nå jobbe bakover og finne det ut. 966 00:46:31,780 --> 00:46:35,560 Hva betyr det at jeg har et enkelt point of failure i mitt arkitektur? 967 00:46:35,560 --> 00:46:39,694 Og ved arkitektur, jeg bare bety topologien av det. 968 00:46:39,694 --> 00:46:40,610 >> PUBLIKUM: [uhørlig] 969 00:46:40,610 --> 00:46:42,901 >> DAVID MALAN: Ja, hva om lastbalansering går ned? 970 00:46:42,901 --> 00:46:46,290 Jeg har satt denne middelaldrende mann som har formål i livet er å løse et problem. 971 00:46:46,290 --> 00:46:47,740 Men jeg har introdusert et nytt problem. 972 00:46:47,740 --> 00:46:49,350 En ny lekkasje har oppstått i slangen. 973 00:46:49,350 --> 00:46:53,500 Fordi nå hvis lastbalansering dør eller pauser eller misfunctions, 974 00:46:53,500 --> 00:46:56,350 Nå mister jeg tilgang til alle tre av mine servere. 975 00:46:56,350 --> 00:46:58,880 Og før, jeg gjorde ikke har denne mellommann. 976 00:46:58,880 --> 00:47:03,020 Og så dette er et nytt problem, uten tvil. 977 00:47:03,020 --> 00:47:05,245 Vi vil komme tilbake til hvordan vi kan fikse det. 978 00:47:05,245 --> 00:47:06,734 >> PUBLIKUM: [uhørlig] 979 00:47:06,734 --> 00:47:08,400 DAVID MALAN: Det ville være en tilnærming. 980 00:47:08,400 --> 00:47:13,926 Ja, og så dette kommer til å være ganske rottehullet vi begynner å gå ned. 981 00:47:13,926 --> 00:47:15,800 Men la oss komme tilbake til som i løpet av et øyeblikk. 982 00:47:15,800 --> 00:47:17,299 Hvilke andre problemer har vi skapt? 983 00:47:17,299 --> 00:47:25,540 984 00:47:25,540 --> 00:47:27,470 >> Så Dan nevnt database før. 985 00:47:27,470 --> 00:47:29,500 Og selv om du ikke er altfor kjent teknisk, 986 00:47:29,500 --> 00:47:33,220 en database er bare en server der endring av data er vanligvis lagret, 987 00:47:33,220 --> 00:47:36,430 kanskje en ordre noen har plassert, brukerprofilen din, navnet ditt, 988 00:47:36,430 --> 00:47:40,810 e-postadressen din, ting som kanskje mates inn eller endres over tid. 989 00:47:40,810 --> 00:47:44,599 >> Tidligere databasen min var på samme server som min web server. 990 00:47:44,599 --> 00:47:46,390 Fordi jeg bare hadde en web hosting konto. 991 00:47:46,390 --> 00:47:48,480 Alt var alt på samme sted. 992 00:47:48,480 --> 00:47:54,200 Hvor skal jeg sette min database nå, på server 1, 2 eller 3? 993 00:47:54,200 --> 00:47:55,100 >> PUBLIKUM: 4. 994 00:47:55,100 --> 00:47:58,070 >> DAVID MALAN: 4, OK, alle rett, så la oss gå dit. 995 00:47:58,070 --> 00:48:01,650 Så jeg kommer til å sette min database-- og la oss 996 00:48:01,650 --> 00:48:06,520 starte merking disse www, www, www. 997 00:48:06,520 --> 00:48:08,780 Og jeg kommer til å si, dette er nummer fire. 998 00:48:08,780 --> 00:48:11,270 Og jeg vil si db for database. 999 00:48:11,270 --> 00:48:12,870 OK, jeg liker dette. 1000 00:48:12,870 --> 00:48:17,021 Hvilken linje skal jeg antagelig være tegning her? 1001 00:48:17,021 --> 00:48:18,850 >> PUBLIKUM: [uhørlig] 1002 00:48:18,850 --> 00:48:22,740 >> DAVID MALAN: Ja, så koden, som vi vil diskutere i morgen, 1003 00:48:22,740 --> 00:48:24,900 antagelig er den samme på alle tre servere. 1004 00:48:24,900 --> 00:48:28,374 Men det er behov for nå å koble ikke til en database som kjører lokalt, men andre steder. 1005 00:48:28,374 --> 00:48:29,040 Og det er greit. 1006 00:48:29,040 --> 00:48:31,623 Vi kan bare gi databasen en navn, som vi har, eller et tall. 1007 00:48:31,623 --> 00:48:33,930 Og at alt fungerer fint. 1008 00:48:33,930 --> 00:48:35,820 Men hva har vi gjort? 1009 00:48:35,820 --> 00:48:40,640 Vi har horisontalt skalert ved å ha tre servere i stedet for en, hvilke 1010 00:48:40,640 --> 00:48:41,140 er bra. 1011 00:48:41,140 --> 00:48:44,240 Fordi nå kan vi håndtere tre ganger så mye last. 1012 00:48:44,240 --> 00:48:47,710 >> Og enda bedre, hvis en eller to av disse serverne går ned, 1013 00:48:47,710 --> 00:48:49,350 min virksomhet kan fortsette å operere. 1014 00:48:49,350 --> 00:48:53,960 Fordi jeg har fortsatt en, selv om jeg er slags hinkende ytelsesmessig. 1015 00:48:53,960 --> 00:49:01,020 Men hva nytt problem har jeg innføres ved å bevege databasen 1016 00:49:01,020 --> 00:49:04,350 til dette separat server i stedet for på en, to, og tre? 1017 00:49:04,350 --> 00:49:05,412 >> PUBLIKUM: [uhørlig] 1018 00:49:05,412 --> 00:49:08,120 DAVID MALAN: Ja, så nå har jeg en annen single point of failure. 1019 00:49:08,120 --> 00:49:12,330 Hvis min database dør, eller må oppgraderes, eller hva, nå sikker, 1020 00:49:12,330 --> 00:49:13,610 min hjemmeside er online. 1021 00:49:13,610 --> 00:49:16,270 Og jeg kan tjene statisk, uforanderlig innhold. 1022 00:49:16,270 --> 00:49:21,210 Men jeg kan ikke la brukerne logge inn eller endring noe eller bestille noe enda verre. 1023 00:49:21,210 --> 00:49:24,120 Fordi hvis 4 er frakoblet, deretter 1, 2 og 3 1024 00:49:24,120 --> 00:49:27,710 egentlig ikke kan snakke med den per definisjon. 1025 00:49:27,710 --> 00:49:31,560 >> OK så ja, og så dette er grunnen Jeg nølende til å tegne dette. 1026 00:49:31,560 --> 00:49:32,690 Så la oss komme tilbake til det. 1027 00:49:32,690 --> 00:49:33,700 Jeg mener ikke å holde presser deg av. 1028 00:49:33,700 --> 00:49:36,030 Men bildet er meget raskt kommer til å få stressende. 1029 00:49:36,030 --> 00:49:38,620 Fordi du trenger for å starte å ha to av alt. 1030 00:49:38,620 --> 00:49:41,850 Faktisk, hvis du noensinne har sett Filmen Kontakt for noen år siden 1031 00:49:41,850 --> 00:49:45,310 med Jodie Foster-- nei? 1032 00:49:45,310 --> 00:49:47,410 >> OK, så for to av oss som har sett Contact, 1033 00:49:47,410 --> 00:49:50,800 det er et forhold der hvor de hovedsak kjøpte to av noe 1034 00:49:50,800 --> 00:49:53,250 snarere enn en, riktignok til dobbelt pris. 1035 00:49:53,250 --> 00:49:55,922 Så det var liksom en leken kommentere i filmen. 1036 00:49:55,922 --> 00:49:57,130 Det er slags relatert til dette. 1037 00:49:57,130 --> 00:49:58,290 Vi kunne absolutt gjøre det. 1038 00:49:58,290 --> 00:50:00,123 Og du har bare kost oss dobbelt så mye penger. 1039 00:50:00,123 --> 00:50:01,300 Men vi vil komme tilbake til det. 1040 00:50:01,300 --> 00:50:02,400 >> Så vi har løst dette. 1041 00:50:02,400 --> 00:50:03,108 Så vet du hva? 1042 00:50:03,108 --> 00:50:04,450 Dette er som en glatt skråning. 1043 00:50:04,450 --> 00:50:07,033 Jeg ønsker ikke å forholde seg til å ha å ha et duplikat database. 1044 00:50:07,033 --> 00:50:08,037 Det er for mye penger. 1045 00:50:08,037 --> 00:50:08,620 Vet du hva? 1046 00:50:08,620 --> 00:50:12,880 Jeg vil ha min database akkurat som i versjon en 1047 00:50:12,880 --> 00:50:17,450 hvor hver server har sin egen lokale database. 1048 00:50:17,450 --> 00:50:19,480 Så jeg skal bare trekke db på hver av disse. 1049 00:50:19,480 --> 00:50:22,240 >> Så nå hver webserver er identisk i hittil 1050 00:50:22,240 --> 00:50:25,650 som den har den samme koden, det samme statiske eiendeler, samme bilder og tekst 1051 00:50:25,650 --> 00:50:26,720 og så videre. 1052 00:50:26,720 --> 00:50:29,580 Og hver har sin egen database. 1053 00:50:29,580 --> 00:50:31,450 Jeg fikset enkelt punkt svikt problem. 1054 00:50:31,450 --> 00:50:32,570 Nå har jeg en database. 1055 00:50:32,570 --> 00:50:36,210 Uansett hvilken to eller en av disse ting dø, det er alltid en venstre. 1056 00:50:36,210 --> 00:50:41,156 Men hva nytt problem har jeg laget at Dan løsning unngås? 1057 00:50:41,156 --> 00:50:42,470 >> PUBLIKUM: [uhørlig] 1058 00:50:42,470 --> 00:50:44,386 >> DAVID MALAN: Ja, jeg må synkronisere dem, ikke sant? 1059 00:50:44,386 --> 00:50:47,860 Fordi enten jeg trenger å synkronisere hvem kommer where-- med andre ord, 1060 00:50:47,860 --> 00:50:50,570 hvis Alice besøker min området, som skjedde og hun 1061 00:50:50,570 --> 00:50:55,070 å få tilfeldig eller rund robined eller hva, til server nummer én, 1062 00:50:55,070 --> 00:50:58,770 Deretter må jeg alltid sende henne til server 1. 1063 00:50:58,770 --> 00:50:59,420 Hvorfor? 1064 00:50:59,420 --> 00:51:01,540 Fordi hvis jeg sender henne til server 2, kommer det til 1065 00:51:01,540 --> 00:51:03,140 å se ut som hun ikke finnes der. 1066 00:51:03,140 --> 00:51:04,450 >> Jeg kommer ikke til å ha henne ordrehistorikk. 1067 00:51:04,450 --> 00:51:06,300 Jeg kommer ikke til å ha henne profil der. 1068 00:51:06,300 --> 00:51:09,360 Og det føles bare som det er å invitere problemer. 1069 00:51:09,360 --> 00:51:11,400 Og når Bob besøker, jeg må sende ham alltid 1070 00:51:11,400 --> 00:51:14,800 til den samme server, 2 eller hvilken som helst en, og Charlie til en tredje, 1071 00:51:14,800 --> 00:51:15,797 og konsekvent. 1072 00:51:15,797 --> 00:51:17,130 Dette er ikke urimelig, skjønt. 1073 00:51:17,130 --> 00:51:19,270 Dette kalles partisjone databasen. 1074 00:51:19,270 --> 00:51:21,270 Og dette var faktisk hva Facebook gjorde tidlig. 1075 00:51:21,270 --> 00:51:24,020 >> Hvis du har fulgt historien Facebook, det startet her på campus 1076 00:51:24,020 --> 00:51:25,770 som www.thefacebook.com. 1077 00:51:25,770 --> 00:51:29,260 Deretter utviklet det en gang Mark startet sprer seg til andre studiesteder 1078 00:51:29,260 --> 00:51:34,450 å være harvard.thefacebook.com og mit.thefacebook.com, og sannsynligvis 1079 00:51:34,450 --> 00:51:37,027 bu.thefacebook.com, og lignende. 1080 00:51:37,027 --> 00:51:38,860 Og det var fordi tidlig, tror jeg ikke 1081 00:51:38,860 --> 00:51:40,484 du kunne ha venner på tvers av studiesteder. 1082 00:51:40,484 --> 00:51:41,410 Men det er fint. 1083 00:51:41,410 --> 00:51:43,930 Fordi noen fra Harvard fikk sendt til denne serveren. 1084 00:51:43,930 --> 00:51:45,744 Noen fra BU fikk sendt til denne serveren. 1085 00:51:45,744 --> 00:51:47,910 Noen fra MIT fikk sendt til denne server-- i teorien. 1086 00:51:47,910 --> 00:51:50,540 Jeg vet ikke helt all underliggende gjennomføring detaljer. 1087 00:51:50,540 --> 00:51:55,610 Men han antagelig partisjonert mennesker ved deres campus, hvor deres nettverk var. 1088 00:51:55,610 --> 00:51:58,772 >> Så det er bra fram til punktet der du trenger to servere for Harvard, 1089 00:51:58,772 --> 00:51:59,980 eller tre servere for Harvard. 1090 00:51:59,980 --> 00:52:01,800 Og så at enkelhet slags bryter ned. 1091 00:52:01,800 --> 00:52:03,174 Men det er en fornuftig tilnærming. 1092 00:52:03,174 --> 00:52:04,950 La oss alltid sende Alice til samme sted, 1093 00:52:04,950 --> 00:52:06,366 alltid sende Bob til samme sted. 1094 00:52:06,366 --> 00:52:09,680 Men hva skjer hvis Alices serveren går offline? 1095 00:52:09,680 --> 00:52:12,300 Bob og Charlie kan fortsatt kjøpe ting og logge inn på nettstedet. 1096 00:52:12,300 --> 00:52:13,462 Men Alice kan ikke. 1097 00:52:13,462 --> 00:52:15,170 Så du har mistet en tredjedel av brukerbasen. 1098 00:52:15,170 --> 00:52:16,980 Kanskje det er bedre enn 100%? 1099 00:52:16,980 --> 00:52:20,580 Men kanskje det ville vært fint om vi kunne fortsatt støtter 100% av våre brukere 1100 00:52:20,580 --> 00:52:23,470 til og med når en tredjedel av vår servere går offline. 1101 00:52:23,470 --> 00:52:24,760 >> Så vi kan synkronisere hva? 1102 00:52:24,760 --> 00:52:29,250 Ikke brukerne, per se, men database over alle disse serverne. 1103 00:52:29,250 --> 00:52:33,350 Så nå vi slags trenger litt slags samtrafikk 1104 00:52:33,350 --> 00:52:37,880 her slik at selve serverne kan sync-- ikke urimelig. 1105 00:52:37,880 --> 00:52:40,090 Og faktisk eksisterer denne teknologien. 1106 00:52:40,090 --> 00:52:45,550 I en verden av databaser, er det oppfatningen av mester-slave databaser, 1107 00:52:45,550 --> 00:52:48,240 eller primær-sekundær, hvor blant funksjonene 1108 00:52:48,240 --> 00:52:51,050 er ikke bare å lagre data og reagere med data, 1109 00:52:51,050 --> 00:52:53,375 men også bare å hele tiden synkronisere med hverandre. 1110 00:52:53,375 --> 00:52:56,480 Så når du skriver eller lagre noe til denne databasen, 1111 00:52:56,480 --> 00:53:00,040 det umiddelbart blir "kopiert" til de andre databasene i tillegg. 1112 00:53:00,040 --> 00:53:02,870 >> Og når du leser fra det, det spiller ingen rolle hvor du er. 1113 00:53:02,870 --> 00:53:05,170 Fordi hvis i teorien de har alt synkronisert, du er 1114 00:53:05,170 --> 00:53:07,710 kommer til å få samme visning av dataene. 1115 00:53:07,710 --> 00:53:10,800 Så dette høres perfekt. 1116 00:53:10,800 --> 00:53:11,883 Det må være en fange. 1117 00:53:11,883 --> 00:53:15,200 1118 00:53:15,200 --> 00:53:18,990 Hva kan fangsten bli? 1119 00:53:18,990 --> 00:53:21,790 >> PUBLIKUM: [uhørlig] 1120 00:53:21,790 --> 00:53:25,830 >> DAVID Malan: Ja, så tre ganger så mye ting kan gå galt. 1121 00:53:25,830 --> 00:53:26,930 Det er en realitet. 1122 00:53:26,930 --> 00:53:28,480 Det kan alle være den samme i ånden. 1123 00:53:28,480 --> 00:53:30,404 Men noen trenger å konfigurere disse. 1124 00:53:30,404 --> 00:53:33,070 Det er en høyere sannsynlighet for at noe som kommer til å gå galt. 1125 00:53:33,070 --> 00:53:38,130 Bare combinatorially du har flere ting utsatt for feil. 1126 00:53:38,130 --> 00:53:40,505 Hva annet er dårlig potensielt? 1127 00:53:40,505 --> 00:53:41,380 PUBLIKUM: [uhørlig] 1128 00:53:41,380 --> 00:53:44,100 1129 00:53:44,100 --> 00:53:46,180 >> DAVID MALAN: Ja, så synkronisering kan være dårlig. 1130 00:53:46,180 --> 00:53:48,110 Selv som du kanskje vet fra sikkerhetskopier og slikt, 1131 00:53:48,110 --> 00:53:50,520 hvis du bare er blindt gjør backup, hva hvis noe ikke 1132 00:53:50,520 --> 00:53:51,560 gå galt på en database? 1133 00:53:51,560 --> 00:53:53,018 Du sletter noe du ikke burde. 1134 00:53:53,018 --> 00:53:56,299 Du har umiddelbart replisert det problemet overalt ellers. 1135 00:53:56,299 --> 00:53:58,840 Så Victoria var talking-- sikkerhetskopier ville være en god ting her. 1136 00:53:58,840 --> 00:54:00,549 Og så vil vi komme tilbake til det. 1137 00:54:00,549 --> 00:54:03,090 Og for å være klar, vi snakker ikke om backup her per se. 1138 00:54:03,090 --> 00:54:08,240 Vi snakker om ekte replikering eller synkronisering på tvers av servere. 1139 00:54:08,240 --> 00:54:09,110 De er alle levende. 1140 00:54:09,110 --> 00:54:12,074 De er ikke ment å brukes for sikkerhetskopier. 1141 00:54:12,074 --> 00:54:13,294 >> PUBLIKUM: [uhørlig] 1142 00:54:13,294 --> 00:54:14,335 DAVID MALAN: Hva er det? 1143 00:54:14,335 --> 00:54:14,710 PUBLIKUM: Higher-- 1144 00:54:14,710 --> 00:54:15,751 DAVID MALAN: Høyere kostnader. 1145 00:54:15,751 --> 00:54:20,180 Vi har tredoblet kostnadene for sikker, men i det minste når det gjelder 1146 00:54:20,180 --> 00:54:21,100 av maskinvaren. 1147 00:54:21,100 --> 00:54:23,200 Fordi en database er bare et stykke programvare. 1148 00:54:23,200 --> 00:54:25,189 Og en web-server er et stykke programvare. 1149 00:54:25,189 --> 00:54:27,980 Det er trolig gratis hvis vi bruker en rekke åpen kildekode ting. 1150 00:54:27,980 --> 00:54:30,480 Men hvis vi bruker noe som Oracle, 1151 00:54:30,480 --> 00:54:36,574 vi betaler Oracle mer penger per lisenser eller Microsoft for tilgang. 1152 00:54:36,574 --> 00:54:38,240 Det må være en annen fange her. 1153 00:54:38,240 --> 00:54:39,240 Det kan ikke være så enkelt. 1154 00:54:39,240 --> 00:54:42,990 1155 00:54:42,990 --> 00:54:47,300 >> Så til poenget, tror jeg det var Kareem, for geografi earlier-- eller nei, 1156 00:54:47,300 --> 00:54:50,870 Roman, var det, for geography-- anta at vi blir smart om dette, 1157 00:54:50,870 --> 00:54:54,080 og vi setter en av våre servere, og i sin tur våre databaser, i USA, 1158 00:54:54,080 --> 00:54:56,910 og en annen i Europa, i en annen Sør-Amerika, et annet i Afrika, 1159 00:54:56,910 --> 00:55:00,290 annet i Asia, hvor vi vil kanskje hele verden. 1160 00:55:00,290 --> 00:55:04,220 Vi vet allerede fra våre spor ruter som punkt A og punkt 1161 00:55:04,220 --> 00:55:06,910 B, hvis de er lengre fra hverandre, kommer til å ta mer tid. 1162 00:55:06,910 --> 00:55:10,312 >> Og hvis noen av dere har brukt verktøy, som Facebook eller Twitter 1163 00:55:10,312 --> 00:55:13,520 eller noen av disse områdene i disse dager som er i stadig endring på grunn av bruker 1164 00:55:13,520 --> 00:55:16,880 opprettet data, noen ganger hvis du treffe Reload eller åpne den samme siden 1165 00:55:16,880 --> 00:55:20,270 i en annen nettleser, ser du forskjellige versjoner, nesten. 1166 00:55:20,270 --> 00:55:22,875 Du kan se på noens status oppdatere her, men ikke her, 1167 00:55:22,875 --> 00:55:25,500 og deretter laste, og da er det vises, og du laster igjen, 1168 00:55:25,500 --> 00:55:26,640 og den forsvinner. 1169 00:55:26,640 --> 00:55:29,076 Med andre ord, holde et Se etter dette, i det minste 1170 00:55:29,076 --> 00:55:30,950 hvis du bruker sosiale nettverksbygging spesielt. 1171 00:55:30,950 --> 00:55:33,320 >> Igjen, bare fordi data endrer seg så raskt, 1172 00:55:33,320 --> 00:55:35,710 noen ganger servere får ut av sync. 1173 00:55:35,710 --> 00:55:37,230 Og kanskje det er en super lite vindu. 1174 00:55:37,230 --> 00:55:39,970 Men 200 millisekunder, kanskje enda mer enn at-- den er 1175 00:55:39,970 --> 00:55:43,415 kommer til å ta noen ikke-null beløp av tid til disse databasene for å synkronisere. 1176 00:55:43,415 --> 00:55:45,290 Og vi er ikke bare snakker om en forespørsel. 1177 00:55:45,290 --> 00:55:48,540 Hvis et selskap har tusenvis av brukere å bruke det samtidig, 1178 00:55:48,540 --> 00:55:49,460 de kan buffer. 1179 00:55:49,460 --> 00:55:52,240 Med andre ord er det kanskje være en kø eller ventetid linje 1180 00:55:52,240 --> 00:55:54,950 før alle de database spørringer kan bli synkronisert. 1181 00:55:54,950 --> 00:55:56,610 Så kanskje det er faktisk noen få sekunder. 1182 00:55:56,610 --> 00:55:59,820 >> Og ja dette er sant jeg tror selv til denne dagen med Facebook, der 1183 00:55:59,820 --> 00:56:02,010 når de synkroniserer fra Østkysten til vestkysten, 1184 00:56:02,010 --> 00:56:06,026 den har en ikke-triviell forplantningsforsinkelse, så å si, 1185 00:56:06,026 --> 00:56:07,650 at du bare slags måtte tåle. 1186 00:56:07,650 --> 00:56:11,210 Og så det er ikke så mye en feil som det er en realitet 1187 00:56:11,210 --> 00:56:14,230 at brukerne ikke kan se korrekte data for minst 1188 00:56:14,230 --> 00:56:14,970 noen få sekunder. 1189 00:56:14,970 --> 00:56:17,410 >> Jeg ser dette på Twitter mye faktisk der noen ganger vil jeg 1190 00:56:17,410 --> 00:56:21,227 tweet i ett vindu, åpne en annen for å deretter se det for å bekrefte at det faktisk 1191 00:56:21,227 --> 00:56:22,560 gikk opp, og det er ikke der ennå. 1192 00:56:22,560 --> 00:56:25,340 Og jeg må slags laste, laste, reload-- åh, det er det. 1193 00:56:25,340 --> 00:56:27,150 Og det er ikke fordi det ikke ble lagret. 1194 00:56:27,150 --> 00:56:29,850 Det bare ikke har forplantet til andre tjenere. 1195 00:56:29,850 --> 00:56:33,120 >> Så denne avveiingen også-- gjør du egentlig ønsker å utsette deg selv for fare 1196 00:56:33,120 --> 00:56:37,254 at hvis brukeren går til deres rekkefølge historie, det er faktisk ikke der ennå? 1197 00:56:37,254 --> 00:56:38,420 Jeg ser dette på visse banker. 1198 00:56:38,420 --> 00:56:42,100 Det irriterer meg alltid når, vel, for en, du kan bare gå ut seks måneder tilbake 1199 00:56:42,100 --> 00:56:45,160 i kontoutskriftene i enkelte banker, Selv om i teorien de skal 1200 00:56:45,160 --> 00:56:46,576 kunne ha alt på nettet. 1201 00:56:46,576 --> 00:56:48,630 De bare ta ting frakoblet noen ganger. 1202 00:56:48,630 --> 00:56:51,430 Noen ganger, også-- hva nettsiden er det? 1203 00:56:51,430 --> 00:56:53,570 Det er one-- åh, det er GoDaddy, tror jeg. 1204 00:56:53,570 --> 00:56:56,620 GoDaddy, når du sjekker ut kjøpe et domenenavn eller noe, 1205 00:56:56,620 --> 00:56:58,630 de vil ofte gi deg en kobling til kvitteringen. 1206 00:56:58,630 --> 00:57:01,470 Og hvis du klikker på denne lenken til høyre unna, det ofte ikke fungerer. 1207 00:57:01,470 --> 00:57:03,290 Den sier bare, dead end, ingenting her. 1208 00:57:03,290 --> 00:57:05,450 >> Og det er også på grunn av disse forplantningsforsinkelser. 1209 00:57:05,450 --> 00:57:08,290 Fordi uansett grunn, de tar litt tid 1210 00:57:08,290 --> 00:57:09,670 å faktisk generere den. 1211 00:57:09,670 --> 00:57:12,070 Så dette er liksom som du vil trekke håret ut på enkelte punkt. 1212 00:57:12,070 --> 00:57:14,486 Fordi alt du prøver å gjøre er å løse et enkelt problem. 1213 00:57:14,486 --> 00:57:16,590 Og vi holde skape ny problemer for oss selv. 1214 00:57:16,590 --> 00:57:18,770 Så la oss se om vi kan slags angre dette. 1215 00:57:18,770 --> 00:57:22,730 >> Det viser seg at å kombinere databaser på alle dine webservere 1216 00:57:22,730 --> 00:57:25,090 er egentlig ikke beste praksis. 1217 00:57:25,090 --> 00:57:27,950 Vanligvis hva en ingeniør ville gjøre, eller systemer arkitekt, 1218 00:57:27,950 --> 00:57:30,340 ville være å ha forskjellig nivåer av servere. 1219 00:57:30,340 --> 00:57:33,160 Og bare for plass skyld, vil jeg trekke deres database opp her. 1220 00:57:33,160 --> 00:57:38,060 >> Vi har kanskje database og Serveren nummer fire her 1221 00:57:38,060 --> 00:57:42,430 som har forbindelser til hver av disse serverne her. 1222 00:57:42,430 --> 00:57:45,400 Så dette kan være vår front ende tier, som folk vil si. 1223 00:57:45,400 --> 00:57:47,770 Og dette vil være vår bakenden tier. 1224 00:57:47,770 --> 00:57:50,580 Og det betyr bare at disse står overfor brukeren. 1225 00:57:50,580 --> 00:57:53,010 Og databasene ikke står overfor brukeren. 1226 00:57:53,010 --> 00:57:55,480 Ingen bruker kan direkte tilgang til databasen. 1227 00:57:55,480 --> 00:57:59,280 >> Så la oss nå kanskje gå ned ruten Victoria foreslått. 1228 00:57:59,280 --> 00:58:00,940 Dette er en single point of failure. 1229 00:58:00,940 --> 00:58:02,290 Det gjør meg ukomfortabel. 1230 00:58:02,290 --> 00:58:05,790 Så hva er kanskje den mest åpenbare løsningen? 1231 00:58:05,790 --> 00:58:06,665 PUBLIKUM: [uhørlig] 1232 00:58:06,665 --> 00:58:09,979 1233 00:58:09,979 --> 00:58:11,437 DAVID MALAN: Beklager, si det igjen. 1234 00:58:11,437 --> 00:58:12,352 PUBLIKUM: [uhørlig] 1235 00:58:12,352 --> 00:58:13,810 DAVID MALAN: Ikke-produksjon server. 1236 00:58:13,810 --> 00:58:15,364 Hva mener du? 1237 00:58:15,364 --> 00:58:17,120 >> PUBLIKUM: [uhørlig] 1238 00:58:17,120 --> 00:58:19,120 >> DAVID MALAN: Oh, OK, så sikkerhetskopier. 1239 00:58:19,120 --> 00:58:21,110 OK, så vi kunne gjøre det, absolutt. 1240 00:58:21,110 --> 00:58:23,790 Og faktisk er dette svært ofte gjort. 1241 00:58:23,790 --> 00:58:26,470 Dette kan være databasen nummer fem. 1242 00:58:26,470 --> 00:58:28,510 Men det er bare koblet til nummer fire. 1243 00:58:28,510 --> 00:58:31,110 Og du kan kalle det en hot spare. 1244 00:58:31,110 --> 00:58:35,080 Disse to databaser kan konfigureres å bare stadig synkron 1245 00:58:35,080 --> 00:58:35,850 hverandre. 1246 00:58:35,850 --> 00:58:39,010 Og så hvis denne maskinen dør, for uansett dum reason-- harddisken 1247 00:58:39,010 --> 00:58:42,100 dør, noen snubler over ledningen, er noen programvare feil 1248 00:58:42,100 --> 00:58:46,560 og maskinen henger eller crashes-- du kunne ha en menneskelig bokstavelig 1249 00:58:46,560 --> 00:58:51,090 koble denne fra veggen og i stedet plugge denne inn. 1250 00:58:51,090 --> 00:58:56,340 Og deretter innen, la oss si, en noen minutter, kanskje en halv time, 1251 00:58:56,340 --> 00:58:57,210 du er tilbake på nettet. 1252 00:58:57,210 --> 00:58:59,259 >> Det er ikke stor, men det er heller ikke fryktelig. 1253 00:58:59,259 --> 00:59:01,800 Og du trenger ikke å bekymre deg om eventuelle synkroniseringsproblemer. 1254 00:59:01,800 --> 00:59:03,080 Fordi alt er allerede der. 1255 00:59:03,080 --> 00:59:05,000 Fordi du hadde en perfekt backup klar til å gå. 1256 00:59:05,000 --> 00:59:07,100 >> Du kan være litt mer avansert om dette, 1257 00:59:07,100 --> 00:59:12,990 som noen mennesker ofte gjør, hvor du kanskje database nummer fire her, 1258 00:59:12,990 --> 00:59:17,480 database nummer fem her, som snakker med hverandre. 1259 00:59:17,480 --> 00:59:24,120 Men du har også denne slags arrangement-- 1260 00:59:24,120 --> 00:59:27,440 og det med vilje ser rotete, fordi det 1261 00:59:27,440 --> 00:59:30,220 er-- der alle Front end servere kan 1262 00:59:30,220 --> 00:59:32,870 snakke med alle de back end servere. 1263 00:59:32,870 --> 00:59:38,130 Og så hvis denne databasen ikke svare, disse front end servere har 1264 00:59:38,130 --> 00:59:40,212 å ha programmering kode i dem som sier: 1265 00:59:40,212 --> 00:59:42,170 hvis du ikke får en tilkobling til denne databasen, 1266 00:59:42,170 --> 00:59:45,830 den primære starter umiddelbart snakker til den sekundære. 1267 00:59:45,830 --> 00:59:48,310 >> Men dette nå skyver kompleksiteten til koden. 1268 00:59:48,310 --> 00:59:52,070 Og nå utviklere, programvaren utviklere, må vite om dette. 1269 00:59:52,070 --> 00:59:56,454 Og du er typen knytte koden som du skriver til den faktiske bakenden 1270 00:59:56,454 --> 00:59:58,370 gjennomføring detaljer, som gjør det vanskeligere, 1271 00:59:58,370 --> 01:00:00,670 spesielt i en større bedrift eller en større nettside, 1272 01:00:00,670 --> 01:00:05,020 der du ikke nødvendigvis vil programmerere å ha 1273 01:00:05,020 --> 01:00:10,890 å vite hvordan databasen ingeniører har gjort jobben sin. 1274 01:00:10,890 --> 01:00:13,810 Du ønsker kanskje å holde disse rollene slags funksjonelt distinkte så 1275 01:00:13,810 --> 01:00:16,810 at det er dette laget av abstraksjon mellom de to. 1276 01:00:16,810 --> 01:00:17,940 >> Så hvordan kan vi fikse dette? 1277 01:00:17,940 --> 01:00:20,290 Vel, vi slags løst dette problemet en gang før. 1278 01:00:20,290 --> 01:00:25,680 Hvorfor kan ikke vi sette en av disse tingene her hvor 1279 01:00:25,680 --> 01:00:30,947 det snakker i sin tur til nummer fire og fem, alle de foran end webservere 1280 01:00:30,947 --> 01:00:33,780 snakke med denne mellommann, og mellomledd i sin tur rutene sine data? 1281 01:00:33,780 --> 01:00:38,494 Faktum er at det kan være en godt navn for dette? 1282 01:00:38,494 --> 01:00:39,704 >> PUBLIKUM: [uhørlig] 1283 01:00:39,704 --> 01:00:41,120 DAVID MALAN: OK, databasesystemet. 1284 01:00:41,120 --> 01:00:48,030 Men hva kan et begrep være at vi kunne bruke for denne enheten? 1285 01:00:48,030 --> 01:00:49,760 Vi balansering. 1286 01:00:49,760 --> 01:00:52,480 Ja, så egentlig er jeg ikke være rettferdig her. 1287 01:00:52,480 --> 01:00:56,760 Så en lastbalansering skulle tilsi at vi veksling frem og tilbake her, 1288 01:00:56,760 --> 01:00:58,836 som trenger faktisk ikke være tilfelle. 1289 01:00:58,836 --> 01:01:00,460 Så det er noen måter vi kan gjøre dette. 1290 01:01:00,460 --> 01:01:03,920 >> Hvis dette er faktisk en lastbalansering, den Historien er akkurat det samme som før. 1291 01:01:03,920 --> 01:01:05,230 Noen av henvendelsene går til fire. 1292 01:01:05,230 --> 01:01:06,150 Noen av dem går til fem. 1293 01:01:06,150 --> 01:01:06,710 Og det er bra. 1294 01:01:06,710 --> 01:01:08,835 Fordi nå kan vi håndtere dobbelt så mye gjennomstrømming. 1295 01:01:08,835 --> 01:01:11,120 Men denne sammenhengen her er super viktig. 1296 01:01:11,120 --> 01:01:14,050 De må holde seg hele tiden synkronisert og forhåpentligvis 1297 01:01:14,050 --> 01:01:17,670 er ikke geografisk for langt fra hverandre så at synkroniseringen er i det vesentlige 1298 01:01:17,670 --> 01:01:18,520 momentant. 1299 01:01:18,520 --> 01:01:20,410 Ellers kan vi ha et problem. 1300 01:01:20,410 --> 01:01:21,330 >> Så det er ikke dårlig. 1301 01:01:21,330 --> 01:01:25,132 Men igjen, har vi innført et nytt problem. 1302 01:01:25,132 --> 01:01:26,590 Hva problemet har jeg bare gjenskapt? 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å hva er løsningen på dette? 1306 01:01:32,390 --> 01:01:39,270 Så som Victorias glad for å bruke penger, vi kan ta denne fyren ut og gjøre dette. 1307 01:01:39,270 --> 01:01:41,731 Og jeg skal bare flytter hit nok plass. 1308 01:01:41,731 --> 01:01:43,230 Og det kommer til å være litt rotete. 1309 01:01:43,230 --> 01:01:44,563 Jeg kommer til å holde tegning linjer. 1310 01:01:44,563 --> 01:01:47,080 Anta at alle disse linjene går inn i begge deler? 1311 01:01:47,080 --> 01:01:52,670 >> En veldig vanlig teknikk her vil være å bruke en teknikk som kalles hjerterytme 1312 01:01:52,670 --> 01:01:57,390 hvorved hver av disse enhetene, venstre og høyre belastningsfordelt, 1313 01:01:57,390 --> 01:02:00,740 eller hva vi vil kalle dem, er hele tiden sier, jeg er i live, 1314 01:02:00,740 --> 01:02:03,220 Jeg er i live, jeg er i live, jeg er i live. 1315 01:02:03,220 --> 01:02:05,910 En av dem som standard virker som den primære. 1316 01:02:05,910 --> 01:02:09,620 Så all trafikk rutes gjennom den ene til venstre, for eksempel, 1317 01:02:09,620 --> 01:02:11,260 som standard, vilkårlig. 1318 01:02:11,260 --> 01:02:16,890 >> Men så snart fyren til høyre ikke hører fra venstre fyren lenger, 1319 01:02:16,890 --> 01:02:20,440 den ene på høyre er programmert til automatisk, for eksempel, 1320 01:02:20,440 --> 01:02:24,110 ta over IP-adressen av en på venstre, 1321 01:02:24,110 --> 01:02:28,240 og derfor blir det primære, og kanskje sende en e-post eller en tekstmelding 1322 01:02:28,240 --> 01:02:31,570 til mennesker for å si hei, venstre primære er offline. 1323 01:02:31,570 --> 01:02:33,310 Jeg vil bli primært for nå. 1324 01:02:33,310 --> 01:02:35,760 Så visepresident blir president, så å si. 1325 01:02:35,760 --> 01:02:38,180 Og noen må gå redde presidenten, hvis du vil. 1326 01:02:38,180 --> 01:02:41,090 Fordi nå har vi en midlertidig single point of failure. 1327 01:02:41,090 --> 01:02:45,020 >> Så så komplisert eller stressende som Dette kan synes å begynne å være, 1328 01:02:45,020 --> 01:02:46,990 dette er hvordan du kan løse disse problemene. 1329 01:02:46,990 --> 01:02:48,190 Du gjør kaste penger på det. 1330 01:02:48,190 --> 01:02:49,370 Du kaster maskinvare på det. 1331 01:02:49,370 --> 01:02:52,170 Men dessverre kan du legge kompleksitet for det. 1332 01:02:52,170 --> 01:02:56,450 Men resultatet, til slutt, er det du har en mye mer, i teorien, 1333 01:02:56,450 --> 01:02:57,670 robust arkitektur. 1334 01:02:57,670 --> 01:02:58,850 Det er fortsatt ikke perfekt. 1335 01:02:58,850 --> 01:03:02,470 Fordi selv når vi Opptaktene vi kan ikke en single point of failure. 1336 01:03:02,470 --> 01:03:05,240 Vi har nå to poeng for feil. 1337 01:03:05,240 --> 01:03:07,630 Men hvis to ting går galt, som absolutt kunne, 1338 01:03:07,630 --> 01:03:09,030 vi fortsatt kommer til å være frakoblet. 1339 01:03:09,030 --> 01:03:11,660 >> Og så veldig vanlig i industrien er å beskrive 1340 01:03:11,660 --> 01:03:14,000 opp tid i form av niere. 1341 01:03:14,000 --> 01:03:18,610 Og liksom i mål å håpe på er 99,999% 1342 01:03:18,610 --> 01:03:21,580 av tiden nettstedet ditt er online. 1343 01:03:21,580 --> 01:03:24,170 Eller enda bedre, legger en Noen flere niere til det. 1344 01:03:24,170 --> 01:03:28,159 Dessverre, disse niere er svært kostbart. 1345 01:03:28,159 --> 01:03:29,450 Og la oss faktisk gjøre dette ut. 1346 01:03:29,450 --> 01:03:35,510 Så hvis jeg åpner opp min store kalkulator igjen, 365 dager i året, 24 timer i døgnet, 1347 01:03:35,510 --> 01:03:44,780 60 minutter i en time, og 60 sekunder i ett minutt, 1348 01:03:44,780 --> 01:03:48,690 det er hvor mange sekunder det er i et år hvis jeg gjorde dette riktig. 1349 01:03:48,690 --> 01:03:55,740 Så hvis vi ganger dette ved 0,99999, det er hvor mye tid vi ønsker å strebe etter. 1350 01:03:55,740 --> 01:04:00,600 Så det betyr at vi skal være oppe dette mange sekunder i løpet av året. 1351 01:04:00,600 --> 01:04:03,920 Så hvis jeg nå trekke fra opprinnelige verdi, eller snarere 1352 01:04:03,920 --> 01:04:07,480 denne nye verdi fra first-- 316 sekunder, 1353 01:04:07,480 --> 01:04:09,640 som selvfølgelig er fem minutter. 1354 01:04:09,640 --> 01:04:13,770 >> Så hvis ditt nettsted eller din bedrift er hevde "fem niere", der du er 1355 01:04:13,770 --> 01:04:17,050 opp 99,99% av tiden, det betyr at du bedre 1356 01:04:17,050 --> 01:04:23,470 har vært smart nok og rask nok og flush nok med ressurser 1357 01:04:23,470 --> 01:04:27,890 at serverne er bare offline fem minutter ut i året. 1358 01:04:27,890 --> 01:04:29,980 Det er en kostbar og vanskelig ting å håpe på. 1359 01:04:29,980 --> 01:04:31,430 >> Så det er en trade off, også. 1360 01:04:31,430 --> 01:04:35,866 99,999% av tiden er ganske utrolig vanskelig og kostbart. 1361 01:04:35,866 --> 01:04:38,740 Fem minutes-- du kan knapt få til serveren til fysisk erstatte 1362 01:04:38,740 --> 01:04:40,040 noe som har gått galt. 1363 01:04:40,040 --> 01:04:42,810 Og det er derfor vi starter ledningsnett ting sammen mer kompliserte 1364 01:04:42,810 --> 01:04:48,240 apriori slik at datamaskinene kan liksom fikse seg selv. 1365 01:04:48,240 --> 01:04:49,446 Yeah. 1366 01:04:49,446 --> 01:04:52,344 >> PUBLIKUM: [uhørlig] 1367 01:04:52,344 --> 01:05:02,014 1368 01:05:02,014 --> 01:05:04,430 DAVID MALAN: Problemet kunne være i en rekke steder. 1369 01:05:04,430 --> 01:05:05,090 Og i fact-- 1370 01:05:05,090 --> 01:05:07,101 >> PUBLIKUM: [uhørlig] 1371 01:05:07,101 --> 01:05:08,600 DAVID MALAN: Absolutt, absolutt. 1372 01:05:08,600 --> 01:05:10,720 Og som bildet er blir mer komplisert, 1373 01:05:10,720 --> 01:05:12,110 det kan være webservere. 1374 01:05:12,110 --> 01:05:14,690 Det kan være strømmen til bygningen. 1375 01:05:14,690 --> 01:05:17,900 Det kan være noe fysisk, som kablene fikk frynsete eller kastet ut. 1376 01:05:17,900 --> 01:05:19,879 Det kan være databasen svarer ikke. 1377 01:05:19,879 --> 01:05:22,920 Det kan være de oppdatert sin drifts system og noe henger. 1378 01:05:22,920 --> 01:05:24,634 Så det er så mange andre bevegelige deler. 1379 01:05:24,634 --> 01:05:27,050 Og så mye av ingeniør som må gå bak dette 1380 01:05:27,050 --> 01:05:30,431 er egentlig bare handel offs, som hvordan mye tid, hvor mye penger er det faktisk 1381 01:05:30,431 --> 01:05:32,930 verdt, og hva er truslene du er virkelig bekymret for? 1382 01:05:32,930 --> 01:05:35,471 For eksempel, i kursene jeg underviser på Harvard, 1383 01:05:35,471 --> 01:05:38,470 vi bruker mye av cloud computing, som vi vil begynne å ta en titt på nå, 1384 01:05:38,470 --> 01:05:41,107 faktisk, der vi bruker Amazon Web Services. 1385 01:05:41,107 --> 01:05:42,940 Bare fordi det er vi startet med. 1386 01:05:42,940 --> 01:05:45,856 Men det er stadig mer i disse dager fra Google og Microsoft og andre. 1387 01:05:45,856 --> 01:05:50,030 Og vi bevisst velger å sette alle av våre kurs 'virtuelle maskiner, 1388 01:05:50,030 --> 01:05:55,400 som de kalles, i tror jeg det er Western Virginia datasenter. 1389 01:05:55,400 --> 01:05:57,560 De fleste av våre studenter tilfeldigvis er fra USA, 1390 01:05:57,560 --> 01:05:59,820 men det er sikkert noen internasjonalt. 1391 01:05:59,820 --> 01:06:02,630 >> Men realiteten er det bare enklere og det er billigere for oss 1392 01:06:02,630 --> 01:06:05,540 å sette alle våre egg i Virginia kurven, 1393 01:06:05,540 --> 01:06:08,050 selv om jeg vet om noe går galt i Virginia, 1394 01:06:08,050 --> 01:06:12,760 som har tidvis happened-- som hvis det er en orkan eller noen vær 1395 01:06:12,760 --> 01:06:15,890 hendelse som det, hvis det er noen grid problemet makt eller like-- alle 1396 01:06:15,890 --> 01:06:20,240 av våre kurs 'data kan gå offline for et visst antall minutter eller timer 1397 01:06:20,240 --> 01:06:21,600 eller enda lenger. 1398 01:06:21,600 --> 01:06:24,020 >> Men mengden av kompleksitet som ville være nødvendig, 1399 01:06:24,020 --> 01:06:26,895 og hvor mye penger som ville være nødvendig, for å drive alt 1400 01:06:26,895 --> 01:06:31,420 parallelt i Europa eller i California bare ikke gjøre så mye fornuftig. 1401 01:06:31,420 --> 01:06:35,080 Så det er en rasjonell handel av, men en smertefull 1402 01:06:35,080 --> 01:06:37,740 når du faktisk ha det nedetid. 1403 01:06:37,740 --> 01:06:41,830 >> Vel, la oss overgang akkurat nå til noen av skybaserte løsninger 1404 01:06:41,830 --> 01:06:43,320 til noen av disse problemene. 1405 01:06:43,320 --> 01:06:45,040 Alt vi har vært diskutere så langt 1406 01:06:45,040 --> 01:06:47,527 er slags problemer som har vært med oss ​​i noen tid, 1407 01:06:47,527 --> 01:06:49,610 om du har din egen servere i ditt selskap, 1408 01:06:49,610 --> 01:06:52,740 om du går til en samlokalisering plassere ut som et datasenter og dele 1409 01:06:52,740 --> 01:06:55,110 plass med noen andre, eller dag i skyen. 1410 01:06:55,110 --> 01:06:57,040 >> Og hva er fint om skyen er at alle 1411 01:06:57,040 --> 01:06:59,540 av disse tingene jeg er tegning som fysiske objekter 1412 01:06:59,540 --> 01:07:02,400 Nå kan betraktes som slags virtuelle objekter 1413 01:07:02,400 --> 01:07:04,659 i skyen som befinner simulert med programvare. 1414 01:07:04,659 --> 01:07:07,700 Med andre ord, den datamaskiner i dag, servere i dag, som Dell bilde 1415 01:07:07,700 --> 01:07:11,720 Jeg viste tidligere, er så fort, har så mye RAM, så mye CPU, så mye disk 1416 01:07:11,720 --> 01:07:16,140 plass, at folk har skrevet programvare til nesten partisjon 1417 01:07:16,140 --> 01:07:21,130 en server opp i en illusjon av det å være to servere, eller 200 servere, så 1418 01:07:21,130 --> 01:07:24,150 at hver av oss kunder har en illusjon av å måtte 1419 01:07:24,150 --> 01:07:29,110 ikke bare en konto på noen web vert, men vår egen maskin som vi er 1420 01:07:29,110 --> 01:07:30,490 leie fra noen andre. 1421 01:07:30,490 --> 01:07:34,140 >> Men det er en virtuell maskin i så langt som på en Dell server, 1422 01:07:34,140 --> 01:07:39,160 det igjen kan deles opp i to eller 200 eller flere virtuelle maskiner, 1423 01:07:39,160 --> 01:07:43,770 som alle gir noen administrative tilgang, men på en slik måte at ingen av oss 1424 01:07:43,770 --> 01:07:48,040 vet eller kan få tilgang til andre virtuelle maskiner på samme maskinvare. 1425 01:07:48,040 --> 01:07:53,430 Så for å male et bilde i dagens lysbilder, Jeg har dette skutt her fra en nettside 1426 01:07:53,430 --> 01:07:54,160 kalt Docker. 1427 01:07:54,160 --> 01:07:56,970 >> Så dette er litt mer detalj enn vi faktisk trenger. 1428 01:07:56,970 --> 01:07:59,830 Men hvis du ser på dette som din infrastructure-- 1429 01:07:59,830 --> 01:08:02,910 så bare maskinvaren din egen, serverne, stativene, data 1430 01:08:02,910 --> 01:08:06,480 sentrum, og alle at-- du ville typisk kjøre et operativsystem vert. 1431 01:08:06,480 --> 01:08:08,275 Så noe like-- det kunne være Windows. 1432 01:08:08,275 --> 01:08:09,430 Det ville ikke være Mac OS. 1433 01:08:09,430 --> 01:08:11,430 Fordi det er egentlig ikke bedriften i disse dager. 1434 01:08:11,430 --> 01:08:15,670 Så det ville være Linux eller Solaris eller Unix eller BSD eller FreeBSD 1435 01:08:15,670 --> 01:08:19,779 eller en rekke andre operativsystemer som er enten gratis eller kommersielle. 1436 01:08:19,779 --> 01:08:22,120 >> Og så du kjører en program, spesielt program, 1437 01:08:22,120 --> 01:08:26,479 kalt en hypervisor, eller Virtual Machine Monitor, VMM. 1438 01:08:26,479 --> 01:08:31,649 Og dette er produkter, hvis du er kjent, som VMware eller VirtualBox 1439 01:08:31,649 --> 01:08:34,080 eller Virtual PC eller andre. 1440 01:08:34,080 --> 01:08:38,430 Og hva disse programmene gjør er nøyaktig den funksjonen jeg beskrev tidligere. 1441 01:08:38,430 --> 01:08:41,779 Det skaper en illusjon som en fysisk maskin 1442 01:08:41,779 --> 01:08:44,550 kan være flere virtuelle maskiner. 1443 01:08:44,550 --> 01:08:48,260 >> Og så disse fargerike bokser opp toppen er male et bilde av det følgende. 1444 01:08:48,260 --> 01:08:50,260 Dette hypervisor, dette stykke programvare, kaller det 1445 01:08:50,260 --> 01:08:54,090 VMware, kjører på en annen operativsystem, kaller det Linux, 1446 01:08:54,090 --> 01:08:56,910 er å skape en illusjon om at denne fysiske maskinen er faktisk 1447 01:08:56,910 --> 01:09:00,149 ett, to, tre virtuelle datamaskiner. 1448 01:09:00,149 --> 01:09:04,270 Så jeg har nå kjøpt, som eier av denne maskinvaren, en fysisk datamaskin. 1449 01:09:04,270 --> 01:09:06,200 Og nå er jeg lei det tre kunder. 1450 01:09:06,200 --> 01:09:09,731 >> Og disse tre kunder tror alle de har en egen virtuell maskin. 1451 01:09:09,731 --> 01:09:10,939 Og det er ikke agn og slå. 1452 01:09:10,939 --> 01:09:13,750 Det er mer avsløring som du bruker en virtuell maskin. 1453 01:09:13,750 --> 01:09:17,589 Men teknologisk, vi alle har full administrativ kontroll 1454 01:09:17,589 --> 01:09:19,880 over hver av disse gjest operativsystemer, noe som kan 1455 01:09:19,880 --> 01:09:21,370 være en rekke operativsystemer. 1456 01:09:21,370 --> 01:09:23,029 >> Jeg kan installere noe jeg vil. 1457 01:09:23,029 --> 01:09:24,640 Jeg kan oppgradere det som jeg vil. 1458 01:09:24,640 --> 01:09:27,470 Og jeg trenger ikke engang å vite eller bryr seg om andre drifts 1459 01:09:27,470 --> 01:09:29,678 systemer på den datamaskinen, de andre virtuelle maskiner, 1460 01:09:29,678 --> 01:09:35,290 med mindre eieren av alt dette grå ting blir litt grådig 1461 01:09:35,290 --> 01:09:37,540 og er overselling sine ressurser. 1462 01:09:37,540 --> 01:09:40,800 >> Så hvis du tar en fysisk maskin og selge det 1463 01:09:40,800 --> 01:09:44,399 å ikke 200, men 400 kunder, på et tidspunkt 1464 01:09:44,399 --> 01:09:47,270 vi kommer til å reise inn i de samme ytelsesproblemer som før. 1465 01:09:47,270 --> 01:09:50,460 Fordi du bare har en begrenset mye disk og RAM og så videre. 1466 01:09:50,460 --> 01:09:53,450 Og en virtuell maskin er bare et program som er 1467 01:09:53,450 --> 01:09:56,140 utgir seg for å være en fullverdig datamaskin. 1468 01:09:56,140 --> 01:09:58,040 Så du får det du betaler for her. 1469 01:09:58,040 --> 01:10:02,150 >> Så du finner på nettet kan du betale anerkjent selskap kanskje $ 100 i måneden 1470 01:10:02,150 --> 01:10:05,660 for din egen virtuelle maskin, eller din egen virtuell privat server, 1471 01:10:05,660 --> 01:10:07,090 som er et annet begrep for det. 1472 01:10:07,090 --> 01:10:10,400 Eller du kan finne noen fly av natt der du betaler $ 5,99 i måneden 1473 01:10:10,400 --> 01:10:12,080 for din egen virtuelle maskin. 1474 01:10:12,080 --> 01:10:15,614 Men oddsen er at du ikke har nesten så mye ytelse tilgjengelig for deg, 1475 01:10:15,614 --> 01:10:18,530 fordi de har blitt overselge den så, enn du ville gjort med høyere 1476 01:10:18,530 --> 01:10:22,340 tier av tjenesten eller bedre leverandør. 1477 01:10:22,340 --> 01:10:24,590 >> Så hva betyr dette egentlig betyr for oss? 1478 01:10:24,590 --> 01:10:26,110 Så la meg gå til dette. 1479 01:10:26,110 --> 01:10:29,580 Jeg kommer til å gå til aws.amazon.com. 1480 01:10:29,580 --> 01:10:31,590 Bare fordi de har en fin meny med alternativer. 1481 01:10:31,590 --> 01:10:34,700 Men disse samme erfaringene gjelder for en hel haug med andre cloud leverandører. 1482 01:10:34,700 --> 01:10:38,201 Dessverre er det ofte mer markedsføring snakke enn noe annet. 1483 01:10:38,201 --> 01:10:39,200 Og dette holder endring. 1484 01:10:39,200 --> 01:10:41,820 Så du går til et nettsted som dette. 1485 01:10:41,820 --> 01:10:44,560 Og dette er virkelig ikke fortelle deg mye av noe. 1486 01:10:44,560 --> 01:10:47,780 >> Og selv jeg, som jeg ser på dette, gjør ikke egentlig vet hva noen av disse tingene 1487 01:10:47,780 --> 01:10:49,334 nødvendigvis gjøre før jeg dykke i. 1488 01:10:49,334 --> 01:10:50,875 Men la oss starte på venstrekanten, Compute. 1489 01:10:50,875 --> 01:10:52,980 Og jeg kommer til å klikke dette. 1490 01:10:52,980 --> 01:10:56,960 Og nå Amazon har ærlig en overveldende antall tjenester 1491 01:10:56,960 --> 01:10:57,960 disse dager. 1492 01:10:57,960 --> 01:11:01,040 Men Amazon EC2 er kanskje det enkleste. 1493 01:11:01,040 --> 01:11:05,840 >> Amazon EC2 vil skape for oss nøyaktig bildet vi så et øyeblikk siden. 1494 01:11:05,840 --> 01:11:10,240 Det er hvordan de gjør mye pengene sine i skyen. 1495 01:11:10,240 --> 01:11:12,910 Tilsynelatende Netflix og andre er i skyen med dem. 1496 01:11:12,910 --> 01:11:16,260 Dette er alt normalt fluffy markedsføring snakker. 1497 01:11:16,260 --> 01:11:19,720 Så det jeg ønsker å gjøre er å gå til Pricing-- eller rettere sagt la oss gå til forekomster 1498 01:11:19,720 --> 01:11:23,790 først bare for å male et bilde av dette. 1499 01:11:23,790 --> 01:11:25,800 >> Så dette vil variere fra leverandør. 1500 01:11:25,800 --> 01:11:29,590 Og vi trenger ikke å komme for langt inn ugress her på hvordan dette fungerer. 1501 01:11:29,590 --> 01:11:34,720 Men den måten Amazon, for eksempel, leier du en virtuell maskin eller en server 1502 01:11:34,720 --> 01:11:37,200 i skyen er de har fått disse slags morsomme navn, 1503 01:11:37,200 --> 01:11:41,000 som t2.nano, noe som betyr at lite, eller t2.large, noe som betyr store. 1504 01:11:41,000 --> 01:11:43,970 Hver av dem gir deg enten en eller to virtuelle prosessorer. 1505 01:11:43,970 --> 01:11:45,470 >> Hvorfor er det en virtuell CPU? 1506 01:11:45,470 --> 01:11:49,440 Vel, kanskje den fysiske maskinen har 64 eller flere faktiske CPUer. 1507 01:11:49,440 --> 01:11:52,125 Men igjen, gjennom programvare, de skaper en illusjon 1508 01:11:52,125 --> 01:11:55,410 som at en maskin kan være divvied opp til flere brukere. 1509 01:11:55,410 --> 01:11:58,765 Så vi kan tenke på dette som ha en Intel CPU eller to. 1510 01:11:58,765 --> 01:12:01,290 CPU studiepoeng per hour-- jeg ville må lese liten skrift 1511 01:12:01,290 --> 01:12:02,581 om hva dette egentlig betyr. 1512 01:12:02,581 --> 01:12:05,850 Det vil si hvor mye av maskinen du kan bruke per time vis-a-vis 1513 01:12:05,850 --> 01:12:07,730 andre kunder om at maskinvare. 1514 01:12:07,730 --> 01:12:11,560 >> Her er hvor mye RAM eller minne deg get-- enten en halv gigabyte, eller 500 1515 01:12:11,560 --> 01:12:14,120 megabyte, eller en gigabyte eller to. 1516 01:12:14,120 --> 01:12:17,390 Og så lager bare refererer til hva slags disker de gir deg. 1517 01:12:17,390 --> 01:12:19,950 Det er annerledes lagring teknologier som de tilbyr. 1518 01:12:19,950 --> 01:12:22,870 Men mer interessant enn dette så kanskje prisingen. 1519 01:12:22,870 --> 01:12:25,860 >> Så hvis du er CTO eller en ingeniør som ikke gjør det 1520 01:12:25,860 --> 01:12:28,420 ønsker å kjøre en server i ditt kontor, uansett grunn, 1521 01:12:28,420 --> 01:12:30,230 og det er altfor komplisert eller dyrt 1522 01:12:30,230 --> 01:12:33,930 å kjøpe servere og co-lokalisere dem og betale leie i noen fysisk bur plass 1523 01:12:33,930 --> 01:12:36,670 somewhere-- du bare ønsker å sitte på din laptop sent på kvelden, 1524 01:12:36,670 --> 01:12:40,480 skrive inn kredittkortinformasjon, og leie servere i cloud-- vel, 1525 01:12:40,480 --> 01:12:41,920 vi kan gjøre det her. 1526 01:12:41,920 --> 01:12:45,769 Jeg kommer til å gå ned to-- Linux er et populært operativsystem. 1527 01:12:45,769 --> 01:12:47,310 Og la oss bare få en følelse av ting. 1528 01:12:47,310 --> 01:12:48,990 Whoops-- for stor. 1529 01:12:48,990 --> 01:12:53,670 >> Så la oss se på deres minste virtuell maskin, som synes å ha, 1530 01:12:53,670 --> 01:12:57,440 for vårt formål, en CPU og 500 megabyte RAM. 1531 01:12:57,440 --> 01:12:58,440 Det er ganske liten. 1532 01:12:58,440 --> 01:13:00,820 Men ærlig talt, webservere ikke trenger å gjøre så mye. 1533 01:13:00,820 --> 01:13:02,630 Du har bedre specs i den bærbare datamaskinen. 1534 01:13:02,630 --> 01:13:04,990 Men du trenger ikke de spesifikasjoner i disse dager for ting. 1535 01:13:04,990 --> 01:13:11,490 Du kommer til å betale $ 0,0065 per time. 1536 01:13:11,490 --> 01:13:12,080 >> Så la oss se. 1537 01:13:12,080 --> 01:13:15,970 Hvis det er 24 timer i døgnet, og vi betaler så mye per time, 1538 01:13:15,970 --> 01:13:20,680 det vil koste deg $ 0,15 til leie som bestemt server i skyen. 1539 01:13:20,680 --> 01:13:22,210 Og det er bare for en dag. 1540 01:13:22,210 --> 01:13:27,050 Hvis vi gjør dette 365-- $ 57 til leie den aktuelle serveren. 1541 01:13:27,050 --> 01:13:28,420 Så det høres super billig. 1542 01:13:28,420 --> 01:13:31,100 >> Det er også super lav ytelse. 1543 01:13:31,100 --> 01:13:37,169 Så vi, for kursene jeg underviser her, pleier å bruke Jeg tror t2.smalls eller t2.mediums. 1544 01:13:37,169 --> 01:13:39,960 Og vi kan ha et par hundre brukere, noen få tusen brukere, totalt. 1545 01:13:39,960 --> 01:13:40,900 Det er ganske beskjeden. 1546 01:13:40,900 --> 01:13:42,360 Så la oss se hva dette vil koste. 1547 01:13:42,360 --> 01:13:49,260 Så hvis jeg gjør dette kostnads ​​ganger 24 timer ganger 365, denne er $ 225. 1548 01:13:49,260 --> 01:13:51,160 Og for kursene Jeg underviser, vi vanligvis 1549 01:13:51,160 --> 01:13:54,970 kjøre to av alt, for redundans og også for ytelse. 1550 01:13:54,970 --> 01:13:59,230 Så vi kan bruke, derfor, $ 500 for servere 1551 01:13:59,230 --> 01:14:00,860 at vi kanskje trenger per år. 1552 01:14:00,860 --> 01:14:05,210 >> Nå, hvis du trenger mer performance-- la oss ta en titt på minne. 1553 01:14:05,210 --> 01:14:06,810 Vi har snakket om minnet ganske mye. 1554 01:14:06,810 --> 01:14:09,330 Og hvis du trenger mer memory-- og 64 gigabyte 1555 01:14:09,330 --> 01:14:12,310 er det tallet jeg holdt mentioning-- Dette er nesten $ 1 per time. 1556 01:14:12,310 --> 01:14:16,180 Og du kan ganske raskt se hvor dette goes-- så 24 timer ganger 365. 1557 01:14:16,180 --> 01:14:20,580 Så nå er det $ 8000 per år for en ganske anstendig server. 1558 01:14:20,580 --> 01:14:23,010 >> Så på et tidspunkt, det er dette vendepunkt 1559 01:14:23,010 --> 01:14:29,510 der nå vi kan tilbringe $ 6000 sannsynligvis og kjøpe en maskin som det 1560 01:14:29,510 --> 01:14:33,800 og amortize sine kostnader over kanskje to, tre år, livet av maskinen. 1561 01:14:33,800 --> 01:14:38,880 Men hva som kan presse deg inn favorisere eller disfavør av operasjon 1562 01:14:38,880 --> 01:14:41,230 en maskin i skyen som dette? 1563 01:14:41,230 --> 01:14:44,110 Igjen, dette er sammenlignbare, sannsynligvis, til en av disse Dell-servere 1564 01:14:44,110 --> 01:14:47,208 vi så avbildet litt siden. 1565 01:14:47,208 --> 01:14:51,016 >> PUBLIKUM: [uhørlig] 1566 01:14:51,016 --> 01:14:54,350 1567 01:14:54,350 --> 01:14:56,190 >> DAVID MALAN: Ja, det er en stor oppside. 1568 01:14:56,190 --> 01:14:58,640 Fordi vi ikke kjøpe maskin, trenger vi ikke å unbox det. 1569 01:14:58,640 --> 01:14:59,600 Vi trenger ikke å løfte den. 1570 01:14:59,600 --> 01:15:01,110 Vi trenger ikke å koble den til vår rack. 1571 01:15:01,110 --> 01:15:02,080 Vi trenger ikke å koble den til. 1572 01:15:02,080 --> 01:15:03,140 Vi trenger ikke å betale den elektriske regningen. 1573 01:15:03,140 --> 01:15:05,120 >> Vi trenger ikke å snu air condition på. 1574 01:15:05,120 --> 01:15:07,620 Når en harddisk dør, har vi ikke å kjøre inn i midten av natten 1575 01:15:07,620 --> 01:15:08,172 å fikse det. 1576 01:15:08,172 --> 01:15:09,630 Vi trenger ikke å sette opp overvåkning. 1577 01:15:09,630 --> 01:15:13,750 Vi har to-- listen fortsetter og videre av alle de fysiske ting 1578 01:15:13,750 --> 01:15:15,810 trenger du ikke å gjøre på grunn av "skyen". 1579 01:15:15,810 --> 01:15:18,620 >> Og for å være klar, cloud computing dette er veldig overused sikt. 1580 01:15:18,620 --> 01:15:22,790 Det betyr egentlig bare betale noen andre til å kjøre servere for deg, 1581 01:15:22,790 --> 01:15:25,300 eller leie plass på andres servere. 1582 01:15:25,300 --> 01:15:27,110 Så begrepet "cloud computing" er nytt. 1583 01:15:27,110 --> 01:15:30,260 Ideen er flere tiår gamle. 1584 01:15:30,260 --> 01:15:32,070 Så det er ganske overbevisende. 1585 01:15:32,070 --> 01:15:33,960 >> Og hva mer får du? 1586 01:15:33,960 --> 01:15:38,287 Vel, du får også muligheten til å gjøre alt på en bærbar PC hjemme. 1587 01:15:38,287 --> 01:15:40,620 Med andre ord, alle Bildene jeg var bare drawing-- 1588 01:15:40,620 --> 01:15:44,010 og det var ikke så lenge siden at selv Jeg krabbet rundt på serveren etasje 1589 01:15:44,010 --> 01:15:46,680 plugging kablene i for hver av linjene som du ser, 1590 01:15:46,680 --> 01:15:49,590 og oppgradering av drifts systemer, og skiftende stasjoner rundt. 1591 01:15:49,590 --> 01:15:51,610 Det er mye physicality til alt dette. 1592 01:15:51,610 --> 01:15:55,300 >> Men hva er vakkert om virtuelle maskiner, som navnet slags antyder, 1593 01:15:55,300 --> 01:15:57,600 nå er det web-baserte grensesnitt hvorved 1594 01:15:57,600 --> 01:15:59,900 Hvis du vil ha tilsvarende av en linje fra denne serveren 1595 01:15:59,900 --> 01:16:03,959 til en annen, bare skriv, skriv, skriv, klikk og dra, klikk Send, og voila, 1596 01:16:03,959 --> 01:16:05,250 du har det kablet opp nesten. 1597 01:16:05,250 --> 01:16:07,235 Fordi det er gjort i programvaren. 1598 01:16:07,235 --> 01:16:09,110 Og grunnen til at det er gjort i programvare er igjen 1599 01:16:09,110 --> 01:16:12,650 fordi vi har så mye RAM og så mye CPU tilgjengelig for oss i disse dager, 1600 01:16:12,650 --> 01:16:14,880 selv om alle at ting tar tid, 1601 01:16:14,880 --> 01:16:18,450 det er tregere å kjøre ting i software enn hardware, 1602 01:16:18,450 --> 01:16:23,710 akkurat som det er tregere å bruke en mekanisk enhet som en harddisk enn RAM, 1603 01:16:23,710 --> 01:16:25,190 noe rent elektronisk. 1604 01:16:25,190 --> 01:16:27,490 Vi har så mange ressurser tilgjengelig for oss. 1605 01:16:27,490 --> 01:16:29,920 Vi mennesker er liksom invariantly treg. 1606 01:16:29,920 --> 01:16:33,840 Og så nå maskinene kan gjøre så mye mer per tidsenhet. 1607 01:16:33,840 --> 01:16:36,640 Vi har disse evnene å gjøre ting nesten. 1608 01:16:36,640 --> 01:16:39,120 >> Og jeg vil si til kurs Jeg underviser, for eksempel, her, 1609 01:16:39,120 --> 01:16:43,464 vi har om kanskje et dusin eller så totalt virtuelle maskiner 1610 01:16:43,464 --> 01:16:45,880 som det kjøres på et gitt tid på å gjøre front end stuff, 1611 01:16:45,880 --> 01:16:47,620 gjør bakenden ting. 1612 01:16:47,620 --> 01:16:50,237 Vi har alle vårt lager. 1613 01:16:50,237 --> 01:16:52,820 Så noen videoer, inkludert ting slik at vi tar bilder, 1614 01:16:52,820 --> 01:16:54,330 vi ender opp med å sette inn i skyen. 1615 01:16:54,330 --> 01:16:58,710 Amazon har tjenester kalt Amazon S3, sin enkle lagringstjeneste, som 1616 01:16:58,710 --> 01:17:00,397 er akkurat som diskplass i skyen. 1617 01:17:00,397 --> 01:17:02,230 De har noe Kalt CloudFront, som 1618 01:17:02,230 --> 01:17:06,040 er en CDN-tjenesten, innhold Delivery Network-tjenesten, som 1619 01:17:06,040 --> 01:17:10,190 betyr at de tar alle dine filer og for du autogjenskape det 1620 01:17:10,190 --> 01:17:11,290 jorden rundt. 1621 01:17:11,290 --> 01:17:12,780 >> Så de ikke gjør det preemptively. 1622 01:17:12,780 --> 01:17:15,159 Men første gang noen i India ber om filen, 1623 01:17:15,159 --> 01:17:16,700 de vil potensielt cache det lokalt. 1624 01:17:16,700 --> 01:17:19,325 Første gang i Kina, første gang i Brasil som skjer, 1625 01:17:19,325 --> 01:17:20,880 de vil begynne caching det lokalt. 1626 01:17:20,880 --> 01:17:22,730 Og du trenger ikke å gjøre noe av det. 1627 01:17:22,730 --> 01:17:26,710 Og så er det så utrolig overbevisende i disse dager å flytte ting 1628 01:17:26,710 --> 01:17:27,890 inn i skyen. 1629 01:17:27,890 --> 01:17:31,890 Fordi du har denne evnen bokstavelig å ikke ha mennesker gjør nesten like mye 1630 01:17:31,890 --> 01:17:32,390 arbeid. 1631 01:17:32,390 --> 01:17:35,930 Og du bokstavelig talt ikke trenger så mange mennesker å gjøre disse jobbene anymore-- 1632 01:17:35,930 --> 01:17:38,450 "ops" eller operasjonelle roller, lenger. 1633 01:17:38,450 --> 01:17:43,150 Du virkelig trenger bare utviklere og færre ingeniører 1634 01:17:43,150 --> 01:17:44,840 som kan bare gjøre ting nesten. 1635 01:17:44,840 --> 01:17:46,590 Faktisk, bare for å gi man en følelse av denne, 1636 01:17:46,590 --> 01:17:51,800 la meg gå til prissetting for en annen produkt her. 1637 01:17:51,800 --> 01:17:58,170 La oss se noe sånt CDN S3. 1638 01:17:58,170 --> 01:18:01,140 Så dette er egentlig en virtuell harddisk i skyen. 1639 01:18:01,140 --> 01:18:14,360 Og hvis vi bla ned til pricing-- så det er $ 0,007 per gigabyte. 1640 01:18:14,360 --> 01:18:16,300 Og that's-- hvordan gjør vi dette? 1641 01:18:16,300 --> 01:18:17,410 Jeg tror det er per måned. 1642 01:18:17,410 --> 01:18:21,530 >> Så hvis det er per month-- eller per dag? 1643 01:18:21,530 --> 01:18:23,200 Dan, er dette per dag? 1644 01:18:23,200 --> 01:18:24,700 Dette er per måned, OK. 1645 01:18:24,700 --> 01:18:28,280 Så hvis dette er per month-- Beklager, det er $ 0,03 per måned. 1646 01:18:28,280 --> 01:18:29,820 Det er 12 måneder av året. 1647 01:18:29,820 --> 01:18:32,250 Så hvor mye data kan du lagrer i skyen? 1648 01:18:32,250 --> 01:18:37,410 En gigabyte er ikke stor, men jeg vet ikke, som en terabyte, 1649 01:18:37,410 --> 01:18:38,460 så ut som 1000 av dem. 1650 01:18:38,460 --> 01:18:39,501 Det er ikke så mye. 1651 01:18:39,501 --> 01:18:44,382 Det er $ 368 til å lagre en terabyte av data i Amazons cloud. 1652 01:18:44,382 --> 01:18:46,090 Så hva er noen av i de avveininger, da? 1653 01:18:46,090 --> 01:18:47,970 Det kan ikke alle være god. 1654 01:18:47,970 --> 01:18:52,260 Ingenting vi har snakket om i dag er liksom uten fangst eller en kostnad. 1655 01:18:52,260 --> 01:18:55,269 Så hva er ille om flytting alt inn i skyen? 1656 01:18:55,269 --> 01:18:56,060 PUBLIKUM: Sikkerhet. 1657 01:18:56,060 --> 01:18:57,721 DAVID MALAN: OK, hva mener du? 1658 01:18:57,721 --> 01:18:58,596 PUBLIKUM: [uhørlig] 1659 01:18:58,596 --> 01:19:01,589 1660 01:19:01,589 --> 01:19:02,630 DAVID MALAN: Ja, ikke sant. 1661 01:19:02,630 --> 01:19:05,130 Og vil du virkelig ønsker noen tilfeldige ingeniører 1662 01:19:05,130 --> 01:19:08,750 på Amazon at du aldri vil møte med fysisk tilgang til disse maskinene, 1663 01:19:08,750 --> 01:19:11,010 og hvis de virkelig ønsket, virtuell tilgang? 1664 01:19:11,010 --> 01:19:15,070 Og selv om det i teori software-- godt, 1665 01:19:15,070 --> 01:19:17,442 Kryptering kan absolutt beskytte deg mot dette. 1666 01:19:17,442 --> 01:19:19,150 Så hvis det du er lagre på serverne 1667 01:19:19,150 --> 01:19:21,470 er encrypted-- mindre av en bekymring. 1668 01:19:21,470 --> 01:19:25,010 >> Men så snart et menneske har fysisk adgang til en maskin, kryptering side, 1669 01:19:25,010 --> 01:19:26,100 alle spill er liksom off. 1670 01:19:26,100 --> 01:19:28,240 Du kjenner kanskje fra en svunnen tid at PC-er spesielt, 1671 01:19:28,240 --> 01:19:30,360 selv om du hadde disse tingene kalt "BIOS-passord" 1672 01:19:30,360 --> 01:19:33,360 var da skrivebordet startet opp, du vil bli bedt med et passord som 1673 01:19:33,360 --> 01:19:35,980 har ingenting å gjøre med Windows, kan du vanligvis 1674 01:19:35,980 --> 01:19:39,750 bare åpne chassiset på maskin, finne bitte små pinner, 1675 01:19:39,750 --> 01:19:42,240 og bruker noe som kalles en genser og bare koble 1676 01:19:42,240 --> 01:19:45,690 disse to ledninger for omtrent et sekund, dermed fullføre en krets. 1677 01:19:45,690 --> 01:19:47,360 Og som ville eliminere passord. 1678 01:19:47,360 --> 01:19:49,800 >> Så når du har fysisk tilgang til en enhet, kan du gjøre ting som dette. 1679 01:19:49,800 --> 01:19:51,110 Du kan ta ut harddisken. 1680 01:19:51,110 --> 01:19:53,060 Du kan få tilgang til det på den måten. 1681 01:19:53,060 --> 01:19:55,442 Og så dette er grunnen, i Ved Dropbox, 1682 01:19:55,442 --> 01:19:57,900 for eksempel, er det en liten betenkelig at ikke bare gjøre de 1683 01:19:57,900 --> 01:20:02,860 har data, selv om den er kryptert, har de også nøkkelen. 1684 01:20:02,860 --> 01:20:04,993 Andre bekymringer? 1685 01:20:04,993 --> 01:20:08,430 >> PUBLIKUM: [uhørlig] 1686 01:20:08,430 --> 01:20:27,740 1687 01:20:27,740 --> 01:20:30,240 DAVID MALAN: Ja, det er veldig true-- den Googles, epler, 1688 01:20:30,240 --> 01:20:31,406 de Microsofts av verden. 1689 01:20:31,406 --> 01:20:34,400 Og faktisk, hvor lenge har du hadde din iPhone for? 1690 01:20:34,400 --> 01:20:35,885 Ja, gi eller ta. 1691 01:20:35,885 --> 01:20:36,760 PUBLIKUM: [uhørlig] 1692 01:20:36,760 --> 01:20:37,780 DAVID MALAN: Jeg beklager? 1693 01:20:37,780 --> 01:20:39,667 Du er blant dem som har en iPhone, ikke sant? 1694 01:20:39,667 --> 01:20:40,250 PUBLIKUM: Ja. 1695 01:20:40,250 --> 01:20:42,208 DAVID MALAN: Hvor lenge har du hatt din iPhone? 1696 01:20:42,208 --> 01:20:43,372 PUBLIKUM: [uhørlig] 1697 01:20:43,372 --> 01:20:45,080 DAVID MALAN: OK, så Apple vet bokstavelig talt 1698 01:20:45,080 --> 01:20:49,030 hvor du har vært hver time dagen for de siste fem årene. 1699 01:20:49,030 --> 01:20:51,112 >> PUBLIKUM: [uhørlig] 1700 01:20:51,112 --> 01:20:54,626 1701 01:20:54,626 --> 01:20:56,375 DAVID MALAN: Hvilken er en flott funksjon. 1702 01:20:56,375 --> 01:20:57,860 PUBLIKUM: [uhørlig] 1703 01:20:57,860 --> 01:21:00,875 DAVID MALAN: Ja, men trade off for sikker. 1704 01:21:00,875 --> 01:21:01,750 PUBLIKUM: [uhørlig] 1705 01:21:01,750 --> 01:21:04,720 1706 01:21:04,720 --> 01:21:07,813 >> DAVID MALAN: Ja, det er veldig lett å. 1707 01:21:07,813 --> 01:21:08,688 PUBLIKUM: [uhørlig] 1708 01:21:08,688 --> 01:21:12,040 1709 01:21:12,040 --> 01:21:13,248 DAVID MALAN: Andre ulempene? 1710 01:21:13,248 --> 01:21:16,995 PUBLIKUM: [uhørlig] 1711 01:21:16,995 --> 01:21:26,151 1712 01:21:26,151 --> 01:21:27,900 DAVID MALAN: Absolutely-- teknologisk, 1713 01:21:27,900 --> 01:21:31,550 økonomisk, det er ganske overbevisende til liksom få disse stordriftsfordelene 1714 01:21:31,550 --> 01:21:33,579 og flytte alt inn den såkalte sky. 1715 01:21:33,579 --> 01:21:35,870 Men du sannsynligvis vil gå med noen av de største 1716 01:21:35,870 --> 01:21:39,380 fisk, amasonene, den Googles, den Microsofts-- Rackspace er ganske big-- 1717 01:21:39,380 --> 01:21:42,200 og noen få andre, og ikke nødvendigvis fly by night folk 1718 01:21:42,200 --> 01:21:45,640 for hvem det er veldig enkelt å gjøre denne type teknikk i dag. 1719 01:21:45,640 --> 01:21:49,140 Og det er som du kan betale $ 5,99 per måned til. 1720 01:21:49,140 --> 01:21:50,890 Men du vil sikkert får hva du betaler for. 1721 01:21:50,890 --> 01:21:54,014 >> Når du sier [uhørbart], er at når ting som disse fem niere komme opp, 1722 01:21:54,014 --> 01:21:58,017 der selv om teknologisk Vi kan egentlig ikke garantere 99.999, 1723 01:21:58,017 --> 01:22:00,350 Vi vil bare bygge i noen form av straff til kontrakten 1724 01:22:00,350 --> 01:22:03,910 slik at hvis det skjer, i det minste det er noen kostnad for oss, leverandøren. 1725 01:22:03,910 --> 01:22:07,950 Og det er det du ville vanligvis være å få dem til å godta. 1726 01:22:07,950 --> 01:22:09,590 >> PUBLIKUM: [uhørlig] 1727 01:22:09,590 --> 01:22:12,290 >> DAVID MALAN: Og en slags velsignelse 1728 01:22:12,290 --> 01:22:15,630 er at selv når vi går ned, for eksempel, eller til og med visse selskaper, 1729 01:22:15,630 --> 01:22:17,800 realiteten er Amazon, for eksempel, har så mange 1730 01:22:17,800 --> 01:22:21,780 darn kunder, kjente kunder, opererer ut fra visse datasentre 1731 01:22:21,780 --> 01:22:26,224 at når noe virkelig går galt, som naturkatastrofer og vær og slikt, 1732 01:22:26,224 --> 01:22:29,390 hvis det er noen form for sølv fôr, det er at du er i veldig godt selskap. 1733 01:22:29,390 --> 01:22:30,680 Ditt nettsted kan være frakoblet. 1734 01:22:30,680 --> 01:22:32,750 Men så er som halvparten av den populære internett. 1735 01:22:32,750 --> 01:22:36,230 Og så det er kanskje litt mer spiselig for kundene 1736 01:22:36,230 --> 01:22:38,780 hvis det er mer av en internett ting enn en acme.com ting. 1737 01:22:38,780 --> 01:22:41,780 Men det er litt av en bedrager. 1738 01:22:41,780 --> 01:22:46,740 >> Så når det gjelder andre ting å se på, bare slik at vi ikke utelukke andre, 1739 01:22:46,740 --> 01:22:51,210 hvis du går til Microsoft Azure, de har både Linux og Windows stuff 1740 01:22:51,210 --> 01:22:53,190 som er sammenlignbare med Amazons. 1741 01:22:53,190 --> 01:22:57,540 Hvis du går til Google Compute Engine, de har noe lignende i tillegg. 1742 01:22:57,540 --> 01:23:00,500 Og bare for å runde ut disse sky tilbud, 1743 01:23:00,500 --> 01:23:02,762 Jeg skal lage omtale av en annen ting. 1744 01:23:02,762 --> 01:23:04,720 Dette er et populært nettsted som er representative 1745 01:23:04,720 --> 01:23:08,590 av en klasse av teknologier. 1746 01:23:08,590 --> 01:23:12,350 De vi bare snakket om, Amazon, ville være IaaS, 1747 01:23:12,350 --> 01:23:17,150 Infrastruktur som en tjeneste, hvor du form for fysisk maskinvare som en tjeneste. 1748 01:23:17,150 --> 01:23:18,757 Det er SAAS. 1749 01:23:18,757 --> 01:23:20,090 Egentlig, la meg skrive disse ned. 1750 01:23:20,090 --> 01:23:23,290 1751 01:23:23,290 --> 01:23:28,190 >> IAAS-- Infrastruktur Som en service, SAAS, 1752 01:23:28,190 --> 01:23:31,870 og PaaS, som er bemerkelsesverdig forvirrende akronymer 1753 01:23:31,870 --> 01:23:34,400 som beskriver tre forskjellige typer ting. 1754 01:23:34,400 --> 01:23:36,400 Og akronymer selv har egentlig ingen rolle. 1755 01:23:36,400 --> 01:23:38,360 Dette er alt fra skyen ting Vi har nettopp snakket om, 1756 01:23:38,360 --> 01:23:41,570 lavere nivå ting, virtualisering av maskinvare og lagring 1757 01:23:41,570 --> 01:23:44,890 i den såkalte sky, enten det er Amazon, Microsoft, Google eller andre. 1758 01:23:44,890 --> 01:23:47,270 >> Software as a service-- oss alle slags bruk dette. 1759 01:23:47,270 --> 01:23:49,810 Hvis du bruker Google Apps for Gmail eller kalender, 1760 01:23:49,810 --> 01:23:52,530 hvilken som helst av disse web-basert applikasjoner som for 10 år siden vi 1761 01:23:52,530 --> 01:23:55,560 ville ha dobbel klikket ikoner på vår desktop, programvare som en tjeneste 1762 01:23:55,560 --> 01:23:57,400 Nå er virkelig webapplikasjon. 1763 01:23:57,400 --> 01:24:00,110 Og plattform som Tjenesten slags avhenger. 1764 01:24:00,110 --> 01:24:03,140 >> Og ett eksempel jeg skal gi deg her i sammenheng med sky computing-- 1765 01:24:03,140 --> 01:24:06,250 det er en bedrift som er ganske populære i disse dager, Heroku. 1766 01:24:06,250 --> 01:24:08,940 Og de er en tjeneste, en plattform, om du vil, 1767 01:24:08,940 --> 01:24:11,730 som kjører på toppen av Amazon infrastruktur. 1768 01:24:11,730 --> 01:24:15,800 Og de bare gjøre det enda enklere for utviklere og ingeniører 1769 01:24:15,800 --> 01:24:18,330 å få web-baserte applikasjoner på nettet. 1770 01:24:18,330 --> 01:24:22,170 >> Det er en smerte, i utgangspunktet, å bruke Amazon Web Services og andre ting. 1771 01:24:22,170 --> 01:24:24,170 Fordi du faktisk har å kjenne og forstå 1772 01:24:24,170 --> 01:24:27,617 om databaser og webservere og belastningsfordelt og alle ting 1773 01:24:27,617 --> 01:24:28,450 Jeg bare snakket om. 1774 01:24:28,450 --> 01:24:32,780 Fordi alle Amazon har gjort er ikke skjult disse designutfordringer. 1775 01:24:32,780 --> 01:24:35,790 De har nettopp virtualisert dem og flytte dem inn i en nettleser, 1776 01:24:35,790 --> 01:24:37,770 inn programvare i stedet for maskinvare. 1777 01:24:37,770 --> 01:24:43,020 >> Men selskaper som Heroku og andre PaaS-leverandører, Platform as a Service, 1778 01:24:43,020 --> 01:24:46,900 de bruker disse bone grunnleggende at vi bare snakket om, 1779 01:24:46,900 --> 01:24:50,340 og de bygger lettere å bruke programvare på toppen av det 1780 01:24:50,340 --> 01:24:54,241 slik at hvis du ønsker å få en web-basert søknad på nettet i disse dager, 1781 01:24:54,241 --> 01:24:55,990 du absolutt må vet hvordan å programmere. 1782 01:24:55,990 --> 01:25:00,280 Du trenger å vite Java eller Python eller PHP eller Ruby eller en haug med andre språk. 1783 01:25:00,280 --> 01:25:02,180 >> Men du trenger også et sted å sette den. 1784 01:25:02,180 --> 01:25:04,790 Og vi snakket tidligere om å få en web hosting firma. 1785 01:25:04,790 --> 01:25:08,630 Det er liksom de som midten av 2000-tallet tilnærming til å få noe på nettet. 1786 01:25:08,630 --> 01:25:12,140 I dag kan du i stedet betale noen som Heroku noen få dollar i måneden. 1787 01:25:12,140 --> 01:25:15,370 Og egentlig, når du har gjort noen innledende konfigurasjon, 1788 01:25:15,370 --> 01:25:18,704 å oppdatere nettstedet, bare skrive en kommando i et vindu. 1789 01:25:18,704 --> 01:25:21,370 Og uansett hva kode du har skrevet her på den bærbare datamaskinen umiddelbart 1790 01:25:21,370 --> 01:25:24,350 blir distribuert til en rekke av servere i skyen. 1791 01:25:24,350 --> 01:25:26,440 >> Og Heroku tar seg av alle av kompleksiteten. 1792 01:25:26,440 --> 01:25:28,930 De finne alle databasen ting, hele lastbalansering, 1793 01:25:28,930 --> 01:25:31,480 alle hodepine som vi har bare skrevet på tavlen, 1794 01:25:31,480 --> 01:25:33,320 og skjule alt dette for deg. 1795 01:25:33,320 --> 01:25:36,170 Og i retur, du bare betale dem litt mer. 1796 01:25:36,170 --> 01:25:39,810 Så du har disse infrastrukturer som en tjeneste, plattformer som en tjeneste, 1797 01:25:39,810 --> 01:25:41,400 og deretter programvare som en tjeneste. 1798 01:25:41,400 --> 01:25:45,390 Det er, igjen, denne abstraksjon eller lagdeling. 1799 01:25:45,390 --> 01:25:51,187 >> Eventuelle spørsmål om sky eller bygge en egen infrastruktur? 1800 01:25:51,187 --> 01:25:52,270 Greit, det var mye. 1801 01:25:52,270 --> 01:25:54,200 Hvorfor kan ikke vi gå videre og ta vår 15 minutters pause her. 1802 01:25:54,200 --> 01:25:57,241 Vi vil komme tilbake med noen nye konsepter og litt hands-on mulighet 1803 01:25:57,241 --> 01:25:59,110 før kvelden er over. 1804 01:25:59,110 --> 01:26:00,332