Мій город

Найкращий хостинг для соціальної мережі. Серверні потужності для соціальної мережі. Міні соціальна мережа має бути цікавою

Кожен, хто збирається створити свою власну соціальну мережу(припустимо, на основі BuddyPress), повинен бути стурбований рівною як якістю послуг кінцевим користувачам, так і власними потужностями для постійного доступу до сайту. Причому часто можливості сервера (а я говорю саме про них) визначають потенціал зростання вашої мережі.

Всі ви розумієте, що сам по собі звичайний WordPress досить ненажерливий (12-17 Мб зі звичайним набором плагінів - штук 10, не більше). WordPress MU за рахунок підтримки мультиблогів споживає ще більше (на кілька мегабайт). BuddyPress додає до WPMU додаткові мегабайти, що часто призводить до появи помилки про недостатність виділених ресурсів для активування необхідних плагінів. В результаті я часто стикався з тим, що:

  1. WordPress MU;
  2. BuddyPress;
  3. форум bbPress;
  4. 5-10 плагінів

стають межею для сайту - більше нічого активувати не виходить через брак того ж php_value memory_limit. І що найцікавіше, навіть у таких зубрів як masterhost, nic, mirohost та деяких інших (як російських, так і українських [не раджу hostpro.ua]). Звичайно, проблема вирішується досить легко (але це також означає, що досить дорого) - перехід на інший хостинг-план.

Але в мене постає питання — чи доцільно використовувати обмежені ресурси віртуальних серверів для таких серйозних проектів, як глобальна/регіональна соціальна мережа? Віртуальний хостинг хороший лише у разі зародкового стану розвитку сайту. Після подолання певного етапу (на WPMU+BuddyPress це приблизно 500 уніків на добу та рази на 3-4 більше звичайних відвідувань) вам не вистачить жодного тарифного плану віртуалки будь-якого хостера. З цього моменту у вас виникнуть проблеми доступу та продуктивності. Для їх вирішення ви рано чи пізно почнете процес переходу або ж на VDS/VPS, або до покупки/оренди власного сервера. Перенесення всіх даних буде пов'язане з величезними витратами (в основному психологічними та втратою часу), тому що не можна нічого втратити і в той же час вкрай небажано закривати сайт на технічні роботи, щоб не злякати відвідувачів.

Коротка довідка з VDS/VPS

VPS (virtual private server) – віртуальний власний сервер. VDS (Virtual Dedicated Server) - віртуальний виділений сервер, який фактично є синонімом VPS, хоча має відмінності в організації поділу ресурсів.

Ви отримуєте у своє розпорядження особистий повністю функціональний сервер, при роботі з яким ви почуватиметеся так, ніби ви володієте окремим комп'ютером. Ви зможете заходити на VPS з правами адміністратора (root) та повністю керуватийого програмним забезпеченням: налаштовувати, встановлювати заново, видаляти, довстановлювати бібліотеки. Погодьтеся, що такої свободи віртуальний сервер вам не давав.

Є, звичайно, і свої недоліки, які криються в технології VPS і VDS. Адже VPS — це лише ілюзія окремого сервера, що створюється спеціальною програмою, яка встановлена ​​на комп'ютері хостера. Ця програма дозволяє розділити ресурси комп'ютера та надати кожному окремому власнику віртуального виділеного сервера свій ліміт процесорного часу, дискового простору, оперативної пам'яті тощо. В результаті кілька людей, що володіють VDS, використовують загальну апаратну частину одного і того ж комп'ютера, залишаючись при цьому програмно не залежними та ізольованимидруг від друга щодо спільного використання ресурсів.

Тому моїм висновком є ​​відразу ж використання VDS/VPS, тому що власний сервер - все-таки дуже дороге задоволення.

Давайте розглянемо параметри, якими повинен мати гідний хостер.

  1. Перше і, можливо, найважливіше — це uptime, тобто доступність серверів вашого хостера. Це значення, на мій погляд, має бути вищим за 99.9% для повністю впевненої роботи (ось приклад, щоб ви краще зорієнтувалися: зі 100 днів безперервної роботи сайту всього 12 годин він був недоступний, це означає, що uptime = (100*24 — 12) )/100 * 24 = 0,995 або 99.5%). Відсутність вказівки аптайму на сайті хостингової компанії може наштовхувати на думку, що він не такий високий, як хотілося б.
  2. Гнучкість налаштувань. Ви самі маєте вирішувати, що вам треба, а перша умова для соціальних мереж із великим щоденним відвідуванням — це продуктивність. Для серйозних проектів не варто заощаджувати на ресурсах. Саме тому не ви повинні підлаштовуватись під можливості хостера, а він сам повинен пропонувати вам досить широкий вибір.
  3. Можливість простого апгрейдупоточних конфігурацій, тобто по досягненню ліміту оперативної пам'яті або завантаженості ядра процесора ви повинні без ускладнень та затримок мати можливість придбання додаткових параметрів.
  4. Безпека. Я думаю, що все зрозуміло. Ніхто не хоче, щоб ваш сайт зламали або ви залежали від будь-кого.
  5. Підтримка клієнтів. Важливий показник якості наданого хостингу - це можливість завжди отримати відповідь на питання, що цікавить.

