Originally posted at http://jimwilsonblog.com/?p=250
A recent article of an interview with the Red Hat CEO touts the benefits of private cloud implementation. See it here.
This debate is usually short sited and doesn’t include all CAPEX & OPEX cost associated with the “Free OS” type of cloud operations. Also, the reusable components from more sophisticated partner communities afford both AWS & AZURE much greater long term valuations when responsible enterprise accounting methods are used to drive the cost-benefits analyses. The proper engineering of a cloud infrastructure which includes smart VMs well orchestrated by business-demand-level-driven auto scaling will always push the TCO/ROI argument to a public solution for large scale systems.
Microsoft actually has a TCO tool that they can use to estimate TCO of on-premises vs. Azure. There are many considerations when comparing costs of running an on-premises datacenter with full infrastructure, servers, cooling, power, etc. to a cloud-based service like Azure where you pay a cost based on the services consumed such as storage, compute and network egress. It can be difficult to know exactly what typical costs are for your datacenter and what the costs would be for services running in Azure. Microsoft has a pricing calculator available at http://azure.microsoft.com/en-us/pricing/calculator/ which can help assess costs for Azure services and a VM specific calculator at http://azure.microsoft.com/en-us/pricing/calculator/virtual-machines/.
When running on-premises, you own the servers. They are available all the time which means you typically leave workloads running constantly even though they may actually only be needed during the work week. There is really no additional cost to leave them running (apart from power, cooling, etc.). In the cloud you pay based on consumption which means organizations go through a paradigm shift. Rather than leaving VMs and services running all the time, companies focus on running services when needed to optimize their public cloud spend. Some ways that can help optimize services running are: