AWS (2006): Amazon iznajmljuje višak

Amazon je 2006. rekao da prodaje višak servera — lijepa priča, samo šteta da matematika ne štima ni na jednom mjestu.

poglavlje 11/2421 min čitanja2001 – 2010
ti@kronika:~$ ./sviraj k5_11_aws.mp3

# da, poglavlje ima pjesmu. ne, nitko ne zna zašto.

Godina je 2006. Ako želiš pokrenuti web servis, evo procedure: podigneš telefon, nazoveš prodavača servera, naručiš desetke tisuća dolara opreme koju ćeš platiti unaprijed, pa čekaš. Tjedne. Servere treba isporučiti, montirati u rack — zamisli veliki metalni ormar s policama, samo što na te police ne stavljaš knjige nego računala, u podatkovni centar — spojiti na struju i mrežu, potpisati hosting ugovor koji te vezuje na godinu-dvije, i onda moliš se. Moliš se da tvoja ideja uspije, ali ne previše. Jer ako uspije previše brzo, ako te neka objava na pravom mjestu odjednom donese milijun posjetitelja, ti serveri koje si tako mučno nabavio jednostavno kolabiraju pod teretom. Vidjeli smo taj film. YouTube ga je gledao iz prvog reda tek malo prije toga, kad im je uspjeh umalo bio smrtna presuda umjesto blagoslova.

Infrastruktura je, drugim riječima, opklada. Kupiš unaprijed, na temelju procjene koliko ćeš narasti — i ako procijeniš loše, dogodi se jedno od dvoje: ili si potrošio novac na kapacitet koji stoji i skuplja prašinu, ili nemaš kapaciteta baš kad ti najviše treba. Nema srednjeg puta. Nema iznajmljivanja na sat, nema plaćanja po potrošnji, nema elastičnosti. Ima samo rack, ugovor i molitva.

U to okruženje, sredinom te godine, Amazon — da, ta Amazon, knjižara koja ti šalje pakete, po burzovnoj klasifikaciji i dalje trgovac na malo — objavljuje da će iznajmljivati računala. Na sat. Bilo kome, bez ugovora, bez čekanja, s karticom umjesto potpisa. Wall Street ne zna što bi s tim. Analitičari koji su navikli pratiti marže na knjige i DVD-ove sada gledaju cjenovnik za virtualne strojeve i pitaju se je li to neka nova vrsta dostave, ili je Bezos jednostavno došao na posao s viškom vremena.

Ubrzo se, sasvim prirodno, rodila priča koja sve to elegantno objašnjava — jedna od onih uredno zapakiranih legendi koje se prepričavaju na konferencijama i u poslovnim knjigama, jer imaju baš taj savršeni oblik anegdote: Amazon je, kažu, svake godine kupovao ogromne količine servera za Black Friday i Božić, a onda mu je jedanaest mjeseci godišnje taj kapacitet stajao neiskorišten. Netko je, valjda u dosadi, predložio da tu praznu snagu iznajme drugima. I tako je nastao AWS. Slučajno. Iz viška. Iz škrtosti koja je slučajno postala genijalnost.

Lijepa priča. Uredna. Ima čak i moralnu poantu — ne bacaj ništa, sve se može prodati. Problem je što, kad staviš olovku na papir i provjeriš brojke, ta priča puca po svim šavovima. A vrijeme je da to napravimo, ovdje, sloj po sloj — jer ono što se stvarno dogodilo 2006. je manje šarmantno od legende, ali neusporedivo poučnije.

Onaj dan poslije Božića, cijelo to računalno carstvo — hale i hale servera, opreme kupljene da izdrži Black Friday — stoji. Prazno. Skuplja prašinu jedanaest mjeseci u godini, čekajući sljedeći prosinac.

I onda dolazi genijalan potez, kaže priča. Netko u Seattleu — u nekim verzijama sam Bezos, u drugima nekakav neimenovani inženjer koji je imao epifaniju usred noći — pogleda te viškove i pomisli: pa mi to možemo iznajmiti. Zašto bacati kapacitet kad ga netko drugi može platiti da ga koristi u siječnju, veljači, ožujku — mjesecima kad nama ništa ne treba? Jednostavno. Elegantno. Poslovno logično do bola. Zvuči kao priča koju bi izmislio Hollywood da Hollywood radi filmove o tabelicama iskorištenosti servera — mali otpad velike tvrtke, genijalno pretvoren u novi biznis od sto milijardi dolara. Recikliranje na razini civilizacije.

