Imagine an "infinite computer" with the following characteristics:
- unlimited processing capacity, memory, and bandwidth to be able to handle any traffic load
- unlimited database storage capacity
- 100% reliability -- it never fails
- you'd never have to purchase, maintain, or upgrade any hardware ever again
- you'd never have to purchase, patch, or upgrade any operating system or database software ever again
- you'd never have to worry about capacity planning and scalability, about having enough servers to handle peak traffic loads (servers that sit idle at other times, wasting your money)
- you'd never have to worry about clustering and fail-over protection
- you'd never have to worry about backups or recovery of your server or database
Such a computer actually exists--today, right now--it's called Google App Engine.
Google App Engine (GAE) is the most exciting new web application server technology since the Java Servlet API was introduced in 1997. To emphasize the significance of that statement, consider that New Atlanta has been built around the Java Servlet API, which has been the core technology of our company's products for the past twelve years.
Other cloud computing offerings, such as Amazon EC2, implement only an intermediate level of virtualization. With Amazon EC2 you're still worried about "machines", only now they're virtual machines instead of physical machines. You want scalability? figure out how many virtual machines you need. You want reliability? configure a virtual machine cluster, and make sure they're in different physical data centers (Amazon calls them Availability Zones). And don't forget to apply the latest patches to your operating system and database software--and plan for upgrades when the next versions are released.
Yes, there are benefits to Amazon EC2 and other virtual machine (VM)-based offerings over existing physical environments. Also, because they are conceptually similar to the current physical model, and because they allow you to run existing software unmodified (assuming your software vendors have figured out appropriate licensing models), they make possible an easy migration to a cloud computing environment. However, I can't help but view VM-based solutions as being merely transitional steps on the way to GAE-like models--including Microsoft's Windows Azure--where the proper unit of virtualization is your web application.
Now, imagine that you could deploy ColdFusion (CFML) applications on top of the Google App Engine "infinite computer"...