Ottobre 2015

Volume 30 Numero 10

Il presente articolo è stato tradotto automaticamente.

Microsoft Azure - Microsoft Azure - Quadro generale

Da Tony Meleg | Ottobre 2015

Ogni mese, questa rivista approfondisce i dettagli del servizio alcune nuovo o interessante in Microsoft Azure. Esiste un flusso interminabile di cose gli sviluppatori devono conoscere apparentemente su, ma la confusione tempo stesso su tutte le diverse modalità per ottenere lo stesso risultato. Non è facile mettere insieme tutti questi pezzi e vedere "quadro generale". Con il ritmo dell'innovazione che il settore IT si sono verificati, Impossibile ottenere un quadro generale presenta una vera sfida per le organizzazioni IT e professionisti IT simili. Beh, in questo articolo è incentrato sul consentendo senso di Azure senza drill-down alcun servizio specifico, ovvero l'opposto di come si procede normalmente.

Siamo sinceri, gli sviluppatori non sono sempre in grado di semplificare attività complesse. In genere è eseguire un semplice problema e implementare una soluzione molto complessa. È necessario comprendere il funzionano delle operazioni, soprattutto cose non creiamo noi stessi. Questo è in parte di un problema di trust, ma è anche in modo è facile capire come affinare e ottimizzare un componente o una parte intera di software per le nostre esigenze particolare. È un aspetto un controllo.

Maggiore di grande rilevanza di Microsoft

Se l'asserzioni degli sviluppatori di anello a bello, quindi non sarà come mi occuperò per individuare il successivo. Azure è una raccolta di blocchi dell'applicazione o "servizi", ognuno dei quali fornisce una funzionalità diversa, che potrebbe essere necessario un po' in un'applicazione che si desidera compilare. Microsoft ritiene che tali blocchi devono essere intrinsecamente flessibile, scalabile e la gestione automatica dei. È possibile eseguire il provisioning di qualsiasi servizio in tutto il mondo, pagare solo per ciò che si utilizzano e, più importante, in grado di modificare l'utilizzo in qualsiasi momento e ovunque. Ecco il bit che non desiderato: Utilizzare questi servizi. Astraggono è dalla complessità. non è necessario controllare in modo preciso. non è visibile all'interno di essi. In altre parole, è necessario solo considerate attendibili. Non sembra un'operazione può essere interessante, vero, perché si desidera controllo, non "attendibili" e si desidera complessità?

È possibile segmentare Azure approssimativamente in tre livelli, ovvero l'infrastruttura datacenter, servizi di infrastruttura e servizi della piattaforma, come illustrato nella Figura 1.

Visualizzazione concettuale di Microsoft Azure
Figura 1 Visualizzazione concettuale di Microsoft Azure

È consigliabile pensare di questi tre livelli come in pila uno su altro, con ogni livello un'astrazione del livello sottostante. Pertanto, infrastruttura come servizio (IaaS) è in gran parte un'astrazione di server fisici sottostanti, archiviazione e rete. Piattaforma come servizio (PaaS) è un'astrazione dell'infrastruttura software applicazione sarebbe normalmente installare nel server e utilizzare quando si creano applicazioni, quali server Web, database, sistemi di messaggistica e infrastruttura delle identità. È compito del servizio non è prevedere questo software, ma per fornire un'intera esecuzione, resiliente, sempre nel servizio (e lavoro in background per monitorare e risolvere eventuali problemi in modo trasparente senza l'applicazione verrà ignorato una battuta).

Questi servizi sono disponibili non solo nel cloud pubblico di Azure, ma in qualsiasi punto. Potrebbe trattarsi del Data Center, un host o un partner di esternalizzazione. Microsoft ha annunciato recentemente Stack Azure a tale scopo, pensare assemblaggio l'ingrediente segreto Azure e servizi e la distribuzione di questo su hardware fisico. Dopo tutto, è sufficiente software basato su funzionalità di base di Windows Server e Hyper-V. In questo nuovo assetto, tuttavia, non è molto importante perché è attiva solo i servizi che necessari, come progettare correttamente la soluzione e come programmare i servizi.

I blocchi predefiniti di piattaforma

Diamo un'occhiata ampia in Azure. Figura 2 disposto a tutti i servizi in un set di gruppi di funzionalità suddiviso in servizi di infrastruttura e i servizi della piattaforma. È consigliabile pensare di servizi di infrastruttura come quelle funzionalità che consentono di creare l'infrastruttura di basso livello per le applicazioni esistenti. È necessario computer che dispongono di dischi. è necessario in rete. è necessario dischi condivisi; ed è necessario essere connessi ad altri sistemi e reti in altri luoghi e così via.