I nije da je ta priča nastala u nekom mračnom kutku interneta gdje se rađaju urbane legende o krokodilima u kanalizaciji. Ova ima rodoslovlje. Naći ćeš je u respektabilnim poslovnim knjigama, u analizama koje inače pipaju brojke s kirurškom preciznošću, na predavanjima na MBA programima gdje profesor crta grafikon potražnje s vrhom u prosincu i kaže: vidite, ovo je Amazonova genijalnost — monetizacija praznog hoda. Zvuči prepametno da bi bilo lažno. Ima taj miris istine koji dolazi od toga da je jednostavna i da savršeno pristaje onome što misliš da već znaš o toj tvrtki: Amazon je opsjednut učinkovitošću, Amazon ne baca ništa, Amazon iz svakog kutka uspije izvući novac. Priča se ne mora dokazivati — dovoljno je da odgovara predrasudi.

To nije poslovna genijalnost, to je sabotaža vlastitog Božića. Zamisli da vlasnik restorana subotom navečer, kad mu je lokal krcat i svaki stol popunjen, iznajmi pola kuhinje susjednoj pizzeriji jer je — eto — ta kuhinja bila prazna u utorak. Nitko normalan tako ne vodi biznis, a Amazon, kolika god mu bila reputacija za neobične poteze, nije toliko lud. Legenda o viškovima zvuči poslovno pametno sve dok ne pitaš najosnovnije pitanje o timingu — a onda se raspada u trenu, kao papirnati brod u kadi.

Dakle, nešto u ovoj priči ne štima — a kad nešto ne štima, to obično ne znači da je priča potpuno izmišljena, nego da je netko uzeo istinit detalj, uljepšao ga do neprepoznatljivosti i onda ga zalijepio na krivu godinu, krivi motiv, krivi trenutak. Amazon je zaista imao problem s viškom kapaciteta — samo ne onaj koji priča opisuje, i ne s onim rješenjem. Prava priča je manje romantična, više korporativno-birokratska, i — kao što ćeš vidjeti — mnogo je zanimljivija od legende koju je zamijenila.

Stvarnost: interna bol postane proizvod
§ 02

Stvarnost: interna bol postane proizvod

Dobro, zaboravi na trenutak Božić i skladišta puna nerasprodanih igračaka. Prava priča počinje negdje 2002. godine, u internom memorandumu Jeffa Bezosa koji je, kako to obično biva s Bezosovim memorandumima, postao poluslavan mnogo prije nego što je službeno postao javan. Nitko izvana nije ga vidio godinama; prepričavao se od inženjera do inženjera kao urbana legenda o strogom ocu koji djeci zabranjuje izlazak dok ne pospreme sobu. Samo je ovdje soba bila cijela Amazonova arhitektura.

Jezgra memoranduma, kako je danas rekonstruiramo iz intervjua bivših Amazonovaca i knjiga o toj eri, te famozne interne tirade Stevea Yeggea koja je slučajno postala javna (Google Plus objava iz 2011., još jedna legenda unutar legende), glasila je otprilike ovako: svaki tim mora izlagati svoje podatke i funkcionalnost kroz servisna sučelja. Nema izravnog pristupa bazi podataka drugog tima, nema pozivanja tuđe funkcije na tajna vrata, nema »samo ću ovo brzo dohvatiti direktno«. Sve ide kroz definirano sučelje, kao da razgovaraš s vanjskom firmom, a ne s kolegom s drugog kata. A rečenica koja je ušla u folklor, ona koja se najčešće navodi (uz uobičajenu ogradu da direktan citat memoranduma nikad nije javno objavljen, pa je pouzdanost anegdotalna) glasi: tko to ne napravi, dobiva otkaz.

