Estou perguntando isso em um sentido muito geral. Tanto da perspectiva do provedor de nuvem quanto do consumidor da nuvem. Além disso, a questão não é para nenhum tipo específico de aplicativo (na verdade, a intenção é saber quais tipos de aplicativos / domínios podem se encaixar em qual bloco de nuvem -SaaS PaaS IaaS).
Meu entendimento até agora é:
IaaS: Hardware bruto (processadores, redes, armazenamento).
PaaS: SO, Softwares de Sistema, Framework de Desenvolvimento, Máquinas Virtuais.
SaaS: Aplicativos de software.
Seria ótimo se Stackoverflower pudesse compartilhar sua compreensão e experiências do conceito de computação em nuvem.
EDIT: Ok, vou colocá-lo de forma mais específica -
Amazon EC2: você não tem controle sobre a camada de hardware. Mas você pode escolher a imagem do SO, Dev Framework (.NET, J2EE, LAMP) e o aplicativo e colocá-lo no hardware EC2. Você pode implantar aplicativos desenvolvidos com Google App Engine ou Azure no EC2?
Google App Engine: você não tem controle sobre hardware e sistema operacional e obtém um Dev Framework específico para construir seu aplicativo. Você pode pegar qualquer aplicativo Java ou Python existente e portá-lo para o GAE? Ou vice-versa, os aplicativos que foram desenvolvidos no GAE podem ser retirados do GAE e transferidos para qualquer servidor de aplicativos como o Websphere ou o Weblogic?
Azure: você não tem controle sobre o hardware e o sistema operacional e obtém um Dev Framework específico para construir seu aplicativo. Você pode pegar qualquer aplicativo .NET existente e portá-lo para o Azure? Ou vice-versa, os aplicativos que foram construídos no Azure podem ser retirados do Azure e transferidos para qualquer servidor de aplicativos como o Biztalk?