Let's Do It Romania - 24 Septembrie 2011



   

Infrastructură pentru toţi

   

După ce Amazon a demonstrat că resursele de calcul pot fi o utilitate publică, Google îşi pune la dispoziţia proiectanţilor de aplicaţii web o parte din enorma sa infrastructură.


Mircea Sârbu


Pentru utilizatorul obişnuit al internetului, motorul de căutare Google este o banalitate. Introduci câteva cuvinte cheie, apeşi butonul "Căutare" şi în secunda următoare apar rezultatele, în ordinea relevanţei. Pentru cei care au scris măcar odată o aplicaţie informatică această banalitate este o uriaşă şi perpetuă mirare. Cum face? Poate că mii de oameni au introdus cereri de căutare în aceeaşi secundă şi toţi primesc răspunsul cu aceeaşi promptitudine. Chiar dacă ar fi vorba doar de a servi pagini statice şi tot ar fi uluitor, însă rezultatele sunt calculate dinamic pe baza unor algoritmi complecşi, care explorează volume de date gigantice (aproape tot web-ul este indexat de motorul de căutare). Dacă vom căuta "Google BigTable cloud computing" vom obţine imediat 13.800 de pagini şi vom afla din prima pagină afişată că maşinăria infernală a găsit răspunsurile într-un sfert de secundă! Şi nu doar răspunsurile, ci şi anunţurile potrivite contextului.

În spatele simplităţii stă însă complexitatea unei colosale infrastructuri de calcul. În urmă cu doi ani se vorbea de circa o jumătate de milion de servere (asamblate de Google din componente absolut obişnuite) şi o capacitate de stocare pe care miliardele cu greu o pot exprima, chiar dacă folosim ca unitate gigabyte-ul. Modelul de calcul distribuit MapReduce, dezvoltat şi implementat de Google, a fost recent prezentat într-o comunicare susţinută la ACM, împreună cu nişte statistici ameţitoare: un job MapReduce rulează în medie pe circa 400 de computere iar Google efectuează circa 100.000 de astfel de joburi în fiecare zi, procesând 20 PB (adică 20 de milioane de GB) de date pentru a deservi mai mult de 100 de milioane de căutări precum şi alte numeroase servicii. Comunicarea dintre Google şi restul lumii înseamnă trei milioane de GB în fiecare secundă. Este cu siguranţă unul dintre cele mai elocvente exemplu de "cloud computing" la momentul actual.

Cum ar fi să avem la dispoziţie o fărâmă din această infrastructură? De fapt  o avem deja, prin diversele servicii furnizate de Google. De exemplu, cei peste 6 GB alocaţi unui cont GMail pot fi utilizaţi ca spaţiu adiţional de stocare folosind o extensie Firefox numită Gspace. Însă de multă vreme se zvoneşte că Google intenţionează să ofere publicului spaţiu de stocare practic nelimitat (zvon niciodată infirmat). Un zvon ceva mai recent prevestea că Google nu va oferi spaţiu de stocare "brut", ci chiar accesul la propria infrastructură de baze de date (BigTable), sub forma unui serviciu web. S-a dovedit însă mult mai mult de atât: zilele trecute Google a anunţat lansarea platformei aplicative Google App Engine, care va permite proiectanţilor să dezvolte şi să găzduiască aplicaţii web folosind chiar infrastructura pe care Google o foloseşte pentru GMail, Docs şi alte servicii web. În prima fază (preview) nu există decât conturi gratuite, fiecare oferind 500 MB de spaţiu persistent de stocare, accesul la servere de aplicaţie programabile în Python, interfeţele de programare pentru BigTable şi sistemul distribuit de fişiere GFS precum şi suficientă putere de calcul şi lărgime de bandă pentru ca aplicaţia să poată să deservească până la 5 milioane de pagini pe lună. Când serviciul va fi complet funcţional, Google va oferi clienţilor şi posibilitatea de a cumpăra resurse suplimentare.

Este evident că Google răspunde astfel mişcării făcute de Amazon, care a lansat o platformă de "cloud computing" compusă din serviciile ECC (Elastic Compute Cloud), S3 (stocare) şi SimpleDB (baze de date). Deşi asemănătoare, ofertele diferă în multe aspecte. În primul rând, preţul -- în buna tradiţie Google, serviciul pe care-l oferă este gratuit la nivel de bază (deşi n-ar fi exclus ca Google să-şi rezerve dreptul de a insera publicitate), în vreme ce la Amazon totul costă. Mai importantă este însă abordarea de ansamblu: în vreme ce Amazon oferă, în esenţă, putere de calcul "pură", pe care clientul o poate folosi la orice, Google oferă putere de calcul "specializată", de fapt o infrastructură pentru un anume tip de aplicaţii. Este cert însă că ambele variante oferă o caracteristică esenţială -- scalabilitatea -- şi sunt extrem de atractive pentru start-up-uri cu idei interesante dar fără resursele necesare unei infrastructuri proprii.

Având în vedere că şi IBM pregăteşte nişte servicii similare iar o infrastructură open source pentru cloud computing a apărut deja (se cheamă Enormalism), se pare că asistăm la consacrarea unei noi direcţii în business-ul IT.


 

(Publicat în Business Magazin - aprilie 2008)

 

Copyright © 2008 Mircea Sârbu