Ще багато параметрів, за якими можна оцінювати різних хостерів, але ці, як на мене, — основні. Я стикався з багатьма планами та тарифами, так що певне уявлення про ринок маю. Ті хостери, які я вже назвав, я не радив би використовувати з низки причин:

  1. вони давно на ринку, але в той же час це і їх проблема - неймовірно багато клієнтів, що зменшує час, що виділяється на кожного клієнта (штат не безмежний);
  2. дорожнеча через те, що вони вже сформували бренд, за який ви переплачуєте;
  3. недостатня гнучкість при роботі з клієнтами через їх масштаби. Величина завжди породжує неповороткість.

Саме тому я хочу запропонувати вам хостингову компанію Avi Host, яка має всі названі вище характеристики і позбавлена ​​багатьох недоліків masterhost, nic, mirohost та інших. Avi Hostспеціалізується на VDS / VPS хостингу, чудово підходить для створення соціальної мережі на основі BuddyPress через свою гнучкості, надійності, продуктивності та, що досить важливо, низькими цінами. Ви можете налаштувати ваш сервер, визначивши, які параметри для вас найбільш важливі, переваги даної компанії, отримати якісну консультацію, а також ознайомитись зі списком виділених серверів, розташованих в різних країнахсвіту.

Мрії про великий прибуток і серйозні заробітки не повинні залишатися тільки в думках, треба щось робити, щоб прийти до успіху. Варіантів досить багато, а один із них – це запуск власного сайту. Міні соціальна мережа, чудова ідея, адже ця ніша зараз активно розвивається і є багато аматорів тематичних ресурсів.

Мініатюрна соціалка має один великий плюс, після її створення не доведеться конкурувати з такими гігантами як Вконтакте або Facebook. Звичайно, було б непогано зібрати людей з цих сайтів, але у вас буде визначена цільова аудиторія, саме цим ви і привертатимете увагу.

Соціальна мережа – відмінне джерело прибутку

Яких тільки сайтів зараз не створено у ніші соц. мереж. Є нішеві мережі для лікарів, психологів, дітей тощо. Вони незрівнянні з тим, що їх власники теж отримують прибуток. Звичайно, до таких же доходів дійти навряд чи вдасться, але й десятої частки достатньо, щоб стати заможною особистістю.

Уявіть, що ваш сайт потрапить хоча б у ТОП 50 популярних соціальних мереж, і ви отримуватимете в 50 разів менше грошей. За останніми даними, Вконтакте лише на таргетованій рекламі заробив 1.5 млрд доларів за рік. У 50 разів менше - це 30 000 $ (2500 $ на місяць). Погодьтеся, теж непоганий прибуток, тим більше це доходи лише з реклами.

На створення блогу потрібно кілька годин, а міні-мережа створюється набагато довше. Пов'язано це з тим, що функцій там значно більше. Можете почитати окрему статтю, щоб отримати уявлення про цей процес. Сайт повинен бути ідеальним з усіх боків, тому доведеться докладати серйозних зусиль.

Єдиний варіант полегшити розробку такого ресурсу – це накопичити гроші та замовити його у професіоналів. У цьому допоможуть веб-студії та приватні вебмайстри. Шукайте фахівців на Weblancer, вивчайте відгуки, дивіться приклади робіт та вибирайте відповідну кандидатуру. Також не забувайте, що потім доведеться вкладатися у просування сайту.

Міні соціальна мережа має бути цікавою

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

Цікавим зробити проект допоможуть різні фішки та об'єднання. Дайте волю фантазії, і насамперед придумайте незвичайну тематику. Можливо, це буде якийсь вид спорту, міні соціальна мережа для школярів або людей похилого віку, любителів кулінарії, шанувальників якоїсь гри і так далі.

Як варіант, соціальну мережу можна поєднати з іншими видами сайтів. Вбудовуйте блог, додавайте якийсь корисний сервіс, додайте функції рекламування в інтернеті, заробітку і так далі. Загалом, потрібно придумати таку фішку, якої немає жодного іншого проекту, щоб захопити якнайбільше уваги.

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

