- Interact with Azure Cosmos DB with PowerShell - Tue, Sep 14 2021
- Azure health services: Track Microsoft cloud outages and maintenance - Wed, Sep 8 2021
- Powerline: Customize your PowerShell console - Tue, Aug 31 2021
Not every business that adopts the public cloud has the necessary knowledge base to create administrative automation solutions itself. For these businesses, VMPower presents a cost-effective alternative.
In a nutshell, VMPower is a product that abstracts away not only the underlying cloud platform application programming interfaces (APIs) but also any programming required to perform automation. VMPower works with the "big three" public cloud service providers:
- Microsoft Azure
- Amazon Web Services
- Google Cloud Platform
VMPower has four marquee features:
- Backup automation
- VM lifecycle automation
- VM access delegation
- Infrastructure as a service (IaaS) resource optimization
Let's take a look at each of these four features individually. Because I am a Microsoft specialist, I will use Microsoft Azure in my examples and screenshots.
Backup automation ^
In Azure, taking VM backups involves configuring a backup policy and registering the VM with a Recovery Services vault. Each backup is a point-in-time snapshot you can restore in whole or in part.
VMPower uses its internet-based web portal interface to simplify scheduling and managing VM backups. But before we do that, you need to log into the VMPower management console.
Create your VMPower user account, register your Azure subscription, enable the free trial features, and off you go. As you can see in the following screenshot, registering your Azure subscription with VMPower creates a service principal in your Azure Active Directory (AD) tenant named vmpower that has Contributor access at the subscription level. Make sure to clear this role assignment with your security team!
Okay, back to backups. VMPower recommends you organize VMs with similar lifecycles into VM groups. You accomplish this in the VMPower console with only a couple mouse clicks. In the next screenshot, I want you to pay attention to the useful metadata VMPower gives me.
Specifically, I have one Windows Server VM and one Linux VM in my 4sysops VMs group. The tool gives me, at a glance:
- Estimated monthly cost
- Public IP address
- VM instance size
- CPU/RAM loadout
- Estimated hourly runtime cost
The Calendar button on your VM group opens a weekly calendar interface from which you can schedule backups. Again, it abstracts all the underlying parts and pieces (Recovery Services vault, backup policy, and so forth) away from you.
In fact, in the next screenshot, you can see the Azure portal reporting what VMPower did to my linux1 VM:
- Created a new Recovery Services vault in the same region as my VM
- Created a new resource group named _vmpower-backups-yourregion
- Created a backup policy using the retention option I specified in the VMPower portal
VMPower also orchestrates the recovery process, though in much more limited way than what is available in the Azure portal or through another API access method like Azure PowerShell or the Azure command-line interface (CLI).
Essentially, all you can do in VMPower is restore a VM disk snapshot to a new disk. You would then need to take over creating a new VM linked to the restored snapshot.
VM lifecycle automation ^
I have written at the Microsoft MVP blog on how you can use PowerShell and Azure Automation to schedule VM uptime and save yourself a lot of money. However, as I said earlier, not every company has staff who are proficient in infrastructure as code and administrative automation.
From the Virtual Machines page of the VMPower web portal (shown in the next screenshot), you can use the four action buttons to:
- View resource metrics (we'll discuss this later)
- Power on or power off the VM
- Access representational state transfer (REST) URLs to power on or power off the VM
- Download a Remote Desktop Protocol (RDP) connection file
You can revisit the schedule page to create schedules to power off, power on, or restart your VM groups. What's even cooler is that the interface also allows you to resize your VMs. Being able to schedule VM resizes as well as power states opens excellent money savings opportunities for you.
VM access delegation ^
Role-based access control (RBAC) in Azure can undeniably get complicated. VMPower's idea is to make it easy for you to share VM group access to teammates who may not have proficiency with native Azure management tools. VMPower calls these management groups teams.
For example, I created a team called Support Desk that grants members the ability to log into the VMPower console and power on and power off VMs in my 4sysops VM group.
IaaS resource optimization ^
Some of the previously described features are also available in the Azure management tools. For me the real value that VMPower offers is its capacity to assess your subscription and offer you cost-optimization tips. The VMPower portal includes the following pages:
- Idle VMs: Shows unused VMs and how much they cost you per month and gives you the opportunity to power them off
- Unused volumes: Lists unattached volumes (virtual disks) and lets you delete them
- VM rightsizing: Provides recommendations on more economical VM sizes based on detected application load
- Savings reports: Graphically depicts how much money you are saving per VM or by source based on your acceptance of VMPower recommendations
In the next screenshot VMPower tells me I save $63.11 by starting my new VM shutdown schedule for my two VMs (this value is prorated because the current date is midmonth).
Azure SQL Data Warehouse support ^
Besides Azure VMs, VMPower also supports Azure SQL Data Warehouse. Specifically, you can use the VMPower scheduler to schedule pause, resume, and scale operations for your data warehouse. This is potentially a big deal because Azure SQL Data Warehouse usage can get very expensive very quickly.
VMPower is priced according to the traditional subscription SaaS product model. Here's the breakdown of how they compute your charge:
- Per VM instance per month
- Per VM snapshot per month
- Per team
- Per team user
Use VMPower's handy pricing calculator to get a better idea as to your specific subscription cost. Their Enterprise SKU gives you a "white label" web portal you can customize with your own corporate branding.
On the minus side, you first have to invest some time to explore all the features of the VMPower portal. Experienced Azure administrators with solid PowerShell skills can likely build some of VMPower's functionality.
Subscribe to 4sysops newsletter!
On the plus side, I think VMPower is a great way for newcomers to the public cloud to become more aware of VM and database runtime costs and opportunities for optimization without having to invest time and human resources in building cloud cost-saving tools. At the minimum, I suggest you register for the free trial (no credit card required) to "kick the tires" and see what optimization possibilities crop up for your business.