I wrote about my presentation at BIF in Prague two weeks ago. I focused at the difficulties we are facing on the way to virtualization and cloud computing at small and medium companies. This blog is the first part summarizing some of the messages.
I have started with a question: what is the CIO's task? And I have also provided the answer: save money, make the IT highly available, secure and have a plan for disaster recovery. First what comes to our mind is to save money is virtualization. Next is the cloud. The reason is simple, companies have investments in the existing SW and HW and they have to amortize it.
How difficult is it to virtualize the company internal infrastructure? Hard to say but it strongly depends on the quality of standards of administrating, managing SW, and the internal infrastructure. The better is the company IT organized the faster can be virtualized.
However, the reality is sometimes very problematic, because the dynamics of a small company are not always under control. The boss needs some performance graph and he needs it immediately. This makes the developer to use the fastest way to launch the app producing requested graph. After a while the company’s servers are full of many different single purpose apps designed in many different styles and using a set of disconnected databases. They are used randomly, some of them got forgotten or obsolete, but everybody is afraid to delete anything. The data and the mess grow. It is not simple to virtualize in such environment. On the other hand the savings can be bigger.
The first step to effectively introduce virtualization is to profile applications and servers. This is also the best time for consolidation of the SW. The company needs to understand how many applications they need, what is their usage, how many clients they need to support, what is the seasonality, how much CPU and memory the apps require, what is the necessary availability, how critical is the application for company etc. Some of the apps are good candidates for virtualization, but not all. For example, there is no reason to virtualize apps requiring lot of resources and utilizing the whole server well.
The biggest virtualization gain comes from combining apps with non-overlapping profiles. Typical web app has the peak 8-10 times higher then the average load. If we can group applications with different seasonality, with non-overlapping peaks, we can run several of them on one box and achieving higher server utilization. To achieve this goal we need to configure the VMs resources for the peak performance, but expecting that most of the time they will require only the average load. Aggregation and multiplexing of apps with dynamic resources requirement on one box may lead to achieving utilization of up to 70%, may be even higher. This will help us to save some of the servers.
For most of the companies the biggest problem is to organize properly and cleanly all business applications. In addition, the company may have problems to run the VMs on old HW, the networking may need to be upgraded, the SAN may need some update or changes, the staff needs to learn new methods for monitoring and managing servers. The existing SW licenses policy needs to be reviewed. Each VM requires new OS, which is no problem in case of open source, but it is not for free with Windows.
Recently, Filip provided a link to an interesting survey about the cloud adoption. Let me mention only three of the findings: 69% of cloud users are planning to use open source SW, 70% of data center managers plan to start with private cloud and 77% IT professionals prefer to deploy their infrastructure using virtualization. This is completely in synch with my blief.