Articoli
Tutorial
Guide interattive
Best practice DevOps
DevOps richiede cambiamenti culturali, processi automatizzati e investimenti nelle tecnologie giuste
Tom Hall
DevOps Advocate & Practitioner
Le best practice DevOps includono la gestione Agile dei progetti, la tecnica "Shift Left" tramite le pratiche CI/CD, l'automazione, il monitoraggio, l'osservabilità e il feedback continuo.
Cos'è DevOps?
È bene immaginare DevOps come un fattore di promozione aziendale per migliorare la comunicazione e la collaborazione tra i team di sviluppo e delle operazioni, al fine di aumentare la velocità e la qualità della distribuzione del software. È un nuovo modo di lavorare che ha implicazioni significative per i team e le organizzazioni.
L'importanza di DevOps
Anche la trasformazione DevOps implica la revisione delle strutture e dei processi aziendali, vale la pena intraprenderla. Il 99% degli intervistati della nostra 2020 DevOps Trends Survey ha affermato che DevOps ha avuto un impatto positivo sulla propria organizzazione.
Un altro studio su DevOps, il report State of DevOps 2019 di DORA, ha rilevato che i team eccellenti eseguono rilasci 208 volte più frequentemente e 106 volte più rapidamente dei team a basso rendimento. E non si tratta solo della capacità di adattamento al mercato: DevOps offre una migliore qualità, con team eccellenti che vantano una percentuale di modifiche non implementate sette volte inferiore rispetto ai team con prestazioni inferiori.
Materiale correlato
Inizia gratis
Materiale correlato
Scopri di più sui vantaggi di DevOps
Best practice per l'implementazione di DevOps
Gestione dei progetti Agile
Agile è un approccio iterativo alla gestione dei progetti e allo sviluppo del software che aiuta i team a fornire valore ai propri clienti in modo più rapido e con meno problemi. I team Agile si concentrano sul completamento del lavoro a incrementi più piccoli, invece di riunire tutto il lavoro e completarlo in una sola data di rilascio generale. Requisiti, piani e risultati vengono valutati continuamente, consentendo ai team di rispondere ai feedback e apportare cambiamenti in base alle necessità.
Di seguito sono riportati i concetti chiave per la gestione Agile dei progetti:
- Inizia con un flusso di lavoro suddiviso in quattro fasi: da fare, in corso, revisione del codice e completato. Scopri di più sui flussi di lavoro.
- I team devono suddividere i progetti su larga scala in task più piccoli e rispondere alle variazioni di esigenze o ambito man mano che avanzano. Scopri di più su come utilizzare epic, story e temi per assegnare un ambito e strutturare il lavoro.
- Come pianifichi, monitori e misuri il lavoro incrementale? Scrum e Kanban sono framework fondamentali per i team che praticano la metodologia Agile.
Applica la tecnica "Shift Left" con CI/CD
Quando i team adottano la tecnica "Shift Left", introducono le attività di test già nelle prime fasi del processo di sviluppo del codice. Invece di inviare più modifiche a un team di test o di controllo di qualità separato, vengono eseguiti diversi test nel corso del processo di stesura del codice in modo che gli sviluppatori possano correggere i bug o migliorare la qualità del codice mentre lavorano alla sezione pertinente della codebase. Le pratiche di continuous integration, continuous delivery (CI/CD) e continuous deployment sono alla base della tecnica "Shift Left". Scopri di più su CI/CD.
Crea con gli strumenti giusti
La toolchain DevOps richiede gli strumenti giusti per ogni fase del ciclo di vita DevOps, con funzionalità chiave per migliorare la qualità del software e la velocità di rilascio. Scopri di più su come scegliere gli strumenti DevOps e rivedi le funzionalità di ogni fase del ciclo di vita DevOps.
Implementa l'automazione
La continuous integration e la continuous delivery consentono agli sviluppatori di eseguire regolarmente il merge del codice nel repository principale. Invece di controllare manualmente il codice, CI/CD automatizza questo processo, dalla suddivisione in batch in un intervallo di tempo specifico, ai commit frequenti. Oltre a CI/CD, i test automatizzati sono essenziali per il successo delle pratiche DevOps. Tali test possono includere test end-to-end, test unitari, test di integrazione e test delle prestazioni. Scopri di più sull'integrazione dell'automazione nei processi di sviluppo software. Scopri di più sull'automazione.
Monitora le applicazioni e la pipeline DevOps
È importante monitorare la pipeline DevOps per evitare che una build con errori o un test non riuscito provochino ritardi inutili. L'automazione migliora enormemente la velocità di sviluppo, ma se si verifica un errore in un processo automatizzato senza che nessuno ne sia a conoscenza, tanto varrebbe eseguire direttamente il lavoro manualmente. Allo stesso modo, è importante monitorare le applicazioni di produzione al fine di individuare guasti o inadeguatezze delle prestazioni prima dei clienti.
Osservabilità
Poiché il settore si è allontanato dai sistemi e dalle applicazioni monolitici e on-premise per andare verso le applicazioni basate su microservizi e native del cloud, il monitoraggio è ora notevolmente più complesso. Di conseguenza, vi è un crescente interesse per l'osservabilità. Si dice spesso che i tre pilastri dell'osservabilità siano i log, le tracce e le metriche. I log sono generati dalla maggior parte dei componenti e delle applicazioni del sistema e sono costituiti da dati di serie temporali sul funzionamento del sistema o dell'applicazione. Le tracce monitorano il flusso di logica all'interno dell'applicazione. Le metriche includono la prenotazione o l'utilizzo di CPU/RAM, lo spazio su disco, la connettività di rete e molto altro. Osservabilità significa semplicemente utilizzare tutte e tre queste fonti di informazione in forma aggregata per fare scoperte e previsioni sul funzionamento di un sistema complesso, che altrimenti sarebbero difficili da ottenere. Scopri di più sull'osservabilità.
Raccogli feedback continui
Grazie ai feedback continui, i membri del team possono disporre di tutte le informazioni necessarie per svolgere il proprio lavoro in modo tempestivo. Dal punto di vista dello sviluppo, ciò implica che il team debba essere immediatamente avvisato di eventuali errori nella pipeline e che vengano resi disponibili agli sviluppatori il più rapidamente possibile i risultati chiari e approfonditi dei test del codice. Dal punto di vista della gestione del prodotto, il team è informato di eventuali guasti di produzione, inadeguatezze delle prestazioni o dei bug segnalati. In passato era diffusa la convinzione che i team di sviluppo potessero ottimizzare soltanto o la velocità o la qualità. Il feedback continuo è uno degli elementi di DevOps che consente di raggiungere entrambi gli obiettivi.
Cambia la cultura
DevOps richiede collaborazione, trasparenza, fiducia ed empatia. Se la tua organizzazione è tra le poche ad aver instaurato queste qualità, dovrebbe essere abbastanza facile per i team adottare le pratiche DevOps. In caso contrario, sarà necessario impegnarsi per sviluppare queste caratteristiche. Le strutture organizzative più comuni sono isolate, ovvero dispongono di team diversi responsabili di aree di proprietà separate, e la comunicazione o la collaborazione tra i team è ridotta all'osso. Per garantire il successo di DevOps, queste barriere devono essere eliminate tramite l'adozione della pratica "You Build It, You Run It". Ciò non significa che non debbano esserci persone o team specializzati, ma soltanto che le linee di comunicazione e collaborazione tra i team sono aperte e sfruttate. Scopri di più sulla costruzione della cultura del team.
Il perfezionamento delle pratiche DevOps è un percorso continuo. Concentrati sulle persone e sui processi quando inizi la trasformazione DevOps e incorpora strumenti avanzati, integrazione e funzionalità man mano che acquisisci dimestichezza con questo approccio.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.