Please note this is not official licensing document, this is based on our understanding, we added lot of examples and diagrams to make life easy for people to understand the new licensing model. You should always refer to official Microsoft sources before making purchase decisions.
Original Article Link: http://blogs.biztalk360.com
With BizTalk Server 2013, Microsoft is moving to a per-core licensing model to keep BizTalk Licensing consistent with SQL Server licensing. The licensing changes are critical, because in the recent years the way hardware is been evolved was quite dramatic. Until now BizTalk licensing is pretty much unchanged since 2004 version, back in those days servers typically had dual core and quad core processors. But these days 256 core processors exists and it’s bit insane to just buy one BizTalk server license for that 256 core processor. Oracle and IBM use similar matrix called "Oracle Processor Core factor" and the "IBM Processor Value Unit tables"
What is a core?
First let’s understand this buzz word "Core", what is a core? There are two important aspects to a processor, a physical processor (socket) as shown in the below picture that connects directly to your computer mother board.
and within that single physical processor there will be multiple cores of processors. Example: As shown in the below picture, you can purchase processors ranging from single core, dual core, quad core, hex core, octa core etc.. A computer (server) can also have more than one physical processors present, each physical processor in turn can have multiple cores ( dual, quad, hex, octa etc)
What was the licensing model until BizTalk Server 2010?
Until BizTalk Server 2010 the licensing was very straight forward, you buy processor license based on number of physical processors (socket) present in the server, completely ignoring the number of cores present in each of those physical processors. Example if you have a server with 1 CPU and a server with 4 Physical CPU’s
|Only 1 CPU license required(ex: $40k), in spite of the number of cores in each processor.|
|4 CPU licenses required (ex: $40 * 4 = $160k), in spite of the number of cores in each processor.|
You can see the problem here, let’s assume from the above picture ( 4 physical processor scenario), each physical processor is a dual core CPU. The actual power of the server is 4*2 = 8 processors. If the customer is clever and understand the licensing model correctly, they would have bought a server with either 2 * quad core, or even 1 * Octo core bringing the pricing down from $160k to $80k or even $40k respectively but having pretty much same level of processing power without any compromise (may be little bit).
In the past lot of consultants (including me) have done exactly this for our customers, recommending to buy physical CPU’s with high number of processor cores to reduce the BizTalk server licensing cost, in a completely legitimate way.
What is the licensing model from BizTalk Server 2013?
SQL Server suffered from exactly same problem we discussed in the previous section and as part of SQL Server 2012 release they changed the licensing model to per core pricing. BizTalk Server 2013 which is releasing roughly a year latter is following the foot steps of SQL and switching to per core licensing model. Lets explore bit more in detail.
Publicly advertised pricing
* Pricing subject to change.
Here are key points to consider while licensing a physical server:
- You must license all the cores in the server
- Minimum of 4 core licenses required (if your server has less than 4 cores, ex: single core and dual core machines)
- Licenses can be purchased in pack of two.
- Processor Cores are priced at 1/4 the cost of BizTalk 2010 processor license. BizTalk 2010 processor license was around $44,000, the new core license is $10,835. So if you are licensing a server with only quad core processor present, then the pricing is identical to BizTalk 2010 pricing.
- Actual number of core licenses required may vary based on processor type and core factor. Let’s see that in detail in next paragraph.
Calculate the number of core licenses required for Physical Server
There are 2 main factors you need to consider while calculating the number of core licenses required for a physical server.
- Number of cores in the server
- Core factor for the processor type
Identifying number of processors/cores in your server
The simple and straight forward way to identify the number of processors in the sever is by executing msinfo32.exe from your command prompt, which will list count of physical processors, physical cores and logical cores as shown in the below picture
In the above picture there are 8 logical processors because hyper threading is enabled on this machine (4*2). Hyper threading is not relevant for physical server licensing. But it will impact when you are licensing your virtual environment (individual VM’s licensing). We will cover it bit later.
Identifying the processor type and core factor
You can use the same technique as above by running msinfo32.exe command and check the system type to verify what type of processor you are running. The next step is to use the following core factor table to calculate the actual number of core licenses you require for the processor type.
Lets see this with a concrete example. In the below pictures we have 2 physical servers, each containing 2 Hex Core processors, the first server is equipped with Intel Xeon processors and the second server is equipped with AMD Opteron processors. At the face of it, they both may look like identical configuration, but Microsoft deemed certain AMD processors to be less powerful than the Intel processors. This is where the core factor of processor type comes into picture.
Intel Server: 12 * 1 = 12 core licenses required (since the core factor is 1)
AMD Server: 12 * .75 = 9 core licenses required (since the core factor is .75)
So based on the calculation, if we compare the new 2013 pricing with the old 2010 pricing, it will look as shown below.
|Server 1 (Intel Processor)||2 * $44,000 = $88,000||12 * $10,835 = $130,020|
|Server 2 (AMD Processor)||2 * $44,000 = $88,000||9 * $10,835 = $97,515|
There are couple of important things to be noticed.
- Hyper threading is never considered for physical servers.
- Core table is only used for physical servers. For virtual servers, don’t confuse with core table. We will cover virtualizing in later part of the article.
Based on the explanations above, the new "Per Core licensing model", the net price impact to individual customers will vary based on how they deploy BizTalk Server 2013, their current capacity, and their future needs. For customers who are running BizTalk Server software on processors with four cores or less, the license cost for BizTalk Server 2013 remains consistent with BizTalk Server 2010, as core licenses are priced at one quarter the cost of a processor license. For customers running servers with higher capacity processors, licensing cost will grow with the increased power of their hardware.
Licensing Virtual Environments
BizTalk Server 2013 offers expanded virtualization rights, options and benefits to provide greater flexibility when deploying in virtual environments. When deploying BizTalk Server 2013 in a virtual environment, you have the choice of licensing either individual virtual machines as needed or to license for maximum virtualization to support highly virtualized and private cloud environments.
Individual Virtual Machines
As server hardware gets more powerful, it will become more common to use a fraction of the server’s computing power to create new BizTalk servers VM’s. As shown in the below picture, you’ll have a powerful host machine running multiple VM’s (SQL, Web, CMS etc) and you’ll provision one or more BizTalk Servers.
In this case since you are not utilizing all the processors in the physical host server for creating BizTalk virtual machines (VM’s), you only need to license the logical core processors utilized by BizTalk VM’s. Basically you need to buy core license for each virtual core allocated to the virtual machine (minimum of 4 core licenses per VM). In the above case for "BizTalk VM #1" you would have bought 4 core licenses, since minimum of 4 core licenses are required (even though you only have 2 cores allocated) and for the second VM "BizTalk VM #2" you would have bough 4 core licenses.
Each licensed VM that is covered with Software Assurance (SA) can be moved frequently within a server farm or to a third party hosting provider or cloud services provider without buying additional BizTalk Server licenses.
For customer who want to take advantage of full computing power of the physical host server and have very dynamic provisioning and de-provisioning of virtual resources further savings can be achieved by licensing all the cores in the physical host server. Once all the cores are licensed, then customers will be able to deploy an unlimited number of virtual machines on the server and utilize the full capacity of the licensed hardware.
Example: Imagine you have bunch of test BizTalk environments in your organisation like SIT, UAT, Staging, Pre-production, Emergency Bug Fix etc., then it will be much simpler option to license all the cores in the physical host server and create as many virtual test environments as required on that particular server. In the below setup, if you have purchased 16 core licenses for all the processors in the physical host server you can provision BizTalk VM’s in various different ways
In the above scenario if you have enabled Hyper-threading in the physical server, then you’ll have 32 logical cores instead of 16. It could be an option if you want to more BizTalk environment isolate from each other but not really worried about performance. Once your physical cores are fully licensed then it’s worth taking advantage of Hyper-threading.
Hyper-threading on a individual virtual machine licensing may not be a good option, since you may be paying more for the less processing power.
Virtualization, Hyper-Threading and License impact
When you are licensing all the cores in the physical server then there is no licensing impact with Hyper-Threading. But when you are licensing VM’s you need to pay attention to the Hyper-Threading.
In a virtualized environment, the compute capacity limit is based on the number of logical processors – not cores, because the processor architecture is not visible to the guest applications. For example, a server with four sockets populated with quad-core processors and the ability to enable two hyper-threads per core contains 32 logical processors with hyper-threading enabled but only 16 logical processors with hyper-threading disabled. These logical processors can be mapped to virtual machines on the server with the virtual machines compute load on that logical processor mapped into a thread of execution on the physical processor in the host server.
Typically Hyper threaded processors or not like of like power compared to core processors, So you may want to disable hyper-threading when the performance per virtual processor is important. One can enable or disable hyper-threading using a BIOS setting for the processor during the BIOS setup, but it is typically a server scoped operation that will impact all workloads running on the server.
Maintain a licensing spread sheet for all your resources
Now the licensing model is getting bit more intense and it’s worth keeping a note of all your resources, servers, processors, cores, etc. in a simple spread sheet like this.
You can download the BizTalk Server 2013 – License Maintenance spread sheet here.
We still didn’t cover certain areas in this document, which we may revisit in the future. Example: Not explaining in detail about the Standard license cost. Software assurance, Enterprise Agreement, EAP etc.
This articles is been written based on various inputs, through direct contact with Microsoft product group, the contents they provided, publicly available content and also analysing SQL server licensing changes. Here are the few articles we referenced
- BizTalk Server 2013 Licensing Datasheet and FAQ
- SQL Server 2012 Core Factor Table
- Introduction to Per Core Licensing