Zašto je to bilo nužno? Zato što je Amazon do tog trenutka izgradio sustav u kojem je svaki dio pipao svaki drugi dio kako mu se prohtjelo. Katalog je znao previše o skladištu, skladište je znalo previše o plaćanjima, plaćanja su ovisila o polju u bazi koje je netko drugi mogao promijeniti u petak popodne i srušiti pola sustava u nedjelju uvečer, baš kad kupci najviše kupuju. Klasična bolest firme koja je rasla brže nego što je stigla postaviti temelje — ista bolest koja je gotovo ubila eBay krajem devedesetih, kad su njihovi ispadi zbog baze podataka postali legendarni.

Kad su timovi napravili sve te male, stroge, izolirane servise — sustav za pohranu podataka, sustav za pokretanje virtualnih strojeva, sustav za redove poruka — dogodilo se nešto što nitko u tom trenutku nije planirao kao poslovni potez. Interne alate izgradili su dovoljno dobro, dovoljno robusno i dovoljno generički da rade za bilo koji Amazonov tim, bez obzira treba li mu skladištenje slika proizvoda ili arhiviranje logova. A kad nešto radi dovoljno generički da služi desecima različitih unutarnjih klijenata s potpuno različitim potrebama, radi i za jednog vanjskog klijenta. I za tisuću vanjskih klijenata.

To je trenutak koji cijelu priču pretvara u obrnutu logiku od one koju mit prodaje. Mit kaže: imamo previše kapaciteta, prodajmo višak. Stvarnost kaže: napravili smo alat da riješimo svoj vlastiti kaos, alat je ispao toliko dobar da smo shvatili da bismo ga mogli prodavati kao proizvod. Ne radi se o rasprodaji zalihe. Radi se o tome da je infrastruktura, izgrađena iz čiste unutarnje nužde, postala nešto što vrijedi novca sama po sebi — odvojeno od knjiga, DVD-ova i onog čudnog razdoblja kad je Amazon prodavao i vrtne alate.

Prvi vidljivi proizvod te logike stigao je u ožujku 2006. — Simple Storage Service, S3, jednostavno mjesto gdje si mogao spremiti datoteku na Amazonov server i platiti po gigabajtu i po prijenosu podataka. Zvučalo je gotovo dosadno, gotovo premalo za priču vrijednu poglavlja. Pet mjeseci kasnije, u kolovozu, stiže Elastic Compute Cloud, EC2 — i tu dosadno postaje eksplozivno, jer sad ne iznajmljuješ samo prostor za datoteke, nego cijelo računalo. Virtualni server, tvoj na sat: pališ ga kad ti treba, gasiš kad ne treba, plaćaš samo ono što potrošiš. Ono što je 2005. zvučalo kao znanstvena fantastika, 2006. je imalo cijenu po satu, u dolarima i centima, na web stranici.

Amazonovi ljudi to nikad nisu prodavali kao „višak kapaciteta”. Prodavali su ga kroz frazu koja, koliko god zvučala korporacijski, savršeno pogađa poantu: undifferentiated heavy lifting — otprilike „nediferencirani teški posao”, odnosno onaj mukotrpan, nezahvalan rad koji svaka firma mora obaviti, a koji je posve isti bez obzira prodaješ li knjige, cipele ili avionske karte. Hlađenje servera, kupovina diskova, brига hoće li strujni kabel izdržati Black Friday — sve to ne razlikuje tvoju firmu od konkurencije, samo troši vrijeme i novac koje bi mogla trošiti na ono što te stvarno razlikuje. Poruka nije bila „kupi naš višak”. Poruka je bila: mi smo taj teški, nezahvalni posao već riješili za sebe, muku smo već propatili, sad ti ne moraš.

Zašto godinama nitko ne reagira
§ 03

Zašto godinama nitko ne reagira

