Suppongo che agnostico del cloud intendi agnostico per la piattaforma particolare su cui stai lavorando, come GAE, Amazon EC2 o Azure e desideri scriverne uno, distribuire ovunque.
In teoria, ciò dovrebbe essere possibile se tutti i provider cloud supportano le stesse lingue. Per quanto ne so, GAE supporta Python e Java. Amazon EC2 può utilizzare praticamente qualsiasi cosa sul server stesso e Azure è una piattaforma interamente net. Pertanto, il lato dell'elaborazione reale delle cose, ovvero la scrittura del servizio Web in coda e delle unità di elaborazione potrebbe essere difficile.
Un'altra barriera è che non esiste un'API unificata comune per chiamare i servizi di cloud computing. Le implementazioni sono comunque diverse in GAE/Azure/EC2, quindi i metodi che espongono le API sono tutti diversi e, a tale scopo, il codice di prima linea dovrà conoscere il tipo di API che sta chiamando per controllare le risorse di cloud computing.
Tuttavia, per natura i servizi Web sono strettamente accoppiati. Il significato ti consente di estrapolare il controllo delle risorse in modo da poter creare un'istanza su qualsiasi cloud desideri, se la nuova istanza è un'altra unità che gestisce l'input/computazione di un servizio Web e il servizio Web esposto è lo stesso su GAE come EC2, ad esempio, non c'è nulla che impedisca ai due di parlare. Allo stesso modo, purché si utilizzi una qualche forma di servizio/protocollo web tra le istanze, si dovrebbe comunque essere in grado di parlare con altre istanze su Internet attraverso piattaforme informatiche. Detto questo, in questo modo esporresti i dati della tua applicazione interna al mondo in generale, introducendo così un rischio per la sicurezza.
Sono d'accordo con il disconoscimento: Java è un buon modo per andare. Ci sono un numero enorme di contenitori EJB là fuori e ancora più server di servizi web come Tomcat. Suppongo che EC2 lo supporti (beh, lo fa sicuramente, ma se eseguono Tomcat/Geromino piuttosto che le edizioni IBM e quali sono le accuse come non lo so). Suoni GAE limited based on this blog post - qualsiasi cosa Google stia facendo sul backend hanno progettato qualcosa di molto strano.
fonte
2010-03-16 20:31:47
Google è l'ingegneria per servizi Web a bassa latenza. È un modo completamente diverso di pensare alle applicazioni web ad alte prestazioni, e non riesco ancora a capirlo. Non ho nemmeno capito l'intera interfaccia del database. Volevo implementare una serie di app web su GAE, ma probabilmente dovrò decodificarle da un contenitore J2EE standard quando ho finito. –
Ho pensato tanto e quindi hanno deciso di implementare il contenitore Java Servlet e le unità di elaborazione JSP, ma abbiamo saltato il resto dello stack J2EE in modo che tutto sia fatto tramite i servizi Web e non il servizio web middleware (ejb) -database . Da quello che ho capito, il loro archivio dati è una roba put in uscita e quindi un file, la funzionalità di base e relazionale spetta al programmatore. Perché SQLite non avrebbe funzionato, non lo so. Avrei preferito che se fossero "diventati standard" contro qualcosa di nuovo. –