Monday, 3 November 2008

Windows Azure: Pricing Idle CPU Time

My past few blog posts have really been focused on developing against the pricing model of Azure.

I don't really want to be thinking about cost efficiency but I do believe in a world of Azure, developers will be very aware of the cost of an application.

Looking at the current azure metrics, it seems that the following will be monitored (and eventually billed, although not in the CTP timeframe).

  • CPU time, measured in CPU-hours
  • Bandwidth for ingress/egress from the data center, measured in GBs
  • Storage, measured in GBs
  • Transactions, measured as requests likes Gets & Puts
  • To be clear the CPU time measured INCLUDES IDLE TIME, whilst this makes lot of sense for the CTP, as essentially each instance of a role is equivalent to 1 VM (against 1 core).  It doesn't make sense beyond the CTP.  This is also the same model that Amazon uses with their EC2 cloud solution.  Unfortunately with this model with Amazon CPU time costs $90 per instance per month (which is pretty expensive).

    I hope Microsoft doesn't follow this model as this can be pretty expensive for the average developer.  However I do get the feeling that the one VM per role model (as used in the CTP) will not be the same model used when it goes production.

    Hopefully Microsoft will look at a model which will combine a cost of running an instance + a CPU Utilization cost.  This would give a low cost solution for developers with services with a low utilization, i.e. we don't really want to be paying for idle instances.

    1 comment:

    Joannes Vermorel said...

    I completely agree with your thoughts on idle CPU. One big advantage of Windows Azure would not having to bother about starting/killing cloud nodes (contrary to Amazon EC2). It would be much better if idle CPU was redeemed, not only for small shops but for large companies as well.