Django развертывается как SaaS (стиль basecamp) - PullRequest
1 голос
/ 20 августа 2009

Я почти закончил разработку проекта Django (с несколькими подключаемыми приложениями).

Я хочу предложить этот проект как SaaS (что-то вроде basecamp).

То есть: project1.mysaas.com, project2.mysaas.com и т. Д.

Я ищу твоего опыта, чтобы показать мне путь.

Пути, о которых я подумал:

  • 1 Использование сайтов для определения настроек сайта .py
  • 2 промежуточное программное обеспечение для обнаружения запроса и установки соответствующих настроек
  • 3 создать проект Django (принимая подключаемые приложения) для каждого сайта

Спасибо.

Кстати, я новичок.

1 Ответ

3 голосов
/ 20 августа 2009

Ваши требования не совсем ясны, но я предполагаю, что вы не делаете ничего хитрого, а также предположите, что ваши "project1", "project2" - это имена клиентов, которые не нуждаются в особом брендинге.

Сначала о ваших идеях:

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

  2. Это бы сработало, но, вероятно, не лучший подход ИМО.

  3. Это неуправляемо.

Теперь, это действительно сложная тема, потому что есть так много проблем. Приличное место для начала чтения - это High Scalability Blog , и особенно уместным для вас будет пост 37signals Architecture .

Наконец, вот что я делаю в небольшом SaaS-приложении (которое не требует крайней масштабируемости):

  • Использование каркаса сайтов (поскольку пользовательские страницы будут маркироваться партнером / посредником, а у каждого партнера есть уникальная страница входа)

  • Используйте mod_wsgi, чтобы минимизировать использование ресурсов во всех экземплярах Django.

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

...