Pull to refresh

Вся неправда про Суперхабр

Reading time 3 min
Views 20K


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

Итак, для тех кому это интересно, расскажу об составляющих частях этого проекта.



Вступление


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

Первое, что стоит сказать сразу: суперхабр — полностью самостоятельный проект, который не унаследовал ни одной строчки кода и ни одного бага старой версии. Все баги — уникальны. База данных также была спроектирована с нуля.

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

Здесь следует отдать должное Сергею Коровкину: его версия хабра была написана в довольно сжатые сроки, и, вероятно, никто тогда не знал до каких масштабов она вырастет. Как и многие другие продукты логического труда, она имела свои недостатки, некоторые из которых были нами устранены по мере возможности. Я считаю, что старый хабр свою роль выполнил, вне зависимости от того, как и на чём он был реализован. Кажется, это весьма логичное предположение.

Техническая команда


Ведущий разработчик суперхабра — Супер-Илья, он автор первых сабмитов в наш репозиторий. В разное время к нему в помощь подключились Дима, Вова и Антон. Каждый из них занимался своей частью проекта. Поработал над проектом и коллектив технологов: Максим, Марат, Лена, Витя и Карабоз. Каждый понемногу, не учавствовал только ленивый.

Технологии


Суперхабр разработан на PHP 5.
Базовые классы обеспечены фреймворком Propeller, — нашего собственного изделия.
База данных — MySQL
Фронтэнд сервер — Nginx, бэкенд — Apache
Средство временного хранения данных — Memcached
Использован запредельно быстрый шаблонизатор Blitz, созданный Алексеем Рыбаком
Поиск по проекту осуществляется не менее быстрой (все комментарии индексируются примерно за 5 минут, и это при передаче их через http-соединение в xml-формате) поисковой системой с открытым кодом Sphinx, основатель — Андрей Аксёнов.
Пользовательские тексты обрабатываются интеллектуальной системой художественной корректировки текстов (ИСХКТ) Jevix, php-версию которой разрабатывает Денис Егоров

Зачем всё это затевалось?


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

Ложка дёгтя


Как в народе говорится: «This could be because you hit a bug», другими словами, сразу после запуска, мы наткнулись на новые «подводные камни» сервера MySQL. Сервер непредсказуемо прекращал работу даже при средней занятости, что в принципе свойственно серверам данного типа, которым время от времени приходится работать немного больше обычного. Однако, мы занимаемся этим вопросом и, я уверен, решение будет выработано в ближайшее время.

update: буквально только что была установлена версия 5.0.67. Посмотрим, как долго она протянет.

/super/500/?


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

Если кому-то хочется повторить подобный эксперимент на своём проекте, то, скрывать не буду, схожий эффект достигается довольно просто: специально для этого один очень умный человек разработал сервер-ускоритель скрытых папок — Nginx. Вот как это делается:
    location / {
        ...
        rewrite ^(.*)$ /super/500/ redirect;  # Secret key
        ...
    }

    location /super {
        autoindex  on;
        index index.html index.htm;
        root /usr/home/sites/habrahabr.ru/www;
    }

    location /super/core {
        deny all;
    }


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

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

Заключение


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

Всё это — неправда, поэтому прошу не считать эту публикацию поводом для обсуждения лучших в мире технологий.
Tags:
Hubs:
+218
Comments 94
Comments Comments 94

Articles