Last week I have, enjoyably, be following the discussion going on in the blogosphere and on twitter around the McKinsey report titled: "Clearing the Air on Cloud Computing". The least one can say is that the debate is intense and that arguments diverge. TechCrunch finds the report partly cloudy, Gigaom feels it missed the mark, while Gartner feels it lacks analytical rigor. Google obviously explains why its approach is so much cheaper as redundance is built in software rather than hardware. And I could go on like that. But my question is really whether the debate around the relative cost of a data center and cloud computing really makes sense. Indeed, they are not interchangeable today. So let's go back to basics and look at what problem we are trying to solve. Data centers are not efficiently used today, the average CPU load is in the 10-20% range for most environments, because many software packages are written in such a way that they require one or more specific servers to run.
Companies have started to look at virtualization to address that problem, developing environments in which multiple programs can run as if they were alone. Although not all programs are able to run in virtualized environments, this has been boosting average CPU loads for data centers.
But the cloud goes one step further. Yes it consists in virtualized environments, but running on a very large number of small, standardized and non-expensive CPU's, typically x86 based blades. By using many of those in parallel, large programs can execute. Well, yes, that's the case if the program instructions can be subdivided in small chunks that can run in parallel on many servers. Massive parallelization is the key to take full advantage of the cloud infrastructure. Unfortunately, most operational packages today (ERP, CRM etc.) are not developed with parallelization in mind. This is why such packages often require more powerful CPU's that are available in data centers, but not in the cloud.
Also, there are still a number of issues the cloud does not address yet:
- Cloud standards do not exist, which mean that software needs to be adapted to each environment. We are in a similar situation as we were in the 80's, when each computer brand came with its own operating system, forcing programs to be rewritten to be transferred from one brand to the next one.
- The security features available in most cloud environments are not adequate for an enterprise usage as the appropriate level of security and privacy cannot be ensured.
- The licensing schemes of most software packages are not set-up for a cloud computing environment, hence make it difficult to run them on the cloud (assuming they can run in the environment in the first place)
- The billing mechanism used by many cloud providers, credit-card, is unfit for use in a corporate environment as they allow the bypass of any governance. Not being capable of identifying what runs in the cloud makes auditing very difficult, resulting in potential breach of SOX and Basel II requirements.
- The cloud removes the limit of available CPU power for compute intensive applications, and this is wonderful news for high performance computing services, however, many people forget the limitation of communication bandwidth. Indeed, how fast can large amounts of data be transferred to the cloud and what is the actual cost of doing so?
So, the question is not whether cloud computing will replace the data center, and whether it is cheaper, but rather, how corporate data centers and the cloud can complement each other for greater efficiency and lower cost overall.
To make this effective cloud companies should focus on three key things:
- How to standardize their environments to ensure applications and services can run seamlessly on multiple clouds
- How to improve the integration between the cloud and the data center, and between clouds, from a services, data, but also management and governance, perspective
- How to ensure higher levels of security and data protection
In a previous entry I argued about the need for a "business cloud". New business approaches need to be identified to ensure the proper use of the cloud in an enterprise IT context.
We all recognize the cloud is currently overhyped, but the cloud will not go away. Two things need to be identified, first, what is the cloud really good for, and second, how could it be used to complement the data center when demand exceeds availability, allowing a more efficient use of the data center.
There also is another area where the cloud could really prove useful and this is related to cross-enterprise collaboration. Indeed, in an environment where companies supply chains increasingly become complex and global, while business requirements call for faster response, higher levels of flexibility and resilience, the need for a supply chain backbone information environment increases. But companies do not look at the OEM to own the IT environment required. Placing this one in the cloud would ease collaboration. But today's cloud infrastructures do not have all required characteristics to implement such environments. This is probably another area where work needs to happen. Exciting times, we can really make a difference, but we should not forget the lessons of the past, because, although using different technologies, there are a lot of analogies with what happened in the 80's. Standardization and interconnectivity will become increasingly critical for the cloud vision to truly become reality in large enterprises and supply chains alike.
Posted
04-29-2009 7:09 AM
by
christianverstraete