#IT_Архитектура SaaS: переход от Silo к Pool модели

Давай сначала разберемся, о чем я тут собираюсь сегодня рассказать? Модель SaaS только звучит сложно, по факту - это просто когда один продукт (веб-приложение) может использоваться разными компаниями изолированно друг от друга. Ну вот начала одна компания CRM использовать и другая подключилась и третья. Все приглашают своих сотрудников, но данные одной компании от других изолированы.

У такого подхода есть три варианта реализации, самые интересные из них - Silo и Pool. Первый подход я часто в лекциях студентам сравниваю с отдельным домом, а второй - с домом многоквартирным. То есть если семья большая и нужна независимая инфраструктура, то лучше выбрать Silo, но большинство населения живет все-таки в многоквартирных домах с некоторыми общими ресурсами. Да, соседи могут быть шумными (Noisy neighbor), но за ресурсы на круг платишь ощутимо меньше.

И вот чтобы мы и наши клиенты платили меньше за инфраструктуру, мы и решили перевести Сфера SaaS на модель Pool. Давай тут зайдем немного с конца: почему мы сразу не стали делать модель Pool? Да очень просто, по тому что наш продукт начинался как PoC (Proof of Concept), то есть надо было доказать состоятельность стратегии. И только когда мы всё всем доказали, то продукты, которые мы до сего момента выводили как "серый ящик", смогли взять к себе в бэклог нужные доработки для перехода на модель Pool. А доработки здесь достаточно большие - это надо переориентировать авторизацию во всех продуктах на так называемый tenant_id, то есть идентификатор клиента (тенанта)

Что я хотел донести этим примером? Архитектурные решения редко делятся на правильно или неправильно. Они про скорее о том, "какую боль ты готов терпеть ради какой выгоды".

А у вас продукте есть мультитенантность? Почему вы решили предоставлять свой продукт именно по SaaS модели?