Servizi di Microsoft Azure
Figura 2 Microsoft Azure di servizi

A livello di servizi di infrastruttura, le astrazioni sono più familiare in quanto rappresentano il centro dati fisico sottostante, ad esempio un computer sotto forma di una macchina virtuale (VM) e i dischi virtuali che si collega al computer. Ciò consente di eseguire sistemi già si dispone e svolgere attività esattamente come che avviene oggi stesso poiché l'unica astrazione è il computer, non il software dell'applicazione è possibile utilizzare. È comunque necessario installare, gestire, patch, correggere e rendere resilienti qualsiasi software che si esegue o in un set di macchine virtuali connesse alla rete, come fareste oggi nel proprio Data Center.

Servizi di piattaforma, comportano invece funzionalità tale distanza che è dai livelli inferiori della rete di computer/archiviazione/il servizio viene utilizzata; che viene astratto tutti si. Come regola generale, se non è possibile effettivamente touch o connettersi alla macchina virtuale sottostante di un determinato servizio, il servizio è PaaS. Inoltre, non è possibile scegliere il software che fornisce il servizio e non si ottengono ottimizzare o controllare tale software. È il processo di servizi di utilizzare, per risolvere e patch stesso e per monitorare tutte le parti del servizio necessari in tutti i Data Center Azure. È possibile concentrarsi solo utilizzarlo, che è veramente ciò che il processo è, comunque.

Inciso, l'infrastruttura di Data Center di Azure

Potrebbe essere interessato, in quanto siamo tutti i fanatici del computer al centro, in tutti i complessi computing e datacenter infrastruttura sottostante che alimenta Azure. È possibile comprendere le specifiche hardware fisico dei server, quali opzioni sono utilizzati, la modalità di compilazione il rack. È possibile conoscere la topologia di rete complessa che fornisca la velocità altissime prestazioni coerente in tutti i servizi e la rete globale che connette tra loro aree Data Center di Azure. Forse si desidera conoscere tutte le aree di datacenter 24 tutto il mondo in Azure attualmente esistente (o verrà presto, come le cinque nuove regioni in Canada e India portare in linea), come illustrato nella Figura 3.

Footprint Data Center globali di Microsoft Azure
Figura 3 globale Microsoft Azure Datacenter Footprint