Думаєте, ці сайти було створено просто так? Навряд чи. У них спочатку було закладено ідею монетизації. Я не говорю тут про такі мега мережі як Facebook, ВКонтакті та їм подібним.

Зрозуміло, що конкурувати з такими гігантами буде не під силу. Я маю на увазі, що є сенс створити та розкрутити власну вузькотематичну соціальну мережу.

Звичайно, розкрутка соціальної мережі – заняття непросте, але повірте, воно того варте. Розкрученою вами соціальною мережею ви завжди зможете знайти застосування. І це насамперед продаж реклами, ненав'язлива реклама своїх проектів, підтримка основного проекту.

До речі, дуже важливо: за рахунок таргетованості піднімається конверсія. А можна піти іншим шляхом – нішуватися регіонами. Це щодо вибору аудиторії соціальної мережі. Головне – знайти цікаву нішу та розкручуватися у ній.

Але в даному пості я не розповідатиму, як розкрутити соціальну мережу, це тема окремого посту. Для початку потрібно визначитися, на чому цю соціальну мережу створювати. Сьогодні існує безліч двигунів для створення соціальної мережі. Деякі платні, деякі – безкоштовні. Щоб полегшити вашу долю, я розповім про кожного гідного двигун для створення соціальної мережіокремо. Зауважу, що мова піде тільки про дійсно вартісні варіанти.

Joomla (офіційний сайт)

Функціонал цього двигуна для створення соціальної мережі досить великий. Не знаю, як ви вважаєте, але особисто моя думка така, що Joomla краще використовувати, коли у вас вже є блог на цій CMS, і ви просто хочете зробити якісь соціальні функції, або коли ви володієте великими знаннями в даній CMS. А так я б не сказав, що Joomla має великі можливості для підтримки соціальних мереж.

Правда, я останнім часом все частіше бачу кросплатформні модулі, які можуть вбудовуватися в різні системи, і при цьому практично нічого не потрібно змінювати. І, звичайно ж, такі модулі не вимагатимуть від вас супер-пупер знань. Тому я вважаю, що саме за такими модулями майбутнє.

Social Engine (офіційний сайт)

Хороший двигун для створення соціальної мережі, але він не зовсім безкоштовний. Ось у чому проблема. Загалом побудована ця CMS на php. А оскільки php досить поширений, то вважаю це безперечним плюсом платформи. Добре, що тут модульна система. Якщо щось не влаштовує, можна дописати самому. А можна придбати розширення у розробників.

Drupal (офіційний сайт)

Це безкоштовна портальна CMS, яка є модульною системою, як і Social Engine. Я сказав би, що вона друга за популярністю після Joomla. Це щодо рунету. Не знаю як на Заході. Проект Drupal стартував у 2000 році і спочатку був націлений на комерційне використання двигуна для створення соціальної мережі. Але поступово Drupal почала проникати в російськомовний сегмент інтернету, результатом чого стало відкриття офіційного сайту Drupal. Ну, і, до розвитку проекту намагалися залучати російських розробників.

Модульність – це безперечний плюс цієї CMS. Але ось, на мій погляд, недолік цього двигуна - не зовсім зрозумілий інтерфейс і підвищене навантаження на сервер.

Facebook Connect

Цей двигун для створення соціальної мережі чимось нагадує мені Google Friend Connect. Тільки тут використовується api від Facebook. Крім того, дещо складніша інтеграція. Ще одна серйозна відмінність від Google Friend Connect полягає в тому, що прив'язка тут йде до конкретного сервісу. Головна ідея Facebook Connect полягає в тому, що користувач, який зайшов на Facebook і авторизувався, не повинен буде вводити логін та пароль, щоб отримати доступ на деякі сайти. Тепер зайти на ці сайти можна буде на сторінці Facebook.

Наприклад, за допомогою Connect можна дивитися сайти Discovery Channel, відеохостинг Hulu, соціальні новини Digg та ін. Тобто ви заходите у свій профіль на Facebook і прямо зі своєї сторінки можете читати новини з цих підтримуваних системою сайтів.

Google Friend Connect

Можливо, ви вже звертали увагу на те, що на багатьох блогах вбудовані ці модулі у вигляді віджетів. Раніше, як тільки з'явився цей двигун для створення соціальної мережі, то в рунеті він відразу не знайшов широкого застосування. Але поступово перебрався і до рунету. І сьогодні я на багатьох блогах бачу цей модуль. Щоправда, єдиний момент – блог має бути справді популярним. Добре ще, якщо це буде блог на blogspot.com, хоча загалом не так і важливо.

