Quando si dovrebbe utilizzare quanto segue: Amazon EC2, Google App Engine, Microsoft Azure e Salesforce.com?


88

Lo chiedo in senso molto generale. Sia dal punto di vista del fornitore di servizi cloud che da quello del consumatore. Inoltre la domanda non è per nessun tipo specifico di applicazione (infatti l'intenzione è di sapere quale tipo di applicazioni / domini possono rientrare in quale del cloud slab -SaaS PaaS IaaS).

La mia comprensione finora è:

IaaS: hardware grezzo (processori, reti, archiviazione).

PaaS: sistema operativo, software di sistema, framework di sviluppo, macchine virtuali.

SaaS: applicazioni software.

Sarebbe fantastico se Stackoverflower potesse condividere la loro comprensione ed esperienza del concetto di cloud computing.

EDIT: Ok, lo metterò in un modo più specifico -

Amazon EC2: non hai il controllo sul livello hardware. Ma puoi scegliere l'immagine del sistema operativo, Dev Framework (.NET, J2EE, LAMP) e l'applicazione e metterla sull'hardware EC2. Puoi distribuire un'applicazione creata con Google App Engine o Azure su EC2?

Google App Engine: non hai il controllo su hardware e sistema operativo e ottieni uno specifico Dev Framework per creare la tua applicazione. Puoi prendere qualsiasi applicazione Java o Python esistente e portarla su GAE? O viceversa, le applicazioni create su GAE possono essere estratte da GAE e portate su qualsiasi Application Server come Websphere o Weblogic?

Azure: non hai il controllo su hardware e sistema operativo e ottieni uno specifico Dev Framework per creare la tua applicazione. Potete prendere qualsiasi applicazione .NET esistente e portarla in Azure? O viceversa, le applicazioni create su Azure possono essere estratte da Azure e portate su qualsiasi server applicazioni come Biztalk?


2
Hai dimenticato Rackspace Cloud / Rackspace Cloud Server
phoebus

2
È una domanda interessante ma forse più adatta a ServerFault poiché è più su come distribuire le applicazioni server che semplicemente scriverne una. Forse dovresti pubblicare un secondo post su SF che si riferisce a questo e aggiungere un collegamento da qui a Q in SF. In questo modo, ottieni una visione migliore sia dai programmatori che dagli amministratori di sistema!
Wim ten Brink

@phoebus anche CloudSigma che è meno conosciuto ma è molto scalabile.
AwesomeUser

Risposte:


58

Buona domanda! Come fai notare, le diverse offerte rientrano in diverse categorie:

EC2 è Infrastructure as a Service; ottieni istanze VM e usale come desideri. I server cloud Rackspace sono più o meno gli stessi.

Azure, App Engine e Salesforce sono tutti Platform as a Service; offrono diversi livelli di integrazione, tuttavia: Azure consente praticamente di eseguire servizi in background arbitrari, mentre App Engine è orientato alle attività di gestione delle richieste di breve durata (sebbene supporti anche una coda di attività e attività pianificate). Non ho molta familiarità con l'offerta di Salesforce, ma a quanto mi risulta è simile ad App Engine per alcuni aspetti, sebbene più specializzato per la sua particolare nicchia.

Le offerte cloud che rientrano in Software as a Service spaziano da parti di infrastruttura come Simple Storage Service e SimpleDB di Amazon fino ad applicazioni complete come FogBugz in hosting di Fog Creek e, ovviamente, StackExchange.

Una buona regola generale è che più alto è il livello dell'offerta, meno lavoro dovrai fare, ma più è specifico. Se vuoi un bug tracker, usare FogBugz sarà ovviamente il minimo lavoro; crearne uno sopra App Engine o Azure è più faticoso, ma offre maggiore versatilità, mentre crearne uno sopra a VM non elaborate come EC2 è ancora più faticoso (molto di più, in effetti), ma fornisce ancora più versatilità. Il mio consiglio generale è di scegliere la piattaforma di livello più alto che soddisfi ancora le tue esigenze e costruire da lì.


ciao, attualmente usiamo Godaddy e arvixe ma stiamo pianificando di passare ad Amazon AWS o Azure, ho letto da qui che per AWS sono necessarie molte modifiche al codice, ma come sito di vendita al dettaglio online non vogliamo alcun cambiamento nel codice perché richiede tempo, quindi in questa situazione quale sarebbe il miglior hosting tra cui scegliere?
Shaiju T

13

Questa è un'ottima domanda. Divulgazione completa poiché sono parziale ad Azure ma ho esperienza con gli altri.

Dove penso che Azure si distingua dagli altri è la rapida transizione dall'on-prem al cloud. Per esempio -

  • SQL Azure: cambia la stringa di connessione, carica DB, vai!
  • Le code funzionano in modo molto simile a MSMQ.
  • I blob sono praticamente blob in qualsiasi modo li scuoti ma si ridimensionano come un matto.
  • Il componente di archiviazione delle tabelle è buono perché fornisce un'incredibile scalabilità per le coppie nome / valore, ma richiede un po 'di tempo per abituarsi.
  • Il bus di servizio è il mio preferito dei servizi perché consente una varietà di paradigmi di comunicazione. Due endpoint SB prima tentano di connettersi tra loro, se non possono, quindi instradano attraverso il cloud - rende un'elaborazione molto sicura e scalabile quando i firewall tendono a intralciarsi.
  • Elenco di controllo degli accessi, generalmente associato al bus di servizio per assicurarsi che le persone giuste accedano alle cose giuste, pensa a SAML nel cloud.

Spero che aiuti!


8

La mia esperienza nel cloud è attualmente limitata a Salesforce.com

Per le operazioni aziendali standard e l'automazione, fornisce un numero significativo di funzionalità che ci consentono di far funzionare le app molto rapidamente. Stiamo particolarmente beneficiando di quanto segue:

  • Sicurezza (gli amministratori possono controllare l'accesso a oggetti e campi)
  • Flusso di lavoro e approvazioni
  • Generazione automatica dell'interfaccia utente
  • Report e dashboard integrati
  • L'intero sistema (comprese le nostre modifiche personalizzate) è accessibile tramite i servizi web
  • Possibilità di rendere disponibili i dati nel sistema tramite siti pubblici (es. ECommerce)
  • Ampia libreria di app di terze parti per risolvere problemi standard

La piattaforma NON risolve tutti i problemi.

Non userei la piattaforma per modellare una centrale nucleare o per costruire il prossimo Twitter.


6

I punti principali del cloud computing è risparmiare sui costi pagando l'utilizzo e consentire l'implementazione immediata delle risorse di elaborazione.

I costi non sono puramente x importo di centesimi per istanza all'ora. I costi includono manutenzione, sviluppo, amministrazione, ecc. L'enorme vantaggio del cloud, nella mia mente, è di liberare i clienti dal dover gestire tutto ciò che non rientra nell'ambito delle loro competenze aziendali principali . Se sono un'azienda assicurativa, voglio che i miei sviluppatori si concentrino sui miei problemi assicurativi che aiutano a risolvere le esigenze dei miei reclami, tariffe, ecc. Preferisco evitare di affrontare problemi di server di posta elettronica, file server, archivi di documenti e amministrare le patch del sistema operativo , service pack, ecc.

Pertanto, a mio parere, i maggiori vantaggi derivano dalle offerte cloud SaaS e PaaS. Si dovrebbe andare a IaaS solo quando PaaS o SaaS hanno gravi restrizioni a esigenze specifiche (cioè devo installare un set di componenti COM proprietari e Azure non li supporta).

SaaS è utile per applicazioni di tipo commodity che non rappresentano la linea di business principale per il cliente, ma sono più un'utilità. Questi sono i tipici sistemi di messaggistica, portali, archivi di documenti, sistemi di posta elettronica, CRM, ERP, contabilità, ecc. Ecc. Ecc.

PaaS è ottimo per la linea di software aziendale principale che supporta la principale offerta commerciale delle aziende. Evita ai clienti di avere a che fare con la gestione del sistema operativo e consente ai clienti di concentrarsi sullo sviluppo del sistema aziendale, cosa che nessun altro può fare per il cliente.


3

Si possono anche sfruttare i vantaggi di PaaS (diciamo Google App Engine) ed estenderlo, a volte e se necessario, estraendo alcune macchine virtuali da provider IaaS (ad esempio Amazon) per fare un po 'di sgranocchiare e poi rimandare indietro l'output a Google App Engine.

In questo modo, ottieni il meglio da entrambi i mondi: puoi sviluppare rapidamente app scalabili in GAE, quindi puoi sempre aumentarle eseguendo qualsiasi programma tu voglia dalle macchine virtuali Amazon.


Sembra interessante @ joemar.ct! Che tipo di compiti sarebbero? Dove posso trovare tutorial su come farlo?
Andru

2

Questo continua a cambiare, ora Windows Azure supporta anche VM, quindi ora è anche un provider IaaS.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.