Condividi tramite


Il presente articolo è stato tradotto automaticamente.

Previsioni: Nuvoloso

Cinque motivi per iniziare a utilizzare Windows Azure

Joseph Fultz

 

Joseph FultzOvunque si accende al giorno d'oggi, si sente parlare della nube — che è un passo fondamentale nell'evoluzione del Web e cambierà il modo sviluppare, distribuire e gestire applicazioni.Ma non tutti ha capito come la nuvola davvero si applica a loro. Questo è particolarmente vero per coloro con media-grandi infrastrutture e l'uso relativamente piatta consumo — dove i costi capitalizzati sono vantaggioso rispetto ai costi operativi della nube. Tuttavia, se l'infrastruttura è sul lato piccolo o avete un modello dinamico di consumo, la nuvola — Windows Azure — non è un-brainer. Inoltre, per i negozi pesante nel processo, dove in piedi su un ambiente di sviluppo sono come l'invio di una fattura al Campidoglio, Windows Azure può fornire una grande piattaforma per prototipazione rapida.

È con quelli pensieri in mente che voglio far notare alcune cose su Windows Azure che spero si potrebbero stimolare nel mettere la rivista giù e mettendo alcuni Windows Azure su.

Grande strumenti di integrazione

Per lo sviluppo di Windows Azure, l'utensileria e l'integrazione con Visual Studio è stato abbastanza buono — ed è rapidamente evolvendo in grande. Potete trovare l'ultima serie di strumenti in Windows Azure Developer Center, al bit.ly/xh1CAE.

Come Figura 1 mostra, è possibile selezionare il tipo di ruoli e la lingua desiderata per un nuovo progetto. Immediatamente, non importa che cosa si sceglie, si possono trarre vantaggio di strumenti di integrazione. Nella mia esperienza, le tre caratteristiche che troverai più utili sono emulatori di sviluppo, debug del runtime e distribuzione integrata.

Creating a New Project
Figura 1 creazione di un nuovo progetto

L'ambiente di sviluppo Windows Azure è costituito da due emulatori che consentono di eseguire e facilmente eseguire il debug delle applicazioni sul computer di sviluppo prima della distribuzione (vedere Figura 2). L'emulatore Windows Azure Compute è ciò che consente di eseguire il servizio locale per test e debug. Con l'emulatore di archiviazione, è possibile verificare l'archiviazione localmente.

The Windows Azure Compute Emulator and Storage Emulator Running
Figura 2 la Azure Windows calcolare emulatore e archiviazione emulatore in esecuzione

Quando il tempo è di destro, distribuzione nell'ambiente di produzione o gestione temporanea è solo un click. Gli strumenti di prendersi cura di imballaggio, lo spostamento e la distribuzione dei ruoli all'interno della vostra soluzione e progresso è riportato indietro tramite Visual Studio, come Figura 3 mostra.

Deployment Progress for Windows Azure as Reported Back Through Visual Studio
Figura 3 distribuzione progressi per Windows Azure come riportato indietro tramite Visual Studio

All'inizio, un grosso problema con Windows Azure fu che si potrebbero aver sviluppato alcuni codici che ha funzionato perfettamente localmente, ma non è riuscita o erano terribile prestazioni una volta distribuiti. Per fortuna, l'introduzione di IntelliTrace e profilatura ha contribuito ad alleviare questi problemi. È possibile attivare queste caratteristiche quando pubblichi la soluzione, come illustrato nella Figura 4.

IntelliTrace and Profiling Settings in Windows Azure
Figura 4 IntelliTrace e profilatura impostazioni Windows Azure

Per il debug di errori difficili da riprodurre, specialmente quelli che sembrano mostrare solo nell'ambiente di produzione, non c'è niente di abbastanza buono come IntelliTrace. IntelliTrace essenzialmente registra l'esecuzione dell'applicazione, che poi si può giocare indietro. Ad esempio, una volta che si distribuiscono i ruoli con IntelliTrace attivato, è possibile visualizzare i log di IntelliTrace e scorrere esattamente quello che è successo a che ora (vedere Figura 5).

