Koliki je Google?

Na ovo pitanje možemo odgovoriti iz perspektive njegove vrednosti na berzi, broja njegovih korisnika, ili pak metafizičkog uticaja. Međutim, Google je pre svega ogromni kompjuterski softver. Možemo ga posmatrati kao kod.

Rejčel Potvin iz kompanije Google govorila je upravo o tom njegovom svojstvu na konferenciji inženjera u Silicijumskoj dolini.

Ona procenjuje da softver potreban da pokreće sve internet usluge ovog giganta – od Google Search do Gmail i Google Maps – predstavlja oko dve milijarde linija koda.

Poređenja radi, Microsoft Windows operativni sistem – jedan od najkompleksnijih softvera ikad napravljenih za PC – ima oko 50 miliona linija koda. Dakle, pravljenje Googlea je ekvivalent pravljenju 40 Windowsa.

Dve milijarde linija koje pokreću Google čine Google Search, Google Maps, Google Docs, Google+, Google Calendar, Gmail, YouTube i svaki drugi Google internet servis, pa opet, sve one su na jednom repozitorijumu i na dohvat ruke su za 25.000 Google inženjera.

Unutar te kompanije kod se tretira kao ogromni operativni sistem. “Iako to ne mogu da dokažem, mislim da je ovo najveći repozitorijum na svetu”, kaže Potvin.

Google je ekstreman slučaj, ali je primer toga koliko je softver postao složen u doba interneta i kako smo promenili alate i filozofiju kodiranja kako bismo mu se prilagodili.

Iako kompletan pristup kodu imaju samo zaposleni u Googleu, polako se krećemo ka tome da svaki korisnik interneta može da doprinese tom kodu i to u velikoj meri. Samo na taj način možemo pratiti brzu evoluciju modernih internet servisa.

Ali, kako upravljati tako ogromnim kodom?

Google je napravio svoj sistem verzioniranja izvornog koda pod nazivom Piper. On funkcioniše u kompletnoj infrastrukturi koju je Google izgradio, a sistem se proteže na 10 različitih centara podataka.

Zanimljivo je što se kod može koristiti i kombinovati u raznim projektima.

“Kad pokrenete novi projekat, iamte mnoštvo programskih biblioteka koje su vam dostupne. Gotovo sve je već urađeno”, kaže Potvin. Štaviše, inženjeri mogu napraviti samo jednu promenu u kodu i automatski je primene na sve Google servise.

Ipak, postoje ograničenja tog sistema. Potvin kaže da je kod izuzetno osetljiv – sličan Googleovom PageRank algoritmu pretrage i nalazi se u odvojenim repozitorijumima koji su dostupni nekolicini zaposlenih. Takođe, Google čuva kod za svoja dva operativna sistema Android i Chrome na različitim verzijama kontrolnih sistema. Ipak, najvećim delom je monolitan i omogućava slobodan protok gradivnih elemenata softvera, ideja i rešenja.

Ne samo da je potrebno veliko znanje i veština za baratanje takvim kodom, nego i velika snaga računara. Piper obuhvata oko 85 terabajta podataka (85.000 gigabajta), a Googleovi inženjeri svakodnevno prave oko 45.000 izmena u repozitorijumu.

Dok se Linux proteže na 15 miliona linija koda i 40.000 softverskih datoteka, Googleovi inženjeri modifikuju 15 miliona linija koda u 250.000 datoteka svake nedelje.

Istovremeno, Piper mora da uklanja “otpad” koji programeri ostavljaju za sobom, da njihovo “pismo” učini razumljivim, da spreči preklapanje do kog može doći kada dva programera istovremeno menjaju kod i pritom uklone bagove u repozitorijumu. Pošto je to ogroman posao, jedan deo su preuzeli automatizovani botovi u okviru alata nazvanog Perforce.

To ne znači da botovi pišu kod, nego da neguju “zdravlje koda”, kako to kaže Potvin.

Facebook i Google sada zajedno rade na open source verziji kontrolnog sistema koji će moći da koriste svi ljudi. On se zasniva na postojećem Mercurial sistemu.

“Želimo da proverimo da li Mercurial možemo dovesti na nivo Googleovog repozitorijuma”, kaže Potvin, ukazujući da Google vredno radi zajedno sa programerskim guruom Brajanom O’Salivenom i drugima koji nadgledaju kodiranje na Facebooku.

To deluje kao megalomanski projekat, budući da Facebook i Google barataju sa ogromnim brojem linija koda, ali deluje da će im u bliskoj budućnosti to poći za rukom.

Izvor: b92

SHARE

Pročitajte ostale članke iz ove kategorije: