Facebook gir ut lynraskt PHP-system

Har redusert nettstedets serverbelastning med 50 prosent.

Haiping Zhao, en erfaren servertekniker i Facebook, kunngjorde i går i dette blogginnlegget at nettstedet nok en gang har gjort internt utviklet programvare tilgjengelig som åpen kildekode.

Denne gangen dreier det seg om HipHop for PHP, en løsning som gjør om PHP-basert skriptkode til optimalisert C++. C++-koden gjøres deretter om til binærkode med den utbredte kompilatoren g++.

Zhao skriver at PHP er et språk som er enkelt å lære og bruke, og at det bidrar til at Facebook kan innovere raskt. Men samtidig har det sosiale nettverket behov for løsninger som skalerer bedre enn det PHP er i stand til. Med 400 milliarder PHP-basert sidevisninger i måneden, merkes dette.

- Å skalere Facebook er spesielt utfordrende fordi nesten hver eneste sidevisning gjøres av en innlogget bruker med brukertilpasset opplevelse. Når du besøker hjemmesiden din er vi nødt til å slå opp alle vennene dine, be om deres mest relevante oppdateringer, filtrere resultatene basert på dine personverninnstillinger, for å så fylle ut fortellingene med kommenterer, bilder, «liker» og alle de rike dataene som folk elsker ved Facebook. Alt dette på under et sekund, skriver Zhao.

Transformeringsprosessen som utføres av Facebooks HipHop for PHP.
Transformeringsprosessen som utføres av Facebooks HipHop for PHP. Bilde: Facebook

- HipHop lar oss skrive logikken som utfører den endelige sammentingen i PHP, og iterere den raskt, mens vi baserer oss på skreddersydde støttesystemer i C++, Erlang, Java eller Python for å betjene nyhetsfeeden, søk, chat og andre kjernekomponenter av nettstedet.

Zhao nevner en rekke andre måter å optimalisere PHP-baserte tjenester på, inkludert ulike cachingteknikker, opcode-optimalisering, PHP-kompilering og transformasjon til C, Java og .Net.

- Fordelen med HipHop er at den er nesten transparent i forhold til utviklingshastigheten vår, skriver Zhao.

Det går ikke fram av blogginnlegget til Zhao, men HipHop er også en separat webserver. Det betyr at løsningen ikke kan brukes sammen med for eksempel Apache HTTP Server.

- Apache er generelt en flott webserver, men når vi ser etter hvordan vi skal kunne få den neste halve eller hele prosenten med ytelse, trenger vi ikke all den funksjonaliteten som Apache tilbyr, sier Facebooks sjef for åpen programvare, David Recordon, til Developer.com.

Han legger til at han håper det vil dukke opp et åpen kildekodeprosjekt en dag som vil få HipHop til å fungere sammen med Apache HTTP Server.

Facebook har tatt HipHop gradvis i bruk de siste seks månedene. I dag leveres mer enn 90 prosent av Facebook-trafikken med ved hjelp av HipHop.

Mer informasjon om HipHop for PHP er tilgjengelig på denne siden, men GIT-siden hvor koden skal gjøres tilgjengelig, er ikke åpnet ennå.

    Les også:

Nå kan du bli tilhenger av digi.no på Facebook!

Til toppen