Un Interviu cu Bruce Maggs

Mihai Budiu -- mihaib+@cs.cmu.edu
http://www.cs.cmu.edu/~mihaib/

februarie 2001

Subiect:
un interviu cu Bruce Maggs, vicepreședinte pentru cercetare/dezvoltare la compania Akamai.
Cunoștințe necesare:
cunoștințe elementare despre rețele de calculatoare
Cuvinte cheie:
Akamai, Internet, streaming media, cercetare, universitate


Cuprins




Traducere

M: Puteți să ne spuneți cîte ceva despre dumneavoastră?

Figura 1: Bruce Maggs.
Bruce Maggs

BM: Sigur. Sunt informatician, profesor la universitatea Carnegie Mellon (CMU).

Am crescut în statul Illinois, în centrul Statelor Unite, dar în copilărie am petrecut mai multe luni în Europa de est: Bulgaria, Yugoslavia și chiar am petrecut vara anului 1969 în România.

Am studiat la Massachusetts Institute of Technology (MIT), în Boston; de acolo am primit atît diploma de absolvent cît și pe cea de doctor. După un stagiu post-doctoral scurt la MIT am lucrat timp de trei ani și jumătate la laboratoarele NEC, un institut de cercetare fondat de compania japoneză cu același nume. După aceea am venit la CMU. Sunt aici de șapte ani, deși am făcut o pauză de trei semestre lucrînd la o nouă companie numită Akamai. La Akamai sunt vice-președinte pentru cercetare-dezvoltare, și am supervizat toată activitatea de implementare.

Pe lîngă calculatoare îmi mai place să joc hochei pe gheață și softball, care e o variantă a baseball-ului american. De asemenea fac jogging și ciclism.

M: Ați anticipat o întrebare despre hobby-uri...

să am o mulțime de întrebări despre Akamai mai încolo. Puteți să ne spuneți ceva despre subiectele dumneavoastră de cercetare?

BM: Cercetarea mea s-a desfășurat mai ales în domeniul calculului paralel. În particular, am căutat răspuns la întrebarea ``care ar trebui să fie structura generală a unui calculator paralel?''. Cînd ai multe procesoare independente cuplate cu o rețea de comunicații, cum ar trebui rețeaua să arate și cum ar trebui să o utilizeze procesoarele?

În ultima vreme însă am devenit interesat de rețele de calculatoare. După stagiul la Akamai, mi-am schimbat orientarea. Înainte eram mai ales teoretician, dar acum lucrez la probleme mai ``imediate''. În final cred că majoritatea cercetării mele va avea și o bază teoretică.

M: Asta e grozav, pentru ca am multe întrebări despre relația dintre teorie și practică în calculatoare, și îmbinarea lor.

De fapt, am să pun acum o astfel de întrebare: cum vedeți relația dintre cercetarea în sisteme și cea din teorie? Domeniile sunt relativ disjuncte, iar cele două comunități de cercetători nu par să comunice prea des. Ce părere aveți?

BM: Cred că sunt o seamă de prejudecăți în privința asta, și că în realitate cele două comunități interacționează substanțial. Dar, într-adevăr, e destul de greu să găsești un teren comun, în care rezultate dintr-un domeniu se aplică imediat în celălalt. Teoreticienii își pot folosi cele mai puternice unelte cînd au un model clar, curat, abstract al sistemului; practicienii pot folosi ideile teoretice cînd detaliile de implementare sunt la-ndemînă, și nu sunt îngrozitor de complicate. E adevărat, de asemenea, că informaticienii se văd ca făcînd parte dintr-un domeniu sau altul. De aceea, un efort real trebuie făcut pentru a face legături cu cealaltă parte. Și din același motiv există un număr relativ redus de cercetători care sunt bine cunoscuți în ambele arii.