Dobro, znamo sad da AWS nije bio slučajan višak kapaciteta nego smišljena strategija — Bezosov memo, API-mandat (API je, pojednostavljeno, sučelje kroz koje jedan program razgovara s drugim, poput kataloga usluga koje jedan sustav nudi svima ostalima — Bezos je naredio da svaki Amazonov timski sustav mora imati takav kataloг, umjesto da se timovi međusobno probijaju kroz tuđi kod), cijela ona muka koju su interni timovi prošli da bi Amazon interno prestao biti kaos od stotina sustava koji si međusobno viču. Pametno, agresivno, čak i pošteno u onom sirovom kapitalističkom smislu. Ali onda dođe pitanje koje bi svaki iskusni ulagač postavio: ako je to bilo tako pametno, gdje je onda konkurencija? Google je 2006. imao više inženjera po glavi stanovnika nego bilo koja firma u povijesti civilizacije. Microsoft je sjedio na gomili novca od Windowsa i Officea koja se mjerila u desetcima milijardi. IBM je doslovno izumio pojam korporativne infrastrukture. Pa gdje su svi bili?

Odgovor je neugodno jednostavan i zove se inovatorska dilema — pojam koji je Clayton Christensen skovao desetljeće prije, sredinom devedesetih, ali koji se čita kao da je naručen za ovu priču. Svaka velika firma optimizira ono što joj već donosi novac. Google je 2006. bio firma koja zarađuje na oglasima; zašto bi trošio inženjere na iznajmljivanje virtualnih strojeva (računala koja ne postoje fizički nego samo kao softver, ali korisniku djeluju posve kao stvarna) vanjskim developerima, kad taj posao ne liči na njihov posao? Microsoft je zarađivao na licencama softvera koji ljudi instaliraju na svoje računalo — cloud je za njih izgledao kao da potkopava vlastiti model, kao da bi sam sebi prerezao granu. IBM je imao ogroman, respektabilan biznis prodaje mainframe rješenja korporacijama uz debele ugovore o održavanju — zašto bi to zamijenio za nešto što se naplaćuje po satu, u centima?

Amazon tu dilemu jednostavno nije imao, i to je ključ cijele priče — ne genijalnost, nego odsutnost kočnice. Zašto? Zato što Amazon 2006. gotovo nije imao marže koje bi trebalo štititi. Maloprodaja knjiga, CD-ova i svega ostalog nosila je marže od nekoliko posto — toliko tanke da su analitičari desetljećima pisali da je Amazon firma koja gubi novac elegantno i uz ovacije investitora. Kad ti je osnovni posao takav, infrastrukturni troškovi nisu nešto što čuvaš i optimiziraš u tajnosti — oni su teret za koji tražiš bilo kakav način da ga pretvoriš u prihod. Za Google ili Microsoft, prodaja serverskog vremena po satu bila bi sitniš, gnjavaža ispod dostojanstva firme koja zarađuje milijarde na oglasima ili licencama. Za Amazon, ta ista sitniš bila je spas. Otpad jednog je zlato drugog, i to nije metafora — to je bila čista poslovna matematika.

I dok su ostali čekali da im novac padne s neba na način koji im je poznat, Amazon je sedam godina — od 2006. do otprilike 2013., kad je Google konačno ozbiljno pokrenuo Compute Engine, dok je Microsoftov Azure, lansiran već 2010., još tražio svoje mjesto — bio praktički sam na tržištu koje je sam definirao. Sedam godina zvuči kao malo. U svijetu cloud infrastrukture to je vječnost. To je vrijeme da se izgradi desetak podatkovnih centara, sklope ugovori sa svim velikim startupovima prije nego što uopće postanu veliki, sastavi katalog od stotinjak usluga koje konkurencija mora hvatati redom, i — najvažnije — nauči na tuđim greškama dok ih ti praviš prvi. Prednost u infrastrukturi ne vrijedi kao prednost u modi ili u aplikaciji koju netko može kopirati za mjesec dana. Vrijedi gotovo sve, jer se ne kopira brzinom softvera nego brzinom betona, optičkih kablova i povjerenja klijenata koji jednom migriraju i onda ostanu iz čiste lijenosti.

Što je cloud stvarno promijenio
§ 04

Što je cloud stvarno promijenio

Dobro, zaboravi na trenutak mit. Zaboravi „višak kapaciteta”, zaboravi Black Friday matematiku koja ne štima, zaboravi cijelu tu uredno upakiranu priču koju smo upravo raščerupali. Jer ono što je AWS stvarno pokrenuo nema veze s time je li Amazon do ideje došao slučajno ili namjerno — bitno je što se dogodilo kad je ta ideja izašla na tržište. A dogodilo se ovo: prvi put u povijesti računalstva, pokretanje ozbiljnog poslovnog projekta prestalo je zahtijevati razgovor s bankom.

