Sviluppa e distribuisci un'applicazione su una macchina virtuale
DevOps Insights Il servizio giungerà al termine e verrà interrotto il 31 agosto 2026. Il servizio " Continuous Delivery " verrà interrotto nelle seguenti regioni il 12 febbraio 2027: au-syd, ca-tor, us-east. A partire da tale data, anche Code Risk Analyzer verrà ritirato dal mercato in tutte le regioni. Se in una regione non si riscontra un utilizzo attivo di queste funzionalità, queste potrebbero essere dismesse in anticipo e non accettare più nuove istanze. Per saperne di più
Questa esercitazione mostra come impostare una toolchain Continuous Delivery e distribuire una semplice applicazione (app) a una macchina virtuale. È possibile configurare il controllo del codice sorgente, quindi compilare, testare e distribuire il codice nelle diverse fasi di distribuzione.
Per impostazione predefinita, la toolchain usa un'applicazione Hello World Java basata su Maven di esempio, ma puoi anche portare la tua propria applicazione e collegarti ad essa. Questa toolchain viene configurata con pipeline per l'integrazione continua e la fornitura continua con Code Risk Analyzer, controllo origine, traccia dei problemi e modifica online.
Il codice dell'applicazione è memorizzato nel repository di controllo origine dell'applicazione (repo). Gli script di creazione e distribuzione sono memorizzati nel repository di controllo origine della pipeline. Puoi personalizzare gli script di build e distribuzione per soddisfare i requisiti di sviluppo per l'applicazione.
La toolchain in questa esercitazione implementa le seguenti procedure ottimali:
- Crea un'applicazione binaria su ogni commit Git e imposta una tag in base al numero di build, alla data / ora e all'ID commit per la tracciabilità.
- Inserisce automaticamente il file binario creato nel file manifest di distribuzione.
- Crea un'istanza e un bucket Object Storage per memorizzare i file binari transitori che sono integrati. Per gli utenti avanzati, è possibile configurare e integrare un repository Artifactory esistente con la toolchain per supportare il controllo delle versioni delle risorse di build per scopi di tracciabilità e conformità.
La toolchain implementa tre pipeline per creare e distribuire il codice dell'app a una macchina virtuale.
-
Pipeline di integrazione continua (CI): questa pipeline viene attivata quando una modifica viene unita al ramo principale del repository del codice sorgente dell'applicazione. La pipeline IC esegue il test unità, la copertura del codice e le scansioni statiche sul codice sorgente dell'applicazione. La pipeline CI genera anche la risorsa di build binaria e la carica nel bucket Object Storage o Artifactory, come configurato nella toolchain. La pipeline CI genera i metadati delle risorse di build e li memorizza nel repository Inventory.
-
Pipeline CD (Continuous Deployment: questa pipeline viene attivata da un'esecuzione corretta della pipeline CI. La pipeline CD è responsabile della distribuzione delle risorse di build nell'ambiente di distribuzione. La pipeline verifica la corretta distribuzione dell'applicazione eseguendo il controllo di integrità ed esegue il rollback delle modifiche se la distribuzione ha esito negativo.
-
Pipeline di richiesta di pull (PR): questa pipeline viene attivata quando viene creata una richiesta di unione o di pull nel repository del codice sorgente dell'applicazione. Generalmente, questa richiesta viene creata manualmente dallo sviluppatore del codice sorgente dell'applicazione per unire le modifiche dal proprio ramo di sviluppo al ramo principale o a qualsiasi altro ramo. La pipeline PR esegue il test dell'unità e le scansioni statiche sul codice sorgente dell'applicazione.
Prima di iniziare
Configurare l'istanza del server virtuale per la toolchain per distribuire l'applicazione all'istanza del server virtuale. È possibile utilizzare un'istanza del server virtuale esistente o configurarne una nuova conforme ai seguenti requisiti:
- Configura l'istanza del server virtuale su IBM Cloud.
- Prenota un indirizzo IP mobile per rendere l'istanza del server virtuale accessibile su Internet pubblico. In alternativa, è possibile utilizzare la voce DNS disponibile. Questa esercitazione utilizza un indirizzo IP mobile.
- Crea l'utente (preferibilmente senza privilegi) e le chiavi SSH per l'istanza del server virtuale.
- Configurare Gruppi di sicurezza per l'istanza del server virtuale. Abilita la toolchain per eseguire i controlli di integrità dell'applicazione distribuita aggiungendo
una regola in entrata per
TCPconsentire la porta8080in modo che possa accedere all'endpoint dell'applicazione. Per ulteriori informazioni sull'aggiunta di una regola in entrata, vedi Gestione dei gruppi di sicurezza. - Assicurarsi che Java™ SDK sia installato su VM o utilizzare il seguente comando per installarlo:
yum install -y tar java. - Facoltativo. Se è necessario archiviare i segreti in
Key Protect, eseguire la codifica base64 del valore. Per ulteriori informazioni sui dettagli del comando richiesti, vedi Firma dell'immagine: generazione di una chiave GPG.
Crea la toolchain
Per creare una toolchain Sviluppa un'applicazione per una macchina virtuale, fai clic su
In alternativa, dalla console IBM Cloud, fare clic sull'icona Menu Platform Automation > Toolchains. Nella pagina Toolchains,
fai clic su Create a Toolchain. Nella pagina Crea una catena di strumenti, fare clic su Sviluppa un'applicazione per una macchina virtuale.
Configura l'istanza del server virtuale semplice
-
Nella scheda Crea, rivedere le impostazioni predefinite.
{: caption=" -
Il nome della toolchain la identifica in IBM Cloud. Se vuoi utilizzare un nome diverso, modifica il nome della toolchain. Poiché il nome della toolchain viene utilizzato per costruire il sito URL che viene usato per accedere alla vostra applicazione, assicuratevi di specificare un nome unico.
-
Per impostazione predefinita, la toolchain crea il repository di origine in Git Repos and Issue Tracking. Per utilizzare un provider diverso per il proprio repo di origine Git, come GitHub o GitLab, selezionarlo dall'elenco dei repo disponibili.
Questa catena di strumenti utilizza strumenti inclusi nel servizio Continuous Delivery. Se un'istanza di tale servizio non è già nel gruppo di risorse selezionato, viene aggiunta automaticamente con il piano Lite gratuito quando fai clic su Crea per creare la toolchain.
Configura il repository dell'applicazione
-
Nella scheda Git Repos and Issue Tracking, esamina l'impostazione predefinita che specifica l'ubicazione del codice sorgente della tua applicazione.
-
Per impostazione predefinita, la toolchain utilizza un'applicazione Hello World Java basata su Maven di esempio. Puoi invece aggiornare l'impostazione della posizione per collegare la tua applicazione.
caption-side=bottom"
Configura il repository Inventory
Il repository inventario memorizza i metadati per le build e le risorse utente. Per attivare la pipeline per distribuire le risorse utente descritte nel commit all'istanza del server virtuale, eseguire il commit al repository di inventario ed eseguire quindi le attività di accettazione.
{: caption="
Configurare il Delivery Pipeline
-
Vai alla scheda Delivery Pipeline.
Delivery Pipeline -
Specifica una chiave API IBM Cloud esistente o crea una chiave. La toolchain utilizza questa chiave per interagire con altri servizi cloud integrati nella toolchain.
-
Specificare la regione in cui è in esecuzione l'istanza del server virtuale, ad esempio
us-south. -
Specificare l'indirizzo IP mobile dell'istanza del server virtuale utilizzando il formato
aaa.bbb.ccc.ddd. -
Selezionare
SSH KeyTipo di autenticazione e specificare le seguenti credenziali:- Nome utente: il nome utente dell'utente dell'istanza del server virtuale con le autorizzazioni per distribuire ed eseguire l'applicazione.
- Chiave SSH: la chiave SSH privata dell'utente per eseguire e distribuire l'applicazione.
-
Immetti i seguenti comandi per creare una nuova coppia di chiavi sull'istanza del server virtuale per l'utente con autorizzazioni per distribuire ed eseguire le applicazioni.
# Create the SSH key `ssh-keygen -C cloud.ibm.com` # copy public key to the VSI `ssh-copy-id -i .ssh/id_rsa.pub <UserName>@<xx.yy.zz.aa>`
Facoltativo. Crea configurazione memoria transitoria
Qualsiasi modifica all'origine attiva la pipeline di integrazione continua. Quando un'esecuzione di integrazione continua ha esito positivo, una risorsa utente binaria o di build viene creata e salvata nell'archiviazione transitoria e quindi distribuita all'istanza del server virtuale di destinazione.
- Dalla scheda Altri strumenti all'interno della tua toolchain, puoi scegliere di utilizzare Object Storage o Artifactory come archiviazione transitoria per salvare i file binari di build.
- Se il tuo account non contiene alcuna istanza di Object Storage, la toolchain crea una nuova istanza Object Storage nel gruppo di risorse predefinito. Successivamente, la toolchain crea un bucket che utilizza lo stesso nome della toolchain nella nuova istanza Object Storage.
- Se il tuo account contiene già Object Storage istanze, la toolchain utilizza una di queste istanze per archiviare le risorse di build transitorie.
- Per configurare i dettagli Object Storage o Artifactory, vedi la sezione Configurazione delle opzioni utente avanzate.
- Fai clic su Crea per creare la toolchain.
Esplora la tua nuova toolchain
Dopo aver creato la tua toolchain, mostra ciascuna delle integrazioni dello strumento che fanno parte della toolchain in un diagramma.
Esplora le pipeline
Puoi esplorare le pipeline per comprendere il flusso della toolchain e le differenti operazioni eseguite all'interno di ogni pipeline. Ad esempio, per visualizzare più passi come cra-discovery-scan e i dettagli per Parametro e
stato, fare clic sull'integrazione dello strumento Pipeline IC, quindi fare clic su PipelineRuns PipelineRuns.
Esplora DevOps Insights
DevOps Insights aggrega i dati dalla tua toolchain in modo da poter tracciare e migliorare i tuoi processi DevOps end - to - end. Visualizzare le metriche di qualità, tenere traccia dei lavori di build e di distribuzione, visualizzare le politiche e altro ancora.
Se il tuo codice non soddisfa o supera una politica, la distribuzione viene interrotta impedendo così il rilascio dei rischi. Puoi utilizzare DevOps Insights come rete di sicurezza per il tuo ambiente di fornitura continua o come metodo per implementare e migliorare gli standard di qualità.
L'immagine seguente mostra il Quality Dashboard, che fornisce serie di dati relativi alla qualità, quali test unitari, copertura del codice, test di verifica funzionale e analisi statiche di sicurezza per ciascuna applicazione.
Esplora GitOps
GitOps è una serie di prassi e strumenti che pone Git al centro della toolchain DevOps e come origine di verità per cosa distribuire sulla VSI (Virtual Server Instance). Con GitOps, sviluppatori e gli operatori utilizzano i familiari flussi di lavoro Git per definire, rivedere, approvare e verificare le modifiche alla loro infrastruttura e alle loro applicazioni. Gli strumenti automatizzati si occupano della sincronizzazione dello stato attivo delle loro destinazioni con lo stato desiderato descritto in Git.
Utilizzando la toolchain in questa esercitazione, puoi controllare le distribuzioni in più ambienti creando un ramo per ogni ambiente. Il seguente flusso di lavoro di esempio attiva una pipeline Continuous Delivery quando viene effettuata una richiesta di pull o un commit a un ramo specifico del repository Inventory.
- Crea una toolchain per l'istanza del server virtuale su IBM Cloud fornendo i dettagli per l'istanza del server virtuale come il repository dell'applicazione e Object Storage. Non specificare alcun dettaglio per il repository Inventory.
- Una volta creata la toolchain, dal repository Inventory crea più rami come
Dev,StagingeProd. - Fai clic sulla pipeline Continuous Delivery e vai ai trigger. Aggiungere un'origine trigger come un repository Inventory con il ramo che si desidera attivare CD - Pipeline (Master).
- Modificare la pipeline di integrazione continua per eseguire il commit ai rispettivi repository di inventario dopo una corretta integrazione.
- Una volta che sono disponibili sufficienti commit nel repository Inventory, unisci la richiesta di pull nel repository al master per avviare una build Continuous Delivery.
Utilizzando GitOps, è possibile controllare le distribuzioni in più ambienti creando un ramo per ogni ambiente.
Configura opzioni utente avanzate
Per accedere alle opzioni utente avanzate, passare alla pagina Altri strumenti.
-
Specificare un'istanza Cloud Object Storage esistente per archiviare le risorse di build transitorie:
-
Specifica il nome del bucket nella tua istanza Object Storage in cui vuoi memorizzare le risorse di build transitorie. Per caricare gli oggetti nel bucket, deve risiedere nella stessa regione in cui viene creata la toolchain.
-
Seleziona la chiave API che ha accesso in lettura e scrittura al bucket che hai specificato.
Cloud Object Storage -
-
Per utilizzare un account Artifactory per archiviare le risorse di build transitorie, specifica i dettagli per la tua istanza Artifactory:
- Artifactory Server URL: HTTPS URL del Artifactory Server
- Tipo: scegli tra npm, maven o docker
- Artifactory UserID: ID utente per accedere al server Artifactory, nel formato
xxx.xxx@xxx.com - Artifactory APIKey: APIKey generata dall'utente (esistente o nuovo)
- Rilascio URL: Rilascio URL per il repo Artifactory in cui sono memorizzati gli artefatti
Alcuni campi di Artifactory sono obbligatori solo quando si utilizza la configurazione Artifactory.
Fai clic su Crea per creare la toolchain. This process might take several minutes to complete.
Facoltativo. Rollback alla versione precedente dell'applicazione distribuita
È possibile eseguire il rollback del codice distribuito a causa dei risultati del test, dei problemi di qualità del codice e di altri problemi. È possibile utilizzare il repository di inventario per eseguire il rollback alla precedente versione dell'applicazione.
- Immetti
git clone <inventory-repo-url>per clonare e scaricare il repository Git dell'inventario dalla tua pipeline. La pipeline Continuous Delivery è in ascolto sul ramo master del repository Inventory. - Immettere
git logper visualizzare l'elenco di commit completati dalla pipeline di integrazione continua. - Immettere
git checkout masterper estrarre il ramo principale. - Immettere
lastCommitID=$(git log --format="%H" -n 1)per richiamare l'ultimo ID commit per il repository. - Immettere
git revert $lastCommitIDper creare un nuovo commit ripristinando la modifica corrente. Assicurarsi di fornire un messaggio di commit per questo ripristino. - Immetti
git pushper inviare la modifica al repository Inventory e avviare la pipeline Continuous Delivery per la distribuzione dell'applicazione.
Passi successivi
Sebbene questa esercitazione abbia utilizzato un'app Java di esempio, puoi anche distribuire altre applicazioni basate sulla lingua su un'istanza del server virtuale. Per distribuire un'applicazione basata sulla lingua differente a un'istanza del server virtuale, elimina sia la toolchain che l'istanza del server virtuale che hai creato per questa esercitazione.
