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?
fonte
Respostas:
Boa pergunta! Como você ressaltou, as diferentes ofertas se encaixam em diferentes categorias:
EC2 é infraestrutura como serviço; você obtém instâncias de VM e faz com elas como desejar. Os Rackspace Cloud Servers são mais ou menos iguais.
Azure, App Engine e Salesforce são todos Platform as a Service; eles oferecem diferentes níveis de integração: o Azure praticamente permite que você execute serviços arbitrários em segundo plano, enquanto o App Engine é orientado para tarefas de manipulador de solicitações de curta duração (embora também ofereça suporte a uma fila de tarefas e tarefas agendadas). Não estou muito familiarizado com a oferta do Salesforce, mas meu entendimento é que ele é semelhante ao App Engine em alguns aspectos, embora seja mais especializado para seu nicho específico.
As ofertas de nuvem que se enquadram no Software as a Service abrangem tudo, desde peças de infraestrutura como o Simple Storage Service e SimpleDB da Amazon até aplicativos completos como o FogBugz hospedado do Fog Creek e, é claro, StackExchange.
Uma boa regra geral é que quanto mais alto for a oferta, menos trabalho você terá que fazer, mas ela será mais específica. Se você quiser um rastreador de bug, usar o FogBugz obviamente vai dar menos trabalho; construir um em cima do App Engine ou Azure é mais trabalhoso, mas oferece mais versatilidade, enquanto construir um em cima de VMs brutas como EC2 é ainda mais trabalhoso (muito mais, na verdade), mas oferece ainda mais versatilidade. Meu conselho geral é escolher a plataforma de nível mais alto que ainda atenda aos seus requisitos e construir a partir daí.
fonte
Esta é uma excelente pergunta. Divulgação total, pois sou parcial para o Azure, mas tenho experiência com os outros.
Onde eu acho que o Azure se destaca dos outros é a rápida transição do local para a nuvem. Por exemplo -
Espero que ajude!
fonte
Minha experiência na nuvem está atualmente limitada a Salesforce.com
Para operações de negócios padrão e automação, ele fornece um número significativo de recursos que nos permitem colocar os aplicativos em funcionamento muito rapidamente. Estamos nos beneficiando particularmente com o seguinte:
A plataforma NÃO resolve todos os problemas.
Eu não usaria a plataforma para modelar uma usina nuclear ou construir o próximo twitter.
fonte
Os principais pontos da computação em nuvem são economizar custos pagando pelo uso e permitir a implantação imediata de recursos de computação.
Os custos não são puramente x quantidade de centavos por instância por hora. Os custos incluem manutenção, desenvolvimento, administração, etc. O grande benefício da nuvem, em minha opinião, é liberar os clientes de ter que gerenciar qualquer coisa que não esteja dentro do domínio de sua competência de negócios principal . Se eu for uma empresa de seguros, quero que meus desenvolvedores se concentrem em meus problemas de seguro que ajudam a resolver as necessidades de minhas reivindicações, taxas, etc. Prefiro evitar lidar com problemas de servidores de e-mail, servidores de arquivos, repositórios de documentos e administração de patches de sistema operacional , service packs, etc.
Portanto, em minha opinião, os maiores benefícios são derivados das ofertas de nuvem SaaS e PaaS. Deve-se ir para IaaS apenas quando PaaS ou SaaS têm sérias restrições a necessidades específicas (ou seja, preciso instalar um conjunto de componentes COM proprietários e o Azure não oferece suporte a eles).
SaaS é bom para aplicativos que não são a principal linha de negócios do cliente, mas sim um utilitário. Estes são os seus típicos sistemas de mensagens, portais, repositórios de documentos, sistemas de e-mail, CRMs, ERP's, contabilidade, etc. etc. etc. Por que reinventar a roda escrevendo seu próprio quando você pode personalizar um produto de terceiros com bom suporte.
PaaS é excelente para a linha principal de software de negócios que oferece suporte às principais ofertas de negócios das empresas. Evita que os clientes tenham que lidar com o gerenciamento do SO e permite que os clientes se concentrem no desenvolvimento do sistema de negócios - algo que ninguém mais pode fazer pelo cliente.
fonte
Também se pode tirar proveito dos benefícios do PaaS (digamos, Google App Engine) e estendê-lo, às vezes e se necessário, retirando algumas máquinas virtuais de provedores de IaaS (por exemplo, Amazon) para fazer alguns cálculos numéricos e apenas enviar de volta a saída para o Google App Engine.
Dessa forma, você obtém o melhor dos dois mundos - você pode desenvolver aplicativos escalonáveis rapidamente no GAE e, em seguida, sempre pode aumentá-lo executando qualquer programa que desejar nas máquinas virtuais da Amazon.
fonte
Isso está sempre mudando, agora o Windows Azure também oferece suporte a VM, portanto, também é um provedor IaaS agora.
fonte
Agora que tal Free Amazon EC2 por um ano para fazer uma comparação melhor. Veja isso.
http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/
fonte