А взагалі, Google Friend Connect – це сервіс від всесвітньо відомої пошукової системи Google. Він призначений для створення соціальної мережі. Передбачається, що ця мегасеть повинна об'єднати різні блоги, в одну мережу контактів за інтересами. Реєструватися вам не знадобиться, оскільки Google Friend Connect дає можливість авторизуватись по OpenID. Сьогодні цей стандарт підтримується більшістю сервісів, включаючи Яндекс та Livejournal. А можна авторизуватись і через Google, Yahoo та AIM.

На блозі, коли розмістите віджет, будуть відображатися читачі вашого блогу та інші елементи, що настроюються.

Тобто, для того, щоб залишити на блозі, що використовує даний модуль, коментар вам знадобиться залогінитись через Google, Yahoo, OpenID або AOL. А зручність полягає в тому, що авторизувавшись вам не потрібно буде щоразу реєструватися на всіх блогах, які використовують Google Friend Connect. До того ж ви зможете побачити скільки читачів у будь-якого блогу, який використовує даний модуль. Загалом за допомогою Google Friend Connect значно полегшуються особисті контакти користувачів.

46.1K

Ви хочете знати, як створити соціальну мережу? Як і будь-який сайт, вона вимагає використання правильного програмного забезпечення, продуманого планування та реалізації. Сьогодні я маю намір допомогти вам і пояснити, як створити соціальну мережу.

Поясніть свою ідею та концепцію

Перед тим як розпочати роботу, потрібно переконатися, що ваша ідея чогось варта. Поставте собі деякі питання, щоб зрозуміти, що включає в себе ця ідея.

Яку нішу я маю намір зайняти?

Це найважливіше питання, яке ви повинні собі поставити перед тим, як створити соціальну мережу. Спроба реалізувати щось на зразок Facebook не увінчається успіхом. Але можливо є певна ніша, яку ви бажаєте зайняти, і яка може принести вигоду:


Я припускаю, що у вас є ідея, але дуже важливо переконатися, що ваші очікування реалістичні. Не чекайте, що ваш ресурс стане наступним Facebook або My Space .

Переконайтеся, що у вас є чітке уявлення про нішу або конкретну тему для вашої соціальної мережі. Можливо, вона буде для музикантів чи любителів тварин.

Чи є якісь соціальні мережі, які займають вашу нішу?

Як і з будь-яким хорошим бізнесом, важливо провести дослідження та з'ясувати, з ким доведеться конкурувати. Чи вже є соціальні мережі, які заповнюють нішу, яку ви збираєтеся зайняти? Якщо так, то що вони роблять правильно? Що б ви зробили краще?

Перед тим, як створити соціальну мережу, робіть нотатки про те, що вам подобається і не подобається. Так ви знатимете, що вам потрібно зробити, щоб отримати перевагу.

Які послуги чи функції я хочу запропонувати аудиторії?

Це частково пояснюється у питанні вище, але я хочу переконатися, що ви дійсно серйозно думаєте про це. Що ви збираєтеся запропонувати вашій аудиторії, що змусить їх бути частиною вашої спільноти?

Якщо ви думаєте, як створити соціальну мережу з нуля для любителів тварин, можна розглянути питання про партнерство з виробниками зоотоварів, щоб запропонувати якісь знижки для вашої аудиторії. Або, можливо, ви пропонуватимете спеціалізовані послуги, такі як навчання домашніх тварин або відео з цієї тематики.

Ретельно все обміркуйте та переконайтеся, що обране рішення зможе зацікавити вашу аудиторію.

Скільки хочу витратити?

Цілком очевидно, що метою кожного є витратити менше грошей для отримання вищого доходу, але це не завжди реально. Соціальні мережі (як і будь-який сайт) вимагають фінансових вкладень. Вони можуть варіюватися від кількох сотень до кількох тисяч доларів. Подумайте про те, скільки ви готові вкласти, щоби все закрутилося.

Для тих, хто не знає, з чого почати, ось деякі типові витрати на сайти, ( Зверніть увагу на те, що це скромні підрахунки).

Хостинг

Це стосується лише тих випадків, якщо ви вирішите використовувати куплене програмне забезпечення, яке вимагатиме його встановлення на власному майданчику. Вам, швидше за все, захочеться запустити новий сайт на хостингу VPS , щоб отримати додатковий контроль.

Звичайно, є дешевші варіанти, але оновлення пакетів у майбутньому можуть спричинити збої. Я рекомендував би почати з VPS, але ви можете вибрати будь-який варіант, який підходить вам найкраще. Вартість - $30 - 100.

Програмне забезпечення для соціальної мережі

Перш ніж створити соціальну мережу самому, потрібно вибрати відповідне ПЗ. Це може бути готове програмне забезпечення, яке включає майже все, що вам може знадобитися. Або онлайн-конструктори, які пропонують багато варіантів. Як правило, це кращий вибір, Оскільки вони усувають величезні витрати, пов'язані зі створенням ресурсу з нуля. Вартість – від $99.

Індивідуальне проектування

Можливо, після вивчення ринку ви виявите, що існуючі програмні продукти не відповідають вашим вимогам, і тому вирішите створити свою CMS для соціальної мережі. Не чекайте отримати щось прийнятно працююче менше, ніж за кілька тисяч доларів. Наповнення контентом, типовий дизайн та розробка блогу для гарної соціальної мережі коштує близько $3000 – 6000.

Просування

Вам потрібно буде придбати свій домен. Я рекомендую подивитися такі як Upwork.com та Fiverr.com, де можна вибрати недорогі варіанти просування. Вартість – від $100.

SEO (Пошукова оптимізація)

Пошукова оптимізація має важливе значення для отримання трафіку на ваш сайт. Але в цій області занадто багато шахраїв, і ви можете витратити тисячі доларів, намагаючись знайти когось із потрібними навичками. Тому вигідніше інвестувати у власні знання. Вартість - $ 300 на місяць через SEO Book або більше тисячі через інші SEO компанії.

Чи я хочу зробити роботу сам або хтось зробить її за мене? Хто її виконає?

Яке очікуване навантаження? Скільки людей потенційно можуть відвідувати соціальну мережу, що створюється? Це важливо для того, щоб вибрати правильне програмне забезпечення.

Звичайно, є ще питання, що потрібно, щоб створити соціальну мережу. Але це найголовніші з них. Я б рекомендував коротко законспектувати ваші відповіді.

Використання наявного програмного забезпечення або створення власного?

Наступним кроком є ​​вивчення того, які варіанти готових рішень є на ринку. Є безліч варіантів: самим розмістити ( ви будете нести відповідальність за піднесення веб-сайту та утримання його у належному стані) або розміщення у сервіс-провайдера ( ви платите абонентську плату, і вони стежать за сайтом).

Для прийняття рішення важливо зрозуміти, чи є доступні варіанти, які відповідають вашим потребам, або вам необхідно розглянути питання про створення сайту з нуля. Майте на увазі, що розробка на замовлення коштує дорого, тому переконайтеся, що ви скидайте з рахунків всі доступні варіанти, перш ніж йти цим шляхом.

Розглянемо деякі доступні рішення. Це дозволить зрозуміти, скільки коштує створити соціальну мережу.

PHPFox

PHPFox існує протягом багатьох років і є одним із найменш дорогих варіантів. Завжди знайдуться люди, які скаржаться на кожен продукт, але факт залишається фактом: є безліч класних соціальних мереж, що працюють на PHPFox.

Вартість розумна, інвестиції зовсім трохи знизилися, так як основна компанія перейменувалася в Moxi9 і тепер, ви можете придбати PHPfox лише за $99:


Я вважаю, що розумні вкладення позбавляють вас необхідності робити все самостійно. Менш ніж за сто доларів ви отримуєте основу для початку роботи, і якщо ваш сайт успішно просуватиметься, то ви зможете розглянути й інші варіанти. Такі, як створення шаблону для соціальної мережі на замовлення. Але після того, як почнете отримувати прибуток від соціальної мережі.

Не варто скидати з рахунків такі варіанти, оскільки вони здатні швидко вирішити проблему з мінімальними вкладеннями. Адже ви не хочете витратити тисячі доларів тільки для того, щоб з'ясувати, що ваша ідея провалилася, так що почніть зі зведення витрат до мінімуму і утримуйте витрати на низькому рівні.

Social Engine

Social Engine вважається однією з найкращих платформ для створення соціальної мережі поряд з PHPFox. Їх пропозиції включають хмарну версію ( можна використовувати їхній продукт на своїх серверах без необхідності самостійної установки), яка обійдеться вам у $ 29 на місяць. А також версію CMS, яка повністю належатиме вам, і обійдеться в $299:


Особисто я думаю, що рішення з хмарою трохи краще, тому що вам не потрібно займатися налаштуванням хостингу. Недоліком є ​​те, що ви втрачаєте можливість самостійного налаштування та не повністю володієте продуктом. У будь-якому випадку, SE є чудовим варіантом для розгляду.

Dolphin Smart Community Builder

Платформа пропонує багато функціоналу за розумною ціною. Хоча він обійдеться вам дорожче, ніж PHPFox, але ви можете виявити, що всі рішення більше відповідають вашим запитам:


