Ода серверам

6 лет назад

41



Немного истории

posted image

История сайта ffclub.ru начинается в далеком 2003-м году, с создания каталога ответов на популярные вопросы на тему выбора и ремонта автомобилей Ford Focus. В связи со строительством завода во Всеволожске, модель становилась популярной, и в Интернете появился форум, на площадке официального дилера, где зарождалось сообщество людей, интересующихся этим автомобилем - fordforums. Первое время, на нашем сайте был только FAQ с ответами и вопросами, куда изредка заходили случайные посетители с растущего сайта fordforums.

Однако уже в летом 2003 года на сайте появился форум, для того, чтобы люди, которые периодически теряли возможность общения, из-за проблем на площадке fordforums, могли продолжать общаться, на время падения основного форума. Датой начала работы форума ffclub, можно считать 18 июня 2003 - день первого сообщения на форуме Однако доменное имя ffclub.ru было зарегистрировано только год спустя, когда посещаемость сайта с запасным форумом начала превосходить посещаемость fordforums. С 23 августа мы стали официально работать на домене ffclub.ru.

Короткое доменное имя, сложившийся коллектив участников и популярная иномарка русской сборки сделали свое дело - сайт начал быстро расти, и начинал доставлять немало технических хлопот. Изначально никто и не предполагал, какая посещаемость может обрушиться на этот сайт, поэтому он работал на дряхлом сервере, среди множества других проектов. Фотографий этого сервера не сохранилось, есть лишь фотка его собрата - наш первый сервер выглядел почти так же:


Можно представить себе, как выглядел хостинг в KIAE (Курчатовский Институт Атомной Энергии) - в огромном зале, который был похож на полутемный цех, стояли обычные парты, на которых светились индикаторами пыльные системные блоки, среди которых был первый сервер, на котором работал ffclub Это был тяжеленный агрегат, донести который от проходной Курчатовского института до машинного зала, было настоящим подвигом. Вскоре, форум вытеснил все другие сайты, которые работали на этом сервере, ресурсов сервера стало не хватать, и на крик о помощи "где можно купить память подешевле?!" откликнулся веселый и добрый Швым, вручивший мне дополнительный банк памяти, который я спешно повез в Курчатовский Институт, и торжественно установил в пыльный сервер - это было начало большого пути апгрейдов всего ffclub.

Поняв, что на подходе Ford Focus 2, а мы и без него уже работаем еле еле, я озаботился сборкой новой машины - первого собственного сервера, который можно было задействовать отдельно под весь проект. Время тянулось мучительно долго, но в итоге длительного сбора средств с немногочисленных рекламодателей, я собрал часть необходимой суммы и озадачил своего приятеля, который досконально знал, где купить все детали максимально дешево. За пару недель мы собрали сервер, и зимним морозным утром, я повез его на площадку, чтобы торжественно установить. Было очень холодно, и очень ветрено, а двери ММТС9 очень тугими, поэтому я чуть не распластался на крыльце, что могло стать неожиданным концом сего благого начинания Но преодолев все препятствия, сервер был установлен и торжественно запущен

К слову, этот сервер усердно оттрудился более 8 лет, и был торжественно подарен молодым стартаперам для новых проектов, в конце 2012 года. Кроме ffclub.ru, он стал домом для разнообразных проектов:


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

С этого момента было много пертурбаций, и я расскажу о текущей конфигурации более подробно в конце, для тех кому интересны технические детали работы всего проекта.

Параллельно с этим была начата работа по оптимизации движка форума, улучшая только железо, нельзя достичь максимальной скорости работы, когда база данных сообщений исчисляется гигабайтами, а трафик - террабайтами. Это длинный этап проб и ошибок, за время которого был серьезно модифицирован базовый движок форума Invision Power Board, на котором работал проект. Помимо расширений, пришлось написать множество больших и мелких модулей, например для быстрого поиска, мгновенного оповещения через jabber, или для геотаргетинга. Эта работа не останавливается, и наверное никогда не остановится, пока жив проект, так как технологии не стоят на месте. Большинство функций было разработано по просьбе и в тесном контакте с многими участниками, поэтому нельзя сказать, что автор всей этой работы один человек - это большой коллективный труд!

Технические подробности

Как же сейчас устроен ffclub? На данный момент, это довольно сложная распределенная конструкция, которая выглядит так:

1. Сервер приложений - главный сервер, который генерирует динамические страницы. Работает под управлением FreeBSD, как и все остальные серверы, и в качестве web сервера используется Nginx, гениальная разработка Игоря Сысоева, которая пользуется большой популярностью во всем мире. Кстати, мы стали использовать Nginx почти с первых месяцев работы сайта, когда никто еще не знал, что это такое, и все отдавали предпочтение web серверу Apache. У нас просто не было выбора, так как первый сервер был достаточно слабый, и Nginx был единственным вариантом, чтобы хоть что-то шевелилось. Мы написали собственный модуль для Nginx, который обеспечивает обнаружение и блокировку базовых атак. В итоге сервер приложений выглядит так: Nginx + PHP/FastCGI + Redis + Sphinx.