Prije 2006. htio si napraviti startup? Trebao si CAPEX. Kapitalni izdatak. Ozbiljna riječ za ozbiljan problem: kupi servere, kupi router, potpiši ugovor o kolokaciji — što znači da svoju opremu useliš u tuđi podatkovni centar i plaćaš za prostor, struju i mrežu, kao podstanar, samo što je stanar u ovom slučaju hrpa metala koja se grije — plati depozit, čekaj isporuku, moli se da si dobro procijenio koliko ti treba. Jer ako si podcijenio, tvoja stranica pada baš kad postane popularna (sjeti se priče o YouTubeu — ista bol, drugi predznak), a ako si precijenio, imaš skladište metala koje se amortizira dok ti novac curi kroz prste. Trebao ti je bankovni kredit, poslovni plan, možda i investitor koji vjeruje da ćeš uspjeti prije nego što uopće smiješ pokušati.

Poslije 2006. trebala ti je samo kreditna kartica. Ne kredit — kartica. Ista ona kojom plaćaš pizzu. Upišeš broj, klikneš ‚launch instance’, i za par minuta imaš server. Ne simulaciju servera — stvaran, radan, sposoban primati prometa server, koji možeš ugasiti navečer ako ti ne treba, i platiti samo za sate koje si potrošio. CAPEX je postao OPEX. Kapitalni trošak postao je operativni trošak. I ta jedna rečenica — koju bi računovođa izgovorio suhim glasom kao da čita popis inventara — jedna je od najvećih ekonomskih promjena u povijesti softvera. Zvuči kao knjigovodstvena sitnica. Nije. To je razlika između ‚moraš prvo dokazati da ćeš uspjeti da bi smio pokušati’ i ‚probaj, pa vidi’.

A kad pokušaj postane jeftin, dogodi se ono što se uvijek dogodi kad nešto postane jeftino — poplava. Ne struja pokušaja, poplava. Cijeli val koji danas zovemo Web 2.0, cijela ta generacija stranica koje su te naučile da lajkaš, komentiraš, uploadaš i pratiš — velik dio toga nije mogao postojati bez onoga što se dogodilo u ljeto 2006. Nije da su ti servisi bili genijalniji od prijašnjih. Bilo ih je više, jer je bilo jeftinije pogriješiti. Dropbox, Airbnb, Pinterest, Netflix streaming — pogledaj bilo koje poglavlje iz Dijela II ili Dijela IV ove enciklopedije i, ako zaviriš duboko, negdje u temeljima stoji EC2 instanca ili S3 »bucket« (to je samo Amazonov naziv za virtualnu kutiju u koju spremaš datoteke — kao ladica u ormaru, samo što ormar stoji u nekoj hali u Virginiji i nikad ga ne vidiš). Ova knjiga, u neku ruku, cijelo vrijeme priča priču koja je počela ovim poglavljem. Nasmij se grohotom ideji da je to slučajnost.

OK, sad ono neizbježno pitanje — ono koje ti se vrti po glavi otkad je netko prvi put rekao „cloud” u tvojoj blizini kao da izgovara čaroliju. Što je to, zapravo? Znaš odgovor koji dobiješ od nekoga tko se pravi pametan: apstraktna infrastruktura, elastično skaliranje, distribuirani resursi. Zaboravi sve to. „Cloud” je tuđe računalo. To je cijela definicija. Netko drugi ima server, u nekoj hali negdje, a ti ga iznajmljuješ na sat. Da, pojednostavljujem — namjerno, jer ispod te jedne rečenice nema ničeg tajnog što bi opravdalo svu tu maglu žargona koja se stvorila oko riječi „cloud”. Ima puno inženjerstva ispod, priznajem, ali koncept je star koliko i ideja da ne moraš imati vlastiti bunar da bi pio vodu.

