See previous: Infrastructure as a Service sometimes is another name for old school hosting
At the upcoming Cloud Expo, Bill will cover design patterns for Cloud Computing, however, here is a a light analogy that I like to use to explain what we mean by “Decades old Patterns may not be applicable”.
In the past, performance was king. The faster your applications ran, the better the design. The better the architect, the better the developer.
In the Cloud world, performance is a commodity. With elastic cloud, it’s easy to expand and contract your application to run faster or relax against processing demand. It’s not even just easy – you don’t have to think about it.
Consider this scenario. Let’s say you have a giant image file of a high resolution photograph (assume it’s big, roughly 2 GB) and you have been asked to superimpose a Bend Sinister on top of it (think Ghost Buster’s Logo).
In the past, the fastest way to do this would be using vector based graphics. Take the whole image, toss it up into memory, and then use an algorithm to draw the Bend Sinister on top of the image. Super fast, very performant – you get lots of pats on the back.
Today if you did that in the Cloud, you’d get some frowns. Compute time costs money. Nothing is free in the Cloud. Even storage costs money, and storage is cheaper than compute.
So in the Cloud, this same requirement for a Bend Sinister drawn on top of a photograph, may be best designed by creating two images – one of the original photograph and the other of a Bend Sinister. This keeps the drawing in storage, rather than compute. Cheaper. Then superimpose them onto one another.
There are many scenarios were traditional software design may need to be revisited to maximize cost and efficiency in the Cloud. Usually clever performance design techniques are the first place to start.
Full summary here: Five Opinions on Cloud Computing in New York City