Каковы лучшие практики в создании приложений с несколькими арендаторами? - PullRequest
8 голосов
/ 04 апреля 2009

Каковы лучшие практики при создании приложений, поддерживающих несколько арендаторов, таких как Программное обеспечение как услуга?

Ссылки на официальные документы по этой теме приветствуются.

Ответы [ 2 ]

8 голосов
/ 04 апреля 2009

Для базы данных:

A. Поместите все в одну базу данных, поместите столбец tenant_id в свои таблицы

Плюсы: легко сделать

Минусы: очень подвержены ошибкам: легко передавать данные от одного арендатора к другому.

B. Поместите все в одну базу данных, но поместите каждого арендатора в его собственное пространство имен (postgresql называет их схемами)

Плюсы: обеспечивает лучшую защиту от утечки данных, чем опция A

Минусы: поддерживается не всеми базами данных. AFAIK PostgreSQL и Oracle его поддерживают.

C. Настройте одну базу данных для каждого арендатора

Плюсы: абсолютно нет шансов утечки данных от одного арендатора к другому

Минусы: установка новых арендаторов сложнее. Соединения с базой данных дороги.

Я узнал вышеупомянутые идеи только от Гая Наора. Вот ссылка на его презентацию: http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html

5 голосов
/ 04 апреля 2009

Вы можете найти несколько ценных советов в серии постов Орен Эйни.

Это одно из последних сообщений в серии, со ссылками на предыдущие сообщения: http://ayende.com/Blog/archive/2008/08/16/Multi-Tenancy--Approaches-and-Applicability.aspx

...