Jak działa Facebook? The Nuts and Bolts [Objaśnienie technologii]

  • Michael Fisher
  • 0
  • 1135
  • 36
Reklama

Serwisy społecznościowe to sztuka łączenia się z osobami o wspólnych zainteresowaniach. Twój “˜sieć ”to społeczność, która pomaga utrzymać jedność z innymi i oferuje wiele korzyści. Sieciowanie za pośrednictwem serwisów społecznościowych zrewolucjonizowało sposób korzystania z Internetu i znajduje się w czołówce tego, co obecnie nazywamy Web 2.0.

Facebook jest sieć społecznościowa. Ludzie byli “facebooking”?? nawzajem od około 6 lat, dzięki czemu Facebook jest najczęściej używaną siecią społecznościową z ponad 350 milionami użytkowników na całym świecie. Ale jak działa Facebook?

W tym artykule omówię wewnętrzne funkcjonowanie Facebooka, obejmujące jego architekturę oraz infrastrukturę frontend / backend””nakrętki i śruby, które utrzymują Facebooka razem.

Jak działa Facebook?””Front End

Facebook korzysta z różnych usług, narzędzi i języków programowania w celu stworzenia podstawowej infrastruktury. W interfejsie ich serwery obsługują stos LAMP (Linux, Apache, MySQL i PHP) z Memcache. Nie jesteś ekspertem w dziedzinie informatyki? Przyjrzyjmy się dokładnie, co to znaczy.

Linux i Apache

Ta część jest dość oczywista. Linux to jądro systemu operacyjnego typu Unix. Jest to oprogramowanie typu open source, bardzo konfigurowalne i dobre dla bezpieczeństwa. Facebook obsługuje system operacyjny Linux na serwerach Apache HTTP. Apache jest również bezpłatny i jest najpopularniejszym serwerem WWW typu open source.

MySQL

W przypadku bazy danych Facebook wykorzystuje MySQL ze względu na jego szybkość i niezawodność. MySQL jest używany przede wszystkim jako magazyn klucz-wartość, ponieważ dane są losowo rozdzielane między duży zestaw logicznych instancji. Te logiczne instancje są rozłożone na węzły fizyczne, a równoważenie obciążenia odbywa się na poziomie węzła fizycznego.

Jeśli chodzi o dostosowania, Facebook opracował niestandardowy schemat partycjonowania, w którym globalny identyfikator jest przypisany do wszystkich danych. Mają także niestandardowy schemat archiwizacji, który jest oparty na częstotliwości i najnowszych danych dla poszczególnych użytkowników. Większość danych jest dystrybuowana losowo.

PHP

Facebook używa PHP, ponieważ jest to dobry język programowania sieciowego z szerokim wsparciem i aktywną społecznością programistów oraz nadaje się do szybkiej iteracji. PHP jest dynamicznie pisanym / interpretowanym językiem skryptowym.

Pamięć podręczna

Memcache to system buforowania pamięci, który służy do przyspieszenia dynamicznych witryn opartych na bazie danych (takich jak Facebook) poprzez buforowanie danych i obiektów w pamięci RAM, aby skrócić czas odczytu. Memcache to podstawowa forma buforowania Facebooka i pomaga zmniejszyć obciążenie bazy danych.

Posiadanie systemu buforowania pozwala Facebookowi tak szybko, jak przy odzyskiwaniu danych. Jeśli nie będzie musiał przejść do bazy danych, po prostu pobierze dane z pamięci podręcznej na podstawie identyfikatora użytkownika.

Wady korzystania z LAMPY

Facebook zdał sobie sprawę, że korzystanie ze stosu LAMP ma swoje wady. Warto zauważyć, że PHP niekoniecznie jest zoptymalizowany pod kątem dużych witryn i dlatego jest trudny do skalowania. Ponadto nie jest to język najszybciej wykonywany, a struktura rozszerzeń jest trudna w użyciu.

Mike Schroepfer, wiceprezes ds. Inżynierii Facebooka, niedawno udzielił wywiadu na ten temat w EmTech @ MIT. “Skalowanie dowolnej strony internetowej jest wyzwaniem,” Powiedział Schroepfer, “ale skalowanie sieci społecznościowej wiąże się z wyjątkowymi wyzwaniami.”

Dodał, że w przeciwieństwie do innych stron internetowych, nie można po prostu dodać więcej serwerów, aby rozwiązać problem z powodu Facebooka “ogromny połączony zestaw danych.” Ciągle tworzone są nowe połączenia z powodu aktywności użytkownika.

Facebook rozrósł się tak szybko, że często napotykają problemy związane z zapytaniami do baz danych, buforowaniem i przechowywaniem danych. Ich baza danych jest ogromna i w dużej mierze złożona. Aby to uwzględnić, Facebook rozpoczął wiele projektów typu open source i usług zaplecza.

Jak działa Facebook?””Back End

Usługi zaplecza Facebooka są napisane w różnych językach programowania, w tym C ++, Java, Python i Erlang. Ich filozofia tworzenia usług jest następująca:

1. Utwórz usługę Jeśli potrzebne

2. Utwórz platformę / zestaw narzędzi dla łatwiejszego tworzenia usług

3. Użyj właściwego języka programowania dla zadania

Listę wszystkich rozwiązań open source Facebooka można znaleźć tutaj. Omówię kilka podstawowych narzędzi opracowanych przez Facebook.

Oszczędzanie (protokół)

Thrift to lekka platforma zdalnego wywoływania procedur do skalowalnego rozwoju usług w wielu językach. Thrift obsługuje C ++, PHP, Python, Perl, Java, Ruby, Erlang i inne. Jest szybki, oszczędza czas programowania i zapewnia podział pracy związany z wydajnymi serwerami i aplikacjami.

Scribe (serwer dziennika)

Scribe to serwer do agregowania danych dziennika przesyłanych strumieniowo w czasie rzeczywistym z wielu innych serwerów. Jest to skalowalne środowisko przydatne do rejestrowania szerokiej gamy danych. Jest zbudowany na Thrift.

Cassandra (baza danych)

Cassandra to system zarządzania bazą danych zaprojektowany do obsługi dużych ilości danych rozproszonych na wielu serwerach. Obsługuje funkcję wyszukiwania w skrzynce odbiorczej Facebooka i zapewnia ustrukturyzowany sklep z kluczową wartością z ostateczną spójnością.

HipHop dla PHP

HipHop dla PHP to transformator kodu źródłowego dla kodu skryptu PHP i został stworzony w celu oszczędzania zasobów serwera. HipHop przekształca kod źródłowy PHP w zoptymalizowany C ++. Po wykonaniu tego używa g ++ do skompilowania go do kodu maszynowego.

Wniosek

W skrócie, to Facebook. Ten artykuł mógłby z łatwością być o 37 stron dłuższy, gdybym zagłębił się bardziej szczegółowo, ale aby odpowiedzieć na pytanie “Jak działa Facebook?”?? Myślę, że to wystarczy. Jeśli spojrzysz na wszystkie funkcje i innowacje, główna idea Facebooka jest naprawdę bardzo prosta””utrzymywanie kontaktów. Facebook zdaje sobie sprawę z potęgi sieci społecznościowych i nieustannie wprowadza innowacje, aby zapewnić najlepszą obsługę w branży.

Czy ten artykuł był dla Ciebie przydatny? Zostaw swoje przemyślenia, komentarze i pomysły poniżej!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.