Windows Azure is based on an Operating Expense (OPEX) billing model as opposed to a Capital Expenditure (CAPEX) billing model. The implication of OPEX is that you do not have to expend capital to buy hardware and software or to pay for support staff to maintain it.
That is the good news.
The (potentially) bad news is that “In Windows Azure you are billed when you deploy, not when you run. That means we don’t care about CPU hours – we care about deployed hours. Your meter starts the second you deploy, irrespective of the state of the application. This means that even if you ‘Suspend’ your service so it is not reachable (and consumes no CPU), the meter is still running.”
Especially in a test environment it is important to make sure that your developers do not leave instances of their application deployed to Windows Azure un-necessarily after a testing session.
The PowerShell command script in this blog post can be used to quickly un-deploy all the Windows Azure billable resources after a test is run. Note that it will un-deploy all resources so it should only be used in a pure testing environment. It will iterate through all the services in your subscription ID, stop any deployed service, and then remove it.