31 октября 2012 в 16:17

Какая CMS подходит для высоконагруженных порталов?

CMS*
Доброе время суток хаброобществу.

Последнее время пытаюсь разобраться какие CMS наиболее подходят для высоконагруженных порталов
с возможностью ухода в облака, масштабированием и использованием nosql баз.

Спасибо.
3016
7
RusMikle 12,9
Silaev, 31 октября 2012 в 16:53
А что вы понимаете под словом «портал»?
RusMikle, 31 октября 2012 в 17:53
Извините не сразу заметил ваш вопрос.
Ответ: Например сайт по поиску и бронированию отелей/вилл/яхт итп с более чем 1 миллионом посетителей в день.

сортировка по дате по рейтингу
ответы (10)

–6
volos, #
Да в принципе главное это правильно настроить сервер, но…
Я предпочитаю Друпал, и именно для порталов
volos, 31 октября 2012 в 16:21
про nosql не дочитал, простите
RusMikle, 31 октября 2012 в 17:34
у друпала есть интеграция с монго напр.
RusMikle, 31 октября 2012 в 17:36
тут подробнее
volos, 31 октября 2012 в 17:36
Я просто таких вещей не делал, поэтому и так написал, но спасибо, протестирую
+20
shagguboy, #
ни одна не подходит. надо самому писать.
sebres, 31 октября 2012 в 20:36
поддерживаю
piromanlynx, 31 октября 2012 в 23:06
прямые руки + php + куча доки + админ (прямые руки в комплекте) + архитектор (голова в комплекте)
сделают Вам портал или еще что то для высокой нагрузки.
CMS не предназначены под неё и практически не масштабируемы.
+3
Skull, #
сами же потом и пожалеете о выборе CMS, я б фреймворк взял. И для nosql можно поискать модули… или самому написать.
RusMikle, 31 октября 2012 в 16:58
а если выбирать framework то при ориентации например на mongo что посоветуете посмотреть?
RusMikle, 31 октября 2012 в 17:31
скажем если выбирать из этих.
inlanger, 31 октября 2012 в 17:37
Сейчас очень много nosql решений для Django. И по скорости работы при правильном кешировании фреймворк будет хорошо работать при высоких нагрузках. Хотя, как писали выше, «высокие нагрузки» понятие очень растяжимое.
Skull, 31 октября 2012 в 18:01
Я б Kohana посоветовал
Fesor, 31 октября 2012 в 18:05
А я б Symfony, на вкус и цвет. Тут нужно готовые решения смотреть, качество кода, покрытие тестами и прочее.
0
Fesor, #
Искать готовую CMS что бы потом потратить на допиливание столько же времени, сколько на разработку своей узко направленной… Сомневаюсь что есть в этом хоть какой-то профит. Использовать CMS имеет смысл на небольших сайтах-визитках, в остальных же случаях можно сэкономить массу нервов и писать все на фреймворках (можно запастись готовыми наработками что бы делать не с нуля).

А их фреймворков стоит обратиться к Symfony2 либо Zend2. По количеству готовых качественных решений альтернатив особо нету. В плане NoSQL и интеграции в облака с ними тоже все хорошо.
shagguboy, 31 октября 2012 в 19:30
я за Симфони 2. Доктрина точно Монго поддерживает. Пропел может быть.
0
ArtEx, #
Поддерживаю мнение про отказ от готовых CMS.
Готовая CMS — это, по сути своей, универсальный инструмент, направленный на массовое применение. Потому туда заложено «всё», что только может потребоваться. А Вам, в конкретной задаче, из этого «всё», как правило, даже 2\3 не понадобится. Зато ресурсов это самое «всё» будет пожирать сверх нормы.
Соот-но, как было сказано выше: правильнее взять фреймворк(на мой взгляд — yii, если речь о php), в кач-ве бд, на мой взгляд, вполне подойдет mysql\pgsql + шардинг(раз уж планируется highload).
И не факт, что это будет проще, чем допиливать\перекраивать готовую CMS, а итогом будет полноценный продукт в соответствии с Вашими требованиями.
+1
Angerslave, #
А какая задача-то? Социалка, новостной сайт или сервис какой-то обработки данных? По идее, хорошая CMS позволит до роста нагрузки продержаться насколько необходимо долго различными оптимизациями по ходу. В этом плане форк Drupal'а Pressflow выглядит неплохо. Если брать фреймворк, то это изначально нужно понимать какой для чего, иметь девелоперов и закладываться на хайлоад (которого ещё нет?).
По поводу облаков — у вас такой плавающий хайлоад, что облака будут эффективнее, чем несколько арендуемых серверов?

Вообще, выглядит больше как набор маркетинговых штампов — хайлоад, облака, NoSQL. Что там ещё в тренде сейчас? Должно на мобильных девайсах хорошо отображаться… Хотя это пользователю хоть какая-то польза, от метода хранения информации в БД юзеру ни холодно, ни жарко.

Возможно, для Ваших целей всё это подходит, но тогда это Вы должны нам рассказывать, почему MapReduce Вам нужнее Join'ов, как при нагрузке вы будете запускать новые инстансы в облаках, какие стратегии кэширования у Вас на сайте могут быть применены и т.д.
Fesor, 31 октября 2012 в 21:18
>>то это изначально нужно понимать какой для чего
А можно взять Symfony/Zend и писать. Это комбайны, и они очень гибки.
Fesor, 31 октября 2012 в 21:21
косательно бблаков. Если у вас есть кластер серверов то скорее всего у вас есть и сисадмин, которому тоже нужно платить деньги. В этом плане сервисы аля амазоновских сильно профитнее своих серверов.

