Recommended: Sing it, brah! 5 fabulous songs for developers
JW's Top 5
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
In the first half of this article you learned the four attributes that your code must have to take advantage of multicore computers and cloud service platforms. But once deployed to the cloud, what makes your applications soar? Appistry's Guerry Semones brings the cloud down to earth with this overview of the mechanics of scalability, reliability, load balancing, and more, in cloud computing's distributed environments.
In the first half of this article you learned about four important attributes your code needs in order to run most effectively on multicore computers, or in multi-computer environments like the cloud:
But how exactly do these features help you take advantage of cloud platforms? Applications in the cloud inherit capabilities from the underlying cloud architecture -- capabilities like scaling out horizontally, scaling up across multiple cores, availability, reliability, manageability, load balancing, and command and control. I touched on these benefits in my previous article; in this one, I'll explain how cloud platforms deliver these benefits to your code.
First, let's make sure we have a shared understanding of what exactly is meant by a cloud platform; then we'll be able to talk about the benefits of cloud computing to architects and developers.
First, you need to orient yourself in the cloud. Figure 1 categorizes different cloud technologies into simple architectural layers. The breakdown is not perfect, as some products may touch more than one layer, but it's a fine starting point.

Infrastructure-oriented cloud architectures, including infrastructure-as-a-service (IAAS) offerings, provide access to virtualized, on-demand computing resources. Amazon EC2 is a well-known example of this approach. The user can request that Linux and Windows virtual machine instances be created on the fly and billed based on actual usage. The cloud infrastructure allows the user to manage virtual machines (and associated resources, like IP addresses) and their configurations. With EC2, clients do not know where the machines are physically located or what kind of hardware is being used. This is what makes the service cloud-like.
Platform-oriented approaches to the cloud, including platform-as-a-service (PAAS) and cloud application platforms, run atop an underlying cloud infrastructure. Cloud platforms abstract applications away from the cloud infrastructure and provide supporting services and functionality to those applications. The distinction between cloud infrastructure and cloud platforms is a critical one for architects and developers to understand.
Salesforce's Force.com and Google's App Engine (GAE) both typify the PAAS approach. Google App Engine users are solely concerned about the application they are creating to run on the platform. To deliver an application, they simply package it and deploy it to GAE The deployment happens in a single step and the end user does not know whether the application is being run on one virtual machine or 10 at any particular moment. In addition, the application can take advantage of special services provided by the GAE platform, such as authentication or data access.