ITHub

Hogyan építkeznek a nagyok? 2. rész - Google

Hogyan építkeznek a nagyok? 2. rész - Google
Kóbor Ádám
Kóbor Ádám
| ~3 perc olvasás

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.

Hogyan működik a Google?

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: