Maggio 2018

Volume 33 Numero 5

Il presente articolo è stato tradotto automaticamente.

DevOps - qualsiasi linguaggio, qualsiasi piattaforma con i progetti Azure DevOps

Dal Willy-Peter Schaub, Alex Mullans | 2018 maggio

Negli ultimi due anni, Microsoft ha implementato dei integrazione continua (CI) e l'iniziativa di pipeline per il recapito continuo (CD) per la piattaforma DevOps. Il ALM | Ha lavorato attivamente lo sforzo, per illustrare la creazione di e informazioni ottenute da ogni versione, sia in numerosi post di blog e in team Rangers DevOps MSDN Magazine articoli, ad esempio "Applicazione DevOps a un progetto di sviluppo Software" (msdn.com/magazine/mt767695) e "Trasferta per il recapito continuo con Visual Studio Team Services" (msdn.com/magazine/mt814804). Gli anni di investimento di pagamento dividendi, come Microsoft oggi vanta un ecosistema DevOps dimostrativo ed eterogeneo compilato in base a una piattaforma di Visual Studio Team Services (VSTS) che si è evoluto dal leaps e bounds.

Protetto da questo sforzo sono i team di sviluppo tale supporto predefinito di richiesta per il framework di applicazioni più diffusi, automatico e trasparente l'integrazione di pipeline CI/CD e supporto incorporato per il monitoraggio, ovvero tutti nella lingua e la piattaforma di propria scelta. Inoltre, gli sviluppatori da compilare qualsiasi altra applicazione, tutti i servizi Azure, in minuti. Velocità e la semplicità è fondamentale.

I progetti di Microsoft Azure DevOps (bit.ly/2E5zkWG) risolve tutte queste esigenze. Consente agli sviluppatori avviare un'app su qualsiasi servizio App di Azure in pochi passaggi rapidi, fornendo che tutti i componenti necessari per sviluppare, distribuire e monitorare un'applicazione. Creare un progetto di DevOps e viene eseguito il provisioning di tutte le risorse di Azure e offre un repository di codice Git, integrazione con Application Insights e una configurazione di pipeline per il recapito continuo per la distribuzione in Azure. Consente di dashboard di progetto DevOps monitorare codice commit, le compilazioni e distribuzioni da una singola visualizzazione nel portale di Azure.

In questo articolo viene descritto come progetti DevOps abilitare alimentato a cloud CI/CD utilizzando Visual Studio Team Services per:

  • Diventare operativi con una nuova applicazione e una pipeline DevOps completa in pochi minuti
  • Supporta un'ampia gamma di Framework famosi come .NET, Java, PHP, Node. js e Python
  • Integrazione con incorporato Application Insights per analitica immediata e approfondimenti
  • Avviare o portare un'applicazione esistente da GitHub

In alternativa, avremmo esaminiamo il progetto DevOps come una funzionalità per consentire agli utenti di "Introduzione" in Azure. Si supponga di uno sviluppatore che è necessario sviluppare e distribuire una soluzione di Node. js in Azure. L'utente deve individuare quale servizio di Azure più adatto per la lingua, uno scenario di piattaforma e framework, prototipo l'ambiente e infine creare un processo di progettazione per il team. Ogni passaggio corrisponde una curva di apprendimento e più punti di errore. Il progetto DevOps consente di semplificare queste operazioni e prova di errore. Non è quasi DevOps, ma anche su rendendo più semplice per un'introduzione a Azure.

Discutere DevOps

Desidera attendere qualche istante riepilogare, la definizione di DevOps presso Microsoft. Come Donovan Brown, principal DevOps manager nel gruppo di Azure lo descrive: "DevOps è l'unione di persone, processi e i prodotti per abilitare il recapito continuo del valore ai clienti finali".

