One of the most common complaints about Azure Virtual Machine (VM) pricing is that it’s too expensive for small workloads. For custom web applications you could share an App Service Plan, which is great if the app can be hosted within Azure App Service. However, if your workload needs a full VM, then there wasn’t really a great option unless you were willing to share a VM with multiple applications. This can pose many management difficulties. Thankfully, Microsoft has been listening to feedback of wanting an even more cost effective and affordable cloud for smaller workloads too. The Azure B-Series VM sizes are the answer to this, and instead being “just cheaper VMs” they offer an innovative advancement to Infrastructure as a Service (IaaS).

Burstable VMs

It’s been assumed for a long time that eventually the older VM instance sizes like the old A-Series would eventually just become cheaper, or possibly a new VM Series would be introduced based on some kind of cheaper CPU hardware. Instead, Microsoft has introduced the new B-Series that, stated simply, offers partial or fractions of a CPU to be allocated. That simple definition isn’t the entirety of how the new “burstable” B-Series VM sizes are implemented.

Many smaller workloads do NOT utilize the full CPUs allocated. These workloads are generally over provisioned and waste money. These are workloads like web server, small databases, as well as development, test or QA environments. Previously there weren’t any great hosting options if these required a dedicated VM.

These types of smaller workloads are great candidates for what Microsoft is referring to as “burstable” workloads. These will use a fraction of the CPU allocation most of the time, with only infrequent bursts of using 100% CPU for only a short time when necessary. It’s generally overboard to provision and pay for 100% CPU when it’s rarely utilized.

“Burstable” VMs will use a fraction of the allocated CPU power, then burst to use 100% infrequently for short periods of time.

Azure B-Series VM Sizes

As an answer to solve the hosting problem of “burstable” workloads, Microsoft has introduced the B-Series VM sizes. This essentially takes the ideas of “consumption plan” pricing from Serverless compute with Azure Functions and merges it with Virtual Machines (VMs). This allows for a form of “pay for what you use” to apply to partial CPU Cores in addition to full VM instances together in a way that really can help save hosting costs in a much more extreme way.

As a result, the B-Series VMs enable a far cheaper hosting option for lightweight VM workloads. The following screenshot from the Azure Portal shows the estimated cost per month in USD for the 6 B-Series sizes currently in Preview (at the time of writing this article.)

More Affordable Azure VMs with "Burstable" B-Series 1

That’s right, a dedicated Azure VM for less than $5/mo!

Credit Banking and Bursting to 100%

The B-Series VMs work much differently than the other VM Series. You pay for a baseline of vCPU performance utilization with the number of vCPU cores allocated. Then you will accumulate and bank a number of credits during the time when you only need that baseline vCPU utilization percentage. Then when the VM needs to burst to 100% it can do so when necessary and spend the banked credits to do so.

The B1S VM size has 1 vCPU allocated with a baseline CPU performance of 10%. This means that generally the VM can use up to 10% CPU utilization of that single vCPU. Then, the B1S VM will bank 6 credits per hour up to a maximum of 144 credits that can be banked when utilizing less than the base performance. Then when the VM needs more than 10% CPU it can burst up to use more CPU performance and spend the banked credits to do so.

Looking at the math of the B1S VM size, it’ll be able to accumulate up to 144 credits in a 24 hour period at the rate of 6 per hour. This means that the B1S VM size will be able to burst to 100% CPU performance utilization once every 24 hours.

The B8ms VM Size has 8 vCPU’s allocated with a baseline CPU performance of 135%. This means the baseline allows for the utilization of 1 vCPu at 100% and a second at 35%, essentially. Then the B8ms can bank credits at 81 per hour. After credits have been banked, the B8ms size can then burst to 100% of it’s 8 vCPU’s once per day; that’s a total CPU performance utilization of 800% in burstable capacity!

Here’s a list of the 6 B-Series VM sizes available currently in the Preview:

Size vCPU Baseline Perf Burstable Perf Credits Banked / hr Max Banked Credits
Standard_B1s 1 10% 100% 6 144
Standard_B1ms 1 20% 100% 12 288
Standard_B2s 2 40% 200% 24 576
Standard_B2ms 2 60% 200% 36 864
Standard_B4ms 4 90% 400% 54 1296
Standard_B8ms 8 135% 800% 81 1944

The new B-Series is as cheap as less than $5 USD per month for the smallest size; the Standard B1s. This offers a dedicated Azure VM for you to use for small, lightweight workloads. Although, the Standard B8ms offers 8 “burstable” vCPU cores for approximately $139 USD per month offering a baseline of 135%. This means the B8ms at its base is similar to other Single vCPU Core VM sizes, but it has the additional capability to burst to 800% vCPU performance utilization and use all 8 Cores at 100% each for short periods.

This is really a great innovation to VM hosting in the Microsoft Azure cloud. It will certainly enable many more usage scenarios, as well as new utilizations for old workloads that have generally been over provisioned before the introduction of the B-Series VM sizes.

Microsoft MVP

Chris Pietschmann is a Microsoft MVP, HashiCorp Ambassador, and Microsoft Certified Trainer (MCT) with 20+ years of experience designing and building Cloud & Enterprise systems. He has worked with companies of all sizes from startups to large enterprises. He has a passion for technology and sharing what he learns with others to help enable them to learn faster and be more productive.
HashiCorp Ambassador Microsoft Certified Trainer (MCT) Microsoft Certified: Azure Solutions Architect