Каковы лучшие практики создания мультитенантных приложений?

StackOverflow https://stackoverflow.com/questions/717105

  •  23-08-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Вы можете найти ценные советы в серии сообщений в блоге Орена Эйни.

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

Другие советы

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

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

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

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

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

Плюсы:Обеспечивает лучшую защиту от утечки данных, чем вариант А.

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

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

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

Минусы:Настроить новых арендаторов сложнее.Подключения к базе данных стоят дорого.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top