Лицензирование у Майкрософт непростое и многие считают, что в трехзвенной архитектуре могут существенно сэкономить, лицензируя в Microsoft SQL Server только одно подключение сервера приложений, не учитывая подключения клиентов к серверу приложений. Об ошибках, допускаемых при лицензировании по клиентам далее подробнее. По долгу службы иногда приходится разбираться в тонкостях лицензирования ПО этого вендора. Профессионалом в этом вопросе себя не считаю, поэтому комментарии приветствуются, для совместного установления истины.

MS SQL Server имеет несколько редакций, в продуктовой среде обычно используются Standard и Enterprise. Редакции отличаются набором функций и конфигурационными максимумами (кол-во ОЗУ, ядер). Standard ограничен 24-мя ядрами и 128 ГиБ ОЗУ на экземпляр.

Лицензия - это не программный компонент, а право использования программного продукта на обозначенных в соглашении условиях. Это юридический, а не технический термин.

С сайта MS:

Существуют два основных выпуска SQL Server, учитывающие уникальные потребности организаций и отдельных пользователей в функциях, производительности и стоимости:

  • выпуск Enterprise идеально подходит для критически важных приложений, которые требуют выполнения в памяти, расширенной защиты и высокой доступности;

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

Два основных выпуска

Сервер + клиентская

лицензия (CAL)3

Лицензии на ядра2

Enterprise1

?

Standard

?

?

1 Клиенты, которым требуется хранилище данных с интенсивной параллельной обработкой, получают доступ к Parallel Data Warehouse по своим лицензиям на ядра на выпуск Enterprise с покрытием Software Assurance. Parallel Data Warehouse — это часть Microsoft Analytics Platform System.

2 Выпуски, которые продаются по лицензиям на ядра, предлагаются в виде пакетов на два ядра.

3 Согласно модели лицензирования "Сервер + CAL" клиентские лицензии (CAL) требуются для каждого пользователя или устройства, которые обращаются к серверу. Подробные сведения см. в документе Условия для продуктов.

Для новых соглашений обе редакции могут быть лицензированы по вычислительной мощности (парами ядер, минимум 4 лицензии на каждое физическое ядро), лицензия “Сервер + клиентские лицензии” доступна только для Standard. Вокруг этой модели существует заблуждение, что при использовании сервера приложений можно сильно сэкономить, купив серверную лицензию и минимальное количество CAL. При этом используется аргумент, что приложение подключается к БД от имени одного пользователя и им хватит всего 1 CAL. Однако следует внимательно вчитаться в условия EULA - End User License Agreement. Соглашение, которое все внимательно читают мгновенно акцептуют, но именно оно определяет правила использования продуктов. Важно: клиентские лицензии могут приобретаться для пользователей или устройств. Если 75 конкретных пользователей используют 50 конкретных устройств - выгоднее по устройствам. Если 50 пользователей используют 90 устройств (ПК, планшет, смартфон и т.д.) - выгоднее 50 пользователей.

Рассмотрим на примере версии 2017, правила лицензирования других версий отличаются не принципиально. Внимательно изучим документ Microsoft SQL Server 2017 Licensing guide. Раздел Server+CAL licensing содержит важные примечания, одно из них:

Note:The use of hardware or software that reduces the number of devices or users that directly access or use the software (multiplexing/pooling) does not reduce the number of CALs required.

Здесь M$ вводит термин “мультиплексирование” подключений, когда пользователи подключаются к БД не напрямую, а через программного или аппаратного посредника. Этот способ не может использоваться для сокращения количества требуемых лицензий.

В правилах есть пояснение о мультиплексировании (Licensing SQL Server in a multiplexed application environment):

“Multiplexing” refers to the use of hardware or software to pool connections, reroute information, or reduce the number of devices or users that directly access or use SQL Server. Multiplexing can also include reducing the number of devices or users SQL Server directly manages.When licensing SQL Server software under the Server+CAL licensing model, users and devices that indirectly access SQL Server data through another application or hardware device still require SQL Server CALs.

  • Multiplexing does not reduce the number of Microsoft licenses required. Users are required to have the appropriate licenses, regardless of their direct or indirect connection to SQL Server.

  • Any user or device that accesses the server, files, data or content provided by the server that is made available through an automated process requires a SQL Server CAL.

  • The number of tiers of hardware or software between the SQL Server and the user or devices that ultimately use its data, services, or functionality does not affect the number of CALs required.

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

Подробнее (и со сценариями в картинках) о мультиплексировании - на сайте M$.

Теперь давайте сравним цены на примере информационной системы для 200 и 500 пользователей, хранящей данные в MS SQL Server Std с 12 ядрами. Цены ориентировочные, взяты с сайта Майкрософт.

Вариант по пользователям (200): $899 + 200 * $209 = $42699.

Вариант по пользователям (500): $899 + 500 * $209 = $105399.

Вариант по ядрам: $3586 * 12 = $43032.

Как показали расчеты, эта схема выгодна до 200 пользователей, если больше - целесообразнее использовать по вычислительной мощности.

Для публичных сервисов (напр., веб-сервер) схема подключения по пользователям неприемлема, т.к. предел количества клиентов подсчету не поддается.

Лицензирование по клиентам может быть выгодно, если в вашей организации большое количество экземпляров MS SQL Server Standard. В этом случае могут оказаться дешевле клиентские лицензии для всех пользователей и устройств, поскольку на каждый дополнительный сервер в этом случае нужна будет только недорогая серверная лицензия:

Accessing multiple SQL Server databases and/or planning to scale out the use of SQL Server by adding new Standard Edition servers over time. Once customers have purchased the necessary CALs, additional server licenses are only needed for new server system deployments.

Планируя свою ИТ инфраструктуру, не забывайте делать расчеты - они помогут выбрать более выгодный вариант.

Помните, без SA/EA(S) вы будете ограничены той версией MS SQL Srv, какой версии у вас CAL. Если куплены CAL 2017, для запуска сервера 2019 потребуются новые лицензии.

Краткая выжимка из правил лицензирования на русском также есть здесь.

Таким образом, жить по “облегченной” схеме лицензирования можно только до первого аудита ПО, который корпорация Майкрософт периодически проводит среди своих заказчиков (это право прописано в EULA). Напомню, что нарушение авторских и смежных прав - ст. 146 УК РФ.

Резюмируя: схема лицензирования по клиентам требует лицензирования всех клиентов, использующих данные из экземпляра СУБД, а не одного, от имени которого технически выполняется подключение к БД. Если сервер приложений в сумме обслуживает до 250 пользователей, то и CAL необходимо 250. Когда подсчет количества пользователей затруднен или невозможен, Майкрософт рекомендует использовать схему по ядрам.

Всем мира, внимательно изучайте правила лицензирования, считайте и не нарушайте закон! :)