Debugging Windows Azure with IntelliTrace in Visual Studio
Figura 5 debug Windows Azure con IntelliTrace in Visual Studio

Una volta che hai entrò il thread, si può camminare anche se qualsiasi codice esistente per vedere che cosa stava cambiando durante l'esecuzione. Quando il vostro sito è privo di bug (o come privo di bug come sta andando per ottenere) e è pronti per cercare di identificare i problemi di prestazioni, è possibile attivare fuori IntelliTrace e attivare la profilatura. Come avete visto in Figura 4, è possibile selezionare il tipo di profilatura di fare. Ad esempio, se vi state chiedendo che cosa è il tempo di chiamata su singoli metodi, è possibile selezionare strumentazione. Questo metodo raccoglie dati di intervallo dettagliati che possono essere utili per l'analisi mirata e per analizzare i problemi di prestazioni di input/output. È anche utile per la raccolta di informazioni di intervallo dettagliati su una sezione di codice e per comprendere l'impatto delle operazioni di input e outpue sulle prestazioni dell'applicazione. Poi si può camminare attraverso il sito per eseguire il codice base fino a sei soddisfatto, a quel punto è potrai scegliere di "View Profiling Report" per vedere un'istanza in Esplora Server. Visual Studio sarà recuperare le informazioni e mettere insieme un rapporto come quello raffigurato in Figura 6.

A Profiling Report
Figura 6 profilatura Report

Il rapporto mostra l'utilizzo della CPU sul tempo, così come il "percorso caldo", che da sola potrebbe aiutarvi a concentrare i vostri sforzi. Se vuoi che a scavare un po' più lontano, tuttavia, un nesso diretto nella sezione Hot percorso consente di vedere i tempi individuali per ogni funzione. Pagina principale Visualizza anche un bel grafico che indica le funzioni che fanno il lavoro più individuale. Chiaramente, avendo IntelliTrace e profilatura disponibili direttamente da Visual Studio è un enorme vantaggio, non solo per la produttività, ma anche per la qualità del prodotto.

Si noti che se stai lavorando in JavaScript, PHP o Java, non sei lasciato al freddo, dover scrivere il proprio accesso alla piattaforma Windows Azure. Microsoft fornisce SDK e risorse per tutti questi a bit.ly/uGqPNh.

Le prestazioni e la scala

Se hai state prestando attenzione anche marginale negli ultimi anni, si sa che una delle promesse della nube chiave è la possibilità di scalare su richiesta. Per le macchine virtuali di calcolo (VMs), puoi spesso basta pagare di più per un ruolo più importante e ottenere più risorse. Per Microsoft SQL Azure, però, le ottimizzazioni sono un po' più … Beh … manuale.

È bello sapere che la distribuzione della nube ti dà la possibilità di scalare la fattoria, ma una domanda più immediata è spesso, "quale ruolo dimensione ho bisogno?" La risposta è che esso dipende dal traffico e quello che stai facendo. Si può prendere un'ipotesi basata sulla vostra esperienza passata e sulle specifiche di dimensioni il ruolo, come mostrato nella Figura 7.

Figura 7 macchina virtuale dimensioni specifiche

Dimensioni macchina virtuale Core CPU Memoria Spazio su disco per le risorse di Storage locale nel Web e ruoli del lavoratore Spazio su disco per le risorse locali di stoccaggio in un ruolo di VM Larghezza di banda allocata (Mbps)
Extra-Small Shared 768 MB

19.480MB

(6, 144 MB è riservato per i file di sistema)

20GB 5
Piccolo 1 1,75GB

229.400MB

(6, 144 MB è riservato per i file di sistema)

165GB 100
Medium 2 3,5GB

500.760MB

