2016-09-12 2 views
0

Один из моих клиентов разрабатывает решение для нескольких арендаторов. И я работаю разработчиком для автоматизации выделения ресурсов. Решение разработано таким образом, что каждый арендатор имеет свои ресурсы отдельно друг от друга.Azure, SQL Server и база данных

Так, например, одному арендатору потребуется база данных SQL (PAAS), учетная запись хранения и многие другие ресурсы.

Одним из требований, предъявляемых заказчиком, является то, что он хочет иметь X-число баз данных на сервере SQL (логический сервер, а не виртуальный). Я считаю, что это не так, потому что он использует SQL как PAAS.

Итак, мой вопрос: следует ли создавать базу данных SQL Server и SQL для каждого арендатора?

Или

Если мы создаем то SQL-сервер размещения X количество баз данных на этом сервере. когда сервер достигает пределов (базы данных X), создает другой сервер и выполняет ту же логику.

В любом случае, какая разница в том, что он делает из базы данных Performace, Pricing и точки зрения безопасности баз данных?

FYI, Я думаю, что если я размещаю базу данных «X» на одном логическом сервере SQL или если я создаю SQL-сервер SQL для SQL-хоста X, он не будет разница между ценой и базой данных.

ответ

0

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

1.Administrator Пароль для каждого сервера и использовать это, один клиент может иметь доступ к другим базам данных, а также ..
2.Azure имеет предел, сколько DTU может быть ограничена в рамках одного сервера, поэтому если у вас есть много баз данных в рамках одного server..This может привести к некоторым вопросам, как
а.) частое увеличение ДТА просит
б.) несколько раз автоматическое резервное копирование может выйти из строя, если нет доступных DTU (резервное копирование необходимо скопировать всю базу данных, поэтому в этом процессе необходимо, чтобы DTU был равен базе данных w hich подкрепляется)

+0

относительно 1) - клиенты обычно не подключаются к базе данных с паролем ** Adminitrator **, вам по-прежнему предоставляется и рекомендуется использовать возможность создания базы данных, содержащую пользователей в целях применения; 2.a) вы можете использовать Elastic Database Pools, который предназначен именно для решений Multi-tenant; 2.3) не может действительно прокомментировать это, потому что нет документации. – astaykov

0

Ваш вопрос слишком широк, так как есть много мнений и подходов к вашему вопросу.

Но каким-либо образом вы должны взглянуть на эластичные пулы баз данных: https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-pool/, который является функцией, специально разработанной для решений SaaS с несколькими арендаторами.

Ваше конечное решение может быть сочетанием обоих - вы можете использовать один сервер для «больших» арендаторов, в то время как вы можете разместить несколько небольших арендаторов вместе на одном сервере.

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

+0

Единственная проблема, которую я вижу здесь, заключается в том, как мой код основывается на изменениях ... Как я помню, мне понадобится оболочка вокруг DBContext для подключения к Elastic SQL, и то же самое не будет работать с SQL как PAAS. –

+0

Я уже рассмотрел Elastic Pool и отправил этот вопрос в Microsoft, думая о точке масштабируемости, если мы используем эластичный пул (который поддерживает максимум 400 баз данных в едином премиальном пуле), как мы обрабатываем дело, когда ему требуется больше баз данных ? (очевидно, мы создадим еще один эластичный пул, но суть в том, как приложение будет знать, что «ContosoDB» находится в эластичном бассейне 1 не 2? –

+0

И еще один вопрос: есть ли способ, которым мы можем поддерживать как эластичный пул, так и автономную базу данных в (мы можем захотеть, чтобы у некоторых наших клиентов была своя автономная база данных, но для клиентов с низкой стоимостью, она может быть в эластичном пуле). В таком случае у нас нет другого выбора, кроме как сохранить 2 исходных репозитория? –