O altă prejudecată eronată este că teoreticienii nu sunt ``practici'' și că cei care construiesc sisteme nu pot crea arhitecturi fundamentate teoretic. Cred ca un teoretician bine ``educat'' despre problemele reale din sisteme poate dezvolta modelele corecte și poate folosi uneltele corecte pentru a îmbunătăți arhitecturi care au fost concepute fără o bază teoretică. De asemenea, cred că cei din sisteme pot aprecia și concepe design-uri bune și din punct de vedere teoretic.

La Akamai, cel puțin, am văzut teoreticieni care erau rapid integrați în proiecte de construire a unui sistem complex. Detalii despre, să zicem, cum Linux implementează nu știu ce protocol de rețea, nu pot fi repede învățate de teoreticieni, dar dacă stai cot la cot în tranșee cu cei care construiesc sistemele înveți detaliile astea, și înțelegi și de ce lucrurile stau așa. E posibil ca teoreticienii să aibă un mare impact asupra arhitecturii unor sisteme foarte mari. Mai ales cînd programele vor trebui să funcționeze la dimensiuni de mii de calculatoare, miliarde de pagini de web pe zi și teraocteți de date colectate.

M: Mă împingeți să vă întreb mai multe despre Akamai...ce este Akamai?

BM: Akamai este liderul în livrarea de informații pe Internet. Asta înseamnă că Akamai livrează, de exemplu, imaginile care apar pe cele mai populare site-uri de web din lume. Akamai are la ora actuală în jur de 1400 de clienți.

Clienții folosesc Akamai pentru a livra biții care formează imaginile sau secvențele video care sunt apoi afișate pe terminalul utilizatorului. Clienții lui Akamai sunt nume foarte mari, ca Yahoo, Microsoft, Apple, CNN; toți aceștia au transferat lui Akamai problema livrării rapide a informațiilor [pe web] către utilizatori.

Akamai are servere în întreaga lume: cam 8000 de servere în 50 de țări în 500 de puncte. Cînd un utilizator vizitează, să zicem Yahoo, [folosind un browser de web], imaginile vin spre utilizator nu de la site-ul central, unde Yahoo are serverul principal de web, ci de la unul din site-urile Akamai, care de obicei este mult mai aproape de utilizator decît serverul Yahoo.

M: De unde știe Akamai care server este mai aproape de utilizator? Internetul nu oferă nici o infrastructură pentru a determina poziția unui utilizator.

BM: Asta e o întrebare bună.

În primul rînd, nu e chiar adevărat că Internetul nu oferă nici o infrastructură. E o grămadă de informație numai în adresa IP (adresa internet) a clientului. Internetul nu e o rețea plată, complet dezorganizată: e o interconexiune de rețele independente, iar din adresa IP a clientului știi rețeaua pe care clientul se află, iar din asta știi ceva despre poziția clientului.

Mai mult, Akamai are o prezență foarte amplu distribuită: cu servere în peste 500 de locuri putem face o analiza a Internetului, și putem construi în timp real un model complex despre ce se întîmplă: care rețea e conectată cu cine și unde sunt probleme de performanță. Asta este una dintre competențele cheie ale lui Akamai. Cînd un utilizator face o cerere noi calculăm nu numai unde se află, ci și de unde e cel mai ușor de servit.

M: Tot procesul ăsta e invizibil pentru utilizator?

BM: Da, complet transparent.

Ai văzut, cu siguranță, cum unele site-uri de web unde te duci, să zicem, să descarci (download) niște programe, îți oferă o listă de site-uri din felurite țări. În modelul acela utilizatorul trebuie să participe la luarea deciziei. Problema cu modelul ăsta este că vagi clasificări geografice nu au nimic de a face cu performanța rețelei. Nu intotdeauna site-ul cel mai apropiat ca distanță este și cel cu cea mai bună performanță. O astfel de decizie este o povară în spinarea utilizatorului.

