Tag Archives: virtualisation

heads in the cloud (computing)

the past 2 days, I’ve been attending CloudAsia 2010 here in Singapore. There are many talks about what cloud is, is not, should be, etc… and I see a lot of people probably getting confused, and their best association of what cloud is, is Amazon Web Services.

hmm… so, here’s my point of view about what cloud is…

Cloud Computing is just another model for businesses to engage IT services, be it in house or from external partners/vendors. Technology wise, there’s nothing new, and the coolest thing in the technology stack is virtualisation and storage.

Still, what does that mean? Perhaps the easiest way that most people will appreciate it is by taking some known public cloud offerings. One of my favorite example is Google Apps. Take it for granted that Google Apps will host your emails, documents, calendars, and much more. Everything you use on a day to day basis with Google Apps are hosted on Google premises. If you are primarily dependent on Google Apps, you notice that you will barely have any in-house IT resources. Gone were the days where companies have to invest in their own IT department to run and maintain in house set of servers to host emails, websites, collaboration suites, etc. Now, it’s possible to get all of these services just off the web. There’s no more servers to maintain, hardware failure to worry about. Everything has been pushed on to the cloud provider.

So, Google Apps is an example of SaaS (Software-as-a-Service). You merely subscribe to the service to use of the end product from Google. Another popular example of a SaaS provider is salesforce.com.

There are many layers in the IT stack that Cloud providers can sell you, e.g. PaaS (Platform-as-a-Service), SaaS (Storage-as-a-Service), these are some of the offerings available from Amazon Web Services (AWS). From the presentation today, we learn that PaaS is simply a service where you can purchase and run a VM from AWS which you have complete admin access to. With that, you use it just like any x86 server you have on premise. The difference is that you pay what you use, which one relate to like how electricity is charged. You flick the switch on, the appliance consumes electricity, you pay the $/kWhr. Similarly, AWS will bill you based on the usage of the virtual machine.

Utility based computing is a concept that I’ve heard of since I graduated 10 years ago. However, it did not take off very well until today, when someone coined the term Cloud Computing. Ha! not true, it’s not just because of a brand new phrase that people start to adopt the idea. The very fundamental enabler for Cloud Computing today is the development of some very key technologies.

  1. the proliferation of broadband access for the individuals; without internet broadband to deliver the richness of the web, it will be very difficult to use any service in the Internet cloud.
  2. the development of virtualisation technology; it is because of the current level of maturity of the virtualisation technology that enables a new paradigm of how IT infrastructure can be managed. The shift allows better uptime, ease of management, more efficient use of existing resources and lower total cost of ownership.

Cloud seems to be always associated with better resouce utilisation, balanced workload among the servers, dynamic load sharing, etc… but these only interests the IT folks who manage the infrastructure, not end users. To the end users, it’s becoming more of what sort of web application is available, which they can just “turn on” and use. End users usually do not need to appreciate the underlying technology the enable all these.

For the IT folks who work in organisations that want to go Cloud, it means very different things. For all businesses that want to embrace Cloud, the very fundamental that they need to start is to virtualise their environment. To make use of their existing investment to squeeze every drop out of the resource they have. It’s almost impossible to find any organisation that have IT resources which are 100% utilised all the time, and it’s a good chance that they are idle at least 50% of the time. This is potentially a very good chance to add more load to the servers by means of virtual machines. Once the environment is virtualised, the next step is to become Cloud enabled.

Most organisations will eventually have their own private cloud, which allows business to quickly deploy new services as required. Taking 12 weeks to stand up a new server ready for development and testing, will become a thing of the past. Development teams will be able to self service in deploying virtual machines almost instantaneously. The enables business to become more agile and react even quicker to market demands for the business. This is an example of a large enough enterprise on having their internal private PaaS cloud.

It will become a common sight that many companies will have very much a hybrid cloud model. Some services are provided by internal IT managed private clouds, and some are provided from external public clouds.

To embrace cloud is not simply just dropping everything we have now and sign up to services like Google Apps. That will be too much of a shock to the end users. Some thought and planning have to be done so that the business strategy of IT can be appropriately evaluated and the appropriate choice made. More often than not, the first step is to start by virtualising the existing infrastructure.

Over the next few years, Cloud computing model will be more readily adopted. It will probably be easier for new businesses to go Cloud from the start, but existing business will take time to change. It will be an exciting couple of years watching how new ideas and services will show up on the Internet.