Скільки коштує створити соціальну мережу:ціни на Dolphin у діапазоні від 399 до 799 доларів. Це, безумовно, дорожче, ніж більшість варіантів, але це набагато дешевше, ніж розробка з нуля. Тож не скидайте з рахунків цей факт.

Evoq Social

Якщо соціальна мережа, яку ви хочете створити, більша за діловий стиль, то вам обов'язково треба звернути увагу на Evoq Social. Це рішеннявід DNN Software допоможе вам створити справді дивовижну соціальну мережу.

Без малого 100 мільйонів користувачів - така аудиторія ВКонтакте, яку
треба обслуговувати. Швидко та без перебоїв. Довгий час подробиці технічної
реалізації ВКонтакті залишалися секретом. Але нещодавно найпопулярніша в Росії
соціальна мережа пролила трохи світла те що, як вона все-таки влаштована. В кінці
жовтня у Москві відбулася конференція HighLoad++, де представники
ВКонтакті в особі Павла Дурова та Олега Іларіонова, нарешті, розповіли дещо
про архітектуру соціальної мережі.

Хлопців буквально завалили питаннями з різних аспектів роботи
ВКонтакті, у тому числі й технічним. Ще б. Легко уявити навантаження на
серверну частину сервісу: як багато людей ти знаєш, які не користуються цією
соціальною мережею? А скільки часу ти там проводиш, витрачаючи безцінний годинник своєї
життя на спілкування з друзями, перегляд відео, ігри, музику? Математика досить
проста: неймовірна кількість користувачів * маса проведеного часу на
ресурсі = надмірна кількість запитів до веб-серверів і бази даних +
терабайти фотографій, відео та аудіо, що постійно завантажуються і переглядаються.

Статистика ВКонтакті

  • 99,5 мільйонів облікових записів.
  • 40 мільйонів активних користувачів у всьому світі (порівняно з
    аудиторією інтернету у Росії).
  • 11 мільярдів запитів на день.
  • 200 мільйонів особистих повідомлень на день.
  • Відеопотік досягає 160Гбіт/с.
  • Понад 10 тисяч серверів, з яких лише 32 - фронтенди на nginx
    (кількість серверів з Apache невідома).
  • 30-40 розробників, 2 дизайнери, 5 системних адміністраторів, багато
    людей у ​​датацентрах.
  • Щодня виходить із ладу близько 10 жорстких дисків.

Платформа

Для нас, звичайно, особливий інтерес представляє саме архітектура проекту: як
взаємодіють основні компоненти системи, які власні розробки
знадобилися, якими трюками довелося користуватися. Але перш, ніж перейти до
ній, необхідно ознайомитися з базовими речами - використовуваними технологіями та
продуктами.

Як основна операційної системивикористовується Debian Linux - рішення,
перевірене часом, один з найстаріших та стабільних сучасних
дистрибутивів. Для балансування навантаження між серверами програм використовується
HTTP сервер nginx, що працює в режимі reverse proxy. До його обов'язків входить
тримати з'єднання з браузером користувача та передавати запити серверам,
відповідальним за виконання PHP-коду, а також контролювати влучення
результату назад у браузер. PHP-код виконується за допомогою модуля mod_php для
Apache – альтернативних варіантів досить багато, особливо на основі протоколу
FastCGI, але керівництво ВКонтакте пішло більш консервативним шляхом у цьому
питанні, скориставшись найперевіренішим часом рішенням. Жодних особливих
систем оптимізації продуктивності PHP-коду не використовується (наприклад, в
Facebook написали свій компілятор з PHP до C під назвою HipHop), єдиною
зовнішньою оптимізацією є кешування оп-коду за допомогою всього доступного
рішення XCache.

Ситуація зі зберіганням даних виглядає досить розмито: з одного боку,
активно використовується власна система управління базами даних, написана на
C і створена "найкращими умами" Росії, з іншого - часто згадувалася MySQL у ролі
основного сховища Докладніше про власну базу даних ВКонтакте я розповім
нижче. Говорячи про зберігання даних, не можна не згадати про такий важливий аспект, як
кешування часто використовуваної інформації (розташування її в оперативній пам'яті
для швидкого доступу). Для цього використовується дуже популярний продукт у цій
області - memcached. Якщо ти не чув: ця система дозволяє здійснювати дуже
прості атомарні операції, такі як розташування та отримання довільних
даних за ключем. Основною фішкою є блискавично швидкий доступ та
можливість легкого об'єднання оперативної пам'яті великої кількості серверів
до загального масиву для тимчасового зберігання "гарячих" даних.

