Hogyan építkeznek a nagyok? 2. rész - Google
Sorozatunk előző részében a Facebook által használt technológiákkal foglalkoztunk, most pedig az óriások legnagyobbikát, a Google-t vesszük szemügyre. Egyéni, trükkös megoldásokban náluk sincs hiány, érdemes tovább olvasnotok.
Kezdjük most is a számokkal:
- Naponta 6 milliárd keresést indítanak az emberek a Google-ben
- 1999-ben egy hónapig tartott, mire a Google keresője feltérképezett magának 50 millió oldalt, 2012-ben ugyanez a feladat kevesebb, mint 1 percet vett igénybe
- Minden egyes keresésnek átlagosan 2400 kilométernyi utat kell megtennie, hogy eljusson a Google adatközpontjába, és visszatérjen az eredménnyel. Ehhez mintegy 1000 darab köztes számítógépen kell átjutnia, 0.2 másodperc alatt
- Naponta több, mint 20 petabájtnyi adat áramlik keresztül a szervereiken
- Egy korábbi alkalommal, a Google szervereinek 5 perces leállásakor a globális internetforgalom 40%-kal esett vissza
A Google még a Facebook-nál is nagyobb előszeretettel alkalmaz saját fejlesztésű szoftvereket, ami elnézve a fenti számokat, egyáltalán nem meglepő.
GWS, a Google titokzatos szervere
A GWS-ről, a Google saját fejlesztésű, Linux alapú webszerveréről alig lehet tudni valamit, ennek ellenére az aktív weboldalak mintegy 15%-ának futtatásáért felel. Korábban felröppent a hír, hogy a szóban forgó szoftver nem más, mint egy átírt Apache, de ezt a vállalat 2007-ben cáfolta.
Tárolás
A Google saját fejlesztésű tárolási módszereiről sem sok információ szivárgott ki eddig. Az egész sztori a Google File System-mel (GFS) kezdődött, ami egy "BigFiles" néven futó, Larry Page, és Sergey Brin által fejlesztett rendszerből nőtte ki magát. A fájlokat a GFS 64 MB-os "szeletekben" tárolja, hasonlóan azokhoz a hagyományos rendszerekhez, amiket jellemzően új fájlok tárolására, és azok olvasására terveztek (nem pedig felülírásra, vagy törlésre). A GFS rendkívül magas hibatűréssel rendelkezik, ami azért volt fontos a kezdeti időkben, mert a cég indulásakor még viszonylag olcsó, kevésbé strapabíró hardverekből építkeztek. Későbbi verziója Colossus néven követte, utódja pedig a BigTable lett, ami már tömörített formában tárolja az adatokat, és jelentősen nagyobb teljesítményre képes.
A sorban a következő a Spanner, amely egy relációs adatbáziskezelő-rendszer. Különlegessége, hogy minden táblának kötelezően tartalmaznia kell egy elsődleges kulcsot. A Spanner felel továbbá azért is, hogy a Föld számos pontján szétszórt szerverek között konzisztensek maradjanak az adatok.
El is érkeztünk a legújabb tárolási megoldáshoz, ami a Google nevéhez fűződik: az F1-hez. A Google F1 egy hibrid adatbáziskezelő, mely egyszerre nyújtja a NoSQL megoldások skálázhatóságát, és a hagyományos SQL-alapú DBMS-ek előnyeit.
Nyelvek
A közismert programozási nyelvek mellett (C++, Java, Python) 2009-ben jelent meg 3 Google alkalmazott (Robert Griesemer, Rob Pike és Ken Thompson) munkájának eredményeként a Go nyelv, amit egyre szélesebb körben használnak a cégnél, és nem összetévesztendő a Go!-val. A szintaxisa, és a "teljesítménye" talán a C-hez áll a legközelebb, ám a fordítási idő tekintetében messze veri azt. Jól skálázódik, objektumorientált, és rendkívül produktívan lehet benne fejleszteni, ha már kiismertük magunkat.
A hardver
Ez az a téma, melynek mélyebb boncolgatására 3 ilyen bejegyzés se lenne elég, de a lényeget elég könnyű összefoglalni: kb. 40 data center világszerte, saját fejlesztésű hálózati eszközök, speciális Intel processzorok, melyek magasabb hőmérsékleten is megbízhatóan üzemelnek (így spórolhatnak a hűtési költségeken), az óceán fenekén futó, dedikált hálózati kábelek, és ki tudja, hogy milyen technológiák, melyeket egyelőre még nem tártak a nagyközönség elé.
Sorozatunkban korábban megjelent: