|
|
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
Дмитрий Мух Ролг Хупин пропущено... Вроде понимаю, но подробности вызывают вопросы: Когда приложение стартует в Startup надо зарегистрировать все сервисы, независимо от тенанта, поскольку приложение стартует один раз для всех будущих запросов. Например, MyDbContext должен быть зарегистрирован без Connection string, и уже потом на запросе от конкретного тенанта надо определить его стрку подключения и передать ее контексту. Мало того, если предположить, что тенант Х работает с SQL Server, тенант У - с PostgreSQL, то им надо передавать тип сервера и строку подключения. Это когда и как передавать? если бы пример кода или ссылку то было бы проще понять. (Не о себе, о будущих юзерах-читателях форума забочусь ) Вы таки определились, как у вас будет: одна PostgreSQL база, или что? Если одна, то не надо что-то там регистрировать без Connection string, а надо в запросы к БД добавлять ограничения по тенанту. Сервисов, что в рамках одной установки работают то с SQL Server, то с PostgreSQL в глаза не видел. Если вы определились с решением, то опишите его и начните реализовывать. Бум решать реальные проблемы, а не выдуманные. Отдельная база на каждого тенанта. А вариант тенант1 с SQL Server, тенант2с PostgreSQL в одном приложении - может и нет смысла усложнять, но в общем не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 15:36 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
Ролг Хупин Дмитрий Мух пропущено... Вы таки определились, как у вас будет: одна PostgreSQL база, или что? Если одна, то не надо что-то там регистрировать без Connection string, а надо в запросы к БД добавлять ограничения по тенанту. Сервисов, что в рамках одной установки работают то с SQL Server, то с PostgreSQL в глаза не видел. Если вы определились с решением, то опишите его и начните реализовывать. Бум решать реальные проблемы, а не выдуманные. Отдельная база на каждого тенанта. А вариант тенант1 с SQL Server, тенант2с PostgreSQL в одном приложении - может и нет смысла усложнять, но в общем не проблема. О, тут могу рассказать как у нас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 19:57 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
Дмитрий Мух Просто не видел такого никогда. Чтобы одно и тоже приложение, одна и таже бизнес-логика, но вот у одного клиента сделки сохраняются в SQL Server, а у другого в PostgreSQL. В чём может быть смысл? Если это SaaS, то смысла нет. Если это решение, которое разворачивается на ресурсах заказчика, или требуется обеспечить такую возможность, то смысл есть. У кого-то закуплены лицухи на Oracle, у кого-то на MS SQL, а кто-то содержит Postgres Pro Enterprise. Поддержка разных СУБД это всегда большой плюс, так как предоставляет вендору выбор и не принуждает вводить в свою экосистему лишнюю СУБД. Но это и не бесплатно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 22:27 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
hVostt Дмитрий Мух Просто не видел такого никогда. Чтобы одно и тоже приложение, одна и таже бизнес-логика, но вот у одного клиента сделки сохраняются в SQL Server, а у другого в PostgreSQL. В чём может быть смысл? Если это SaaS, то смысла нет. Если это решение, которое разворачивается на ресурсах заказчика, или требуется обеспечить такую возможность, то смысл есть. У кого-то закуплены лицухи на Oracle, у кого-то на MS SQL, а кто-то содержит Postgres Pro Enterprise. Поддержка разных СУБД это всегда большой плюс, так как предоставляет вендору выбор и не принуждает вводить в свою экосистему лишнюю СУБД. Но это и не бесплатно :) Погоди, мы разбираем мультитенант решение, в котором приложение одно, развёрнутое в определённой ОС. А вот хранилища типа на выбор. Приходит к нам новый клиент, мы ему говоторим, что вот вам оно, приложение. Данные, где хранить будете? Если в SQL Server, то с вас такой прайс, а если в Postrgers, то такой. Для меня это какая-то новая модель, чесслово :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 22:56 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
Дмитрий Мух Погоди, мы разбираем мультитенант решение, в котором приложение одно, развёрнутое в определённой ОС. А вот хранилища типа на выбор. Приходит к нам новый клиент, мы ему говоторим, что вот вам оно, приложение. Данные, где хранить будете? Если в SQL Server, то с вас такой прайс, а если в Postrgers, то такой. Для меня это какая-то новая модель, чесслово :) Ну ок. Есть пара идей, где и в этом тоже будет смысл. 1. Всё те же лицухи. И сейчас можно прикупить шаред СУБД. Цена сервиса может варьироваться от СУБД. 2. Решение SaaS, хорошо. Но также может потребоваться и BI с прямым доступом к БД или отчётной копии БД. А у заказчика есть свои BI-щики только на XxxxSql. 3. О чём я говорил, решение может предлагать переезд на мощности заказчика, как потенциальную возможность. Т.е. смысл найти можно, но насколько это будет оправдано, если помножить на затраты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 23:07 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
hVostt Дмитрий Мух Погоди, мы разбираем мультитенант решение, в котором приложение одно, развёрнутое в определённой ОС. А вот хранилища типа на выбор. Приходит к нам новый клиент, мы ему говоторим, что вот вам оно, приложение. Данные, где хранить будете? Если в SQL Server, то с вас такой прайс, а если в Postrgers, то такой. Для меня это какая-то новая модель, чесслово :) Ну ок. Есть пара идей, где и в этом тоже будет смысл. 1. Всё те же лицухи. И сейчас можно прикупить шаред СУБД. Цена сервиса может варьироваться от СУБД. 2. Решение SaaS, хорошо. Но также может потребоваться и BI с прямым доступом к БД или отчётной копии БД. А у заказчика есть свои BI-щики только на XxxxSql. 3. О чём я говорил, решение может предлагать переезд на мощности заказчика, как потенциальную возможность. Т.е. смысл найти можно, но насколько это будет оправдано, если помножить на затраты. То есть мы даём клиенту прямой доступ к БД. Интересно. Почему тогде просто не развернуть сервис на его инфраструктуре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 23:13 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
hVostt, ты сам всегда топишь за то, что хорошие решения на дороге не валяются. Их кто-то уже подобрал и делает на этом бабки. Сервис у нас, а СУБД ваша, что-то я не видел такого :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 23:26 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
Дмитрий Мух То есть мы даём клиенту прямой доступ к БД. Интересно. Почему тогде просто не развернуть сервис на его инфраструктуре? Ну не совсем прямой. Скорее к копии (зеркалу), и то не всей, данные инфры для отчётов не нужны. И только для чтения. Для отчётов это нормально. Не знаю как у вас, но в энтерпрайзе зачастую отчёты это одна из целевых задач ИС. Развернуть сервис на инфре заказчика можно, если эта инфра у него есть. А также табун спецов, которые его обслуживают :) В этом же и смысл SaaS, -- экономия. Дмитрий Мух ты сам всегда топишь за то, что хорошие решения на дороге не валяются. Их кто-то уже подобрал и делает на этом бабки. Сервис у нас, а СУБД ваша, что-то я не видел такого :) Не, я только про отчёты говорю. Ещё ETL до кучи. И это не мои домыслы, у нас есть 3 подрядчика и собственные программные системы. И это всё со всем интегрируется. Часть инфры у подрядчика, часть инфры у нас, но обслуживается подрядчиком, также есть подряд только на разработку, остальное всё у нас. Ну и мы ещё подрядчиком выступаем местами. Хорошие решения в моём понимании подразумевают прозрачность :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 23:51 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
hVostt, отчёты - это уже другой сервис, ты же понимаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 04:36 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
Дмитрий Мух Ролг Хупин пропущено... Отдельная база на каждого тенанта. А вариант тенант1 с SQL Server, тенант2с PostgreSQL в одном приложении - может и нет смысла усложнять, но в общем не проблема. О, тут могу рассказать как у нас. Значит так. В этом варианте надо связать определённого тенанта с определённой базой. Делается это или некой функцией, или хранится в некой таблице, коллекции, конфиге. Что по сути тоже функция (согласно общей алгебре) :) Мы храним информацию о том, на каком сервере и какой базе находятся данные определённого аккаунта (организации, тенанта) в коллекции MongoDB и кэшируем в Memcached бакете. Тот сервис, где реализован подход "Отдельная база на каждого тенанта", у нас использует MongoDB. Соответственно в начале запроса достаём эту информацию, кладём в контекст выполнения. И когда в рамках последнего необходимо что-то получить из данных, то формируем подключение с нужными параметрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 10:42 |
|
||
|
ASP.NET Core Web server: вопрос по структуре
|
|||
|---|---|---|---|
|
#18+
Дмитрий Мух Дмитрий Мух пропущено... О, тут могу рассказать как у нас. Значит так. В этом варианте надо связать определённого тенанта с определённой базой. Делается это или некой функцией, или хранится в некой таблице, коллекции, конфиге. Что по сути тоже функция (согласно общей алгебре) :) Мы храним информацию о том, на каком сервере и какой базе находятся данные определённого аккаунта (организации, тенанта) в коллекции MongoDB и кэшируем в Memcached бакете. Тот сервис, где реализован подход "Отдельная база на каждого тенанта", у нас использует MongoDB. Соответственно в начале запроса достаём эту информацию, кладём в контекст выполнения. И когда в рамках последнего необходимо что-то получить из данных, то формируем подключение с нужными параметрами. ок, ушел этой дорожкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2020, 15:03 |
|
||
|
|

start [/forum/topic.php?fid=18&gotonew=1&tid=1354714]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 177ms |

| 0 / 0 |
