Мультитенантная архитектура для SaaS приложений
Что такое мультитенантность (multitenancy)?
Самыми простыми словами мультитенантность — это возможность изолированно обслуживать пользователей из разных организацией (т.е. независимых подписчиков SaaS) в рамках одного сервиса (одной инсталляции или развертывания). Основным здесь является соблюдение изолированности подписчиков друг от друга. Действительно, клиенты не обрадуются, если данные, которые они хранят в вашем SaaS приложении, будут доступны при поиске для других клиентов. Это явное нарушение изолированности.
Мультитенантность бывает разной, например, ее можно представить следующей схемой:
Мультитенантность уже давно является неотъемлемой частью многих ERP и CRM систем (Multi-tenant versus Single-tenant ERP – a comparison). Для своего SaaS приложения позаботиться о мультитенантности уже предстоит вам, хотя в этом вам могут помочь имеющиеся фитчи или готовы компоненты, например, которые предоставляют PaaS-платформы. Вообще говоря, проще сразу проектировать приложение с фокусом на мультитенантность, чем потом приложение “перепроектировать” для ее поддержки.