Sistemul Akamai este complet transparent. În esență, cînd un utilizator încearcă să rezolve un nume care conține akamai folosind DNS1, sistemul DNS de la Akamai se uită de unde vine cererea și decide apoi care server Akamai este cel mai potrivit pentru a răspunde utilizatorului.

M: Deci toate imaginile [de la Yahoo] au URL-uri (Universal Resource Locators) la Akamai?

Figura 2: Funcționarea sistemului Akamai: (0) cnn.com distribuie imaginile serverelor Akamai. (1) Un utilizator (client) vizitează cnn.com (2) cnn.com raspunde; pagina conține figuri incluse cu img src, aflate la a73.g.akamai.net (3) Clientul contactează serverul de nume rădăcină ca să afle unde e akamai.net (4) Serverul replica cu adresa IP a serverului principal de nume pentru akamai.net (5) Clientul contactează serverul principal de nume al lui akamai.net ca să afle unde e serverul de nume (secundar) pentru g.akamai.net (6) Serverul primar răspunde cu adresa de IP (7) Clientul contactează serverul secundar g.akamai.net și întreabă unde e a73.g.akamai.net (8) Serverul de nume secundar calculează din poziția clientului cel mai apropiat server Akamai de client și returnează adresa lui IP (9) Clientul contactează serverul Akamai de date (10) Serverul returnează imaginea din pagina de web.
Sistemul Akamai

BM: Exact. Cererea DNS vine la Akamai, și Akamai trimite utilizatorul spre serverul optim.

Poate ai observat că atunci cînd vizitezi unele site-uri de web, în partea de jos a browser-ului de web apare intermitent cuvîntul akamai: asta e o indicație că browser-ul contactează Akamai pentru a rezolva URL-uri care conțin numele akamai, și că apoi ia imaginile corespunzătoare de la Akamai.

Există mai multe metode prin care un site poate folosi serviciile Akamai fără a-și umple pagina cu URL-uri de la akamai. Din ce în ce mai mulți dintre clienții noștri folosesc mecanisme DNS care ascund faptul că Akamai este implicat. Nu numai că browser-ul se conectează automat la akamai, dar nici nu mai există indicații pe ecran despre faptul că datele vin de la noi.

M: Ați spus că folosiți informații despre structura Internetului. Folosiți numai informații disponibile public, cum ar fi tabelele de rutare, sau măsurați în mod activ Internetul?

BM: Cred că este inexact să spui că tabelele de rutare sunt public disponibile: nu poți nicicum să obții tabelele de rutare din ruterele unui ISP (Internet Service Provider) oarecare. În general nu sunt disponibile.

M: Am vrut să spun: ``tabele de rutare inter-domeniu''.

BM: Chiar și tabelele de rutare inter-domeniu sunt disponibile numai dacă o rețea a făcut o înțelegere cu tine să ți le pună la dispoziție, sau, mai exact tehnic, să-ți fie egal (peer) ca ruter.

Răspunsul este însă ``DA'' pentru ambele întrebări.

Akamai are acces la un număr foarte mare de tabele de rutare în timp real, deci are o imagine completă a conectivității Internetului la orice moment.

Dar există și alți factori importanți pentru performanță în afară de conectivitate. Deci Akamai face o varietate de măsurători. Unele sunt bazate pe performanța percepută de utilizatori, altele sunt mai ``active''.

M: Folosiți suport special de la ISP-urile cu care lucrați, sau folosiți numai infrastructura de bază a rețelei?

BM: Nu pot comenta acest subiect.

M: Ați menționat că Akamai oferă și informație video. Face compania mutări în afacerile cu ``streaming media'' (informații cu flux continuu)?

BM: ``Streaming media'' este un domeniu foarte important pentru Akamai. Suportăm toate formele populare, incluzînd Windows Media, Real Audio și Video, și Quicktime. Credem că aceasta este o formă din ce mai populară de informație, și una care va consuma din ce în ce mai multă capacitate a rețelei.