По поводу MapReduce vs Join — при наличии Join-ов можно забыть о горизонтальном масштабировании. Ну или как минимум это будет сильно напряжно.
Angerslave, 31 октября 2012 в 21:29
Смотря что под Symfony подразумевается. Если первая ветка — то сомневаюсь, на данный момент устаревший фреймворк. Вторая ветка — да, получше, собственно как и Zend, который даже в большей степени является библиотекой, чем SF2. Второй Symfony можно также как набор инструментов воспринимать и использовать лишь некоторые из них. Возможно, это самый оптимальный вариант, если взять часть компонентов Symfony2, часть от Zend Framework и т.д., но нужно чётко понимать что для чего предназначено, какие компоненты как развиваются и т.д. Также как и с примешиванием других технологий — Django, Rails и т.п., что в конечном счёте ведёт к серьёзному росту стоимости разработки и владения проектом.
Поэтому, нужно искать грамотного технаря (или самому разбираться в тонкостях хайлоада, ибо «хайлоад CMS» в общем-то нет, хайлоад под разные нагрузки строится разными путями, разными технологиями. Поэтому тут и советуют многие фреймворки — в них зачастую проще реализовать масштабируемость, но сами методы масштабирования всё равно лежат вне плоскости фреймворков, ведь нужно ещё и код грамотно писать, чтобы при распределении приложения на несколько серверов производительность росла если не линейно, то хотя бы с небольшим оверхедом.
Angerslave, 31 октября 2012 в 21:35
Не хотелось бы разводить холивор «облака vs сервера», но облака также нужно поддерживать, собственно сисадмин не за серверами следит, а за системой. В любом случае, я не говорю, что сервера лучше облаков, но я также хочу акцентировать внимание и на обратном — не всегда облака лучше серверов.

То же самое можно сказать про NoSQL — важно, чтобы человек, принимающий решение по использованию технологии, понимал зачем это, что NoSQL — не серебряная пуля и что проблемы масштабирования не решаются выбором «NoSQL или RDB», любое решение так или иначе подкинет пучок проблем.
kotomyava, 1 ноября 2012 в 23:21
При высоких нагрузках сервера обходятся куда дешевле облаков…
RusMikle, 2 ноября 2012 в 01:02
Проблема в том что это уже не написание нового а переписывание того что не справляется с нагрузками. Причем в сезон отпусков нагрузки могут в сотни раз вырастать. С серверами просто нереально следовать за нагрузками. Сейчас сделали с запасом но 80 % времени столько ненужно. Опять же изначально многие вещи были не предусмотрены (масштабирование и проч) и сейчас работают решения сделанные на коленке, некрасивые и отчасти нестабильные.
Про CMS спросил потому что думал что мог что то упустить и теперь изобретаю велосипед, но походу все печальнее чем представлялось.
Angerslave, 2 ноября 2012 в 09:58
Проблема с CMS и отчасти с фреймворками в том, что гибкость делается за счёт производительности. То есть Вы берёте default CMS, за 10 минут настраиваете её и радуетесь. А когда приходит трафик, огорчаетесь. Поэтому и нет такой default CMS, которая держит трафик (разве что всякие примочки типа Boost (HTML cache) для Drupal с кучей условий для работы), опять же, повторюсь, высокие нагрузки у всех разные, решения разные, бизнес-процессы разные, окружение разное и т.п., есть только множество практик, которые имеет смысл применять при разработке высоконагруженного проекта на чём бы то ни было — CMS, фреймворк или минимальный набор методов из ЯП.
–3
kryoz, #
Я сейчас работаю как раз над проектом с похожей тематикой. Там никакого даже фреймворка нет (исторически сложилось). Перевести всё это на CMS просто нереально, не говоря уж о производительности. Только фреймворк использовать. Кстати, не понятно совсем зачем понадобилась MongoDB, можно и без этого спокойно обойтись. SQL-решения чаще всего быстрее.
RusMikle, 2 ноября 2012 в 01:11
Перевести всегда реально, вопрос только времени, денег и желания. Причем чем раньше поймёшь что надо переводить и начнешь это делать тем дешевле в итоге это обойдётся. Важно только не повторять ошибки допущенные в первой версии и умерить своё эго. Если чувствуешь что сам не справляешься скажи это тем кто принимает решение, никто за это не съест а ситуацию возможно ещё можно поправить.
kryoz, 18 апреля в 22:07 (комментарий был изменён)
Не я строил то говнище. Вопрос подымался не раз. И не решался. Никого из вышестоящих ситуация не парила. Так что в декабре я покинул ту компанию.
–1
TTA, #
Пишите хоть на друпале, хоть на джумле. Любой проект изменяется бешенными темпами вначале. Да и подозреваю что в это время вы не получите миллион посетителей. В общем это будет ваш «тормозной но легко изменяемый прототип». После того как требования и продукт стабилизируется, вы поймете требования к ресурсам и технологиям. Там можно и нужно переходить на самопись.
–1
zizop, #
Я бы остановился либо на NodeJS (но тут ещё мноегое сыровато) либо на проверенных решениях типа Zend Framework (есть Zend/Cloud компоненты для облаков), а в качестве хранилища — MongoDB. В качестве модельного слоя можно использовать Doctrine 2 ODM. Мы используем именно так.
–1
develop3r, #
Попробуйте бесплатную open source ImageCMS Corporate.
Она узкозаточенная под корпоративные порталы.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Мир Game of Thrones в Minecraft
Помочь GNU/Linux — это просто!
«Национальные» языки программирования