It's better, in my opinion, to think of various cloud providers as just another endpoint in the evolving infrastructural API layer available to people and companies.<p>The breadth of options becoming available is fantastic; it's not that long ago that hosting options were:<p><pre><code> * sharing a single physical machine with a group of unknown other customers
* renting one or more single physical machines with preselected hardware/OS
* Purchasing your own hardware and co-locating it in a data center
* Building a data center
</code></pre>
Right now, PaaS providers are taking advantage of all this newly available, ephemeral, programmable computing power to build abstracted services, allowing other developers/companies to take advantage of pooled expertise and resources.<p>I think, if I were building the infrastructure for a company today (which I am helping with, for a lot of companies), I'd definitely eat the additional cost (can be offset quite a bit by reserved instances) and idiosyncrasies (instance degradation, unexpected performance characteristics) of Amazon.<p>I spent years toiling over hardware quirks, flakey SCSI adapters, power outages, failing or aging machines. If you rent boxes, you're relying on SLAs (if you can get them) and sometimes insane costs for an onsite engineer to fix something you broke (I mucked up a firewall config once on leased dedicated hardware. Don't do that. Ouch.)<p>There are similar outages with cloud providers, but depending on which rung of the abstraction you're on, (IaaS, PaaS, etc) you might be in a much better position to redeploy your infrastructure elsewhere if it's a real disaster.<p>The bigger your product/service gets, the more expensive your downtime is (and the more you're spending on engineers to make sure it doesn't go down. Oh, and your hardware has quirks, and your engineers know them - if they leave, they take that knowledge with them).<p>Of course, there are situations where you'll want to minimize financial outlay, run something that's not a "web app", don't mind getting your hands dirty, willing to risk hardware failures, etc. Hopefully PaaS providers will continue to bridge the gap for most people.