Si tratta del primo test gli sviluppatori nel nuovo mondo: È necessario arrestare occuparsi, almeno in Azure. Se si desidera creare il proprio "Azure" nel proprio Data Center con lo Stack di Azure, quindi è (o un utente dell'organizzazione) sarebbe comunque necessario interessano tutte queste operazioni fisiche. Uno dei motivi che era in passato, anche sull'infrastruttura necessaria per un'applicazione particolare attenzione è stata poiché il costo di si verifichino errori era troppo elevato. Si conoscesse mai veramente il numero e dimensioni dei server necessari. si presuppone che i possibili peggiori maiuscole e minuscole e aggiunto un po' più solo in caso. In Azure, tali problemi non esistono perché se è necessario più di un elemento sufficiente eseguire il provisioning di più. Se è necessario un computer più grande, si ottiene uno. Se si ottengono una quantità eccessiva, è sufficiente modificarla. In Azure, è sufficiente scoprire dove gli utenti dell'applicazione e quali sono i datacenter da utilizzare per fornire la soluzione migliori. In genere è il più vicino.

Servizi di infrastruttura, maggiore controllo, più di lavoro

Quando si visualizzano tra i servizi 60 o meno in Figura 2, si tratta di un elenco sorprendente. Ma la maggior parte delle App creata, la maggior parte dei casi, contiene solo poche funzionalità. In genere è presente un server Web e un database relazionale in base, oltre a una serie di altre parti di identità, reporting e forse alcuni processi batch. Solo concentriamoci sull'infrastruttura Web e il database per il momento.

Sono Viewport, effettuare una scelta: Utilizzare l'infrastruttura oppure a livello di astrazione della piattaforma? È lasciamo alcune macchine virtuali, installare il server Web e il database e ottenere solo costante? Tenere presente che questa astrazione è principalmente sui server fisici, dischi o dischi di archiviazione e rete ma non il software è necessario eseguire su tali server. Facili, suoni suona familiare, e, guarda un po', è. È esattamente ciò che si e sia stata eseguita per l'intera carriera. Esaminiamo Figura 4. Una macchina virtuale ha dischi virtuali e questi possono essere condivisi tra le macchine virtuali o collegati a un computer specifico. È possibile inserire le macchine virtuali all'interno di reti virtuali in modo che possano comunicare e reti possono essere connesso al proprio Data Center e di più aree di Azure. Questa operazione viene eseguita tramite l'astrazione di software e significa che si finisce con un computer che dispone di uno o più dischi e si trova in una rete connessa ad altri computer.

Astrazione di macchina virtuale del server, dischi e rete
Figura 4 astrazione di macchina virtuale del server, dischi e rete

Tutto il set di macchine virtuali necessarie, è possibile controllare e ottimizzare e modificare e intervenire. In effetti, è meglio di quanto voi locale per l'astrazione. Che non interessano più computer fisico, il sistema operativo host, l'hypervisor. Non è necessario preoccuparsi di resilienza dell'infrastruttura di archiviazione sottostante per i dischi virtuali. Esiste un set di opzioni di dimensioni delle macchine Virtuali (diverse combinazioni di CPU e RAM, con le dimensioni del disco diverse e velocità e delle larghezze di banda di rete) quasi sorprendente.

Meglio ancora, è tutto self-service e tutto ciò che può essere automatizzata è incredibilmente semplice definire l'infrastruttura necessarie e lasciamo centinaia di istanze con un semplice script.

Si supponga che l'applicazione richiede un livello promettono di scalabilità e resilienza. È facile creare una Web farm di macchine virtuali e server Web e creare un cluster di database. Come eseguire tutte queste operazioni si conosce (o il migliore amico professionista IT conosce), non è facile, ma è fattibile. È possibile farlo qualsiasi ora, giorno o della notte; è possibile effettuare il provisioning in un punto qualsiasi del mondo; Paga solo ciò che si utilizza e in qualsiasi momento per cambiare idea, eliminare tutti verso il basso e paga assolutamente nulla. Come awesome è? Ma sembra troppo bene essere true, qual è la cattura?

Catch, a livello di infrastruttura, è che è necessario eseguire numerose operazioni di ottenere sempre distribuito e in esecuzione. Tutti in esecuzione, è necessario eseguire anche altre operazioni per garantire un'esecuzione. Esiste un aiuto, tuttavia, in particolare per la parte "get è in esecuzione", che derivano dal mondo locale in cui è ancora più problematico per distribuire un insieme complesso di macchine virtuali correlate, incluse le funzionalità in Azure, ad esempio Gestione risorse di Azure e l'automazione tramite Windows PowerShell, come molte altre soluzioni di terze parti. Una volta che si tratta di funzionare, è necessario applicare patch a tutto il software in uso nelle macchine virtuali, incluso qualsiasi sistema operativo è in esecuzione. È necessario gestire l'integrità di tutti i software applicativo, che non sia troppo complessa per il server Web e database, ma è molto più difficile quando si scala questo out o aggiungere altre cinque funzionalità.

Si sta commerciali controllo in base al lavoro o di lavoro. Se si desidera controllo, è necessario impiegare più complessa la compilazione è necessario e del relativo lavoro tutti.

Servizi di piattaforma: controllo inferiore meno lavoro

Si ricorderà suol dire "Non determina alcun problema in informatica che non può essere risolto mediante l'aggiunta di un altro livello di riferimento indiretto." Esiste un'altra frase che ho visto aggiunta a questa, lungo le righe di "... ma in genere si crea un altro problema."

È vero, e servizi della piattaforma sono un ottimo esempio. I servizi di Azure un'immagine in Figura 2 Mostra le astrazioni di servizio di due piattaforma per due elementi costitutivi necessari nell'esempio, un server Web e un database. In Azure, queste astrazioni sono applicazioni Web (nella sezione Web e Mobile) e il Database SQL (nella sezione dati). Viene effettuato il provisioning di questi servizi in Azure nello stesso modo, viene effettuato il provisioning di qualsiasi servizio, passare al portale di gestione di Azure, selezionando il servizio desiderato e compilando i dettagli richiesti: nome del servizio, posizione del datacenter, iniziale livello di prestazioni e prezzi e così via.

Ecco dove meno controllo/minore di elemento di lavoro entra in gioco. Passiamo ad esempio il database. È possibile implementare un database nel Data Center Europa settentrionale. In meno di un minuto, viene visualizzato un database completamente ed è il processo per la distribuzione di schema e i dati al database e associare l'applicazione Web. Non esiste alcun software da installare. Viene visualizzato cosa accade, ovvero un database SQL. Infatti, non viene visualizzato solo un database, tre, viene visualizzato tutto il lavoro di un cluster a disponibilità elevata, fornirmi incredibile livelli di elasticità. È possibile comporre le prestazioni dei tre database verticale selezionando semplicemente un livello di prestazioni diversi (che modifica il prezzo di che effettuare il pagamento). È possibile scegliere di non disporre del database cluster a tre vie. sufficiente scaricarlo perché il servizio richiede sempre la certezza si può fornire un database e questo è il modo migliore per eseguire questa operazione.

Come può vedere nella Figura 5, esiste un modello simile in gioco quando si esegue il provisioning dell'infrastruttura Web per l'applicazione utilizzando applicazioni Web di Azure. Si è in grado di selezionare il numero di istanze desiderato utilizzando un dispositivo di scorrimento semplice. La composizione del numero di istanze di verso l'alto o verso il basso e il servizio farà il resto. È anche possibile indicare al sistema di eseguire tale operazione in base a una pianificazione o di carico. Più importante è il processo del servizio per fornire sempre il numero di istanze specificato e per monitorare e correggere le istanze che vengono interrotte. Il processo è semplicemente scrivere il codice di applicazione Web e passare i bit per il servizio in modo da verificare che sono tutti gli elementi che devono essere tra le istanze.

Modifica il numero di istanza di Web App
Figura 5 Modifica numero di istanze di applicazione Web

Pertanto, l'astrazione per i servizi della piattaforma fornisce in genere un servizio che si occupa di provisioning, resilienza e la gestione del servizio per l'utente. Il "problema aggiuntivo" che è stato creato con l'astrazione è che si perde un controllo. Non è possibile scegliere il software e non è possibile ottenere "all'interno della casella" e modificare o ottimizzare il software utilizzato dal sistema operativo completamente lo stack, è una casella nera all'utente. L'altro controllo che si perde è che sta ora bloccati nelle funzionalità del servizio, come l'API per il servizio. ovvero, come il codice dell'applicazione interagisce con il servizio. Forse è necessario un oggetto specifico, ad esempio, nel database, che non fornisce il servizio. Forse è un tipo di dati specifici o anche un'intera funzionalità quali la ricerca full-text. Forse si sposta un'applicazione esistente nel cloud e le funzionalità utilizzate nell'applicazione non soddisfano le funzionalità del servizio in Azure. Cosa fare?

I servizi Azure blocchi predefiniti un'immagine in Figura 2 a più livelli di tutti i servizi in IaaS o PaaS, ma che non è possibile utilizzare questi "insieme" e tale limite, in quanto è possibile. Non esiste alcun motivo, ad esempio, che è Impossibile utilizzare il servizio PaaS Web App con, ad esempio, una macchina virtuale in cui è installato Oracle in esecuzione su Linux o SQL Server in esecuzione su Windows. È stato il giusto equilibrio tra controllo e impegno. Infatti, è quindi possibile trasferire ulteriormente. Poiché tutti questi blocchi predefiniti unicamente in attesa di essere utilizzato, è possibile utilizzare naturalmente, li da qualsiasi posizione. Tutto ciò che serve è una semplice API o alcuni protocollo esistente già in uso per comunicare con tali servizi. È possibile utilizzare uno qualsiasi di questi blocchi con i sistemi esistenti nel proprio Data Center. È possibile utilizzare questi blocchi con altri blocchi di terze parti e anche da altri fornitori di servizi cloud. Si suppone che, naturalmente, un'applicazione può tollerare i problemi di latenza, che si potrebbe introdurre, ma è possibile.

Gli altri servizi

Pertanto il motivo per cui è necessario tutte queste funzionalità Azure? Beh, se si analizza tutto il proprio reparto IT, per tutte le applicazioni in esecuzione nell'ambiente di produzione oggi, troverete piuttosto un'ampia gamma di software applicativi potenziamento di queste applicazioni, sistemi di messaggistica, funzionalità di analisi dei dati, infrastruttura delle identità, livelli di sicurezza, sistemi di backup, data warehouse, sistemi di monitoraggio e gestione e così via. Complessivamente, nell'intero IT portafoglio, è necessario tutto questo elementi"." Mi piace pensare di Azure come una raccolta di "Lego IT". Non è necessario ogni tipo di blocco di tutto il tempo che si sta creando il grande vantaggio Avanti, ma è necessaria nel toolkit.

Come è possibile stabilire quali blocchi da utilizzare quando si crea una nuova soluzione? Veramente non differisce rispetto al passato mai, è necessario comprendere ciò che i blocchi predefiniti si e confrontarli con le esigenze specifiche dell'applicazione ed effettuare una chiamata. La percezione è che la creazione di applicazioni nel cloud è diverso e più complessi. Non è, ma che è necessario effettuare il concetto fondamentale che si sta utilizzando un'infrastruttura "condivisa" a causa di alcuni aspetti aggiuntivi. Ciò significa molti servizi dispongono di vincoli e questi vincoli variano in base ai vari livelli di funzionali e livelli di prezzo si utilizza; è necessario conoscere questi sono. Tenere presente che non si desidera al costante; si desidera variare è necessario basato su richiesta e carico dell'applicazione. È necessario programmare difensiva per questi vincoli, nonché come la disponibilità del servizio e tempi di risposta. È possibile utilizzare gli stessi strumenti, le stesse lingue e i Framework, per creare soluzioni e tutti i servizi di livello inferiore sono di API REST di base e wrapper framework specifici da utilizzare. Ciò significa che è possibile ottenere i blocchi predefiniti letteralmente da un elemento che dispone di uno stack Web semplice, come un sensore, un motivo nel cloud determina l'esplosione delle soluzioni Internet di elementi.

Il vantaggio nel cloud è che è possibile scorrere rapidamente (perché è facile creare i servizi); è possibile provare a alcune alternative; e può non riuscire in modo rapido e conveniente perché venga visitato molto poco. Torniamo a Figura 2. Non è presente qualsiasi valore? È possibile visualizzare elementi dell'immagine che si ritiene che non sarà necessario, ma scommetto che sarebbe difficoltà a trovare alcune funzionalità o già si dispone non rappresentato. Sono molti delle linee guida per Guida, linee guida generale e istruzioni di implementazione dettagliate dal servizio.

È del DNA della maggior parte degli sviluppatori, piacere apprendere nuovi aspetti. Ci sono buone possibilità, si desidera riprodurre con la tecnologia per le nuove tecnologie. Anche se la società non è mai in un milione di anni di compilare qualsiasi programma e inserirlo in un cloud pubblico, è comunque lab sviluppatore migliore del mondo di informazioni e aumento delle dimensioni.

la gestione del cambiamento

È necessario affrontare l'argomento finale prima di terminare e che riguarda la gestione delle modifiche. Devo ammettere, incontrano difficoltà di gestire tutti l'innovazione che viene distribuito in Azure al ritmo intenso che verificando ed è una sorta di processo al passo con esso. Sono finiti i tempi quando si dispone di una Guida di orientamento tre a cinque anni di caratteristiche e funzionalità che consegna. Oggi è sei mesi se si è fortunati. Sono disponibili nel corso di creazione di un elemento, vengono visualizzate nuove funzionalità, servizi anche completamente nuovi, e si è tentati di valutare ed effettuare il refactoring in una soluzione. Servizi e funzionalità possono essere rimossi anche con un periodo di preavviso di un anno, non il ciclo supporto 10-plus anno è tradizionalmente sul posto per il software del server.

Controllo delle versioni del servizio si verifichi, ovvero nuove funzionalità vengono aggiunte a un servizio che potrebbe interrompere l'implementazione del servizio e le applicazioni create su di esso. Pertanto, una decisione deve essere eseguita se alla versione, vale a dire, per creare una nuova implementazione side-by-side. Questa operazione è stata recentemente eseguita in Azure con il Database di SQL Azure. Vedere l'articolo sulle novità nella versione del Database di SQL Azure 12 al bit.ly/1Dcjpo4.

Il punto è che esiste un'imposte da pagare nel cloud e che è necessario tenere presente che e il costo dell'imposta. È necessario essere connessi al processo di notifiche di supporto/modifica cloud in modo da prevede e non trascurate. La tassa è naturalmente, modifica e che costo è una versione successiva e più frequenti rispetto al tempo è locale. Non lasciare che put è off, tuttavia, il vantaggio è molto maggiore. La velocità con cui è possibile eseguire operazioni è molto più veloce, la qualità sarà superiore e i rischi che è eseguire sono molto inferiori.

Desideri ulteriori informazioni? Il AzureCon evento virtuale consente di ascoltare dagli esperti di Azure, visualizzare Q & come e scopri tutti i più recenti innovazioni di Azure. È possibile iscriversi per accedere a tutti l'archivio su conferenze contenuto in bit.ly/1KRD76d.


Tony Melegè technical product manager del team di Microsoft Azure. In materia di creazione di contenuti tecnici per vari tipi di destinatari, se la promozione di Azure e la complessità a semplici concetti.