Acest tip de informație are nevoie de mai multă capacitate (bandwidth) și, mai ales, este foarte sensibilă la pierderi și întîrzieri. Cu cît drumul între server și utilizator este mai lung, cu atît crește probabilitatea să apară probleme, care vor fi perceptibile utilizatorului. Dacă serverul este cît se poate de aproape, clientul poate obține o experiență calitativ superioară.

În următorii ani, pe măsură ce limitarea de pe ``ultimul kilometru'' (adică linia telefonică de la centrală la un modem lent) dispare, pentru că lumea trece la soluții mai rapide, importanța existenței unui server apropiat va fi și mai mare decît acum.

M: Pentru filme arhivate îmi imaginez cum funcționează sistemul dumneavoastră: la fel ca și cu imaginile. Dar dacă transmiteți ceva în direct, cum veți proceda? În acest caz există o sursă unică de informație [care nu poate fi multiplicată pe serverele Akamai dinainte].

BM: Corect. Cînd discutăm de ``streaming media'', trebuie să facem distincție între video-la-cerere, care este un eveniment stocat dinainte, și transmisiunea în direct. Pentru cea din urmă avem o problemă suplimentară de rezolvat: cum redistribuim în mod fiabil semnalul de la sursă pînă la toate serverele Akamai, care îl pot apoi livra utilizatorilor.

Pentru acest scop Akamai are o infrastructură separată, care nu e necesară pentru distribuirea de informații ``statice'' (static content). Una dintre trăsăturile unice ale sistemului Akamai este că folosește un mecanism foarte redundant astfel încît, chiar în prezența multor căderi în rețea, probabilitatea ca fluxul de date care ajunge la un utilizator să fie degradat este foarte scăzută.

M: Sunt multe companii care par să facă ceva similar cu Akamai, de exemplu web caching. Cu toate acestea, Akamai a fost un succes de la început, pentru că' atunci cînd și-a anunțat existența avea deja, cîțiva clienți extrem de importanți, ca CNN și Yahoo. Cum de s-a întîmplat așa ceva: din cauza superiorității tehnice, a relațiilor personale, a suportului puternic din partea investitorilor, sau din alte motive?

BM: Sunt mai multe motive. Dar cele mai importante două sunt următoarele:

  1. Problema pe care Akamai o adresează este foarte importantă pentru acești clienți și nu exista nici o soluție;
  2. Încă de la început am făcut un efort foarte serios pentru a înțelege ce fel de solutie doreau potențialii noștri clienți. Design-ul nostru a fost constrîns de nevoile acestei liste de clienți.

Acesta este un sfat pentru orice companie nouă (start-up): șansa de a avea succes cu un nou produs sau serviciu va fi enorm sporită dacă potențialii clienți sunt implicați în proiectarea produsului cît se poate de devreme. Produsul Akamai nu a fost proiectat în vid: multă energie a fost consumată studiind ce fel de probleme au cei care livrează informații și ce fel de soluții ar fi acceptabile și totodată ușor de încorporat în infrastructura existentă.

M: Nu a fost proiectul original conceput și realizat într-o universitate, după care a evoluat într-o companie?

BM: Ba da, cărămizile de bază au fost puse la MIT, înainte ca eu să devin afiliat companiei, în 1995. Proiectul a devenit companie în 1998.

M: Akamai este o companie foarte interesantă și pentru că are o grămadă de angajați cu doctorat, mulți dintre care au puternice înclinații teoretice. A avut asta vreun impact asupra companiei? Au ajutat teoreticienii la rezolvarea unor probleme importante?

BM: O întrebare bună.

E adevărat: Akamai are un număr relativ ridicat de doctori: sunt cam 55 și mulți dintre ei au sau au avut poziții importante de profesor permanent2 la departamente de calculatoare sau de matematică din felurite universități. Nu sunt toți teoreticieni: există cîteva personalități din lumea ``sistemelor'' la Akamai. Dar e adevărat că mulți au reputații foarte solide în domeniul informaticii teoretice.

