2009-08-20 2 views
1

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

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

т.е: project1.mysaas.com, project2.mysaas.com и т.д.

Я ищу свой опыт показать мне путь.

пути я думал, является:

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

Спасибо.

btw, я новичок.

ответ

3

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

Во-первых, о ваших идеях:

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

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

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

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

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

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

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

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

+1

большое спасибо. Простейший способ проиллюстрировать то, что я пытаюсь сделать, это то, что проект Django, который я создаю, эквивалентен Basecamp.Затем я хотел бы предложить этот проект нескольким пользователям - каждый из которых имеет собственное пространство проекта, например Basecamp. – 2009-08-20 12:07:19