(6, 144 MB è riservato per i file di sistema)

340GB 200
Grande 4 7GB

1.023.000MB

(6, 144 MB è riservato per i file di sistema)

850GB 400
Extra-Large 8 14GB 2.087.960 MB (6, 144 MB è riservato per i file di sistema) 1.890GB 800

Una di queste configurazioni è probabile per le vostre esigenze, specialmente in combinazione con il resto delle istanze di ruolo in azienda. Prendere atto che aumentano tutti gli attributi, incluso la larghezza di banda di rete disponibile, che è spesso una considerazione secondaria per la gente. Si noti inoltre che davvero non devono indovinare. Invece puoi attivare la profilatura come discusso in precedenza e raccogliere metriche reali tra le istanze per valutare le prestazioni. In base a risultati di profilazione, potete regolare la dimensione della macchina virtuale e raccogliere informazioni di profiling nuovamente finché non viene raggiunto il punto. Per condizioni di bordo, puoi fare una scelta migliore approssimazione o trovare una soluzione alternativa. Ad esempio, se il tuo sito serve un sacco di contenuti e non è molto dinamico, potrebbe scegliere uno dei maggiori specifiche di ruolo o spostare il Windows Azure Content Delivery Network.

Mescolate ora per alcune notizie: SQL Azure non danno sempre le prestazioni che si potrebbe ottenere con la propria istanza privata. Tuttavia, otterrà prestazioni costanti. Ci sono alcune cose che puoi fare per ottenere le migliori prestazioni possibili e il comportamento di runtime:

  1. Assicurarsi che SQL Azure è nel datacenter stesso come vostro calcolo.
  2. Ottimizzare le query e le strutture dati per soddisfare le vostre domande.
  3. Non tagliare gli angoli sulla logica Riprova e assicurarsi che la logica riprova è nel codice e testati.
  4. Ripetere il passaggio 2.

Nel corso degli anni, uno dei più grandi errori ho visto persone fanno quando l'ottimizzazione di un sito è solo aumentare le dimensioni dell'hardware senza fare niente altro. A volte questo ha aiutato un po', ma non appena il carico a spillo davvero, il problema sarebbe tornato con sintomi peggio che mai, perché la potenza aggiuntiva ebbe l'effetto di rendere più conflitto le cose più rapidamente e in realtà non risolvere o mitigare il vero problema. Così, quando suggeriscono di ripetere la fase 2, non sto scherzando. Basta non può gettare più hardware del problema e la speranza che non è un problema di deadlock.  Lo strumento SQL Profiler Azure può aiutare con questo sforzo. Vi suggerisco di iniziare con l'ottimizzazione sull'istanza locale prima di distribuire a nuvola e quindi utilizzare SQL Profiler Azure per aiutare a identificare e rendere eventuali aggiustamenti necessari una volta nella nube.

Come nota finale, una strategia per la crescente scala o le dimensioni di un database SQL Azure è la Federazione, comunemente note come "sharding di dati", che è una tecnica di partizionamento orizzontale dei dati su più server fisici per fornire l'applicazione­cazione scalabilità. Questo riduce i tempi di singole query, ma aggiunge la complessità dei disperdendo le query per istanze di destinazione e raccogliendo i risultati una volta che sono completi. Ad esempio, si otterrà il beneficio di esegue Create, Read, Update, operazioni Delete (CRUD) e dati più piccoli­set e in parallelo. L'imposta da pagare sarà sta avendo di mediare l'accesso attraverso le schegge. Detto questo, alcuni dei più grandi siti impiegano sharding, prefetching e caching per gestire le query, e si usano quei siti ogni giorno senza molta denuncia sulle prestazioni.

Gestibile infrastruttura

All'inizio non era sempre facile sapere che cosa stava succedendo in una distribuzione di Windows Azure, ma quei giorni sono ormai lontani. Non solo Microsoft fornisce un portale di gestione in continua evoluzione, ma un management pack per System Center Operations Manager (SCOM) porta la gestione dell'intera infrastruttura in un unico luogo.