2. Сервер базы данных - мы используем Mysql. Да, это старое решение, баян, но при умелой настройке, даже при такой большой базе как у нас, можно заставить все это работать довольно быстро Работает в связке master-slave с сервером бэкапов.

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

4. Сервер бэкапов - учитывая вопросительную политическую ситуацию, да и просто на всякий случай, долговременный сервер бэкапов находится не в России. На нем хранятся бэкапы базы данных и всех файлов форума. Очень много информации (сотни гигабайт).

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

Каждые сутки нас посещает 40 тысяч человек, и 700-800 тысяч в месяц (число жителей в Краснодаре), и давайте не забывать что все это время, пока вы спите, едите, общаетесь на ffclub, стоите в пробке - все этот время, несколько серверов без отдыха и усталости работают для вас, скрываясь за страницами нашего сайта
сервер ffclub, ffclub.ru, ffclub, сервер, история

avatar
ter
14 февраля 2013

Ода серверам
16,2K
просмотров
11
участников
19
сообщений

avatar
Rubi35
15 февраля 2013


ter
Познавательно, спасибо)))
цитата
Каждые сутки нас посещает 40 тысяч человек, и 700-800 тысяч в месяц (число жителей в Краснодаре), и давайте не забывать что все это время, пока вы спите, едите, общаетесь на ffclub, стоите в пробке - все этот время, несколько серверов без отдыха и усталости работают для вас, скрываясь за страницами нашего сайта

а в 2005 году это звучало, как крик о помощи...
цитата
Я уже не говорю что трафик вырос до 6 гигов и народу 2 тысячи ежедневно, это вообще караул
avatar
Наиль
15 февраля 2013


спасибо, классный рассказ.

ЗЫ и проделанная работа, естественно, тоже

ЗЗЫ а где фотки, как это выглядит сейчас?
avatar
Shark
15 февраля 2013


Наиль это секрет тсссс
avatar
Наиль
15 февраля 2013

2

цитата (Shark)
Наиль это секрет тсссс

(шепотом) а... оригинал Тера тоже за границей... а тут двойник?
avatar
Shark
15 февраля 2013

1

Наиль это вообще никому не известно
avatar
lukin
15 февраля 2013


ter
Спасибо за информацию
avatar
dox
15 февраля 2013


Офигеть, вы с мускулем работаете! Красиво! Думал, что у вас мсскуль или оракл, но оказалось все гораздо прозаичнее.
avatar
RamzesiK
15 февраля 2013

1

Мало кто знает какой объем работ проведен, надеюсь к следующему юбелею наши серваки будут выглядеть так
posted image
avatar
Student_X
15 февраля 2013


ter

спасибо за эту работу
avatar
creeper
15 февраля 2013


классно, вы молодцы что оптимизировали движок форума под такую нагрузку и объем базы!!!
вот только как теперь накатываются апдейты?
и что за оповещения через jabber? или это уже ваши админские фишки?
avatar
ter
15 февраля 2013

1

цитата (creeper)
и что за оповещения через jabber? или это уже ваши админские фишки?

Да нет, не только админские Можно настроить свой qip или google talk акканут, чтобы получать отбивки о личных сообщениях, подписках, обращениях в теме: Jabber Bot

цитата (creeper)
вот только как теперь накатываются апдейты?

Апдейты накатываются глухими ночами, пока большинство пользователей спит
avatar
creeper
15 февраля 2013


цитата (ter)
Апдейты накатываются глухими ночами, пока большинство пользователей спит

ну я имел ввиду - вы апдейты от IPB тоже адаптируете?

по поводу jabber - круто, нужно будет попробовать подключить!
avatar
ter
15 февраля 2013


creeper
Там от IPB мало чего осталось Адаптируем только обновления безопасности. В остальном, разрабатываем свой отдельный fork.
avatar
creeper
16 февраля 2013

2

ter
респект и уважуха! форм работает очень быстро!
40 тысяч уников это круто
avatar
syndicate
3 апреля 2013


цитата (RamzesiK)
надеюсь к следующему юбелею наши серваки будут выглядеть так

Блин, сорри, за оффтоп.
У меня терминальники стоят в таком же "коридорчике". Там же и серваки контакта. Очень похож.
avatar
Shark
3 апреля 2013

1

цитата (syndicate)
Там же и серваки контакта. Очень похож.


Воткни в них монтировку
avatar
RamzesiK
3 апреля 2013


цитата (Shark)
Воткни в них монтировку

Контакт то еще пол беды а вот в одноклассники я сам лично бы воткнул )))
avatar
syndicate
3 апреля 2013


цитата (Shark)
Воткни в них монтировку

Я бы там вообще все сжег связанное с ним!
avatar
Дмитрий Никитский
3 апреля 2013

1

Странные Вы, тут все просто : нет акаунта нет проблем



      Войдите, чтобы написать сообщение, или пройдите регистрацию.