Una dintre prejudecățile pe care le-am discutat mai devreme era aceea că ``teoreticienii nu sunt practici''. Cred că experiența Akamai dovedește că proiectarea unui sistem bun poate fi făcută prin colaborarea dintre un număr mare de teoreticieni și cercetători din sisteme.

Akamai rezolvă probleme la o scară atît de mare încît soluții care nu pot fi analizate sau demonstrate că vor fi adaptabile la scară mare nu vor funcționa. Azi Akamai e o parte atît de importantă din livrarea de informații pe Web încît nu avem voie să facem erori. Soluțiile pe care le concepem trebuie să funcționeze imediat la scară mare și trebuie să fie capabile să susțină o încărcătură enormă, care crește de la lună la lună. O mare parte din componentele sistemului au fost proiectate plecînd de la considerente teoretice, și fac cîteodată lucruri care par neintuitive, tocmai pentru că teoria demonstrează că acesta este felul corect de a ataca problema.

M: L-am auzit mai demult pe [cîștigătorul premiului Turing din 1986] Robert Tarjan spunînd că, dacă vrei să ai un impact asupra lumii, mai ales ca teoretician, locul potrivit este o companie nou-creată (start-up). Puteți verifica această aserțiune?

BM: Nu sunt sigur dacă este specifică teoreticienilor; doar că un teoretician ``aruncat'' în fierberea unei companii nou create nu are luxul de a modela cu grijă și de a demonstra un număr mare de teoreme. Cererile unei companii noi sunt imediate, și teoreticienii sunt înglobați făcînd orice este necesar pentru companie, chiar pe termen scurt.

Dar pentru oricine vrea să aibă un impact imediat, o companie nouă este atractivă. Asta este una dintre cele mai plăcute consecințe ale muncii de la Akamai: ce faci acum poate avea impact doar în cîteva luni. Îi dă oportunitatea unui informatician să dezvolte o componentă a unui sistem și să vadă că, în trei luni, propria lui mamă o folosește, chiar dacă ea nu știe. Asta, cred eu, este foarte plăcut pentru oricine.

M: Ați adus de la Akamai niște probleme interesante la care să lucrați acum, în noua dumneavoastră viață universitară?

BM: Am adus. Într-o nouă companie, sau în orice companie care crește foarte repede, ai prea puțin timp să meditezi asupra problemelor în maniera sistematică cu care suntem obișnuiți în universitate. Apreciezi luxul ăsta numai cînd vii înapoi în universitate. În timpul proiectării sistemului Akamai am rezolvat rapid multe probleme, oferind soluții în care aveam încredere. Totodată, probleme interesante au rămas nerezolvate, pentru că nu aveau prioritate mare. Am adus cu mine nu număr de probleme motivate de fenomene observate în timpul proiectării sistemului Akamai, dar care nu erau urgente. Deși nu am fost capabil să îmi urmăresc cursul normal al cercetării, nu aș vedea șederea la Akamai ca o întrerupere în munca mea. Azi am un context mult mai bun în care să mă gîndesc la probleme despre rețele și mult mai multă experiență pentru a înțelege care probleme sunt importante și care soluții sunt fezabile.

M: A fost tranziția universitate -- companie și înapoi ușoară? Sunt diferențe ``culturale'' substanțiale?

BM: Aș zică că sunt diferențe foarte mari, mult mai mari decît m-am așteptat. Cred că anul și jumătate petrecut la Akamai este cea mai plăcută și fructoasă perioadă din cariera mea. Este de asemenea și cea mai puțin sănătoasă: am văzut mai multe răsărituri de soare decît în toată viața mea, am mîncat multă pizza și înghețată și am făcut foarte puțină mișcare.