Windows Azure scrive tutti i dati di diagnostica fuori in un contenitore. Potrete consumare i registri direttamente e generare report o fare azioni personalizzate. Tuttavia, è anche possibile utilizzare SCOM per monitorare le applicazioni Windows Azure. I responsabili della gestione dell'infrastruttura di un'impresa sono inclini ad essere conservatore e desidera completo di strumenti per il monitoraggio. Utilizzando una soluzione familiare come SCOM aiuterà indirizzo le riserve che il team di gestione infrastruttura potrebbe avere sulla distribuzione di una soluzione di nuvola. SCOM consente di monitorare lo stato di tutte le distribuzioni di Windows Azure e consente di drill-down in servizi ospitati, dei ruoli e istanze di ruolo. Costruito nel pack sono avvisi per i servizi e le prestazioni, ma un vantaggio fondamentale è che si può creare il proprio regole e avvisi concernenti le distribuzioni e i dati raccolti. Un'ulteriore delicatezza è che le regole per governare i registri sono incorporate. Come al solito, se i registri non sono potati lungo la strada, può crescere per essere ingestibile. Per aiutare con quello, il management pack è dotato di regole predefinite:

• .NET traccia toelettatura

• Prestazioni Counter toelettatura

• Log eventi toelettatura

Questi può essere attivati per assicurarsi che l'utilizzo dello spazio non ci sfugga di mano, ma avrete bisogno di equilibrio che contro il numero di transazioni per eseguire le attività. È possibile scaricare il sistema monitoraggio Pack per Windows Azure applicazioni Center a bit.ly/o5MW4a.

Si sta scrivendo il codice già

Molto spesso quando arriva una nuova tecnologia, si deve passare attraverso una discreta quantità di formazione e di esperienza per diventare abili: pensare a passare a Windows Presentation Foundation/Silverlight da Windows Form, scegliere se utilizzare ASP.NET o SharePoint o anche qualcosa di più fondamentali quali decidere tra sviluppo procedurale e orientato agli oggetti. Questa è la cosa circa la nube, soprattutto con l'utensileria disponibile: Se stai già scrivendo siti e servizi, è possibile continuare a fare la maggior parte del vostro.NET le competenze e gli investimenti e passare direttamente alla nube.

Questo non significa che non ci sono alcune procedure consigliate per imparare, ma non molto più di quanto sarebbe già facendo per essere approfondito nel vostro design e sviluppo. E quando sei pronto, la piattaforma offre molte funzionalità aggiuntive che possono essere apprese e sfruttato per rendere la vostra soluzione sicuro e robusto e hanno le migliori prestazioni senza dover scrivere le funzionalità o i quadri da soli.

È il futuro

Inizia ora. Questo è il mio consiglio. Vai a azure.com, ottenere gli strumenti e per iniziare. Utilizzare Windows Azure nei vostri progetti al prototipo. Utilizzare nei vostri progetti per fornire altrimenti difficile-a-requisizione delle risorse. Lo uso per tutto ciò che si vuole, ma utilizzarlo. La nube è il futuro che ci saranno tutti vivono, e sarà onnipresente come esecuzione di acqua ed elettricità. Nube tecnologie sono in continua evoluzione per espandere informatica oltre il convenzionale ad un modello che consegnerà la potenza di calcolo dove è necessario, quando è necessario e il modo in cui ha bisogno. Questo è qualcosa che si desidera di essere una parte di.

Joseph Fultz è un software architect in Hewlett-Packard Co., lavorando come parte del gruppo HP.com Global IT. In precedenza è stato un progettista software per Microsoft, lavorando con la sua impresa di alto livello e i clienti ISV definizione di architettura e soluzioni di progettazione.

Grazie all'esperto tecnica seguente per la revisione di questo articolo: Bruno Terkaly