Monday, May 31, 2010

My Head is in a Cloud

There is a lot of talk these days about CLOUD computing. I have been asking around, even some fairly computer savvy people if they know what it really means. I was amazed that the majority of people I spoke with had no idea, so I thought I would attempt to define it. First of all, here are some of the words or phrases associated with the cloud. "SAP model", "SaaS ", "Off premise computing", "Salesforce.com", "Google Apps", "Amazon EC2", "Web services" and so on. My definition is that The CLOUD is just a simple super classification of all this. It is that the information we retrieve from the internet is coming from some mysterious source out there that we know nothing about nor should we. The truth is, we have been in the cloud ever since the internet became public, although my wife says that I have been in a cloud ever since I was born, but enough about me.

On the internet cloud front, technology to serve the cloud has been improving at a breakneck pace. This steady progression has resulted in a technology available today, which enables a company to never really have to own a computer room or to own an off-site data center or have to purchase any server computers and associated equipment ever again. The server room can be scrapped and made much smaller. All you would really need inside it is a super duper router with a redundant connection to the internet and wireless access for local workstations.

CTOs and CIOs will ask: No more servers or data centers to manage? All I have to do is sign up for a pay-as-I-grow subscription fee which will allow me to upload electronic images of my servers somewhere out there? Redundancy and clustering can happen with a flip of a switch? Backups are made somewhere out there? I can add memory and processing power with another simple flip of a switch? Would it be like calling Rogers to add a new TV channel and then just having my monthly bill increase accordingly? The answer is yes! The technology is out there to do this today. Just Google Amazon EC2 and read all about having virtual servers and data centers.

Similarly on the business software front, there are and have been plenty of software being offered as service for many years now, where the software is being hosted and managed somewhere out there in the cloud. Most of you have used the cloud already. Have you ever used Yahoo mail, Hotmail, Gmail, Salesforce.com, just to name a few? You never have to worry about managing the server uptime, software upgrades, redundancy, server capacity or anything else if you use this type of solution. All you have to do is pay a monthly fee or nothing (in some cases like hotmail) and the provider looks after all the services for you.

Alright, so where do I sign? Well hold on now. I was at a conference here in Colombo where CISCO put on a big show for us. Once I filtered out all the sales jargon, their message really was no different from my claim above, that our “on premise” computer room can be replaced by a router, preferably a Cisco one of course. Cisco and their Cloud partners would take care of the rest. Of course the CIOs from the various big conglomerates jumped up and cried bloody murder. My head was turning to and fro, as if I was watching a ping pong match as these guys pontificated. "We don't have the bandwidth to do this", "What about security and privacy?", "What if the internet is down?", “I need to know where my data is" No way; I am staying with my in-house solutions for some time to come, thank you very much".

These CIOs while they got a little emotional with their resistance, also answered why companies have not embraced the cloud for serving internal applications and servers as fast as the technology is being made available. The three biggest reasons for this, in order I believe are lack of available bandwidth, privacy concerns and concerns that we need LAN access to our critical data if the internet is down. While I agree that these concerns are very real, it is still only a matter of time before true cloud compliance will become a reality in many companies. Recognizing the ROI is a “no brainer”, so I need not get into that. Therefore if we can overcome the three concerns, then I would say that most CIOs would be on board to move their infrastructure to the cloud.

What about now? What can we do today? I would like to suggest to the concerned CIOs, that we do not need to move “cold turkey” to the cloud today, but instead we could get there by taking baby steps. First of all depending on the size of the company you could pick a few critical applications, such as CRM and groupware apps and move them to the cloud. For example moving to Salesforce, sugarCRM or Google apps from internal solutions is simple. Google apps and Salesforce for example are proven applications that work effectively with standard bandwidth offered today. To make the transition to Google services simpler, you can replace your in-house exchange server for example, but still retain the fat client applications on each workstation which manage the Groupware data, such as outlook, and change their configuration to use Google apps instead. Google offers the necessary tools for this, resulting in a cloud friendly Groupware application, but having it completely transparent to your users. Of course you would want to rid yourselves of the fat client application eventually with a browser solution, but that can come in time. What you would now get are fewer calls to your support guys asking "what happened to my email?". It would now be the responsibility of Google and they have a pretty good track record for up-time. Also our in-house guys would have no more concerns about having to deal with managing software upgrades. You gotta keep the faith with the likes of Google and Salesforce. They have a lot at stake, a lot more at stake with this than you, remember that.