Ceea ce pare un mare sacrificiu a fost destul de ușor de făcut la ora aceea, mai ales pentru că munca era atît de interesantă și adrenalina ridicată, încît era ușor să pierzi din vedere toate celelalte lucruri. Un lucru care-mi lipsește, de cînd am venit înapoi, este adrenalina, conștiința faptului că o eroare, chiar și una mică, ar putea avea un impact foarte mare asupra companiei, angajaților, clienților și investitorilor. Potențialul pentru un eșec costisitor e mult mai mare decît în universitate, unde ai timp să-ți verifici rezultatele și unde întreg procesul este proiectat să asigure corectarea cît mai rapidă a erorilor. Aici [în universitate] totul se mișcă mai încet. Primul lucru pe care l-am remarcat cînd m-am întors este cît de multă libertate am să-mi aleg cum să-mi petrec timpul în cercetare; ritmul vieții este mult mai molcom.

Un alt lucru diferit este un sentiment mult mai puternic de echipă în companie față de universitate. Cred că motivul este că profesorii, și chiar studenții doctoranzi, sunt evaluați mai ales ca indivizi. Chiar dacă ei adesea ``trag'' laolaltă pentru departament sau pentru universitate, la urma urmei e foarte important ca fiecare ins să-și delimiteze foarte clar contribuțiile. La Akamai contribuțiile individuale nu erau așa de importante. Era mult mai important ca noi, ca o echipă, sa construim un produs bun care să-i satisfacă pe clienții noștri. A fost deosebit de plăcut să lucrez în echipă cu oameni pe care-i cunoșteam de multă vreme și cu care colaborasem, dar numai în lumea universitară, unde fiecare avea propriul program de cercetare. Asta nu mai era o problemă: nu se mai străduia fiecare să fie diferit de colegii săi. În schimb toți ne-am concentrat efortul în proiect fără a ne preocupa cui i se va atribui meritul.

M: Este acest fenomen rezultatul contractului cu compania privind proprietatea intelectuală (Intellectual Property)? Nu poți atribui o inovație unui ins, pentru că oricum ea aparține companiei.

BM: Nu cred. E adevărat că aparține companiei, dar nu cred că lumea raționează așa cum spui. Cred că lumea înțelege că am făcut o pauză din carierele noastre universitare, sau poate am renunțat la ele, pentru a construi o companie bazată pe un serviciu și că, pentru a face compania să aibă succes, trebuie să oferim cel mai bun serviciu posibil clienților. De îndată ce fiecare-și înțelege rolul, munca în echipă vine natural. E adevărat că diseminarea informației este mult mai restrînsă la o companie, și mai ales la una nouă, pentru care e critic să mențină un avantaj competitiv. Rata de publicații care ies din Akamai este extrem de scăzută; putem zice că niciodată nu au fost la un loc atîția profesori de vîrf care publică atît de puțin. Dar cred că este aceeași motivație care face lumea să lucreze în echipă.

M: Un prieten de-al meu ar vrea să obțină o slujbă temporară (internship) la Akamai. Nu vreau aici să trag sfori pentru el, dar aș vrea să întreb despre contractul despre interdicția divulgării informației (Non-Disclosure Agreement, NDA) care trebuie semnat. Va putea prietenul meu să aducă de la Akamai niște probleme și rezultate interesante de la Akamai? Sau este contractul foarte strict?

BM: Cred că Akamai are un NDA standard; nu e construit pentru a îndepărta pe cercetători de la cercetare. E mai curînd un contract tipic pentru o companie, folosit atunci cînd mai multe companii colaborează, sau cînd cineva oferă consultanță companiei: în aceste cazuri toată lumea înțelege că secretele industriale trebuie păstrate.

În general, cred că Akamai suportă cercetarea universitară -- doar rădăcinile companiei vin din universitate. Facem tot ce putem, mai ales atunci cînd sunt implicați și studenți, să limităm impactul pe care l-am putea avea asupra viitoarei lor cariere.