Сторонні проекти, які є ключовими для ВКонтакте, часто реалізуються
або з використанням досить екзотичних рішень, або, навпаки, на самих
простих технологій. Наприклад, сервіс миттєвого обміну повідомленнями реалізовано
на node.js (докладніше про цю розробку ти можеш прочитати у статті " " в ) з використанням протоколу XMPP aka Jabber (ми ще до нього
повернемося). Конвертування відео реалізовано на найпростішій та найефективнішій
бібліотеці - ffmpeg, на ній працює дуже популярний відео-плеєр VLC.

Архітектура

Найпомітнішою відмінністю від архітектури багатьох інших великих
Інтернет-проектів є той факт, що сервери ВКонтакті багатофункціональні.
Тобто. немає чіткого поділу на сервери бази даних, файлові сервери і т.д. - вони
одночасно використовуються у кількох ролях. При цьому перерозподіл
ролей відбувається у напівавтоматичному режимі за участю системних
адміністраторів. З одного боку, це оптимізує ефективність використання
системних ресурсів, що добре, але з іншого - підвищує ймовірність конфліктів на
рівні операційної системи в рамках одного сервера, що тягне за собою
Проблеми стабільності. Втім, незважаючи на використання серверів у різних
ролях, обчислювальні потужності проекту зазвичай використовуються менш ніж на 20%.

Балансування навантаження між серверами відбувається за багаторівневою схемою,
яка включає в себе балансування на рівні DNS (домен обслуговується з
допомогою 32 IP-адрес), а також маршрутизацію запитів усередині системи, причому
Різні сервери застосовуються для різних типів запитів. Наприклад, генерація
сторінок з новинами (тепер це прийнято називати мікроблогом) працює за хитрою
схемою, що використовує можливості протоколу memcached за паралельною відправкою
запитів на отримання даних за великою кількістю ключів. У разі відсутності
даних у кеші, аналогічний запит надсилається системі зберігання даних, а
отримані результати піддаються сортуванню, фільтрації та відкиданню зайвого
вже на рівні PHP-коду. Подібним чином цей функціонал працює і у Facebook
(вони недавно обмінювалися досвідом), тільки замість власної СУБД у Facebook
використовують MySQL.

У стінах ВКонтакті було розроблено велику кількість софту, який більше
точно задовольняє потребам проекту, ніж доступні Opensource і
комерційні рішення. Крім згадуваної власної СУБД, у них є система
моніторингу з повідомленням СМС (Павло сам допомагав верстати інтерфейс),
автоматична система тестування коду та аналізатори статистики та логів.

У проекті використовується досить потужне обладнання, орієнтовно були
названі такі характеристики серверів:

  • 8-ядерні процесори Intel (по два на сервер, мабуть);
  • 64 Гб оперативної пам'яті;
  • 8 жорстких дисків;
  • RAID не використовується (реплікація та резервне копіювання здійснюється
    на програмному рівні).

Примітно, що сервери не брендовані, а збираються спеціалізованою
російською компанією. Зараз обладнання проекту розташоване в 4 датацентрах
Санкт-Петербурзі та Москві, причому вся основна база даних розташовується в
пітерському датацентрі, а в Москові хоститься лише аудіо та відео. В планах
зробити реплікацію бази даних з іншим датацентром Ленінградської області, а
також використовувати Content Delivery Network для підвищення швидкості завантаження
медійного контенту у регіонах.

Багато проектів, що стикаються з великою кількістю фотографій, часто
винаходять власні рішення щодо їх зберігання та віддачі користувачам. Про це
було перше запитання, поставлене Павлові із зали: "Як ви зберігаєте зображення?" - "На
дисках!". Так чи інакше, представники ВКонтакте заявили, що вся ця купа
фотографій всіх кольорів та розмірів просто зберігається та віддається з файлової системи
(використовують xfs) великої кількості серверів, без додаткових вишукувань.
Бентежить хіба що той факт, що в інших великих проектів такий підхід не
спрацював – напевно, вони не знали чарівного слова:).

Не менш чарівною є та сама власна база даних на C.
Цьому продукту, мабуть, була приділена основна увага аудиторії, але при цьому
майже ніяких подробиць про те, що він, власне кажучи, є,
так і не було оприлюднено. Відомо, що СУБД розроблена "кращими умами"
Росії, переможцями олімпіад та конкурсів TopCoder, а також що вона використовується
у найбільш високонавантажених сервісах ВКонтакте:

  • Особисті повідомлення
  • Повідомлення на стінах
  • Статуси
  • Пошук
  • Приватність
  • Списки друзів

