Cloud Computing IMHO is a key part of the next generation of modern computer systems today. There are many definitions of “Cloud Computing” depending on who you are talking to, but in the purest sense it is one or more servers operated by an independent hosting company where you host Web 2.0 based applications.
You pay a monthly fee that varies from vendor to vendor but includes the use of dedicated or virtual servers (processor and memory). You most likely pay a fee for data storage and bandwidth to access the server. The most reputable vendors provide capacity on demand configuration options where you can use an on-line configuration tool to add resources as needed, and some will even dynamically increase your resources based on your workload.
In the purest form of Cloud Computing, you rent raw computer resources from a hosting vendor such as LiquidWeb or Rackspace. These vendors provide all of the hardware, operating systems (usually Linux or Microsoft Windows with SQL Server and other resources) as well as all of the disk storage and bandwidth you need to run web based applications. Many of these vendors also provide the LAMP stack with PHP, MySQL or Tomcat and Java along with other open source middleware such as web content management systems like Joomla or Drupal. In other words they provide a completely configured environment upon which you can install application software that you create or that you buy, or obtain from the open source community.
Some people have commented that Cloud sites are vulnerable to attack and you lose control. A reputable vendor will have highly skilled security specialists protecting not only your site but the entire complex 24/7. These specialists are generally of a much higher calibre than any you could afford to hire for a typical enterprise. Additionally, it is unlikely you would be able to afford 24 x 7 protection.
The bottom line for cloud based hosting is that you rent the capacity you need as you need it. You have no worries about hardware or software upgrades, no worry about disaster recovery or high availability. You can be assured that backups are taken and sent off site.
The second level of Cloud is Software as a Service (SaaS) hosted on a cloud server. The reason this is all called cloud is the fact that you have no idea where the servers are, what servers you are running on and simply don’t care. All you know is that your applications are running in a LINUX based environment or Windows. You can run any application that runs on either platform.
Some vendors like Salesforce.com run a private proprietary application on their servers which you access via the web. It is a form of cloud, but not as flexible as using a hosting company with your own software, open source, or third party software in the cloud.
IBM and other vendors are offering hardware software combinations that claim to be providing cloud services. The combination of hardware and software tends to be extremely costly with no measurable advantage over other commercial cloud hosting companies.
Here is a list of 90 cloud computing companies: http://raydepena.wordpress.com/2011/01/01/90-cloud-computing-companies-to-watch-in-2011/
When you combine cloud with open source you have infinite possibilities to replace old legacy systems with state of the art software at an extremely low cost. This model applies to the largest of enterprises as well as extremely small businesses.