Ciao Laura, buongiorno.
laurar181 ha scritto:
Per avvicinarci a passi pensavamo di prendere i server virtuali.
Effettivamente, procurarti una macchina virtuale in cui ospitare un'istanza di SQL Server è la soluzione che ti offrirebbe la migliore compatibilità con il tuo sistema esistente. Semplicemente, installi SQL Server nella macchina virtuale oppure scegli
dalla galleria una VM in cui è già preinstallato. Puoi addirittura portarti la tua licenza grazie al programma di
license mobility.
Tuttavia, devi anche pensare al futuro.
laurar181 ha scritto:
non ho in sede un sistemista
Se scegli per la macchina virtuale, avrai l'onere di tenere aggiornato il sistema e farlo scalare nel momento in cui non risultasse più adeguato al volume di richieste.
In quest'ottica, è vero che hai più controllo sul sistema ma è anche vero che le questioni sistemistiche che dovrete affrontare vi distrarranno dallo sviluppo e dal mantenimento dell'applicazione.
Offrire alta disponibilità, ad esempio, è una questione che dovrete affrontare per evitare che la manutenzione al sistema causi dei down ai vostri clienti.
http://azure.microsoft.com/it-it/documentation/articles/virtual-machines-manage-availability/L'alternativa è usare
SQL Azure, che è un database-as-a-service costruito con scalabilità e alta disponibilità in mente, che ti permetterà di rispondere in maniera rapida e semplice quando la clientela aumenterà.
In questo caso hai a disposizione un servizio che ti permette di sfruttare tutta l'elasticità del cloud: vai a pagare solamente quello consumi, a differenza di una macchina virtuale che ha un costo fisso e non è mai realmente ritagliata intorno alle effettive necessità hardware. E quindi ora capisci perché è difficile rispondere a questa domanda.
laurar181 ha scritto:
su cosa devo andare? più memoria? più CPU?
Se scegli Sql Azure, non devi porti questi problemi perché non ti vengono fatturate RAM e CPU, ma le effettive DTU, ovvero i consumi calcolati con una unità di misura che tiene conto anche dell'accesso al disco. Se hai queries che fanno dei table scans o che usano degli indici molto frammentati, andrai a spendere un pochino di più rispetto a queries più ottimizzate. Dato che è tutto segnato nel pannello di Azure, avrai l'opportunità di monitorare il reale consumo e ottimizzare i costi al migliorare dell'applicazione.
Per scalare, non dovrai aumentare le caratteristiche hardware di una macchina (anche perché non hai alcuna macchina da amministrare), ma aggiungere
partizioni o altri database, in base a come vuoi ripartire i dati dei tuoi clienti.
Per esempio, potresti decidere di mettere in un unico database tutti i dati dei clienti che hanno sottoscritto con te il contratto base, mentre offrire un database dedicato a quelli che pagano di più perché hanno un contratto premium.
C'è molta documentazione a proprosito. Ecco un articolo da cui iniziare:
http://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-scale-get-started/Trovi anche dei video su Channel9, tipo questo.
http://channel9.msdn.com/Shows/Data-Exposed/Azure-SQL-Database-Elastic-ScaleLo scorso 23 aprile si è anche svolto un evento per la community in cui si è discusso della Data Platform di Azure e delle peculiarità di Sql Server usato in una VM oppure come servizio.
Non riesco a trovare una registrazione in italiano, ma qui ci sono le slides.
http://www.communitydays.it/content/downloads/18/6_slides.zipIn ultimo: se scegli Sql Azure devi prima assicurarti che il tuo database sia compatibile, infatti non supporta tutte le funzionalità di un'installazione "normale" di SQL Server. Ecco un elenco riassuntivo delle caratteristiche non supportate.
https://msdn.microsoft.com/en-us/library/azure/ee336281.aspxIo però ti consiglio di usare questo tool, che ti indicherà se il tuo db è adeguato ad essere migrato su Sql Azure.
https://sqlazuremw.codeplex.com/Leggi tutto
molto accuratamente. Prendere una scelta informata oggi ti può far risparmiare tempo e soldi in futuro, ancor più se il tuo business cresce velocemente.
Per l'applicazione web: stessa cosa. Non devi necessariamente procurarti una macchina virtuale ma puoi pubblicarla su un web role e poi sfruttare la
scalabilità automatica per sopperire ai picchi di richieste, quando si verificano.
ciao,
Moreno
Modificato da BrightSoul il 01 maggio 2015 11.09 -