Had a very interesting meeting with a fast-moving customer about one of their critical software platform. The project lead was very clear off the top: “We don’t want VM’s anymore. First we try to find SaaS solutions so we just use the software. When we need something more custom and/or we’re writing code, we want PaaS. Only as a last recourse we’ll consider IaaS”.
First, I would describe this as a very mature cloud approach (as you can see the option of running anything in-house doesn’t even make the list…). In general, I think this approach makes a lot of sense.
Still, there are a few specific elements to keep in mind. For example, the main benefits from PaaS are that you don’t have to worry about the underlying infrastructure. For dev/test and rapid prototyping, that makes sense. However in many cases for larger scale deployments you *want* to worry about the underlying infrastructure. Many production environments rely on a significant number of customizations that are simply not available through the default platforms.
In addition, additional and critical elements such as CDN, load balancing and auto-scaling may not be sufficient to answer your needs may not be included in the platform (or only in very basic form).
As always, you should define your needs and requirements as much as possible, and then experiment with the deployment models to ensure your choice lines up with your business priorities.