Добрый день. Задам сперва вопрос тут, потому как вся инфра в

aws, затем поёду в часик девопсру если это тема для там.

Вот представьте есть некий проект.
Ну прям всё как обычно: Mysql/Postgresql(RDS), EKS, ALB, S3, Elasticache и короче вот все эти сервисы облаков.
Всё как в сказке.

Есть большая вероятность, что проект может вырасти и вылезть за пределы стартапа.
Условно говоря к нам придёт условный Pepsi co и нам надо будет многое изолировать для них отдельно.
Потенциальная задача - разделить все по разным регионам/базам.
Если со всякими s3/alb/EKS у меня вопросов нет, то как "делить" БД я не знаю.
Ну может там какие-то тенанты делать(?)
Или миграцию структуры и содержимого БД из одного существующего кластера в несколько БД по клиентам/регионам и разносить это руками/скриптом по разным регионам/БД.
Надеюсь донёс свою мысль).

Вопрос:
а где бы вот почитать о неком таком опыте внезапного роста с разделением по регионам/клиентам и самое главное - даёт ли сам амазон нечто подобное из фичей?
Хочется сперва задействовать от самой экосистемы, чтобы не выдумывать костыли.
Я нашёл лишь пару статей в интернетах, но это не совсем то, что надо.
Если кто что знает/видел/читал - буду рад ссылкам.

19 ответов

62 просмотра

Что значит "делить бд"? А кто и как этой базой пользуется то?

Alexandr-Kryuchkov Автор вопроса
Sebor▂▅▇█▓▒░
Что значит "делить бд"? А кто и как этой базой пол...

ну сейчас есть backend который живёт в кубере и подключается к бд клиенты сидят на фронте, который подключается к беку. если придёт большой крупны клиент надо это как то полностью отделить

Добро пожаловать! SaaS Tenant Isolation Strategies

Alexandr Kryuchkov
ну сейчас есть backend который живёт в кубере и по...

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

Alexandr-Kryuchkov Автор вопроса
Sebor▂▅▇█▓▒░
Это делается же на уровне приложений. Как ты хочеш...

я пока не понимаю, по мне так проще поднять всю инфру отдельно по терраформу и поменяь url для эдпойнта у нового клиента, но может быть это оверхед

Alexandr Kryuchkov
я пока не понимаю, по мне так проще поднять всю ин...

А как данные синкать потом? Или я не понимаю основной задачи

Alexandr-Kryuchkov Автор вопроса
Max Skutin
Добро пожаловать! SaaS Tenant Isolation Strategies

Весьма любопытно. Похоже это часть того что мне надо. Благодарю.

Alexandr-Kryuchkov Автор вопроса
Sebor▂▅▇█▓▒░
А как данные синкать потом? Или я не понимаю основ...

Пока не знаю, потому пришёл сюда, почитать то, что накидают 🙂

Alexandr Kryuchkov
Пока не знаю, потому пришёл сюда, почитать то, что...

Так первоначально не ясна вся задача целиком. И вводных данных не хватает

Alexandr-Kryuchkov Автор вопроса
Sebor▂▅▇█▓▒░
Так первоначально не ясна вся задача целиком. И вв...

Ну я соглашусь с тобой. Вот выше коллега скинул документ, который меня пока на данный момент устроил. Пойду с ним с руководству, когда спросят меня про мои мысли. Я сейчас про нему пробежался по диагонали, и это похоже на то, что мне надо. Даже в условиях текущих невнятных тз.

У клиента должна быть базовая модель базы с миграциями на отдельном инстансе, с новыми миграциями приходящими с релизами кмк По крайней мере для SaaS мы так проектировали

Oleg
У клиента должна быть базовая модель базы с миграц...

Подозреваю, что они инфру клиентам дают и ему надо продумать как клиентов ограничить друг от друга

Все базы очень разные. И для каждой куча бест практик) Если брать ваш пример с RDS (MySQl & Postgress) то можно изолировать клиентов на вскидку: 1) RDS кластер per client 2) database внутри кластера per client 3) schema внутри database per client 4) поле tenantId в каждой табличке 5) etc. В каждом случае будет отличаться способ работы с данными, уровень изоляции, механизм миграций и т.д. Разделение по регионам для чего именно? Для изоляции? Или для повышения отказоустойчивости? Или чтобы снизить летенси для клентов из разных стран? Вобщем лучше всего начать с формулировки конкретных требований к решению.

Alexandr Kryuchkov
ну сейчас есть backend который живёт в кубере и по...

Часто сталкивался с тем, что под крупных клиентов пилится свой о дельный акк и не один. Они скорее всего сами это запросят, если энтерпрайз

Alexandr-Kryuchkov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
1. https://www.kaggle.com/code/ahmadrezagholami2001/housing-estimation-linear-regression 2. https://www.kaggle.com/code/ahmadrezagholami2001/uncovering-quality-in-wines-logis...
Ahmadreza
1
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта