Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Integrazione e distribuzione continue
Evolvi e migliorate applicazioni e servizi più rapidamente rispetto alle organizzazioni che utilizzano processi tradizionali di sviluppo software e gestione dell'infrastruttura.
L'adozione di DevOps
Start (Avvio)
Adotta la gestione dei componenti software
La gestione dei componenti software è la pratica di gestione di tutti i singoli componenti utilizzati per creare software, tra cui librerie, framework, repository di codice sorgente, moduli, artefatti e dipendenze di terze parti. Ti consigliamo di utilizzare un sistema di controllo delle versioni come Git o Apache Subversion per gestire il codice sorgente, abilitare la collaborazione e mantenere una cronologia delle modifiche al codice. Puoi monitorare le modifiche e gli eventi nel repository per automatizzare il processo, creare pipeline, gestire il codice e integrare i flussi di lavoro con servizi aggiuntivi, se necessario.
Crea pipeline CI/CD
CI/CD pipelines are sets of automated instructions that are initiated by changes committed to the version control system. They typically include instructions for building the application, running automated tests, and deploying code to a specific environment. You can set up an automated CI/CDpipeline utilizzando strumenti come AWS CodePipelineJenkins o GitLab CircleCI. È inoltre possibile configurarli direttamente nei sistemi di controllo delle versioni che supportano la generazione di pipeline.
Inizia con una pipeline minima praticabile per l'integrazione continua, quindi passa a una pipeline di distribuzione continua
Prendi in considerazione le finestre di distribuzione: in quali giorni e orari desideri distribuire il codice. Considerate gli orari di scarsa richiesta del sistema, in modo che, se doveste effettuare il rollback, l'impatto sui vostri clienti sarà minore. Altre best practice includono evitare le implementazioni il venerdì e implementare un blocco del codice durante le date di punta o prima delle festività. Prendi in considerazione la definizione di regole per la distribuzione del codice quando l'autore del commit non è disponibile (ad esempio, in vacanza). Tieni presente che le distribuzioni falliscono e potresti dover fare affidamento su un aiuto esterno. Valuta diversi metodi di implementazione, ad esempio implementazioni in loco, a rotazione, immutabili e distribuzioni. blue/green Prendi in considerazione l'utilizzo di servizi completamente gestiti per flussi di lavoro di distribuzione continua al fine di aumentare la disponibilità e la sicurezza riducendo al minimo la complessità e la gestione.
Implementa test automatizzati
Le pratiche moderne consigliano di spostarsi a sinistra (avvicinando i test allo sviluppatore e all'IDE
I test automatici rilevano gli errori nelle prime fasi del processo di sviluppo e includono test unitari, test di integrazione e test funzionali. Consigliamo di incoraggiare gli sviluppatori a utilizzare strumenti
Crea documentazione
Oltre a implementare una CI/CD pipeline per semplificare i flussi di lavoro di sviluppo, è necessario disporre di una documentazione chiara e completa per garantire l'efficacia, la manutenibilità e la scalabilità continue della pipeline. La documentazione è un aspetto fondamentale delle pipeline CI/CD, poiché fornisce ai team di sviluppo una chiara comprensione della progettazione, dei componenti e dei processi della pipeline. Quando create la documentazione, iniziate con una panoramica della pipeline, spiegate i compromessi tra architettura e progettazione, descrivete gli strumenti e le tecnologie utilizzati, specificate la configurazione e le impostazioni iniziali, delineate le misure di sicurezza e il controllo degli accessi e includete informazioni sulla risoluzione dei problemi e sulla manutenzione.
Usa l'infrastruttura come codice
Usa strumenti come Terraform, Ansible o AWS CloudFormationper gestire l'infrastruttura e garantire ambienti coerenti e riproducibili. Tratta la tua infrastruttura come codice, assicurati di tenere traccia delle modifiche nell'infrastruttura ed evita di apportare modifiche direttamente nella console. Definisci tutta l'infrastruttura, incluso il provisioning del database, come codice e implementa queste modifiche utilizzando le pipeline. Prendi in considerazione l'idea di eseguire l'integrazione del database come codice nelle pipeline con un piccolo sottoinsieme di dati di produzione eliminati. Quando possibile, apporta le modifiche e tieni traccia di tali modifiche nel codice.
Come per il codice software, segui queste best practice per il codice dell'infrastruttura:
-
Usa il controllo della versione.
-
Utilizza i sistemi di tracciamento dei bug e di ticketing.
-
Chiedi ai colleghi di esaminare le modifiche prima di applicarle.
-
Stabilisci modelli e progetti di codice dell'infrastruttura.
-
Verifica le modifiche all'infrastruttura.
Conserva e monitora le metriche standard
Per mantenere un livello elevato di prestazioni, sviluppate e monitorate le metriche chiave per comprendere l'impatto sulla salute e sul business delle vostre pipeline, tra cui:
-
Aumenta la frequenza. Il numero di build offre informazioni sulla produttività del team e sulla complessità delle modifiche.
-
Frequenza di implementazione. Le implementazioni regolari indicano un processo di sviluppo sano e agile.
-
Tempi di attesa per le modifiche. Misurare il tempo medio necessario affinché le modifiche raggiungano la produzione può aiutarvi a identificare gli ostacoli nel processo di implementazione.
-
Tempo medio di percorrenza della pipeline. Il tempo medio che intercorre tra la fase iniziale della pipeline e ogni fase successiva può aiutare a ottimizzare il flusso di lavoro.
-
Volume delle variazioni di produzione. Tenere traccia del numero di modifiche apportate alla produzione può fornire informazioni sulla stabilità dell'ambiente di produzione.
-
Tempo di costruzione. Il tempo medio di costruzione può indicare potenziali problemi nella codebase o nell'infrastruttura.
Avanzare
Usa la gestione della configurazione
Gli strumenti di gestione della configurazione svolgono un ruolo fondamentale nell'automazione dell'implementazione, della configurazione e della gestione del software e dell'infrastruttura. Forniscono un approccio sistematico alla gestione delle modifiche e al mantenimento dello stato desiderato dell'infrastruttura, del software e delle configurazioni in vari ambienti. Questi strumenti consentono agli sviluppatori di definire lo stato desiderato di un sistema utilizzando linguaggi dichiarativi o imperativi. Lo strumento di gestione della configurazione automatizza quindi il processo di applicazione di queste configurazioni ai sistemi di destinazione, garantendo coerenza e ripetibilità.
Utilizza gli strumenti di gestione della configurazione per automatizzare l'implementazione, la configurazione e la gestione del software e dell'infrastruttura. AWS Systems Manager State Manager è un servizio di gestione della configurazione sicuro e scalabile che automatizza il processo di mantenimento dei nodi gestiti e AWS delle altre risorse in uno stato definito dall'utente.
Integra il monitoraggio e la registrazione
L'integrazione di soluzioni di monitoraggio e registrazione nelle pipeline CD offre numerosi vantaggi per i team di sviluppo e per l'intero processo di sviluppo del software. Queste soluzioni possono fornire informazioni in tempo reale sulle prestazioni delle applicazioni, consentire un'identificazione e una risoluzione più rapide dei problemi e promuovere il miglioramento continuo per garantire che le applicazioni rimangano affidabili, performanti e scalabili per tutto il loro ciclo di vita. Investire in soluzioni di monitoraggio e registrazione è un aspetto fondamentale per mantenere una pipeline di CD solida ed efficiente e, in ultima analisi, contribuisce alla corretta fornitura di software di alta qualità.
Crea una cadenza per l'unione
Conferma o unisci le modifiche al codice nel ramo della linea principale (trunk o main) almeno una volta al giorno o, idealmente, più volte al giorno dopo ogni attività. Questa cadenza porta a più chiamate giornaliere della pipeline. Un modello di flusso di lavoro ramificato basato su pull è in linea con questo approccio. Utilizza i flag di funzionalità
Cattura il comportamento dopo l'implementazione
Dopo l'implementazione, acquisisci il comportamento di produzione utilizzando test sintetici automatizzati e sincronizza i risultati con la pipeline di distribuzione continua per garantire che le azioni correttive vengano intraprese tempestivamente. La massima priorità per gli sviluppatori dovrebbe essere quella di correggere gli errori rilevati nelle pipeline il prima possibile, inserire le modifiche al codice nell'archivio del codice sorgente e verificare la risoluzione degli errori nella pipeline.
Le migliori pratiche post-implementazione includono l'osservazione degli indicatori chiave di prestazione più importanti (KPIs) e la verifica dell'assenza di errori nell'ambiente di produzione. Automatizza la gestione degli errori e la valutazione post-implementazione KPIs per quantificare l'impatto del rilascio. Genera automaticamente metriche di velocità, sicurezza e stabilità che gli sviluppatori possono utilizzare per apportare miglioramenti. Per ulteriori informazioni, consulta la soluzione DevOps Monitoring Dashboard
Excel
Adotta pratiche e tecnologie all'avanguardia per prestazioni ottimali. Il perfezionamento continuo CI/CD dei processi consente di migliorare la qualità del software, ridurre il time-to-market e aumentare l'agilità. Emergono continuamente nuove tecniche e strumenti, il che rende essenziale per l'organizzazione rimanere informata e adattarsi per mantenere un vantaggio competitivo.
Per rimanere adattabile, considera quanto segue:
-
Definisci tutto come codice, inclusa l'applicazione, la configurazione, l'infrastruttura, i dati, AWS gli account e le organizzazioni, le pipeline di implementazione, il networking e i controlli di sicurezza e conformità.
-
Crea le pipeline di distribuzione
corrispondenti per immagini di calcolo, servizi condivisi e applicazioni. -
Prendiamo in considerazione un GitOps modello in cui le richieste basate su pull avviano un flusso di lavoro per implementare le modifiche confrontando lo stato dell'infrastruttura esistente con lo stato desiderato, come descritto nel codice.
-
Prendi in considerazione l'utilizzo di pipeline CD per implementare machine learning (ML), dati, Internet of Things (IoT) e altri carichi di lavoro.
-
Firma digitalmente tutti gli artefatti della build e archiviali in un archivio sicuro.
-
Tieni traccia della provenienza del software generando automaticamente una distinta base del software che crea un registro di tutti gli artefatti con versione e firma digitale che vengono distribuiti ai clienti.
-
Dopo aver eliminato tutte le attività manuali in un processo di distribuzione del software, rimuovete le bacheche di revisione manuali.
Per le applicazioni e i servizi che hanno automatizzato l'intero processo di distribuzione del software, prendete in considerazione l'implementazione continua, in cui i team distribuiscono ai clienti in produzione le modifiche che superano tutti i controlli della pipeline. Per una visualizzazione, consulta il primo diagramma in Cos'
Integrare AI/ML le tecnologie
L'integrazione delle tecnologie di intelligenza artificiale (AI) e machine learning (ML) nelle CI/CD pipeline offre diversi vantaggi, tra cui:
-
Generazione di test automatizzata
-
Assegnazione intelligente delle priorità ai test
-
Analisi predittiva per il rilevamento dei problemi
-
Rilevamento delle anomalie e analisi delle cause principali
-
Revisione del codice e garanzia della qualità
-
Ottimizzazione dell'implementazione
Per ulteriori informazioni, consulta Aggiungere intelligenza alle operazioni di sviluppo
Adotta pratiche di ingegneria del caos
L'ingegneria del caos prevede l'iniezione intenzionale di guasti nei sistemi per testarne la capacità di resistere e riprendersi da eventi imprevisti. Identificando i punti deboli e affrontandoli in modo proattivo, le organizzazioni possono migliorare l'affidabilità complessiva del sistema e ridurre al minimo l'impatto di potenziali problemi.
Adotta pratiche di ingegneria del caos per testare la resilienza dei sistemi utilizzando strumenti come Gremlin, Chaos Monkey o Litmus. Esegui regolarmente esperimenti controllati per identificare le vulnerabilità, convalidare la tolleranza agli errori e assicurarti che l'applicazione gestisca i guasti imprevisti con garbo. Questo approccio proattivo aiuta a migliorare l'affidabilità del sistema e contribuisce a una pipeline più solida. CI/CD
Ottimizzazione delle prestazioni
Ottimizza continuamente le prestazioni della tua applicazione utilizzando strumenti di profilazione, monitoraggio in tempo reale e loop di feedback. Applica tecniche come le seguenti per garantire che le tue applicazioni siano in grado di gestire l'aumento del traffico e della domanda:
-
Ottimizzazione del codice
-
Profiling
-
monitoraggio in tempo reale
-
Circuiti di feedback
-
Caching
-
Sistema di bilanciamento del carico
-
Test di scalabilità e prestazioni
Implementa l'osservabilità avanzata
L'aumento dell'osservabilità dell'infrastruttura cloud va oltre le semplici operazioni di raccolta, aggregazione e analisi di metriche, log e tracce. Quando l'osservabilità viene migliorata con strumenti come Amazon CloudWatch e AWS X-Ray, si evolve in una pratica strategica che alimenta la fornitura e l'innovazione continue.
In una CI/CD pipeline robusta, l'osservabilità avanzata consente di scoprire informazioni non solo sulle applicazioni e sull'infrastruttura, ma anche sulle prestazioni e sullo stato dell'intero sistema, inclusa la pipeline stessa. Queste informazioni ti aiutano a:
-
Identifica, comprendi e risolvi rapidamente i potenziali problemi per migliorare la stabilità delle applicazioni e ridurre i tempi di inattività
-
Semplifica i CI/CD processi per creare consegne più rapide e affidabili
-
Ottieni informazioni più approfondite sull'impatto delle modifiche e delle implementazioni del codice per promuovere un processo decisionale informato
-
Ottimizza l'utilizzo delle risorse per migliorare l'efficienza operativa e la redditività
Per elevare l'osservabilità:
-
Incorpora l'osservabilità in ogni livello delle applicazioni e dell'infrastruttura per creare una visione completa delle prestazioni, del comportamento e dello stato dei sistemi.
-
Centralizza la raccolta, l'archiviazione e l'analisi dei dati con strumenti come Amazon CloudWatch per unificare i dati di osservabilità per un facile accesso e interpretazione.
-
AWS X-Ray Utilizzatelo per il tracciamento distribuito per comprendere le prestazioni delle vostre applicazioni e dei relativi servizi sottostanti.
-
Stabilite cicli di feedback per un miglioramento continuo e utilizzate i dati di osservabilità per promuovere miglioramenti iterativi dei vostri sistemi.
Adottare l'osservabilità avanzata non significa solo mantenere i sistemi, ma è una mossa strategica verso il raggiungimento dell'eccellenza operativa e la promozione dell'innovazione continua nell'organizzazione.
Implementa pratiche GitOps
Implementa GitOps pratiche per gestire le configurazioni dell'infrastruttura e delle applicazioni utilizzando un repository Git come unica fonte di verità. Questo approccio semplifica la gestione delle modifiche, migliora la tracciabilità e garantisce la coerenza tra gli ambienti.