Как работает Facebook? Гайки и болты [объясненная технология]

  • Joseph Goodman
  • 0
  • 1293
  • 228
Реклама

Социальные сети - это искусство общения с теми, кто разделяет общие интересы. Ваш “˜сеть »- это сообщество, которое помогает вам оставаться единым с другими и предлагает множество преимуществ. Сеть через сайты социальных сетей произвела революцию в том, как мы используем Интернет, и находится в авангарде того, что мы сейчас называем Web 2.0..

facebook является социальная сеть. Люди были “Facebooking”?? вот уже 6 лет, что делает Facebook самой популярной социальной сетью с более чем 350 миллионами пользователей по всему миру. Но как работает Facebook?

В этой статье я расскажу о внутренней работе Facebook, охватывающей его архитектуру и инфраструктуру внешнего интерфейса / бэкэнда.””гайки и болты, которые скрепляют Facebook.

Как работает Facebook?””Передний конец

Facebook использует различные сервисы, инструменты и языки программирования для создания своей основной инфраструктуры. Во внешнем интерфейсе их серверы запускают стек LAMP (Linux, Apache, MySQL и PHP) с Memcache. Не специалист по информатике? Давайте посмотрим, что именно это означает.

Linux и Apache

Эта часть довольно понятна. Linux - это Unix-подобное ядро ​​операционной системы компьютера. Это открытый исходный код, очень настраиваемый, и хорошо для безопасности. Facebook работает под управлением операционной системы Linux на HTTP-серверах Apache. Apache также бесплатен и является самым популярным веб-сервером с открытым исходным кодом..

MySQL

Для базы данных Facebook использует MySQL из-за его скорости и надежности. MySQL используется главным образом как хранилище значений ключей, поскольку данные случайным образом распределяются среди большого набора логических экземпляров. Эти логические экземпляры распределены по физическим узлам, и распределение нагрузки выполняется на уровне физических узлов..

Что касается настроек, Facebook разработал собственную схему разделения, в которой глобальный идентификатор присваивается всем данным. У них также есть настраиваемая схема архивации, основанная на частоте и актуальности данных для каждого пользователя. Большая часть данных распределяется случайным образом.

PHP

Facebook использует PHP, потому что это хороший язык веб-программирования с обширной поддержкой и активным сообществом разработчиков, и он хорош для быстрой итерации. PHP - это динамически типизированный / интерпретируемый язык сценариев.

Memcache

Memcache - это система кеширования памяти, которая используется для ускорения динамических веб-сайтов, управляемых базой данных (например, Facebook), путем кеширования данных и объектов в оперативной памяти для сокращения времени чтения. Memcache является основной формой кэширования Facebook и помогает снизить нагрузку на базу данных..

Наличие системы кеширования позволяет Facebook работать так же быстро, как и при вызове ваших данных. Если ему не нужно идти в базу данных, он просто извлечет ваши данные из кэша на основе вашего идентификатора пользователя..

Недостатки использования лампы

Facebook осознал, что использование стека LAMP имеет свои недостатки. Примечательно, что PHP не обязательно оптимизирован для больших веб-сайтов и поэтому трудно масштабируется. Кроме того, это не самый быстрый исполняемый язык, и структура расширения сложна в использовании..

Майк Шропфер, вице-президент Facebook по инженерным вопросам, недавно дал интервью на EmTech @ MIT по этому поводу.. “Масштабирование любого сайта является проблемой,” Шропфер сказал, “но масштабирование социальной сети имеет уникальные проблемы.”

Далее он сказал, что в отличие от других сайтов, вы не можете просто добавить больше серверов для решения проблемы из-за Facebook “огромный взаимосвязанный набор данных.” Новые подключения создаются постоянно из-за активности пользователя.

Facebook вырос настолько быстро, что они часто сталкиваются с проблемами, связанными с запросами к базе данных, кэшированием и хранением данных. Их база данных огромна и в значительной степени сложна. Чтобы объяснить это, Facebook запустил множество проектов с открытым исходным кодом и бэкэнд-сервисов..

Как работает Facebook?””Back End

Бэкэнд-сервисы Facebook написаны на разных языках программирования, включая C ++, Java, Python и Erlang. Их философия создания услуг заключается в следующем:

1. Создать сервис если нужно

2. Создайте структуру / набор инструментов для более легкого создания сервисов.

3. Используйте правильный язык программирования для задачи

Список всех разработок с открытым исходным кодом Facebook можно найти здесь. Я буду обсуждать некоторые из основных инструментов, которые разработал Facebook.

Экономия (протокол)

Thrift - это легковесная инфраструктура удаленного вызова процедур для разработки масштабируемых кросс-языковых сервисов. Thrift поддерживает C ++, PHP, Python, Perl, Java, Ruby, Erlang и другие. Это быстро, экономит время разработки и обеспечивает разделение труда на высокопроизводительных серверах и приложениях..

Писец (лог-сервер)

Scribe - это сервер для агрегирования данных журнала, передаваемых в реальном времени со многих других серверов. Это масштабируемая структура, полезная для регистрации широкого спектра данных. Он построен на вершине Thrift.

Кассандра (база данных)

Cassandra - это система управления базами данных, предназначенная для обработки больших объемов данных, распределенных по многим серверам. Он поддерживает функцию «Входящие» в Facebook и обеспечивает структурированное хранилище значений ключей с возможной согласованностью..

Хип-хоп для PHP

HipHop for PHP - это преобразователь исходного кода для кода PHP-скрипта, созданный для экономии ресурсов сервера. HipHop преобразует исходный код PHP в оптимизированный C ++. После этого он использует g ++ для компиляции в машинный код.

Заключение

Короче говоря, это Facebook. Эта статья могла бы легко быть на 37 страниц длиннее, если бы я хотел вдаваться в подробности, но чтобы ответить на вопрос “Как работает Facebook?”?? Я думаю этого будет достаточно. Если вы посмотрите на все функции и инновации, основная идея Facebook действительно очень проста.””держать людей на связи. Facebook осознает всю мощь социальных сетей и постоянно вводит новшества, чтобы их услуги были лучшими в бизнесе..

Вам помогла данная статья? Оставьте свои мысли, комментарии и идеи ниже!




О современных технологиях, просто и доступно.
Ваш гид в мире современных технологий. Узнайте как использовать технологии и гаджеты, которые нас окружают каждый день и научитесь открывать интересные вещи в Интернете.