I evo gdje priča postaje stvarno zanimljiva, jer nije nova. Nimalo. Godine 1961., pedeset godina prije nego što je AWS postao milijarderski biznis, John McCarthy je na MIT-u govorio o „utility computing”, računalstvu kao komunalnoj usluzi. Ideja je bila jednostavna i, u to vrijeme, potpuno nezamisliva: računalna snaga bi trebala funkcionirati kao struja. Ne kupuješ generator da bi imao svjetlo u kući — platiš mjesečni račun i utikneš uređaj u zid. Zašto bi računanje bilo drugačije? Zašto svaka firma mora imati vlastiti „generator”, vlastite servere u vlastitom podrumu, kad bi mogla samo platiti utičnicu? (O McCarthyju i toj eri detaljnije u poglavlju 21 prve knjige — vrijedi zaviriti, jer čovjek je vidio ovo prije nego što je iole tehnički bilo moguće.)

Pedeset godina. Od predviđanja do fakture. McCarthy je imao ideju kad su računala bila veličine sobe i koštala kao kuća, kad je „timesharing” — više ljudi dijeli jedan skupi stroj — bio vrhunac dostupne tehnologije. Trebalo je pola stoljeća, tri generacije mikroprocesora, internet koji je dovoljno brz i jeftin, i jednu knjižaru koja je otkrila da joj vlastita infrastruktura vrijedi više prodana nego korištena — da bi se ta ideja pretvorila u proizvod koji možeš platiti karticom u dva klika. To nije priča o Amazonu koji je slučajno naletio na dobru poslovnu odluku. To je priča o viziji koja je čekala da tehnologija i ekonomija konačno stanu iza nje.

Mit kao simptom
§ 05

Mit kao simptom

Dobro, presuda. Zašto je priča o »višku kapaciteta« preživjela dvadeset godina iako matematika ne štima, iako Bezosov memo postoji, iako svaka ozbiljna analiza kaže suprotno? Zato što je ta priča ugodnija. Ne za nas — za njih. Za Google, za Microsoft, za IBM, za svakog direktora koji je 2007. odlučio da cloud nije njegov posao. Ako je AWS slučajnost, nusprodukt, otpad koji se pretvorio u proizvod — onda propust što ga nisi vidio nije tvoja greška. Nisi mogao znati. Tko bi pogodio da će se knjižara pretvoriti u vlasnika pola interneta? Ali ako je AWS bio deliberatna strategija, promišljena, s memom i mandatom i timovima koji su godinama gradili unutarnju infrastrukturu prije nego što je ikome palo na pamet da je proda — onda je propust koji su svi napravili užasno objašnjiv. Vidjeli su isto što je Amazon vidio. Samo nisu htjeli platiti cijenu da to izgrade.

I to je poanta koja boli, ne ona lijepa: najbolje prilike ne dolaze u odijelu s natpisom PRILIKA. Dolaze kao sporedni posao, kao interni alat koji je nekome dodijelio brzinu, kao trošak koji se pretvorio u imovinu jer je netko u pravom trenutku upitao: a što ako to prodamo drugima? Legenda o »višku kapaciteta« ne postoji zato što je istinita. Postoji zato što je utješna. Slučaj ne obvezuje nikoga na samokritiku. Strategija — obvezuje.

A sad ono što nitko voli spomenuti na kraju uspješne priče: kad je jedna firma, iz sporednog posla, iz interne nužde, iz memoranduma koji je nekome zaprijetio otkazom, izgradila infrastrukturu na kojoj danas stoji pola interneta — što se dogodi kad ta infrastruktura kihne? Ne pretpostavka. Dogodilo se, više puta, i dogodit će se opet. Tri oblaka — tako se danas zovu ta tri diva, AWS, Microsoft Azure i Google Cloud, koji zajedno nose gotovo cijelu internetsku infrastrukturu — nose gotovo sve što otvoriš ujutro na telefonu. Kad jedan od njih posrne — a posrnuo je, više puta, u različitim godinama, uvijek s istim rezultatom: pola servisa koje koristiš odjednom prestane raditi, bez upozorenja, bez objašnjenja, dok inženjeri negdje u Seattleu ili Dublinu grozničavo traže koji je server pao — ispada da smo svi, bez iznimke, oslonili civilizaciju na odluku koju je sredinom 2000-ih donio tim inženjera u Seattleu, rješavajući vlastiti problem, ne mislivši ni sekundu da rješavaju i tvoj.