C#razy
99 subscribers
215 photos
46 videos
2 files
345 links
Путь в IT, рост, менторство, поддержка, прокачка, мотивация

👨‍💻 Senior .NET dev с 12+ лет опыта
📚 Учусь в MIT по Computer Science
🖥 100+ дней подряд LeetCode
⚒️ Работаю на зарубеж
💻 Веду блог про рост в IT с нуля
🧭 Помогаю понять, куда двигаться
Download Telegram
Multitenancy и виды стратегий для масштабируемых SaaS-решений

📌 Что такое multitenancy?
Multitenancy позволяет одному приложению обслуживать множество организаций или пользователей, при этом данные каждого тэнанта изолированы. Это важно для масштабируемости и безопасности.

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

Существуют различные "виды" multitenancy, но честно они все хороши:
📌 Shared Database & Shared Schema
Подходит для маленьких проектов или некритичных приложений, где изоляция данных не является первоочередной задачей.

📌 Shared Database & Separate Schemas
Хороший выбор для средних SaaS приложений, где необходима некоторая изоляция данных, но проект все еще должен быть экономически эффективным.

📌 Separate Databases
Подходит для больших организаций с критически важными данными, где безопасность и изоляция являются основными приоритетами.

📌 Separate Application Instances
Применимо для корпоративных клиентов с особыми требованиями по безопасности, производительности или кастомизации.

📝Итого
Для большинства SaaS-приложений Shared Database & Separate Schemas, по моему мнению, оптимальный выбор. Это подход предлагает баланс между изоляцией данных и экономичностью, особенно если приложение предполагает гибкую настройку под каждого клиента. Так же этот подход легко масштабируется для "среднего" числа тенантов.

Separate Databases, думаю стоит использовать если безопасность и независимость тенантов очень критичны, например, в финансовых приложениях или что то связанное с персональными данными.

Shared Database & Shared Schema, а вот это лучше избегать в серьезных приложениях из-за недостаточной безопасности и риска нарушений целостности данных. Это скорее подход для очень маленьких и простых решений, где изоляция не важна или на старте попробовать надо ли оно вам. Тут беда что утечки и протечки данных возможны, по сути этот что то типо хостала, вроде бы всё разграничено, но в тоже время всё доступно, но скрыто.

Separate Application Instances, я считаю что это спорный подход, когда необходимы максимально независимые и кастомизированные приложения для каждого клиента, что по сути редкость для типичных SaaS решений. Так как искать и разделять инфраструктуру будет не просто и нужно ли. Но, если взять разбитие на регионы\зоны то этот подход может быть удачным решением.

📎 Ссылки: devops-habr, dev-habr, product-habr

#multitenancy #SaaS #devops

💡 Channel | Chat
Please open Telegram to view this post
VIEW IN TELEGRAM