Depinde foarte mult de la caz la caz: ar fi imposibil ca un student să scrie o teză care descrie întreaga infrastructură a lui Akamai și care descrie apoi probleme de cercetare care ar putea îmbunătăți unele părți. Trebuie să existe niște limite. Semnînd un NDA studentul cade de acord să nu divulge proprietatea intelectuală critică a companiei.

M: Profesorul Herbert Simon [cîștigător al premiului Nobel în 1978 și al premiului Turing în 1975; decedat in februarie anul acesta] scria undeva că îi este dor de timpurile în care colective de profesori lucrau împreună la o singură problemă importantă, sub conducerea unui profesor renumit (senior). Dînsul spunea că în ziua de azi cei mai mulți profesori urmăresc obiective individuale.

Observația aceasta pare legată de ceea ce spuneați mai devreme despre munca în echipă. Credeți că ceva ar putea fi împrumutat din modelul companiilor pentru a fi folosit în universități? Poate pentru a irosi mai puțin timp, să zicem, pe probleme secundare?

BM: Dacă înțeleg bine întrebarea, problema cea mai mare nu este dacă profesorii lucrează individual, ci dacă cineva îi îndrumă și îi direcționează spre anumite direcții.

Cred că e foarte sănătos ca profesorii să-și aleagă individual problemele despre care cred că sunt importante și să nu fie constrînși de opinia unui profesor renumit.

În același timp, e clar posibil ca cercetarea să fie mult mai eficientă dacă este făcută în echipă; universitatea, mai ales în Statele Unite, clar recompensează reușita individuală, mai ales la începutul carierei unui profesor. Pentru a obține tenură la o universitate de cercetare un profesor trebuie să-și stabilească o reputație independentă. Dacă profesorul participă numai în eforturi de colaborare sistemul nu-l va recompensa, iar cariera sa pe termen lung va avea de suferit. Acest aspect al sistemului universitar descurajează colaborarea.

Nu cred că există o soluție simplă. Dacă vrei să dai unui profesor ``important'' autoritatea de a-i conduce pe ceilalți trebuie să fii sigur că este cel potrivit pentru a deține autoritatea.

M: Să vă pun și cîteva întrebări tehnice despre Akamai.

Se zvonește că folosiți mult Linux. E adevărat? De ce?

BM: Într-adevăr, cele mai multe din serverele Akamai sunt Linux. Dar avem și destul de multe servere Windows 2000, mai ales cele care servesc fișiere Windows Media.

Akamai a pornit cu Linux, din mai multe motive.


M: Cum se administrează, întrețin și depanează atît de multe calculatoare în 50 de țări diferite?

BM: Asta e o întrebare interesantă.

În primul rînd, nu avem personal la nici unul din locurile unde sunt servere. Toate serverele sunt administrate prin rețea. Asta e o problemă deosebit de grea: cînd ai 8000 de servere, în orice moment unele o să aibă probleme hardware. Altele vor fi în locuri care pierd legătura cu restul Internetului. Programele trebuie să fie proiectate pornind de la premiza că pentru perioade lungi fiecare server poate fi inaccesibil sau greu de contactat.

Această problemă nu este încă complet rezolvată. Practic cele mai importante tehnologii ale lui Akamai se ocupă de problema asta: cum construiești și întreții un sistem distribuit foarte mare.

De aici decurg cîteva reguli interesante de programare. De exemplu, orice program trebuie să fie compatibil cu versiunile vechi. Motivul este că, deși actualizăm (upgrade) programele simultan pe toate calculatoarele, procesul poate dura foarte mult, depinzînd de conectivitatea rețelei. Unele părți vor fi actualizate, pe cînd altele încă nu, iar sistemul trebuie să opereze în timpul tranziției.

Sistemul trebuie de asemenea să fie complet descentralizat. Nu poate exista un loc central de care depinde eficacitatea întregului sistem.