На відміну від MySQL, використовується нереляційна модель даних, а більшість
операцій здійснюється в оперативній пам'яті. Інтерфейс доступу представляє
собою розширений протокол memcached. Спеціальним чином складені ключі
повертають результати складних запитів (найчастіше специфічних для конкретного
сервісу).

Система проектувалася з урахуванням можливості кластеризації та автоматичної
реплікації даних. Розробники хотіли б зробити з цієї системи
універсальну СУБД і опублікувати під GPL, але поки що не виходить через високу
ступеня інтеграції з іншими сервісами.

  • Процес розробки близький до методології Agile з тижневими
    ітераціями (циклами), у яких проходять всі етапи розробки:
    планування, аналіз вимог, проектування, розробка та
    Тестування.
  • Ядро операційної системи модифіковане (на предмет роботи з
    пам'яттю), є своя пакетна база для Debian.
  • Фотографії завантажуються на два жорсткі диски одного сервера
    одночасно, після чого створюється резервна копія іншому сервері.
  • Є багато доробок над memcached, т.ч. для більш стабільного та
    тривалого розміщення об'єктів у пам'яті; є навіть версія,
    що забезпечує безпеку даних.
  • Фотографії не видаляються для мінімізації фрагментації.
  • Рішення про розвиток проекту приймають Павло Дуров та Андрій Рогозов,
    відповідальність за послуги - на них і на розробнику, що його реалізував.
  • Павло Дуров відкладав гроші на хостинг із 1 курсу:).

Підпроекти

Сервіси аудіо та відео є побічними для соціальної мережі, на них
творці проекту особливо не фокусуються. Здебільшого це пов'язано з тим, що вони
рідко корелюють з основною метою використання соціальної мережі – спілкуванням, а
також створюють велику кількість проблем. Відеотрафік - основна стаття витрат
проекту, плюс усім відомі проблеми з нелегальним контентом та претензіями
правовласників. 1000-1500 серверів використовуються для перекодування відео,
їх же воно і зберігається. Медіа-файли баняться по хешу при видаленні на прохання
правовласників, але це неефективно і планується вдосконалити цей
механізм. Очевидно, йдеться про створення більш інтелектуального алгоритму
розпізнавання аудіо- та відео-контенту за тегами, як це, наприклад, реалізовано
у YouTube, де завантажений відеоролик, який порушує ліцензію, може бути
автоматично видалено через кілька хвилин після завантаження.

Як відомо, якийсь час тому з'явилася можливість спілкуватися на
ВКонтакті через протокол Jabber (він же XMPP). Протокол абсолютно відкритий та
Існує маса Opensource реалізацій. З низки причин (серед яких проблеми
інтеграції з іншими сервісами (ВКонтакте) було вирішено за місяць створити
власний сервер, що є прошарок між внутрішніми сервісами
ВКонтакті та реалізацією XMPP протоколу. Реалізовано його на node.js - вибір
обумовлений тим, що JavaScript знають практично всі розробники проекту,
тому це хороший набір інструментів для реалізації завдання. Складним моментом
стала робота з великими контакт-листами. У багатьох користувачів кількість
друзів ВКонтакте вимірюється сотнями та тисячами, висока активність зміни
статусів: люди з'являються і зникають з онлайну частіше, ніж в інших аналогічних
ситуаціях. До того ж необхідно було реалізувати тісну інтеграцію із внутрішньою
системою обміну особистими повідомленнями ВКонтакті. В результаті на сервісі 60-80
тисяч людей онлайн, у піку – 150 тисяч. TCP/HTTP-балансувальник навантаження
HAProxy обробляє вхідні з'єднання та використовується для розподілу
запитів на сервери, а також розгортання нових версій.

При виборі системи зберігання даних думали про нереляційні системи зберігання
даних (зокрема, про MongoDB), але в результаті вирішили скористатися звичною
MySQL. Сервіс функціонує на 5-ти серверах різної конфігурації, на кожному
яких працює код на node.js (по 4 процеси на сервер), а на трьох самих
потужних – ще й MySQL. Цікавою особливістює відсутність зв'язку між
групами друзів у XMPP з групами друзів на сайті - зроблено на прохання
користувачів, які не хотіли, щоб їхні друзі через плече бачили, в якій
групи вони перебувають.

Сподобалась стаття? Поділіться з друзями!
Чи була ця стаття корисною?
Так
Ні
Дякую за ваш відгук!
Щось пішло не так і Ваш голос не було враховано.
Спасибі. Ваше повідомлення надіслано
Знайшли у тексті помилку?
Виділіть її, натисніть Ctrl+Enterі ми все виправимо!