I feel that Cloud Computing is a huge part of the Next Generation in Modern computer systems.
Cloud computing can mean many things depending on who you talk to. To me Cloud represents a web based system that runs on a vendor like LiquidWeb.com, RackSpace, or Amazon where you can rent dedicated or shared virtual hardware and middleware for a small monthly fee. The vendor provides and supports the servers, operating systems, communications, and in many cases much or all of the middleware needed to run your applications. A cloud hosting company generally has multiple geographically separate redundant data centers with fully replicated systems to provide uninterruptible availability.
If you eat organic food, you know that there is no official definition of "organic"! Likewise, there is no official definition of "cloud". Therefore anyone who provides some kind of hosting or applications run on computers that they own on your behalf can claim to be "cloud" providers.
Captive Proprietary Systems
The biggest one claiming to be a "cloud" provider is Oracle who runs their application software on their machines and rents you the use of their systems. A similar company is Salesforce.com offering their CRM systems which are hosted on their computers. The downside of both companies is the fact that both your data and their applications are stored on the vendor's computers. If you wish to move to another vendor or application package you may have issues in retrieving your data and you most certainly will not be able to utilize their software. In other words you are locked into the vendor and their system. I've only mentioned two large vendors, but there are hundreds exploiting this model.
Note that what I consider a viable alternative to the model described above is Software As A Service where you store data on your systems, but link out and run programs on the vendors systems creating a hybrid, but not true form of cloud.
Disaster Recovery Systems
Some disaster recovery companies including huge companies like SunGard, VMWare, along with many others are offering varying degrees of what they call cloud computing. There are various limitations of these solutions. They are design to provide a disaster recovery solution for companies who have their own hardware.
One company in the Southern United States specializes in supporting IBM Power Systems including support for the IBM i operating system. This company helps you replicate your IBM i data to one of their systems and assists you in switching to their system in the event of an emergency or disaster. The biggest limitation of this vendor is the fact that they have only one data center located in a major Southern city where many of their clients are located. It is entirely possible that a hurricane could destroy both the vendor's data center and their customers data centers leaving the customer completely under water with no back up system.
A major disaster recovery system needs to provide geographically secure computing facilities that most certainly will not be affected by the same event that caused the customer's outage! Think hurricane, earthquake, tornado, and other natural disaster.
Hosting With No Failure Proofing
Some small ISV's (Independent Software Vendors) of specialized software, especially companies who have specialized in OS/400 or IBM i applications written in RPG over the years are now claiming to be "cloud" providers and hosting customer systems on their computers in their single data center with no disaster recovery or realtime back up. These companies lack expertise in hosting as well as cloud or disaster recovery. You are most definitely putting yourself at risk by trusting a small ISV.
Cloud computing as I define it is running your own custom software, third party vendor supplied software, or open source software on computer resources that you rent from a reputable cloud provider. To meet my definition of reputable, the vendor must operate not less than two and preferably more data centers that are geographically dispersed to insure that a single natural disaster will not disrupt your business operations.
Theres vendors should provide all of the hardware and software technical support necessary for you to keep your applications running so that all your users have to do is use an Internet browser or VPN client to access them.
A viable vendor will provide real time data and application replication so that a user may access any computer where your application is located regardless of physical location. In fact the vendor's Internet routing should find the best path to the servers. Your applications may be running on multiple servers at the same time and replicating data between the servers. This approach will provide a 24 x 7 uninterruptible computing environment.
These vendors will enable you to eliminate the people on your payroll that support your computer systems including but not limited to network specialists, computer operators, system administrators, system programmers, etc. often offering you huge savings in labor and benefits. Note these savings are not available at all in the alternatives described above.
Private Cloud and other Variants
While I do not rule out the idea of private cloud, I do see that very few companies can benefit from this as a computer strategy. Generally, private cloud means building your own cloud environment and hosting applications for people within your enterprise. This often means hiring specialists or spend large sums on consultants with expertise in setting up a cloud based environment. You not only continue to support all of the people you currently employ, but will very likely increase your staff.
Do not let cloud computing be an IT based decision! It is most definitely a business decision and must be carefully evaluated with an eye towards risk and cost savings. I am a strong advocate of publicly hosted private cloud environments hosted by a reputable vendor at a reasonable price and eliminating all of the overhead of your computer operations and technical services organization within your IT organization.
Keep in mind that you may very well be able to pay for a switch to cloud in testing and test systems alone. With a could environment you create a test environment when a project requires it and you discard it when you are done testing. You pay only for what you use and the cost disappears upon project completion.
If you are like many companies you may very well be buying computers, and licensing software for testing purposes and this equipment rarely ever goes away! The cost is generally absorbed into the project in substantial amounts.
Be smart buy carefully and you will enjoy the benefits of cloud computing.