Pentru că e atît de mare, e esențial de minimizat numărul de operații executate manual pentru administrație. Dacă ar fi necesară intervenția umană pentru a ține sistemul în funcțiune, pe măsură ce servere sunt adăugate, ar fi nevoie de din ce în ce mai mulți oameni.

Figura 3: Sistemul de monitorizare Akamai.
Camera de control.

Avem un sistem de monitoruizare sofisticat, care ne dă o vedere completă a sistemului. Sistemul a fost proiectat astfel încît să se auto-organizeze și să fie descentralizat.

În același timp avem control asupra fiecărui server, și cam toate serverele rulează cam același software. Nu avem de-a face cu un sistem eterogen. Profităm de asta oricînd e posibil. Dacă două servere discută între ele, presupunînd că s-au autentificat corect, fiecare va ști că celălalt rulează versiunea curentă sau cea anterioară a programelor Akamai.

M: Să zicem că mîine puteți merge la IETF3 și le puteți pune o propunere pentru un serviciu oferit de rețea. Ce le-ați propune pentru a vă ușura treaba?

BM: Asta e o întrebare bună.

Cred că cel mai important ar fi ca protocoalele de rutare inter-domeniu să folosească informații legate de performanța rețelei pentru alegerea unei rute. Astăzi alegerea se face mai ales pe baza numărului de pași (hops) de la un sistem autonom la altul. Asta are o corelație proastă cu performanța. În Internet în fiecare zi unele legături devin congestionate, deși acest lucru nu este transmis în informația vehiculată de [protocolul de rutare] BGP4. Din cauza asta traficul se duce în continuare prin legătura congestionată, iar asta pentru noi e o complicație: Akamai promite clienților săi o performanță satisfăcătoare. Pentru că informația nu e incorporată în deciziile de rutare noi trebuie să facem măsurători și să ocolim rutele alese de rețea (default routes).

M: Voi încheia cu niște întrebări mai personale.

Să zicem că tocmai termin facultatea și vreau să mă orientez spre cercetare prin studii post-universitare. Ce domeniu m-ați sfătui să aleg?

BM: Nu vreau să aleg un subiect de cercetare pentru nimeni. Cred că ar trebui să lucrezi la un subiect pe care-l crezi important și interesant. Dacă nu faci cercetare din cauză că o găsești interesantă, cariera ta va fi foarte apăsătoare. Trebuie să ai o motivație puternică de la început.

Să alegi o universitate poate să fie ușor sau poate să fie greu. Poți alege o universitate pentru că vrei să lucrezi cu un anumit profesor. Asta e riscant, pentru că adesea nu e nici o garanție că respectivul te va putea îndruma.

Ca o regulă generală, e cel mai bine să alegi o universitate cu reputația că face cercetare de calitate. Asta se poate măsura, de pildă, prin opinia ta despre articolele publicate. Dacă citești niște articole care ți se par bune, uită-te de unde sunt autorii. Asta poate fi foarte dificil pentru un student care încă nu a început să facă cercetare, și atunci sfatul profesorilor săi poate ajuta.

Atunci cînd alegi să faci studii post-universitare, cel mai important e să înțelegi ce vrei să studiezi.

M: Există vreo carte mare în calculatoare pe care lumea o ignoră?

BM: Nu am scris nici una, deci nu-mi vine nici o idee pe loc [rîde].

M: Vă mulțumesc foarte mult!

Alte surse de informație



Note

... DNS1
Sistemul DNS (Domain Name System) traduce numele calculatoarelor din forma textuală (ex. www.agora.ro) în cea numerică (ex. 194.102.154.13).
... permanent2
Tenured profesor: profesor pe viață.
... IETF3
Internet Engineering Task Force, comitetul care se ocupă de standardizarea Internetului.
... BGP4
Border Gateway Protocol, principalul protocol de rutare inter-domeniu folosit la ora actuală în Internet.