I have a new definition for Cloud Computing. No, really.
Many discussions attempted to define Cloud Computing from the perspective of the consumer. To the point where asking “what’s a Cloud” has become a private joke for “let’s waste some time”. Eventually, people settled on the NIST set of definitions either because they like them (probability 0.1), they got tired of arguing (probability 0.4) or they want to sell to the government (probability 0.5).
Well, I have another one. Mine is a definition from the perspective of the Cloud provider (or the creator of Cloud-enablement software). And it’s a simple one.
A Cloud is a computing environment in which the runtime infrastructure and the management infrastructure are indistinguishable.
Ask engineers at Google App Engine to separate their code between the runtime part and the management part. They might not even understand the question.
For companies (like Oracle, where I work) that have a runtime division (Fusion Middleware for us) and a management division (Enterprise Manager), both of which ship products, it’s a challenge.
For companies which only offer one or the other, it’s a huge challenge.
For engineers who have to put it all together, it’s a great time to be in business.