So lately a lot HCI vendors in the market have stated in their marketing campaigns that they bring all the benefits of the cloud to on-premises solutions. Some have also states that they make on-premises cool again. A lot of companies these days are evaluating the benefits that the cloud could bring to their enterprises “should I move my resources to the cloud? can I save money by moving to the cloud?”
Now while cost is one factor to think about, another is of course capacity, less management, ease of scaleability and elasticity/agility of the cloud also while reducing an existing infrastructure which might be harder and harder to maintain in terms of management.
A while back I did a blogpost about comparing an on-premises solution using standard Dell equipment etc and comparing that with Microsoft Azure. Since alot has changed over the last couple of years I wanted to revisit the post with and updated view on the same scenario.
I wanted to compare how a solution would look like for an small buisness who wanted to move their solution from an old traditional three-tier SAN based solution to either a HCI solution from Nutanix or move their resources to Microsoft Azure. Now of couse this post is only focusing on the cost of each component, it will not go in depth on performance differences between the two solutions (apples and oranges) but a couple of factors will kick in during the setup of the scenario, for instance I belive that Nutanix delivers alot of the benefits that the cloud offers will I go more in-depth on this later in the post.
NOTE: The cost estimates are based upon street-prices and does not take into account that;
1: Microsoft licenses have different levels and agreement depending on customer
2: Microsoft Azure has different levels of rebate depending on what kind of subscription is used
3: Nutanix has a channel program where customers purchase from partners which also might have different levels and prices to end-customers and the price listed here might not be 100% accurate.
So we have a SMB based company running about 40 virtual machines, which contains a mix of LOB applications (Win32 & Web) SQL, RDS, AD, DNS, Fileservers etc. They are running their entire infrastructure on Windows so we need to take in account for the windows license as well as RDS license. Also SQL is an important piece of the puzzle in regards to licensing which some of their LOB apps are using. They are also using about 5 TB of total storage, where alot is used for archiving purposes. The customer consists of about 150 total users.
However using RDS in Azure requires SAL license from a SPLA provider therefore I’m going to leave that out of the equation.
The split of the virtual machines is like this in the existing enviroment
Small VM: 2 GB RAM, 2 vCPU, 40 GB Disk : 8 VM
Medium VM: 4 GB RAM, 2 vCPU, 100 GB Disk: 14 VM
Large VM: 16 GB RAM 4vCPU, 140 GB Disk : 8 VM
Fileservers (HA): 8 GB RAM, 2 vCPU, 800 GB Disk: 2 VM
SQL Server standard: 8 GB RAM, 2 vCPU, 250 GB Disk: 1 VM
Total hardware requirements:
RAM: 224 GB
CPU: 82 vCPU
DISK: 4690GB Storage
To make sure that the calculations are correctly when doing the comparisons, I need to take assumptions.
1: The servers will be running 24×7
2: The hypervisor will be Hyper-V (Could also be using AHV) This will be discussed further down the post.
3: Normal Microsoft licensing applies.
4: The solution will be running for atleast 3 years
So how well does an on-premises solution fare compared to the cloud? First of an on-premises solution will need some additional cost.
2: Dedicated network
3: Physical security / Dedicated Cooling
4: Fire protection for datacenter
5: Additional management (Network, Physical Equipment, hardware maintance)
Since these costs are hard to calculate given the price for power is fluctuating, the networking fabric might be somehing that the customer has from before, or if the customer is renting from another third party or etc, but it needs to be taken into account for when doing the cost analysis.
In terms of additional management needed for a on-premises solution using Nutanix might vary, since in this case it is using Hyper-V the customer might also be using System Center for Hyper-V managenent and additional capabilities
Or the customer could convert to using AHV (Nutanix Hypervisor) and remove the System Center licensing cost and reduce the management to a single solution for both Storage / Infrastructure and virtualization layer. But in most cases a customer would not need/require System Center for a small solution like this, and could easily Instead be using for instance 5nine to do Hyper-V management.
As an example I’ve decided to focus on the Nutanix discovery kit 1350-series (which is an entry kit which is quite suitable for SMB based companies) is consits of three nodes in a block (a 2U chassis) This solutions will suffice for this given scenario, in terms of performance on the hardware.
Processor: 2x E5-2620 (Sandy Bridge, 12x Cores, 2.0 GHZ)
HDD: 4x 1 TB Disks
SSD: 1 x 400 GB SSD
This gives about 5,47 TB of usable disk place
The street-price (Which I located just using Google search and may not represent an actual valid customer price) is $35750 This then includes Starter edition and production level support for one year. This now gives us just the complete hardware we need to setup our solution.
NOTE: The price range for Nutanix might be higher or lower based upon currency, specifications, customer and so on.
In order to use Windows on the servers we also need datacenter licenses and user CALs (Source: https://www.microsoft.com/en-us/cloud-platform/windows-server-2012-r2-pricing) for six datacenter licenses it will cost us $36930 user CAL will come to about $5670
Also with the use of SQL standard within on-premises we can use the per core SQL standard licensing which is approx $3,717 per core in 2 core packs. Furthermore, every virtual OSE requires a minimum of four core licenses. therefore we need to pay 7,434$ for SQL standard, of course the customer might have SQL server from before with SA, but to make the cost analysis more correct I’m just going to assume that the customer needs to repurchase SQL server.
Hardware cost Nutanix: 35750$
License cost Microsoft: 42600$
SQL cost 7434$
Totalt cost: 85,784$
So in Azure we have official numbers from the Azure calculator to get the correct pricing, since virtual machine instances in Azure comes in fixed sizes I need to calculate based upon virtual machine instances which resemble the most the existing virtual machines. Note that in Azure, storage is calculated seperately from compute, also other factors like bandwidth, VPN usage and so on will also change the price outcome.
When pricing Azure, there are however some things that need to taken into account because are included in the product.
NOTE: For compute instances in Azure, we can choose which type of OS we want to have running, if we choose Windows it will include Windows Server OS and user CALs as part of the runtime pricing
Small VMs: A1: (HDD, 1 vCPU, 1,75 GB RAM, 70 GB disk: 535$ pr month
Medium VMs: A2: (HDD, 2 vCPU, 3,5 GB RAM, 135 GB disk: 1874$ pr month
Large VMs: D3 v2 (SSD, 4 vCPU, 14 GB RAM, 200 GB disk: 3071$ pr month
Fileservers: D2 V2 (SSD, 2 VCPU, 7 GB RAM, 100 GB disk: 383$ pr month
SQL server: D2 V2 (SSD, 2 VCPU, 7 GB RAM, 100 GB disk, SQL Standard edition license: 979$ pr month (This also includes all necessery CALs)
Total for one month in compute cost: 6,842$
NOTE: Compute instances in Azure there are a few things you need to be aware of, first of there is no SLA or HA in place for single virtual machine entities, if you want to have SLA for virtual machines you need to have a duplicate set for each virtual machine, but still this will not give you any HA features. This will just ensure that Microsoft will not shut down both instances within an availability set.
Also the specifications on the Azure compute instances are a bit smaller then the current enviroment, for instance the A-series is mostly using AMD opteron CPUs, while the D-series v2 is running Intel Haswell CPUs. This also needs to be taken into account for performance of the virtual machines, the D-series run with SSD on the D-drive (Which in Azure is a temporary disk)
Total compute instance cost for 1 year: 82,104$
Now in terms of management, things are a bit simplified. We have the Azure portal were most management is done. Since we can only “see” the resources we have and not the underlying infrastructure.
We can also get glimpse of what the actual cost usage is day by day.
Next we need to calculate the Storage cost, since the cost of Azure is (pay per used GB) As mentioned the customer uses about 5000 GB of storage, which will about 250$ pr month using LRS data redundancy (Data is replicated three times within the same datacenter)
NOTE: Storage transaction are also billed in Microsoft Azure, since the cost is so small I’ve decided not to include it in the calculations.
Totalt cost for one year of storage: 3000$
Now depending on the customer use of applications, mostly relying on RDP for desktop connection to their enviroment, and some web based applications as well. We need to calculate bandwidth usage as well in Azure. Important to note however that only bandwidth going out of Microsoft’s datacenter are billed
First of is RDP, let us say that on average the end-users at the customer have about 5 hours of active RDP work each day. Which will spend about 30 MB of bandwidth each user, each day which is about 4,5 GB of bandwidth each day since they are 150 users. In a month that is about 135 GB bandiwdth (-/+) which is about 11$ pr month. Of course since they are using RDP for alot of their applications the bandwidth cost can also be alot higher for instance with the use of printing, clipboard, file access and so on.
Totalt cost for one year of bandwidth: 132$
Total cost for Azure one year 85,236$
Now the on-premises solutions with just Nutanix Totalt cost: 85,784$ where the whole HCI infrastructure is approx 40% of the cost, the rest is spent on Microsoft licensens. Azure on the other hand is about the same 85,236$ which is pretty close the on-premises HCI solution. Now some points to take in here in terms of comparison.
1: One-time cost:
The cost for the Nutanix infrastructure is one-time cost, also has one year support, the next years are only on renewing the support. The Azure cost will be recurring each year.
The HCI infrastructure has built-in redudancy in terms of virtualization using clustering, if a host goes down, the virtual machine will be restarted on another host, and with the hardware on the discovery kit the HCI solution will have sufficient resources to restart virtual machines on another host. Azure does not have built-in “high-availability” for virtual machines, you need to use availability-set and have duplicate resources available if you want a service to be available when Microsoft is doing maintance, of course this is only useful for stateless solutions and not so much for RDS and such.
Another thing to take in mind is that even though Nutanix has built-in RF2 (Data is replicated twice within the same cluster) Microsoft has RF3 built-in meaning that data is replicated three times within the same datacenter.
The HCI solution has alot better hardware resources and built-in performance. Because of the tiering that Nutanix uses allows all virtual machines to get SSD like performance, while Azure on the other hand has limit in terms of IOPS per virtual machine disk, even though we can use storage space solution to increase performance, or use Premium Disks in Azure, this will increase the cost for virtual machines using this feature.
4: Pay only for what you use
One of the benefits of using Azure is that you only pay for what you use, if the 60% of the resources are RDS server which the end-users only use between work-hours, they could be automated and shut-down when not in use, this will decrease the cost for the virtual machine instances, since Virtual machines are billed for each minute use. The same goes for Storage usage, even if virtual machines are provisioned with multiple disks with 1 TB disks, the customer is not billed for the disks until they start storing data on the disks.
5: Latency & network performance
This is not directly a cost-factor, but the customer needs to be aware of how moving applications to Azure will affect their applications in terms of performance, it might be that moving their web applications (and therefore moving the applications further away from the end-users) might decrease their effectiveness by maybe 5-10% (Increased latency and slower performance on virtual machines) and with having 150 end-users working on their LOB applications this can be a high cost factor to consider.
Another thing to consider is how infrastructure management is done. When moving resources to Azure, Microsoft takes responsibility for hardware/virtualization layer, each virtual machine is still the customers responsibility, we still need to conside that we need to have backup / management / policies / security agent in place even if the virtual machines are running in Microsoft. Backup is also of course an important thing to think about, since we do not have directly management of the virtualization layer in Azure we are dependant on Microsoft to create backup options for us. Now Microsoft has an IaaS backup feature in place for Azure, it does has some drawbacks in terms of single-item recovery solutions, also there we have another cost-factor for each virtual machine instance and datastorage. For on-premises solutions, and using for instance Veeam we have single-item recovery options for SQL, AD, SharePoint and so on, but this is also an option that should have redicated hardware resources outside of the HCI infrastrucutre.
7: Other features built-in
Now even if Microsoft has IaaS features, it also has alot of other features which we as a customer can benefit of, makes things alot easier depending on solution we have. For instance have built-in load balancing options, DNS management, security center, application insight (to do application management) and so on. If we wanted to implement this on our HCI infrastructure we needed to have some third party solutions in place. So this is of course another thing to consider.
My personal conclusion
So based upon the research I did on this blogpost, I found that Nutanix was more cost-effective and gives alot better performance for pure virtualization solutions compared to Microsoft Azure. Now of course there are a lot of factors that needs to be taken into consideration, but with Azure it offers alot more options around the virtualization ecosystem and supporting features like Backup, Load balancing, Security features, Application Monitoring. It also has the option to pay for what you use, which offers alot more flexibility.
Of course but it is difficult to get a 100% cost usage of resources in Azure since alot of the resources usage are variables which might be hard to calculate. On the other hand Microsoft might reduce to cost in Azure from time to time to ensure healthy competition which then benefits the customer as well, but this as I’ve seen has also been the other way around when they increased prices for some features as well.
Now this has been a pretty long post, if you feel that I have miscalculated or left something out I would love to get your feedback on this subject!