Han står i spidsen for udviklingen af Googles operationelle infrastruktur og har dermed ansvaret for, at Googles netværk, servere og datacentre er designet og implementeret, så de bedst muligt kan understøtte Googles millioner af brugere. Samtidigt har han haft afgørende indflydelse på Javas succes via sin forskning inden for effektiv implementering af objektorienterede programmeringssprog. Prosabladet har mødt Urs Hölzle på årets JAOO-Konference og fået historien om, hvordan schweizeren med flair for matematik er endt som datacenter-designer for verdens største internetvirksomhed.
Datalogi mere interessant
Urs Hölzle var god til matematik allerede i sin tidlige skolegang i Schweiz, men da han efter gymnasietiden skulle læse videre på universitetet, valgte han datalogien.
– Jeg var god til matematik, men det var for teoretisk for mig. Det er fint, at du kan beregne noget, men hvad kan du egentlig bruge det til? Jeg har altid syntes, at datalogi var mere interessant end matematik, da det er mere brugbart. I datalogi løser du problemer, som har betydning for den virkelige verden, siger Urs Hölzle.
Siden Urs Hölzle fik sin master i datalogi fra ETH Zürich – der senere blev suppleret med en ph.d. fra Stanford – har han løst datalogiske problemer, der i høj grad har haft betydning for den virkelige verden.
Den danske forbindelse
I starten var det forskning i objektorienterede sprog, som optog ham. Sammen med danskeren Lars Bak etablerede han firmaet Animorphic i midten af 1990'erne. Her blev grundlaget for JVM'en (Java Virtual Machine) hotspot lagt. Animorphic blev købt af Sun i 1997, og hotspot-teknologien var med til at bane vejen for Javas succes. Ved hjælp af blandt andet Just-in-time-kompilering og adaptiv optimering i hotspot fik Java-programmerne et performancemæssigt boost, så det dengang nye programmeringssprog blev et seriøst bud på et sprog for professionelle udviklere.
– En af de afgørende ideer er, at man ikke skal optimere alting. Det, der virkelig tager tid, skal optimeres, mens man ikke skal bruge tid på resten, som ikke betyder noget, siger Urs Hölzle om filosofien bag hotspot.
Den filosofi har Urs Hölzles gode ven Lars Bak blandt andet videreført i udviklingen af den lynhurtige Javascript-fortolker V8 i Googles Chrome-browser.
Fra Java-virtuelle maskiner til datacentre
Mens Lars Bak fortsatte med at arbejde for Sun, startede Urs Hölzle i Google i 1999.
Det virker som et stort spring at gå fra performanceoptimering af Javas virtuelle maskiner til at skulle designe Googles infrastruktur og fokusere på servere, netværk og lignende. De to ting ligger umiddelbart langt fra hinanden?
– Ja og nej. Stort set alt mit arbejde har i lang tid handlet om performance. Det handlede ikke så meget om selve de objektorienterede sprog, men mere om at få dem til at blive hurtige. Når du laver den slags, skal du have en god forståelse for hardwaren. Du kan mappe et program til hardwaren på en god eller dårlig måde med hensyn til at få en hurtig eksekveringstid, siger Urs Hölzle.
Erfaringen med at kombinere software og hardware på den mest performancevenlige måde var noget, han kunne bruge hos Google. Her er et godt optimeret samspil mellem hardware og software grundlaget for, at Google kan håndtere mange millioner forespørgsler om dagen.
Google gennem 10 år
Da Urs Hölzle kom til Google i 1999, var firmaet stadig lille, og belastningen på det server-cluster, som Sergey Brin og Larry Page havde flikket sammen af forhåndenværende aflagte computere, var til at overskue.
– Jeg startede i Google i 1999. Da jeg startede, havde vi et cluster. Du kunne sidde og se på logfilen, når forespørgslerne kom til Google. Der var måske to forespørgsler per sekund, hvis det gik vildt for sig, mindes Urs Hölzle.
Det var blandt andet den datalogiske udfordring ved søgning, som tiltrak ham –
og skalerings-udfordringer. Søgning skal gå gennem en masse data. Da jeg kom til Google, vidste jeg intet om søgning – der var stort set ingen, der vidste noget om søgning – men de havde nogle virkelig interessante performances, og for at kunne det skal du have en masse maskiner, der skal organiseres på en fornuftig måde, siger Urs Hölzle.
Den organisering skal være så smart, at hardwarefejl, menneskelige fejl, programfejl, netværksfejl og lignende ikke forårsager nedbrud i Googles services.
– En vigtig del af infrastrukturen er software som GFS (Google File System, red.), BigTable og MapReduce. Forestil dig en super-server, der kun fejler hvert 30. år. Hvis du har et cluster med 10.000 af den slags servere, så vil der opstå en fejl hver eneste dag. Infrastrukturen som GFS og BigTable gemmer den slags nedbrud for dig, da der er nok redundans i systemet til, at den nedbrudte servers arbejde hurtigt overtages af en ny server, forklarer Urs Hölzle.