OpenStack has gotten a lot of attention the past few months. As well as it should as it’s an ambitious project. The question that I constantly ask, “What is the impact to the enterprise of these IaaS solutions.” In theory when the OpenStack project is mature I should be able to move workloads from my private cloud to an OpenStack provider’s public cloud using my OpenStack console. But the maturity of the OpenStack platform isn’t there which got me thinking of a bigger question. Is Infrastructure as a Service (IaaS) as a platform something I can move my existing enterprise services?
There’s no doubt that PaaS, and SaaS solutions have a place in the traditional enterprise. If you are looking for a new ERP, a great case can be made for either PaaS or SaaS. However, when you look at traditional enterprise workloads that you want to implement or migrate to a IaaS provider the story changes considerably.
I consider the traditional enterprise as a medium to large organization with an established IT system. When you look at this definition I’m hard pressed to find a use case for moving workloads from the enterprise data center to a IaaS cloud. Before, I get the folks at HP Cloud, Rackspace and VMware worked up let’s take a look at the fundamentals of IaaS and what use cases they apply best.
First let’s take a look at what defines a cloud service. For a service to be considered a cloud offering it must have the following attributes:
- User Self Service
- Accessible via a broadband service
- Built on shared resources
- Measured Service
When we look at IaaS, Amazon’s AWS fits nicely into this definition. It’s definitely elastic as it’s one of their biggest selling points. In respect to self service if you have an e-mail address and credit card you can spin up an instance without ever talking to anyone. It’s accessible via broadband including VPN type networks. It’s built on a shared infrastructure and most importantly it’s a measured service.
One of the major perceived advantages to cloud computing is cost. The nature of the applications residing on IaaS are different from those of PaaS and SaaS. SaaS especially lends itself to a “pay for what you use” model. If you have 1000 e-mail accounts today you pay for 1000 e-mail accounts. If that changes to 900 e-mail accounts you pay for 900 e-mail accounts. AWS has this same model for IaaS. If you need 300 Ghz of CPU and 1TB of storage for an hour you pay for only the 1 hour of use. The problem is that this model is geared toward cloud aware applications and developers.
If I have an application that benefits and is designed to take advantage of multiple instances then the AWS model works well. For example during periods of high demand, I can spin up 10 more instances of my application server. When the demand subsides, I turn off the instances. Thus, I don’t have to build out for my surges and therefore save costs on overall compute. But traditional enterprise applications are not built this way. Generally speaking, if I need to go from supporting 1,000 users to 1,500 users I upgrade my server and become stuck with this fixed asset until I replace it. Also, to take advantage of paying only for the CPU, Memory and Storage that you are using the virtual instance must not be running. If we take a look at a traditional enterprise service like a simple file server, how often do you turn off your file server? What about your messaging server or utility database servers?
These two attributes of the existing enterprise systems are examples of why IaaS isn’t making headway in the Enterprise.
The Enterprise Needs a New IT Service Model
The problem isn’t the IaaS model. The problem is that we try and shoe horn an old service model into a new delivery mechanism. When looking at your workload the idea isn’t “Will running my existing messaging service in IaaS be cheaper/more reliable?” The question is how do I want to provide messaging to my end users? When you answer that question you can then begin to look at different delivery methods that may include IaaS, PaaS or SaaS. We have to change our way of thinking around these traditional services to reap the benefits of cloud computing.
Your thoughts? Have you dismissed cloud computing due to it’s perceived costs vs. self-hosting?