11 messaggi dal 31 maggio 2011
Ciao a tutti,

sto valutando molto seriamente di usare Windows Azure per la prossima web application che dobbiamo realizzare sul lavoro. Non so quanto sia una buona idea, ma visto che Azure permette di gestire anche altri linguaggi oltre a .NET, visto che tutti i programmatori conoscono PHP, stavo pensando ad una parte (se non tutte) dell'applicazione in Azure scritta in PHP.

Faccio questa domanda in un portale di ASP perchè nessuno come un programmatore .NET sa sottolineare i vantaggi di .NET rispetto alla concorrenza... con Azure mi sembra una battaglia persa in partenza per PHP, da quello che ho letto, ma, senza volere creare una guerra di religione, se qualcuno fosse così gentile da spiegarmi perchè .NET è meglio di PHP per utilizzare Azure, gliene sarei molto grato !

Grazie mille in anticipo,
Filo

It is a tale told by an idiot, full of sound and fury, signifying nothing.
11.886 messaggi dal 09 febbraio 2002
Contributi
filosg4ng4 ha scritto:
con Azure mi sembra una battaglia persa in partenza per PHP


No, non è detto, Microsoft stessa sta sponsorizzando lo sviluppo di un'SDK per PHP. Non so a che livello di maturità sia, né in che modo verrà mantenuta in futuro, comunque ciò dimostra che Microsoft sta facendo un tentativo per rendere Azure una piattaforma piacevole anche a chi sviluppa in altri linguaggi.
http://phpazure.codeplex.com/

Oltre alle API per lo Storage, esiste anche il driver per SQL Azure. Se stai sviluppando con Eclipse, puoi fare il deploy dell'applicazione direttamente da lì.

Immagino che se il tuo team decidesse di sviluppare in PHP non si sentirebbe di certo estraneato o in un ambiente ostile.

Tuttavia, potrebbe sorgere un problema non trascurabile legato alle "guerre di religione". Se nel tuo team hai qualcuno che per partito preso evita Microsoft o qualcuno che è semplicemente un purista che fa dell'open-source una filosofia di vita, beh, allora potresti creare del malcontento. In questo caso puoi pur sempre deployare su Azure una qualsiasi distribuzione Linux e limitarti ad utilizzare il servizio secondo il modello Infrastructure-as-a-Service, ovvero riguadagneresti il pieno controllo sul tuo sistema operativo (con sommo gaudio per chi ama smanettare con la shell) e la gestione dell'infrastruttura hardware continuerebbe ad essere gestita "in the cloud".
Poi esistono pur sempre altre soluzioni cloud nel mercato... la prima cosa che devi garantire è l'armonia all'interno del team.

Detto questo, sceglierei .NET per sviluppare un'applicazione su Azure perché in rete esiste una maggior quantità di documentazione, articoli ed esempi. Per dirne una:
http://code.msdn.microsoft.com/site/search?f[0].Type=Technology&f[0].Value=Windows%20Azure

Inoltre, non nascondiamoci dietro un dito: .NET è il linguaggio principe per Microsoft quindi mi aspetto API più curate e aggiornamenti più frequenti. Ad esempio con la SDK per il PHP mi sembra che non sia possibile creare e montare degli Azure Drive sui Page blob, quindi dovendo fare una cosa del genere bisognerebbe ricorrere comunque a .NET.

E' difficile dirne altre senza entrare in guerra, quindi mi fermo qui :)

Enjoy learning and just keep making
11 messaggi dal 31 maggio 2011
Prima di tutto grazie,

No, non è detto, Microsoft stessa sta sponsorizzando lo sviluppo di un'SDK per PHP. Non so a che livello di maturità sia, né in che modo verrà mantenuta in futuro, comunque ciò dimostra che Microsoft sta facendo un tentativo per rendere Azure una piattaforma piacevole anche a chi sviluppa in altri linguaggi.
http://phpazure.codeplex.com/


Si avevo letto, altrimenti proprio non ci pensavo, ma appunto visto che Microsoft pubblicizza una compatibilità con altri linguaggi (cosa che non accade tutti i giorni) volevo capire meglio la situazione.

Oltre alle API per lo Storage, esiste anche il driver per SQL Azure. Se stai sviluppando con Eclipse, puoi fare il deploy dell'applicazione direttamente da lì.


Appunto, questo è un plus mica da poco !


Tuttavia, potrebbe sorgere un problema non trascurabile legato alle "guerre di religione". Se nel tuo team hai qualcuno che per partito preso evita Microsoft o qualcuno che è semplicemente un purista che fa dell'open-source una filosofia di vita, beh, allora potresti creare del malcontento.