È anche possibile studiare DevOps nel sito di Microsoft (aka.ms/devops) per informazioni approfondite gli aspetti appresi da divisione sviluppatori di Microsoft durante il viaggio sette anno per DevOps Agile. Che l'attività ha generato una lingua che si concentra sul cliente, inserisce innanzitutto produzione e in modo continuo offre valore in un ritmo cloud tre settimane.

In questo articolo ci concentreremo sulla parte più semplice la definizione di DevOps, i prodotti. Come accennato, gli sviluppatori rispondenti alle richieste di un processo semplice, rapido e coerente. Richiedono il supporto per la scelta della piattaforma e linguaggio di programmazione, nonché per l'automazione e la pipeline di casella CI/CD.

Come illustrato figura 1, una pipeline CI/CD è una sequenza di distinct procedure usate per integrare, testare e distribuire le modifiche nell'ambiente di produzione in modo continuo. Immediatamente le informazioni dai dati di telemetria, commenti degli utenti e flusso di eventi imprevisti sito attivo indietro per informare decisionale, migliorare le versioni future e più importante, valutano l'ipotesi che motivati la distribuzione. È sul continuamente fornitura di valore.

Procedure consigliate DevOps
Figura 1 DevOps consigliate

Progetti Azure DevOps

Con i progetti DevOps di Azure, è possibile compilare un'applicazione Azure, su un servizio di Azure, in minuti. Anche possibile ottenere automatico integrazione completa di pipeline CI/CD, funzionalità di monitoraggio incorporate e la distribuzione per la piattaforma di propria scelta. Come illustrato nella tabella figura 2, esistono diversi tipi di applicazione, framework e la distribuzione da selezionare quando si crea un nuovo progetto DevOps. È importante notare che questa tabella riflette informazioni al momento della scrittura e che verrà hanno migliorato il supporto incorporato nel momento in cui che leggibile.

Figura 2 applicazione, Framework e le opzioni di distribuzione

Applicazione Framework Distribuzione di Windows Distribuzione di Linux
    App Web Macchine virtuali App Web App Web per i contenitori
.NET ASP.NET X X    
ASP.NET Core X X X X
Java Sprint X     X
JSF X     X
Node.js Express.js X     X
Sails.js       X
Node. js semplice X     X
PHP Laravel X     X
PHP semplice X     X
Python Django X   X  
BOTTLE X   X  
Flask X   X X

Vediamo come creare un nuovo progetto DevOps nel portale di Azure mediante la creazione di una coppia di applicazioni. Consiglia di iniziare a usare Azure DevOps progetti e seguire la procedura con i propri account Azure e Visual Studio Team Services. Questo approccio consentirà di esplorare le soluzioni risultante in modo dettagliato.

Come illustrato Figure3, il primo esempio di applicazione si basa su Java e il framework Spring e distribuito come un'app Web in Windows. È uno dei molti esempi di possibili che mostra una combinazione di tecnologie in esecuzione su Windows, ovvero uno scenario comune per gli sviluppatori.

App Web Java, JSF, sull'applicazione di Windows
Figura 3 Java, JSF, Web App in applicazioni di Windows

Nel portale di Azure creare un nuovo progetto DevOps. È quindi possibile scegliere da un set di App di esempio sviluppata utilizzando .NET, Node. js, PHP, Python o Java oppure è possibile portare nostro codice.

Per distribuire l'applicazione, (1) selezionare l'applicazione di esempio Java (2) selezionare Spring come i framework dell'applicazione, (3) selezionare l'App Web in Windows come servizio di Azure per distribuire l'app. Successivamente, (4) immettere un nuovo nome del progetto e verificare o modificare i dettagli di Azure e Visual Studio Team Services. Si sarà creare un nuovo account di Visual Studio Team Services e modificare la posizione del servizio App al centro in Canada. Analogamente, è possibile modificare le impostazioni di Azure come sottoscrizione, prezzi piano, il nome dell'App Web e la posizione dell'App Web. Le convalide incorporate assicurarsi che vengano immessi valori corretti e che vengono evitati gli errori a valle.

