Один уважаемый аудитор имел смелость заявить, что Microsoft запрещает использование MSDN в кластерах VMware, в которых также присутствуют производственные (production) виртуальные машины. Ссылался он вот на это условие из Microsoft Product Terms:

1. One Licensed User may use any number of copies of the software and any prior version on any device dedicated to Customer’s use for each User License it acquires.
2. Licensed Users may use the software for evaluation and to develop, test, and demonstrate Customer’s programs. These rights include the use of the software to simulate an end user environment to diagnose issues related to its programs.
3. The software is not licensed for use in a Production Environment.

Свою позицию он обосновал так:

  1. MSDN не разрешается использовать в Production Environment.
  2. Лицензии Microsoft назначаются на устройство, а не на виртуальную машину. Таким образом, Production Environment определяется тем, есть ли на этом устройстве (хосте кластера), или могут посредством VMotion переместиться на него, производственные виртуальные машины.
  3. Лицензия MSDN не может быть при этом назначена на устройство, на которое уже назначены production-лицензии.

Вопрос, на самом деле, не такой уж и простой. Где-то в районе 2011-2013 годов я разработал восьмичасовой тренинг по лицензированию и аудиту MSDN по заказу российского офиса Microsoft. В то время не существовало определения Production Environment, и каждый трактовал это по-своему. Позиция официальной «Лицензионной группы» внутри Microsoft постоянно менялась, и к середине 2014 года скатилась к тому, что действительно, если на хосте есть production-машины, то ни в одной другой виртуальной машине на этом же хосте использовать ПО, лицензированное через MSDN, нельзя.

Однако, Microsoft — компания большая. И в ней есть свои «островки» — продуктовые группы. Группа, отвечающая за средства разработки имела несколько иное видение о том, как должны лицензироваться программные продукты, ими рождённые и возлелеянные. После некоторых внутренних препираний и постоянных напоминаний произошло совершенно замечательное событие. В октябре 2014 года в Product Use Rights (документ, предшествовавший Product Terms) было добавлено ясное и однозначное определение Production Environment. Вот в таком виде оно дошло до наших времён (из Product Terms сентября 2019 года):

Production Environment means any Physical or Virtual OSE running a production workload or accessing production data, or Physical OSE hosting one or more Virtual OSEs running production workloads or accessing production data.

Что же здесь произошло? Были, наконец, определены конкретные рамки одной независимой ячейки Production Environment. Это не сервер, не блейд, не устройство, а Среда операционной системы. То есть, продакшн или нет, определяется тем, с какой целью используется именно конкретная виртуальная или физическая операционная среда (OSE).

Несомненно, наличие virtual production OSE на хосте влияет на лицензирование и ограничения по использованию MSDN в физической OSE этого же хоста. Вы обязаны лицензировать его обычными лицензиями, и не можете использовать в физической OSE лицензии MSDN. Однако, это не распространяется на виртуальные OSE на этом хосте. И если они не выполняют производственных задач и не подключены к производственным данным, вы можете объявить их non-production и устанавливать ПО по лицензии MSDN.

Для устранения сомнений, вот определение OSE:

Operating System Environment (OSE) means all or part of an operating system Instance, or all or part of a virtual (or otherwise emulated) operating system Instance which enables separate machine identity (primary computer name or similar unique identifier) or separate administrative rights, and instances of applications, if any, configured to run on the operating system Instance or parts identified above. A physical hardware system can have one Physical OSE and/or one or more Virtual OSEs.

То есть, каждая виртуалка — сама по себе OSE, в своих границах.

А вот тут — интересный тред, в котором можно сопережить, в каком-то смысле, эту замечательную историю.

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

Photo by panumas nikhomkhai from Pexels