the beauty of virtualization – part 1 – introduction

many people in the IT industry should have heard about virtualization, and for the rest of the world… the closest thing they can think of is probably the movie – Avatar. uhm… not the same…

I’m talking about computer virtualization here. And so what the heck is it really about? To senior management, it’s a promise of lowering cost, faster ROI, better flexibility of the infrastructure, simpler management of IT infrastructure.

To the guys on the ground, it means, faster build and release to production, quick and easy back out plan for patch maintenance, fast cloning of production data for beta testing, no more hair ripping experience due to hardware refresh, and much much more.

Right, so these are some of the benefits that I just touched on. So, still what really is virtualization?

To virtualize a computer/server is simply just an extraction of the running system from a physical box, into just a bunch of files and processes. In a traditional approach of having 1 OS instance per physical box, we move into the realm of having multiple OS instances per physical box. No, this is not multiboot, this is having more than 1 OS instance running simultaneously in each physical box. Imagine, one box, be it a regular desktop or a high end server, running multiple OS at the same time. Each OS instance runs unaware of the other in the same box. They are independent of each other, they can work together, they can do anything just like how they will be as in the traditional model.

For example, you can have a Redhat Linux instance, Windows 2008,  Windows 2000 Server, all running as virtual machines (VM) in the same physical box. You can ssh into the Linux VM and do anything as you may as a regular Linux machine. You can RDP into the Windows VMs, check on running services, eventlogs ,etc… just like any other Windows servers.

To the un-initiated who logs into a VM, they will not know that it is a VM. I behaves just like any regular server.

So, since the VM does the same things as the physical counterparts… what’s the point?

Now, think about this for a moment. In nearly all data centers today, going with the 80-20 rule, we can easily find 80% of the servers running with very low utilization most of the time. Some probably only spike up once a week or month even. So, the rest of the days, it’s just there doing nothing much, and just sucking up power.

So, let’s say we take 10 of such servers, virtualized them and consolidate them all into just 1 box. If done correctly, you can expect the performance of these 10 servers to remain the same. And there you have it, 90% reduction!! Instead of buying 10 servers, you just need 1. Just 1 physical server to run, maintain and suck less power and utility. Lower up front cost, certainly less ongoing utility bills, and real estate cost. In real life examples, we can see conservative consolidations of over 20 servers into just 1 box!!

This is only the tip of the ice berg we have touched on here. Let me go on a little more before this introduction becomes too much.

One very powerful aspect of virtualization that some may take for granted, but makes all these wonderful concepts possible, is that virtualization creates a whole new hardware platform. I see it as a virtual hardware platform. The virtualization layer basically creates a whole new infrastructure, which only exists logically. What this means is that the hardware that the VM OS actually thinks it sees, are virtual. They do not exist, physically.The result is that we have essentially de-coupled VM from the real server it resides on. We can then take a copy of that VM, and allow it to run on any physical box that has the virtualization layer/engine/OS installed.

Such is not possible with OS running on physical machines. The closest thing we can probably do is pull out the harddisk from one server, transfer it to another server with the exact same hardware, CPU, RAM, NIC, HBA, etc… and then boot up. Even then, there are some differences, the NIC MAC and HBA addresses are different. If you transfer the harddisk to other boxes, but with different config. You’ll end up with some nightmare to reconfigure all the drivers, which most of the time is a very very risky maneuver.

If you are following my thoughts so far, you should now realize that virtualization transforms servers to be something portable. With the right setup, you can easily move VM from one physical box to another, even in different locations, and geography. Think server migration… you can even just copy a VM on to a 2.5″ portable harddisk, take it with you on the plane, fly half way round the planet, and load it up on to another box, and it’s up and running in minutes!!

Again, we are still only scratching the surface. The promise of what else can be done is tremendous, and I will write about them in my future posts.

For those who I’ve lost since “Avatar”, I’ll close off with a little tidbit to help you appreciate virtualization a little more. Some of you may have played old Nintento consoles, the Famicom, Super Famicom, Gameboy Advance, etc… There are emulators out there, which allows you to play these old school games on your computer, be it a Windows, Mac or even the iPhone. This in a way, is virtualization, the consoles have been virtualized so that you can play the games on other type of hardware. Though not exactly the same as server virtualization, I’m hoping it’s something more people can relate to.