Помогите решить с архитектурой приложения

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
IvanChe
Сообщения: 89
Зарегистрирован: 2012.11.25, 18:55

Помогите решить с архитектурой приложения

Сообщение IvanChe »

Всех приветствую!
Вообщем следующая ситуация: есть портал сейчас крутится на самописной cms. Хочу перевести его на фреймворк и по личным предпочтениям выбираю конечно же Yii.
Теперь у меня серьезная дума по архитектуре приложения.
Описание проекта:
Есть портал, в нем каждая тематика вынесена на свой поддомен для улучшения сео. Исторически сложилось, что каждый из этих поддоменов(субпорталов) жил своей жизнью, со своей архитектурой бд, со своими модулями и расширениями и даже со своей базой данных пользователей. Имелось отдельное приложение, которое работало по принципу openid и авторизовывало пользователей на поддоменах, если они авторизовались на каком-нибудь поддомене.
Теперь в добавок ко всему нужно к этому порталу прикрутить конструктор сайтов, который будет из себя представлять название организации в поддомене(enterprise_name.site.ru). Для каждого поддомена сейчас своя админка.
Сейчас получается, что 1 поддомен - это 1 приложение со своим ядром и бд. Делалось, как мне объяснили, это чтобы можно было легко перетащить любой из поддоменнов на отдельный сервер, в случае если его часто ддосят или просто он стал нагруженным. Также нужно будет вынести как-то отдельно мобильную версию сайта, пока думаю это сделать по принципу news.site.ru/mobile.
Идеи, которые есть в голове:
Я считаю, что ядро должно быть одно, а каждый поддомен должен быть как бы надстройкой над ядром(какие-то свои котроллеры, модельки, вьюхи, конфиги и т.д.). Придерживаюсь принципа, предложенного в Yiinitializr. И держать каждый поддомен, как отдельное приложение(как это сделано с frontend и backend в Yiinitializr), папки с ядром(framework) и common вынести на отдельный сервер и примонтировать их к серверу, на котором лежит приложение(надстройка). Базу данных для приложения держать на сервере, где папка с приложением. Это делаю с целью того, что если ддосят сервак с сайтом, то он просто отваливается и не вешает другие например. А конструктор сайтов сделать, как одно отдельное приложение и пользоваться урл мэнэджером. Админки(бэкэнды) у всех думаю сделать через модули.
Т.е. папки на первом уровне будут common(примонтирована, содержит общие модули, контроллеры и т.д. для всех), constructor(конструктор сайтов со своим урл менеджером, который поддомен передает, как гет параметр), news, politics, entertainment, auto и т.д.(поддомены по тематикам портала).
Проблемы: если монтировать, то приложение может очень долго работать по понятным причинам.

1. У кого какие есть мысли как еще это можно организовать ? Буду очень благодарен :)
2. Для данного случая на сколько будет удобно использовать nginx+php-fpm ? Или удобнее будет nginx фронтендом к апачу сделать ?
С Yii работал относительно не много, но он мне очень нравится. Поэтому если получится всё это дельце провернуть на Yii, то будет просто класс ))
_axl
Сообщения: 36
Зарегистрирован: 2011.10.01, 12:07

Re: Помогите решить с архитектурой приложения

Сообщение _axl »

Бедняга, наверное так долго писал, а всем лень читать :) Сформулируй более кратко, разбей на отдельные вопросы, по возможности.
6pblcb
Сообщения: 71
Зарегистрирован: 2012.03.02, 11:24
Откуда: Omsk

Re: Помогите решить с архитектурой приложения

Сообщение 6pblcb »

IvanChe писал(а):Проблемы: если монтировать, то приложение может очень долго работать по понятным причинам.
Как вариант: можно отказаться от вынесения ядра YII и commmon на отдельный сервер, а использовать на каждом сревере копию. Для одновременного обновления ядра и common можно например настроить git который при push будет копировать код на сервера.
_axl писал(а):Бедняга, наверное так долго писал, а всем лень читать :) Сформулируй более кратко, разбей на отдельные вопросы, по возможности.
Прочитав пост можно было не писать второе предложение Вашего ответа.
YII2?, начинаю продолжать заканчивать делать. I'm gonna go build my own php-framework, with blackjack and hookers. In fact, forget the php-framework!
IvanChe
Сообщения: 89
Зарегистрирован: 2012.11.25, 18:55

Re: Помогите решить с архитектурой приложения

Сообщение IvanChe »

Как вариант: можно отказаться от вынесения ядра YII и commmon на отдельный сервер, а использовать на каждом сревере копию. Для одновременного обновления ядра и common можно например настроить git который при push будет копировать код на сервера.
Да, скорее всего так и придется сделать. Спасибо :)

А что можете сказать про Yiinitializr ? Какие есть ему альтернативы? С какими проблемами обычно сталкиваются при его использовании?
Я в нем увидел приличное кол-во .htaccess файлов. На сколько проблемно будет их переписать на nginx ?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Помогите решить с архитектурой приложения

Сообщение anton44eg »

Проблем с nginx не будет. А вот проблем с самим Yiinitializr возникло много, временно отказался, ошибок довольно много, автор уже 8 дней не отвечает на pull-request..
IvanChe
Сообщения: 89
Зарегистрирован: 2012.11.25, 18:55

Re: Помогите решить с архитектурой приложения

Сообщение IvanChe »

Проблем с nginx не будет. А вот проблем с самим Yiinitializr возникло много, временно отказался, ошибок довольно много, автор уже 8 дней не отвечает на pull-request.
Только я начал запускать виртуалку и разворачивать новый проект, как прочел Ваше сообщение... Видимо спасибо, что огородили от неприятностей.:)
Значит по старинке разворачиваю всё с нуля ... :geek:
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Помогите решить с архитектурой приложения

Сообщение anton44eg »

Все зависит от сроков. У меня довольно сжатые сроки, поэтому не было времени глубоко разобраться со всеми нюансами. Знакомые начали долгосрочный проект на Yiinitializr и довольны.
Ответить