2010-11-12 3 views
1

Мне любопытно узнать, как проектируются платформы, такие как Ning, SocialGo. Не особенно о платформах социальных сетей, но обычно это платформы, которые позволяют пользователям создавать похожие веб-сайты.Архитектура платформ социальных сетей

Мое понимание, когда пользователи регистрируются, они получают дополнительный домен, через который их участники могут регистрироваться и получать доступ к этому конкретному созданному пользователем сайту. Я полагаю, что существует общая структура базы данных, которая клонируется для каждого пользователя, который создает сайт.

Мне интересно, как они будут масштабироваться, когда отдельные сайты будут расти. Также, если они представили новую функцию, как они будут включать ее во все доступные сайты? Например, новая функция, которая требует изменения структуры базы данных, как это можно сделать для всех существующих сайтов?

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

Спасибо.

ответ

3

Довольно сложно угадать, что такое архитектура компаний foo и bar, но ... мое видение состоит в том, чтобы иметь виртуализованная базовая установка вашей операционной системы по выбору в комплекте с вашим удивительным социальным приложением, предварительно сконфигурированным на нем с помощью собственного набора баз данных или связанным с кластером master/slave.

Так все происходит, когда пользователь приходит и регистрирует новый клон socialapp; ваша система выполняет задание, создавая новую новую виртуальную машину на основе вашего шаблона. Это может занять несколько секунд для автоконфигурации ... ну и если эта социальная сеть скачет и должна масштабироваться; просто клонировать несколько других виртуальных машин и связывать их вместе. vips, cache, front-end и пары баз данных master-slave. У вас могут быть шаблоны для всех.

Следует особо отметить, что эта виртуальная машина не обязательно должна быть полностью операционной системой; вы можете создавать пользовательские пространства только с такими технологиями, как OpenVZ и друзьями (FreeBSD Jails).

Отъезд http://www.opennebula.org также.

Ну, это мои простые 2 цента. Я тоже это изучаю.

+0

Спасибо. Это было полезно. – Steve

0

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

Я не знаю точно, как они запрограммировали свои системы, но вот догадка, как они это сделали.

Если вы возьмете, например, facebook, когда вы откроете свою страницу, вы увидите то, что ваши друзья написали, как на стенах, так и на стенах других народов.

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

На стороне базы данных базы данных являются базами данных с именем/значением. То, что находится в части ценности, может быть разными версиями и обновляться партиями. (Добавление столбца в реляционную таблицу со 100 миллионами строк, вероятно, будет блокировать таблицу на некоторое время)

+0

Спасибо за ваш ответ. Но не совсем то, чего я ожидал. В Facebook мы создаем учетные записи, но в Ning и SocialGo мы можем создавать собственные социальные сети.Я думаю об этой архитектуре. – Steve