Sunday, May 15, 2011

Cloud Genealogy

We hear a lot about "Cloud" computing or services these days.  What does that mean? 

     Cloud computing refers to applications or data storage that is not local to us - meaning it is somewhere out on the Internet.  Why is this called "Cloud" computing?  Well, technical people know that for decades, in network diagrams, computers have been represented by icons, and networks by lines connecting the computer icons.  This works well for documenting a building's computer network, but when you start diagramming many buildings or even the entire Internet, the connections get to be too complicated to diagram exactly. 

     In the case of the Internet itself, it gets more complicated in that the infrastructure of the Internet is designed to be flexible in the exact network paths data can take to get from you to your destination and back.  This makes the Internet very robust as a delivery mechanism, in that it can (and is specifically designed to) route around a damaged or very slow section by using an alternate route, transparently.  It makes diagramming very difficult, as paths can change rapidly, even many times per second.  So, to represent that uncertain path, network diagrams have traditionally used a cloud-like symbol to signify the Internet.
Cloud network diagram.  Source: Wikipedia

     So, Cloud computing or storage refers to applications or storage that resides "in the cloud" out on the Internet.  Why would we want to do that?  Well, "cloud" providers are able to set up large datacenters to host all of this, which allows them to offer services at very low cost due to economies of scale.  Also, cloud storage is off-site, which is an appealing thing for backing up data in that if your location gets hit with a large-scale disaster such as a hurricane or earthquake, your data is still safe in a remote datacenter location, able to be restored.  Also, these services have staff who can maintain your server or data storage, freeing you from the responsibility of doing so.

     Okay, so this Cloud stuff sounds pretty good!  Why doesn't everyone do this?  Well, last week's Blogger outage is one example.  If you hosted your blog on your own server at your house or office, you would never have known there was a problem blogging.  If you own a Sony Playstation game console, you're probably aware that the Playstation Network has been down for nearly a month!  Just because something is hosted in a datacenter does not mean it's immune to failure.  Most have many redundancies built-in to try to minimize down-time, but nothing is foolproof, right?  Major power outages have been known to take datacenters offline.  Communications lines have been cut, both intentionally and unintentionally.  Human error has also caused major problems as well. 

     Okay, so cloud services have issues, too.  But right now, "Cloud Computing" is a hot buzzword in the IT industry.  All of the consultants are pushing everyone to put their data and hosting in the cloud.  In fact, they often encourage businesses to outsource their IT needs to the cloud.  It's so much cheaper to host a company's IT needs in the cloud than to hire a staff of IT guys to build and maintain your own, they say.  And they might be right, except that what happens when the cloud fails?  Your business goes right along with it, and you have no way to operate until the cloud is back online.  If you host your own servers on-site, you at least have access to immediately work on repairing or replacing the failed equipment.  At the very least, you probably need a minimal IT staff on-site to maintain the local network infrastructure and computers.  Cloud computing services don't deal with the equipment on your premises.  In the cloud, you have to trust that the hosting provider will be diligent in getting you back online ASAP.  Since their contracts usually specify some level of service guarantee, they usually try pretty hard to keep you online, or get you back up quickly, as their reputation and business live or die by that ability to keep you working.

     There's another downside to Cloud Computing: bandwidth.  If your storage is all out in the cloud, there has to be a way to get the data to and from that storage.  That's your Internet connection.  Is it fast enough to handle the load?  Does your Internet Service Provider place a cap on the amount of data you can send and receive in a month?  With the ever-increasing size of our data files these days, this is an important consideration.  If your data is local, it's not an issue as your network is much faster than the Internet, and you have no imposed limit on how much you can use it. 

     Are these downsides enough to rule out cloud storage?  For some, it might be.  For the average blogger?  Not really.  Even many businesses find these negatives are more than offset by lowered costs of operation, or ability to get hosting by someone with the knowledge and staff to properly maintain it.  It tends to work better for small businesses that can't afford an IT staff with the variety of knowledge needed in today's business world.  Large corporations will tend to maintain their own network servers and storage in-house, as they prefer the immediacy of having the data on-site and have the staff to dedicate to keeping it running.  Whether a cloud model works for your situation or not will depend on many factors which you will have to weigh carefully before committing to one method or the other, or even a combination.  Just consider carefully, and don't be pushed into the cloud because some sales guy said it was all the rage and the perfect solution, because as recent events have shown, Cloud Computing isn't perfect!