Earlier this week I tweeted my excitement of using an Azure B-series machine for my Dev VM in Azure. And Jan was curious to know what type I used…
Jan Tielens (@jantielens) April 16, 2018
Which got a response from Sven that I would probably blog on it…
Sven Van den brande (@SVandenbrande) April 16, 2018
Why have a dev machine in Azure?!?
Let’s start off with the first basic question… Why have a dev machine in Azure?!?
- Offload my development resources onto a dedicated machine would free up resources on my devices.
- One development experience when moving devices (laptop, laptop, workstation, surface, … whatever).
- Being able to pick up my work from basically anywhere. And just leaving it open when I roam…
- Not having many services myself is a great plus. Like having an easy backup of my system.
- … and probably a lot more …
What is on the machine? In essence I started from the Visual Studio (Enterprise) 2017 (on Windows Server 2016) image.
Afterwards I added some additional stuff like ;
- Additional browsers for testing ; Firefox & Chrome
- The Azure SDK
- Nodejs & NPM
Just like you would on your own workstation.
What about security?
I access my device via RDP (via Internet). Though do be aware… this is far from the most secure manner! So in an Enterprise setting, do use a secure link.
Next to that, also know that “Just in time VM access” (part of Security Center) is a great capability that will allow you to only open up the RDP port when you need it!
What machine are you using?
Currently I’m using a B2MS machine. This is a machine with 2 cores & 8GB of RAM, from the B(urstable)-series.
This means that I have at least 60% (30% per core) of compute power. And that when I’m above that, I’m consuming credits, where if I’m below that… I’ll be saving up credits.
What does that mean in Euros?
If you are using an MSDN subscription, Dev/Test subscription or Azure Hybrid Use Benefit. Then you can use the Linux pricing. So that’ll start you off at about 3.73€ per month (B1S in RI3Y) to 239.35 € per month (B8MS in PAYG).
In all other cases, you can use the Windows PAYG licensing, which will start at the same 3.725€ with 273.70€ for the B8MS in PAYG.
Which I find a great value for money! At the moment, I’m using a B2MS in PAYG, which sets me back about 60€ per month. If I would run it for 10h / day during the working days, then it would be reduced to about 20€ a month for a dual core 8GB machine. Given, I would be “limited” to 60% of CPU power, though in reality I don’t even need that much…
What’s that credit thing?
From the docs…
The VM accumulation and consumption rates are set such that a VM running at exactly its base performance level will have neither a net accumulation or consumption of bursting credits. A VM will have a net increase in credits whenever it is running below its base performance level and will have a net decrease in credits whenever the VM is utilizing the CPU more than its base performance level.
Nice… So what about reality? When you go to the metrics of the VM, you can see “[Host] CPU Credits Consumed” and “[Host] CPU Credits Remaining”. The consumed (light blue) shows what you are consuming, and the remaining (dark blue) shows what you’ve got “banked”.
In the above drawing I was doing some compute intensive stuff. Though in reality you’ll bar will probably look more like this… 😉
For my dev vm I’ve got some additional things configured…
Saving costs? Auto-shutdown
The 10 hours per workday would save you about two-thirds of the cost… What can do to achieve this? Set up an “Auto-shutdown” at a given hour…
Backup you said?
We all f*ck up… Some a tad quicker than others, though sometimes we just do things we shouldn’t. That’s where a backup can save your *ss.
In my case, I’ve said that a daily backup for seven days is sufficient. Where I can choose to restore the full VM or a file level recovery.
And how does that look like in reality?
Like you would expect… 😉 Where I try to keep my “state” (persistent data) as low as possible. I push my source code as much as possible. This to ensure that it’s continuously tested/build, but also that I don’t lose it by accident.
OneDrive is also loaded onto the machine. So I can easily “copy/share” files from that device too…
And next to that, it’s just the development experience that you are used too…
My first move towards a dev machine in Azure was mainly focussed in terms of freeing resources on my main laptop. Though since I’ve switched, I cannot fathom going back! I can continue developing from anywhere/device for a great value.