Ma no, come dicevo io sono contro le guerre di religione, nel senso che bisogna pensare bene prima di affossare una soluzione solo perchè targata Microsoft, Apple o che altro... Chiunque mi dica una cosa del genere perde punti in partenza. Se invece c'è un motivo tipo "i costi con la soluzione XXX vengono moltiplicati per 12" allora la cosa cambia... ma "per partito preso"... non l'accetto nemmeno come critica!

In questo caso puoi pur sempre deployare su Azure una qualsiasi distribuzione Linux e limitarti ad utilizzare il servizio secondo il modello Infrastructure-as-a-Service, ovvero riguadagneresti il pieno controllo sul tuo sistema operativo (con sommo gaudio per chi ama smanettare con la shell) e la gestione dell'infrastruttura hardware continuerebbe ad essere gestita "in the cloud".


Questa non la sapevo, ma scusa, visto che Azure è "PAAS" (Platform as a Service) è come darsi una martellata sui piedi da soli... se così fosse userei un'altra soluzione cloud IAAS (tipo Amazon EC2, no?), ma mi sono fatto l'idea che il Platform as a Service fosse un plus, rispetto all'Interface, no ?


Detto questo, sceglierei .NET per sviluppare un'applicazione su Azure perché in rete esiste una maggior quantità di documentazione, articoli ed esempi. Per dirne una:
http://code.msdn.microsoft.com/site/search?f[0].Type=Technology&f[0].Value=Windows%20Azure

Inoltre, non nascondiamoci dietro un dito: .NET è il linguaggio principe per Microsoft quindi mi aspetto API più curate e aggiornamenti più frequenti. Ad esempio con la SDK per il PHP mi sembra che non sia possibile creare e montare degli Azure Drive sui Page blob, quindi dovendo fare una cosa del genere bisognerebbe ricorrere comunque a .NET.


E su qui non fa una piega, a parte la mia scarsa preparazione per cui appena finito sto post andrò a vedere cosa è un Page Blob... sigh... il tuo discorso è perfettamente condivisibile ! E' ovvio che usare .NET garantirebbe la miglior compatibilità... non ci sono dubbi !

It is a tale told by an idiot, full of sound and fury, signifying nothing.
11.886 messaggi dal 09 febbraio 2002
Contributi
filosg4ng4 ha scritto:

Questa non la sapevo, ma scusa, visto che Azure è "PAAS" (Platform as a Service) è come darsi una martellata sui piedi da soli... se così fosse userei un'altra soluzione cloud IAAS (tipo Amazon EC2, no?), ma mi sono fatto l'idea che il Platform as a Service fosse un plus, rispetto all'Interface, no ?


Oops, ho fatto una gaffe ^^' Il VM role di Azure (attualmente in beta) ti permette di caricare macchine virtuali, ma i sistemi operativi guest supportati al momento sono solo Windows Server 2008 R2 standard e enterprise.
http://www.microsoft.com/windowsazure/virtualmachines/

Chissà come mai credevo che qualsiasi sistema operativo fosse supportato... Teoricamente si potrebbe virtualizzare un altro OS sopra la macchina virtuale? Mmmh, no, è una bestemmia :)
Se hai bisogno di Linux, sì, Amazon EC2 è la scelta migliore.

Ad ogni modo, credo che Azure possa rappresentare una soluzione comunque valida, anche se la si usa come IaaS.
Sia Azure che Amazon EC2 sono servizi SLA-based, ovvero si impegnano a garantirti un elevato uptime, ma quello che Azure ti può offrire è un ecosistema di servizi (SaaS) un po' più vasto rispetto a quello di Amazon.
Vedi qui un video che evidenzia le principali differenze.
http://www.youtube.com/watch?v=Jceo5g7CMWY

Il valore aggiunto ce l'hai in sostanza nelle "piccole cose", che poi tanto piccole non sono, come il Service Bus e l'Access Control, due strumenti che ti aiutano a tenere uniti i servizi ospitati "in the cloud" con altre applicazioni localizzate altrove, anche dietro un firewall (-> vedi il Service Bus).

Nel cloud di Amazon il load balancer lo hai come servizio accessorio, mentre in Azure è automatico per tutte le istanze di quel ruolo. Poi, mi sembra di vedere che Amazon non abbia un equivalente diretto di AppFabric Caching, che potresti usare per cachare il risultato di una chiamata ad un web service remoto, per esempio.

Nulla ti vieta di usare un po' dell'uno e un po' dell'altro fornitore, ma perché complicarsi la vita? Certamente la PaaS è la soluzione "senza pensieri", ma anche la IaaS è ben gradita perché offre meno attrito nel momento in cui vuoi migrare nel cloud una macchina virtuale on-premise (in azienda) che ospita un servizio già avviato.