Al termine dell'operazione, si ripete l'esercizio, ma questa volta selezionare .NET, .NET Core Framework e l'App Web per i contenitori in Linux per distribuire l'applicazione. Si tratta di un altro esempio semplice che illustra modalità di esecuzione di una combinazione di tecnologie in un contenitore in Linux. Completando i seguenti quattro passaggi semplici, creati due progetti DevOps, come illustrato figura 4.

Progetti DevOps
Figura 4 DevOps progetti

Questi progetti consentono facilmente e rapidamente creare pipeline CI/CD complete per alcuni linguaggi, Framework e piattaforme. Si tratta di una risorsa utile per i progetti sperimentale e dimostrazioni rapide e viene avviato un ottimo modo per ottenere il team di sviluppo con un processo completo, Extensible e coerenza.

Magic dietro le quinte

Ovviamente, nessuna di queste si sono verificati rapida. Quando si sceglie il pulsante Fine dopo aver selezionato il framework del runtime, servizio e configurazione, avviata una sequenza di fasi distinte, racchiusa Figure5. È possibile passare al Dashboard del progetto DevOps mostrato selezionando il nuovo progetto nell'elenco dei progetti DevOps o utilizzando le notifiche nel portale di Azure.

Visualizzazione di pipeline in Azure
Figura 5 visualizzazione Pipeline in Azure

Le quattro fasi coinvolti sono:

  1. Risorse di Azure: Creazione e la configurazione delle risorse del servizio App di Azure e piano di servizio App, endpoint dell'applicazione.
  2. Repository: Creare un repository Git distribuito e archivia il codice di esempio.
  3. Pipeline CI/CD: Senza problemi connessi con la soluzione di collaborazione di Visual Studio Team Services per team, consentendo di pianificare, di progettazione di test, rilasciare e monitorare le soluzioni.
  4. Application Insights:  Creare e configurare la telemetria di Application Insights. Questo strumento consente il monitoraggio attivo e impara a in modo proattivo rilevare i problemi in modo continuo analizzare e testare le ipotesi senza codice.

Si noti che le fasi di progetto DevOps non solo creato e configurato un Pipeline(see section 3 in Figure 5) CI/CD, inoltre, eseguire un'operazione di pull del codice, una compilazione integrazione continua e distribuito il rilascio nell'ambiente di sviluppo.

Dal dashboard del progetto DevOps, monitorare la pipeline di CI/CD, dati di telemetria di Application Insights e individuare le risorse di Azure o in Visual Studio Team Services pertinente.

Quando si passa al nuovo account Visual Studio Team Services, sono disponibili due nuovi progetti: JaSpWeADemo e dNCoWe4DDemo (figura 6). Questi vengono collegati per i due progetti DevOps Azure.

Account di Visual Studio Team Services e i progetti Team
Figura 6 Visual Studio Team Services Account e i progetti Team

Nella compilazione, CI viene eseguita una compilazione Maven-based ogni volta che qualcuno archivia il codice. Per ridurre il numero di esecuzione di compilazioni, le modifiche vengono eseguite in batch durante l'esecuzione di una compilazione. È possibile ottimizzare gli eventi che attivano una compilazione, ad esempio specificare rami o l'utilizzo di filtri di percorso per ridurre il set di file che possono attivare l'azione.

Quando si Esplora il progetto JaSpWeADemo Pipeline, come illustrato figura 7, vengono presentati con gli ambienti (2) e (1) elementi. Il Dropartifact è una parte dell'applicazione prodotto dall'attivazione distribuzione continua Build.The distribuibile indica a Release Management per creare una nuova versione quando rileva che un nuovo elemento è disponibile. Anche in questo caso è possibile ottimizzare gli eventi che attivano il rilascio, ad esempio solo gli elementi dal ramo master di l'elaborazione.

PipelineView in Visual Studio Team Services
Visualizzazione Pipeline Figure7 in Visual Studio Team Services