What about privacy concerns? That is an interesting one. Many people have no problem having gmail or hotmail manage their email, which by the way generally contains as much confidential information as anything else. However the same people will balk at having a SaaS (software as a service) accounting service. It’s just a mindset guys. Get over it. How do you currently get around the fact that your IT administrator and financial guys can get at any data, any time in your internal system? Nothing in the end is really private if the data sits on a shared server. As I said before, Cloud companies have a lot to lose if private data is leaked. Look at what has been happening with Facebook recently? Google also had some privacy alarms recently which caused an uproar in the community. Facebook and Google are now spending a lot of time trying to appease their customers. Facebook could be marginalized as a company very quickly because of what is happening to them unless they get it together in short order. Salesforce or even a giant like Google could have their business viability threatened big time if they have continued privacy publicity in the media. In the end they will just not let it happen. We just have to go along with the Cloud and join the ride if we want to progress or just be left behind. And that can happen very quickly.

On the computer room front, there is no doubt that bandwidth is the greatest limiting factor. Many companies now have off-site data-centers; they also have servers on an “on premise” LAN. Some good examples of why we still need "on premise" servers are:
1) The need to have local shared hard drives for shared storage.
2) Client server solutions do not work very efficiently if the server component is moved to the WAN.
3) Developers usually need their database servers to also run on the LAN to get quick results. Microsoft is offering a SQL server solution for the cloud already called SQL Azure, so work is being done on that front as well.

While we wait for the bandwidth capabilities to improve, steps can be taken to get cloud ready. Take a few powerful physical servers and slap on a whole lot of memory on them and increase the disk space availability. Then load these servers with hypervisors. Either Xen or VMWare. A hypervisor is sort of a bare bones operating system which manages virtual images of physical servers. The actual host computer then will not have its resources bogged down with the extra requirements of a real OS. Once loaded, consolidate as many physical servers you have into separate images and load them up into the hypervisor. There are ways to even automatically transfer a physical server into a virtual image. You will be amazed as you configure your virtual images, how little processing power and memory you really need for your different applications. It is very easy to tweak your settings, once you go virtual. You will find that you can quickly get rid of all those old servers and find some long awaited space in that clogged up computer room. Eventually you might just be able to have a few servers running virtual images of your entire office or department. This could even include your firewall and dns servers as well.

If you currently have your own “off premise” data centers, you can also start creating virtual images there as well and create your own little private cloud, or you can start moving your servers to true virtual image cloud providers such as Amazon EC2 immediately. Have a transition plan where you pick and chose which servers you want to migrate, eventually moving everything. Make sure you server images are portable. For example if you migrate to Amazon which hosts Xen images, there are many tools out there to easily convert a VMWare image to Xen, if indeed your private cloud images are built for VMWare.
The eventual goal then would be to rid yourself of all your servers in the data center and close off the contract with them. You also want to eventually move your “on premise” LAN based servers to the cloud, once the bandwidth concerns are sorted out. It would be a simple process as you would electronically move the local virtual server images you create now, straight to a cloud server.

What about concern #3? What if the internet is down or my internet connection breaks down? The internet is getting more and more like electricity. We get UPS devices or backup generators to keep us going in the event of a power failure. We can do similar things with our internet connectivity. Get some redundancy by using different providers. The internet is too important for us not to. But of course if there is a catastrophic failure with the internet, then even redundant lines will not help, just like when our generator run out of fuel in the event of a major power failure. But how often does this really happen? Nevertheless, in that unlikely event, what happens? We go home. What happens if we lose internet connectivity today? We can’t do much even now, but eventually we won’t be able to do anything, and we will also go home. That is how life will be. Offline access will be more and more meaningless and our online access will be our lifeline to business, just like electricity. So forget about those concerns about the internet being down and assume you will always have it. Spend your money on internet redundancy.

What about workstation applications? Well that has to be next, doesn’t it? For this transition, it is not so much technology where the challenge lies, but rather getting people to change their ways. Let’s see what Google, Microsoft and the other big boys have in store for us on that front. There is promise ahead, however. My wife, who is far from being a techno user, just had her OS upgraded. I asked her what applications she wanted. She said just FIREFOX and that was all she wanted (I also loaded acrobat reader for her as she does not know it is not part of the browser). She also said she did not want any of her data backed up as she did not have any. She gets all of her info in websites and does all of her documents, emails etc. in Google and never stores anything locally. Unbeknownst to her, she is bigger cloud user than many of the people even in our office.

I believe it will not be long before you see companies who do not ever own or purchase new physical servers again. There will be no concerns about firewalls, backup, systems, VPN etc. We would only need a router and a redundant internet connection. But to get there, we need to start thinking about getting ourselves prepared now.

Or maybe my head is just in a cloud.