Leggevo nell'altro thread che la tua applicazione riceverà un elevato traffico a cadenza regolare: direi che è una candidata ideale per girare nel cloud, ottimizzerete sicuramente i costi. Prova a farla andare con la versione di valutazione di Azure, è gratis finché rientri nei limiti indicati nel sito.
http://www.microsoft.com/windowsazure/italy/free-trial/

ciao,
Modificato da BrightSoul il 08 giugno 2011 00.13 -

Enjoy learning and just keep making
11 messaggi dal 31 maggio 2011
BrightSoul ha scritto:


Oops, ho fatto una gaffe ^^' Il VM role di Azure (attualmente in beta) ti permette di caricare macchine virtuali, ma i sistemi operativi guest supportati al momento sono solo Windows Server 2008 R2 standard e enterprise.
http://www.microsoft.com/windowsazure/virtualmachines/

Chissà come mai credevo che qualsiasi sistema operativo fosse supportato... Teoricamente si potrebbe virtualizzare un altro OS sopra la macchina virtuale? Mmmh, no, è una bestemmia :)
Se hai bisogno di Linux, sì, Amazon EC2 è la scelta migliore.


Ah ecco.. figurati, nessun problema, ma in effetti non era quello che stavo cercando. E poi tra l'altro se non ho capito male, l'uso di un VMRole è sconsigliato per alcuni motivi tra cui il fatto che non posso pensare di salvare su un DB interno (chiaramente) alla VM Role, e i vari aggiornamenti del SO sono a carico nostro... quindi direi che anche se funzionasse, visto che posso farne a meno, lascio questo onere a chi gestisce il cloud... altrimenti che PAAS è ? ;) Vorrei far concentrare i programmatori sulla programmazione, non sulla sistemistica !


Leggevo nell'altro thread che la tua applicazione riceverà un elevato traffico a cadenza regolare: direi che è una candidata ideale per girare nel cloud, ottimizzerete sicuramente i costi. Prova a farla andare con la versione di valutazione di Azure, è gratis finché rientri nei limiti indicati nel sito.
http://www.microsoft.com/windowsazure/italy/free-trial/

E' la stessa cosa che ho pensato anche io... le caratteristiche sembrano fatte apposta... perchè non provare ? Esatto, è proprio quello che voglio fare... se riesco a prendermi un po' di tempo... avendo la possiblità di provare il tutto, non voglio perdere l'occasione !

Grazie mille, ma tu l'hai già usato Azure ? Mi sembri preparatissimo !

Ciao,
Filo

It is a tale told by an idiot, full of sound and fury, signifying nothing.
11.886 messaggi dal 09 febbraio 2002
Contributi
filosg4ng4 ha scritto:
VMRole è sconsigliato per alcuni motivi tra cui il fatto che non posso pensare di salvare su un DB interno (chiaramente) alla VM Role,


Esatto ma fai attenzione perché questo è vero anche per il Web Role. Se la tua applicazione scrive localmente dei file, come per esempio dei log oppure contenuti caricati dagli utenti, andrai a perderli tutti se disgraziatamente la VM che ospita il Web Role dovesse smettere di funzionare.
http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/22877900-384a-4f6e-a43f-1f6381e970d6/

Inoltre non potresti condividere questi file con altre istanze.
Devi necessariamente salvare tutto nell'Azure Storage (usando i "Blobs", per esempio) oppure su Sql Azure.
Tutti i dati che salvi nello Storage sono replicati ben 3 volte dal Fabric Controller di Azure, quindi il rischio di perdita di dati lì sopra è veramente minimo.
La cosa interessante è che nei Blob (Page Blob, per esattezza) puoi crearci un disco virtuale, montarlo, e leggere/scrivere su di esso con System.IO.File come se si trattasse di un'unità fisica convenzionale.

far concentrare i programmatori sulla programmazione, non sulla sistemistica !


Magari capitasse questo anche da me. Attualmente sento che i colleghi provano un'inspiegabile diffidenza dai servizi cloud, quindi continuiamo a impiegare tempo per il mantenimento di una infrastruttura hardware che scala male. Ci vuole un'opera di convincimento lenta e costante :)


Grazie mille, ma tu l'hai già usato Azure ? Mi sembri preparatissimo !


Sì e no, ho girato un po' nella versione di prova per testare le varie funzionalità, ma non ho nulla in produzione per il motivo che ti dicevo poc'anzi. Ho trovato molto materiale introduttivo nella Microsoft Virtual Academy. Ci sono whitepaper e video suddivisi in moduli. Al termine di ciascuno devi fare un quiz per ottenere un punteggio. E' una specie di droga :)

https://www.microsoftvirtualacademy.com/Home.aspx

ciao!
Modificato da BrightSoul il 08 giugno 2011 19.05 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.