Per impostazione predefinita, la pipeline di CI/CD creata automaticamente dal progetto DevOps distribuisce il Devenvironment quando viene creata una versione da un trigger di una distribuzione continua. L'ambiente di sviluppo è necessario alcun approvazione manuale, Gatesare disabilitato e ha solo un'attività che distribuisce l'esempio di servizio App di Azure.

La pipeline generata dal progetto DevOps è un ottimo punto di partenza per dimostrazioni e sperimentazione. Per la produzione, la pipeline potrebbe richiedere alcuni piace aggiuntive, che verranno discussi nella sezione successiva.

Infine, aprire il progetto di esempio dNCoWe4DDemo secondo ed esaminerà la pipeline CI/CD-ROM. Generale, la pipeline è molto simile. Tuttavia, analizzare la compilazione e si noterà che la compilazione CI trigger una compilazione dell'immagine del contenitore, pubblicarlo nel Registro di sistema di contenitore di Azure. La versione CD consente di distribuire il servizio App di Azure in Linux, senza le competenze di Linux o contenitore richieste.

Come illustrato in questa procedura dettagliata rapida, progetti DevOps iniziare rapidamente a una pipeline di CI/CD funzionale e completa. La curva di apprendimento per Azure, Visual Studio Team Services e DevOps è notevolmente inferiore quando si usano progetti DevOps, rispetto alla creazione manuale della soluzione e la pipeline CI/CD-ROM. Sta ora abilitate per lavorare con le parti interessate, ad esempio sicurezza, le operazioni di gestione e del rilascio per sfruttare la pipeline CI/CD al livello successivo.

La Pipeline generata danneggiata

La pipeline CI/CD è un elemento essenziale di DevOps che aiuta i team in modo coerente e distribuire continuamente il valore, a un ritmo più veloce e con un rischio inferiore. È possibile migliorare la pipeline generata per consentire l'allineamento con il processo e i criteri dell'organizzazione. Completamente, è possibile automatizzare il test, convalida e la consegna del software in più ambienti di produzione, o configurare una pipeline parzialmente automatizzata con approvazioni e gate. È anche possibile aumentare il livello di qualità, sicurezza e progressiva esposizione delle nuove funzionalità.

Ecco alcuni puntatori per iniziare:

  • Greenlighting e gate: Ridefinire la pipeline di rilascio con un set di controlli nelle opzioni di pre e post-distribuzione che si integrano segnali dal monitoraggio sistemi e altri servizi esterni (bit.ly/2E549uG).
  • Analizzare progetti open source: Analizzare in modo continuo e misurare qualità, con SonarCloud e Visual Studio Team Services, tecnica dal progetto fino a ogni metodo (bit.ly/2J4v0ea).
  • Convalida di sicurezza: Proteggere in modo continuo soluzioni all'interno della Pipeline CI/CD-ROM. Indirizzo infrastruttura sicura, convalidare la protezione, analizzare i componenti di origine aprire vulnerabilità e monitorare per attacchi (bit.ly/2Gmczjg).
  • Distribuzione della nuova versione:  Utilizzare anelli di distribuzione per progressivamente esporre una nuova versione e a ottimizzare le versioni in produzione con flag funzionalità (red.ht/2GTsQNC).

L'importanza della gestione dei pacchetti

Se si sta valutando la possibilità di offrire più valore più rapidamente agli utenti finali, probabilmente si sta utilizzando pacchetti (ad esempio NuGet, npm e così via). I pacchetti e DevOps hanno un'intensa collaborazione. Gestione dei pacchetti è incentrato sulla fornitura di valore aggiuntivo tramite prodotti nel pacchetto la pipeline CI/CD e consentire di compilazione e versione automazione. In Visual Studio Team Services, l'estensione Gestione pacchetti è progettato per essere diventano parte integrante della pipeline DevOps, rendendo più semplice da utilizzare responsabilmente la risorsa pacchetti provenienti da origini pubbliche e più rapido per creare e condividere i pacchetti personalizzati.

