Специалистите от Mashable ни предлагат някои наистина интересни и забавни факти свързани с някои от най-ревниво пазените тайни на Facebook. Става въпрос за нещо, за което едва ли всички потребители и фенове на Facebook знаят, а именно, как всъщност работи социалната мрежа?
Оказва се, че услугите на Facebook се използват от 8 години, но като че ли никой досега не си е задавал въпроса как всъщност работи Facebook и какво точно се крие зад лъскавата завеса на социалната мрежа.
Разбира се, не бива да очаквате, че ще научите някакви съвети за това как да използвате Facebook, а по-скоро ще научите повече за софтуерната архитектура на тази интернет мрежа.
Как работи Facebook?
Facebook използва много услуги и езици за програмиране, за да работи. За да бъдем точни, Facebook сървърите използват LAMP с Memcache. Разбира се, не трябва да си мислите за настолни лампи, защото LAMP е съкращение за комбинацията от Linux, Apache, MySQL и PHP.
Linux & Apache
Ако някога в интернет срещнете логото с черното пингвинче, повечето потребители знаят, че това е логото на Linux. Не всички обаче знаят, че Linux е Unix-базирана операционна система състояща се от ядро (или така нареченото ‘kernel’) и допълнителен софтуер, необходим за функционирането и използването на системата. Питате се защо Facebook са избрали Linux? Изборът на Linux се дължи на високата му сигурност и лекотата на персонализация според нуждите на потребителите. От друга страна, Apache се счита за най-добрия и най-популярния HTTP сървър , така че не се чудете защо Facebook използват именно Apache.
MySQL
ОК, Facebook са избрали да работят с Linux OS и Apache сървъри, но какво ще кажете за базата им данни? Става въпрос за всички онези наши данни, които сме предоставили на услугата, почти безотговорно, но това е друг въпрос. Тук се намесва най -популярната система за управление на бази данни с отворен код, а именно MySQL.
PHP
PHP е най-популярният скриптов език за създаване на динамични уеб сайтове. Facebook използват този език, защото той има добра общност от програмисти и освен това, този език има голяма поддръжка.
Memcache
Memcache е система с отворен код за кеширане на паметта. Всичко, което Memcache прави е динамичните сайтове като Facebook да работят по-бързо, като позволява да се кешират данните в RAM, вместо да ходят по целия път към базата данни.
Проблеми с ‘LAMP’ системата
Facebook са имали много проблеми, дори и такива, които се дължат на LAMP системата и това е може би защото социалният сайт се разраства много бързо. Сред многото проблеми тук е, че PHP трудно се конфигурира за големи сайтове – той не може да бъде оптимизиран за големи сайтове. Поради бързото разрастване на Facebook, сайтът е изправен пред много проблеми, между които кеширане на памет, съхранение на данни и най-важното е, че базата данни е много сложна.
Какво се случва ‘зад завесите’?
Facebook създават всяка услуга или програма от, която имат нужда посредством собствен интерфейс за разработване на приложения (‘framework’), а езиците за програмиране, които се използват за писането на софтуерен код са предимно Java, Python, Erlang и C++. Пълният списък на всички проекти с отворен код могат да бъдат намерени на http://developers.facebook.com/opensource.php, а ето и списъка с някои от най-важните сред тях:
– Apache Cassandra
Cassandra е система за съхранение, предназначена за управление на огромни обеми от данни. ‘Facebook inbox search’ използва Cassandra.
– Thrift
Thrift предлага среда за разработване на транс-езиковите услуги, и поддържа много от популярните езици за програмиране, сред които Java, Ruby, PHP, C + +.
– HipHop за PHP
Тази среда за разработка се използва основно за трансформиране на PHP код към C++ с цел оптимизиране на работата на сървърите на Facebook.
Discussion about this post