“Utility billing” or “only pay for what you use” are often cited as cost-saving benefits of cloud computing. All that is fine and dandy, but it is still the consumer’s responsibility to turn any unneeded stuff, such as virtual machines, off. In fact, as most of you already know, turning virtual machines off is not enough. Unless you delete them, you will continue to accrue charges.
One way to make sure you don’t leave stuff running unnecessarily is to periodically check your current bill to make sure it is not out of line. Unfortunately, this means logging on to the billing portal, navigating to the page that displays the current balance etc., and doing so on a regular basis. Let’s be honest…we all know how likely that is.
Fortunately, products designed to alleviate the aforementioned challenge are beginning to be appear on the market — even though the market for cloud management tools is still fairly nascent. However, these solutions tend to be “enterprisy” (i.e. targeted towards enterprises that are running large cloud-based applications). We were looking for a simple tool that allowed us to keep an eye on the outstanding Windows Azure balance.
Enter Azure Ticker App.
This app is perhaps the simplest Windows 8 app you can find in the store. Literally the only piece of UI is the live tile that displays your current Azure balance. You don’t even have the need to have the app running!
You will, of course, need to configure your Azure credentials as shown in the screenshot below:
So how does this app work? The design is quite simple as well.
The Azure Ticker App submits the credentials for the Azure subscription to be monitored, along with the channel URL for receiving notifications, to an Azure Cloud Service. The Azure Service is in turn responsible for periodically checking the account balance and sending out notifications if needed.
While the overall design is what you would expect, there is one complication that is worth noting. Currently, Windows Azure does not currently expose a billing API. So how does our service access the Azure account balance? Well…you guessed it right: we web scrape it from the Azure Billing Portal.
Web scraping (web harvesting or web data extraction) is a computer software technique of extracting information from websites. Usually, such software programs simulate human exploration of the World Wide Web by either implementing low-level Hypertext Transfer Protocol (HTTP), or embedding a fully-fledged web browser, such as Internet Explorer or Mozilla Firefox.
The only difference is that we use selenium for web scraping account balance. We fully realize the pitfalls of basing the design of our app on web scraping (the most troubling being the brittleness of the solution, i.e. we will need to modify our code if the Azure billing portal UI is changed). But again, given that billing api is not yet available, we have no other option. We look forward to leveraging the billing api when it does become available.
We have talked about the UI and the design. But you are probably wondering about the security and pondering over questions such as: Why should I entrust you with my Azure credentials? Who will have access to my credentials? Is the service storing my credentials in an encrypted format?
We thought you might be concerned about these. So…here some answers that hopefully alleviate your concerns:
Why should we give you access to our Windows Azure Management Portal?
We need your credentials to access your bill. We will never access your Azure account through the portal using the credentials you provide outside of normal Azure Ticker service operations. The service is fully automated, and does not implement any process that involves alteration of account information of any kind. No human intervention is needed.
Please note that we lookup billing information for the default subscription only.
We understand if you are not comfortable submitting your Windows Azure credentials. Hopefully a future version of the Windows Portal will support some more of delegated access
Where will you persist my credentials?
In Azure table storage. All data is encrypted and only accessible by the automated Azure Ticker Service. We will never share any user data with any third party.
How long will you keep the credentials in memory?
We will store your credentials until you opt out of receiving notifications. If you decide to opt out, you will no longer receive updates until you re-register. Additionally, if we determine that a channel URL is no longer valid, we will remove the credential from storage.
We also welcome you to review the entire code on GitHub.
Who will have access to my code?
Looking up the billing information is fully automated, and no humans ever access your Azure Portal account information in order obtain the latest billing information.
The Azure Ticker App is available for free at the Windows Store. Click here to download!