È il modo più semplice per aggiungere alcune magic di gestione dei pacchetti alla pipeline del DevOps upstream origini, cui connettere la gestione dei pacchetti di feed pubbliche origini, ad esempio nuget.org e npmjs.com. Esistono un paio grandi vantaggi all'utilizzo di pacchetti da queste origini tramite Gestione dei pacchetti:

  • Ogni volta che si usa un pacchetto, viene mantenuta una copia salvata nel feed, che significa che siano protetti da problemi, ad esempio l'evento imprevisto di riempimento a sinistra (vedere bit.ly/2pO1Do5), pubblica interruzioni e qualsiasi altra tutto il mondo può generare si di origine. È sufficiente per mantenere la propagazione di pipeline è il pacchetto VSTS feed.
  • Il feed, è possibile visualizzare tutte le copie salvate e le relative provenienza, , pertanto è possibile filtrare e visualizzare esattamente quali pacchetti utilizzato da dove.

A partire da Gestione pacchetto accetta solo due passaggi. In primo luogo, installare Gestione dei pacchetti e creare un feed, come illustrato in bit.ly/2GDj5W9. Per impostazione predefinita, il nuovo feed viene automaticamente impostato origini a monte per nuget.org e npmjs.com. Quindi, Visual Studio (bit.ly/2pR3aZZ) o npm (bit.ly/2J2xVUq) da utilizzare il nuovo feed. Da qui, relativo business come di consueto. Quando il riquadro attività iniziale, è possibile eseguire una compilazione pulita per imporre ai pacchetti di essere salvato nel feed.

Conclusioni

Questo è il primo di una serie di articoli in cui è in corso la pianificazione per coprire le funzionalità nuove e future. Riteniamo che la trasparenza consente di compilare spiccata e l'attendibilità e più importante, consente di adottare misure incrementale per adottare i prodotti e migliorare il processo. Segnalibro la sequenza temporale (bit.ly/2uv25fM), espressioni di controllo per gli articoli futuri, cercare gli annunci nelle future di Microsoft Build e stimoli eventi. A questo punto, è possibile importante tenere presente che si sta lavorando alcuni interessanti miglioramenti per i progetti di DevOps, espandere le risorse di macchina virtuale di Azure, l'aggiunta del supporto per Go e Ruby e l'estensione supporto per i database.

Ora che abbiamo introdotto i progetti di DevOps e coperto il trucco dietro le quinte, è possibile effettuare certi esplorazione modi per migliorare le pipeline CI/CD-ROM. Tenere presente che DevOps non è una destinazione, si tratta di un proprio processo di miglioramento continuo e rapido.

Risorse DevOps

L'ambito di DevOps e CI/CD è in rapida evoluzione e intensiva di massa per gli sviluppatori coprire. Per risolvere il problema, è stato redatto alcune risorse e collegamenti al contenuto che è possibile esplorare e segnalibro per riferimento futuro. Queste risorse forniscono gli ultimi aggiornamenti di prodotto e informazioni ottenute dai nostri storie trasformazione DevOps. Ci auguriamo che consentirà di semplificare e accelerare la propria trasformazioni DevOps.


Peter Willy Schaubè una gestione programma in Visual Studio Team Services, in Microsoft Vancouver in efficaci British Columbia. Perché la metà-80 egli ha stato cercando di ottenere maggiore semplicità e la manutenibilità ingegneria del software. È possibile seguire quest'ultimo su LinkedIn al aka.ms/willysli oppure su Twitter: @wpschaub.

Alex Mullansè una gestione programma in Visual Studio Team Services, rendendo più semplice e rapido per i team condividere e riusare il codice. È possibile seguire quest'ultimo su Twitter: @alexmullans.

Grazie ai seguenti esperti per la revisione dell'articolo: ALM | DevOps Rangers, Chigakkagari Gopinath, Atul Malaviya


Viene illustrato in questo articolo nel forum di MSDN Magazine