Acasă > Magazin > IT > Date tehnice despre Facebook – De ce are culoarea albastru?

Date tehnice despre Facebook – De ce are culoarea albastru?

Facebook

Facebook

Culoarea primară a site-ului Facebook este albastru, întrucât Zuckerberg este daltonist, o problemă de care şi-a dat seama abia după un test efectuat în jurul anului 2007, după cum a explicat el în 2010: „albastrul este culoarea cea mai bogată pentru mine, eu pot vedea toate nuanţele de albastru.” Facebook este construit în PHP care este compilat cu HipHop pentru PHP, un „un transformator de cod sursă” construit de inginerii Facebook, care transformă PHP în C++ . Folosirea HipHop s-a raportat că a redus consumul mediu de CPU pe serverele Facebook cu 50%.

Facebook este dezvoltat ca o aplicaţie monolit. Potrivit unui interviu în 2012 cu Chuck Rossi, un inginer de la Facebook, Facebook compilează în bucăţi binare de 1,5 GB care sunt apoi distribuite la serverele folosind un sistem personalizat bazat pe BitTorrent. Rossi a declarat că este nevoie de aproximativ 15 minute pentru a construi şi 15 minute pentru a le lansa la servere. Procesul de construcţie şi de lansare este fără întreruperi, şi modificări la Facebook sunt lansate zilnic.

Facebook a folosit o platformă combinată bazată pe HBase pentru a stoca date între maşini distribuite. Folosind o arhitectură de decantare, noile evenimente sunt stocate în fişiere jurnal, iar jurnalele sunt puse la coadă. Sistemul rulează aceste evenimente şi le scrie în sistemul de stocare. Interfaţa de utilizator apoi extrage datele şi le afişează pentru utilizatori. Facebook se ocupă de cereri ca comportamentul AJAX. Aceste cereri sunt scrise într-un fişier jurnal, folosind Scribe (dezvoltat de Facebook).

Datele sunt citite de la aceste fişiere jurnal folosind Ptail, un instrument construit pe plan intern pentru a agrega date de la mai multe depozite Scribe. Acesta pune la coadă fişierele jurnal şi extrage datele (şi astfel numele). Datele Ptail sunt separate afară în trei fluxuri astfel încât acestea să poată fi în cele din urmă trimise la propriile clustere în diferite centre de date (impresii plugin, impresii flux de ştiri, acţiuni (plugin + flux de ştiri)). Puma este utilizat pentru a gestiona perioadele de flux mare de date (de intrare/ieşire, sau IO). Datele sunt prelucrate în loturi pentru a reduce numărul de dăţi necesare pentru a citi şi a scrie în perioade de mari solicitări (Un articol „fierbinte” va genera o mulţime de impresii şi impresii de fluxuri de ştiri, care vor provoca un uriaş flux de date). Loturile sunt luate la fiecare 1,5 secunde, limitate de memoria utilizată la crearea unui tabel hash.

După aceasta, datele ajung în format PHP (compilat cu HipHop pentru PHP). Backend este scris în Java şi Thrift este folosit ca formatul de mesagerie astfel încât programele PHP să poată interoga servicii Java. Soluţiile de caching sunt folosite pentru a face paginile web să fie afişate mai repede. Cu cât sunt mai multe şi mai mai datele din cache, cu atât mai puţin utilizat este timpul real. Datele sunt apoi trimise la serverele MapReduce astfel încât să poată fi interogate prin Hive. Acest lucru serveşte, de asemenea, ca plan de rezervă pentru ca datele să poată fi recuperate de la Hive. Fişierele jurnal brute sunt îndepărtate după o perioadă de timp.

Pe 20 martie 2014 Facebook a anunţat un nou limbaj de programare în sursă deschisă numit Hack. Înainte de lansarea publică, o mare parte din Facebook a fost deja rescris şi „testat pe câmpul de luptă” folosind noul limbaj.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *