VM size for Development - how do you decide
Updated: May 14, 2020
If you are like me, sizing a VM for development is confusing. As a result you simply choose the default. All the different choices, D4v3, D2v2, D2v3, DS11v2, B2MS, B4MS, only adds to the difficulty.
The available choices give you different combinations of RAM, CPU and disk (temporary disk) configurations. For a development environment I value the following. Adequate RAM, and CPU. A development server is mostly idle, meaning while you are coding you are not using the processor, at night you are not using the processor and you are the only one using the server. Therefore having a lot of CPU power seems a waste. My experience shows that 2cpu's is plenty for Dynamics business central. Ideally 16GB of ram keeps the debugging moving but I have found that 8GB is sufficient. 8GB machines are half the hourly rate of 16 GB machines (based on US East zone pricing). You can get pricing details here.
The environments listed above are for three different types of machines, Microsoft calls them series. At a glance the second character refers to the number of cpu's. D4v3 for example has 4cpu's and 16GB of RAM (currently $0.30/hr), this is the default used by the BC sandbox wizard. D2v3 is 2cpu's and 8GB of RAM (currently $0.15/hr). Note, these prices may have changed, so check the azure price calculator to be sure.
The B series (burst mode) is ideal for development. I always use this size (although the wizard doesn't offer this choice). Burst mode is perfect for development. These machines are throttled but allow you to get bursts of CPU power when you need it. If you are like me and the server is idle most of the time as you work on your laptop, burst mode gives you even more savings over the typical VM. Next time you need a VM, try out the D2v2 or B2MS these are my recommendations.