Formazione scritta DevOps
Come favorire l'apprendimento dell'organizzazione a partire dal lavoro DevOps quotidiano?
Uno dei principi chiave che tu e il team traete da DevOps è imparare continuamente dal lavoro quotidiano e trasformare ciò che imparate in risorse riutilizzabili da tutta l'organizzazione.
Usa le chat per diffondere le conoscenze
Usa le chat per raccogliere e creare conoscenze nell'organizzazione. Crea bot integrati nelle chat per eseguire rapidamente attività operative. Per esempio, il seguente messaggio al bot nella chat può installare l'applicazione FrontEndApp nell'ambiente TestServer-9 e mostrare l'esito del comando nella chat, come se lo avessi eseguito dall'interfaccia a riga di comando.
@bot install FrontEndApp TestServer-9
Grazie a questo meccanismo, tutti nel team possono aggiornarsi in fretta sui progressi. Le informazioni non si perdono in messaggi privati o e-mail. Ciò favorisce la collaborazione e la trasparenza del lavoro ed è un modo molto efficace per trasformare le conoscenze locali in patrimonio dell'organizzazione.
Infine, le chat condivise accelerano l'inserimento di chi entra nel team DevOps o in azienda, perché permettono di osservare facilmente una parte sostanziale del lavoro dei team. Puoi valutare di usare chat separate per prodotti, servizi, componenti, strumenti, librerie o integrazioni diversi, così sarà più facile cercare e ritrovare le attività passate associate a un elemento del sistema.
Dai priorità al codice eseguibile rispetto alla documentazione
Trasforma per quanto possibile competenze e conoscenze in standard e processi eseguibili, anziché inserirle in documenti o wiki. Uno dei modi migliori per creare e condividere conoscenze nell'organizzazione DevOps è creare uno strumento riutilizzabile e conservarlo nel sistema di controllo di versione, dove chi ne ha bisogno può trovarlo. Esprimere uno standard e il modo di lavorare con codice eseguibile, anziché con documenti statici che possono essere interpretati diversamente o erroneamente, accelera e semplifica le attività e aiuta a superare verifiche di audit e conformità. Occorre almeno una documentazione essenziale che spieghi come il codice gestisce il processo soggetto a queste verifiche.
Per attività, processi e standard che non si possono automatizzare, crea storie utente riutilizzabili con passaggi chiari e distinti e una checklist, così tutti nell'organizzazione DevOps potranno trarne beneficio. Grazie a queste risorse, team diversi possono svolgere attività simili in modo coerente e migliorare le risorse come fanno quando rivedono, riutilizzano e migliorano le librerie di codice.
Crea modelli software riutilizzabili
Crea modelli pronti all'uso per componenti, applicazioni, servizi e microservizi con i requisiti non funzionali integrati fin dalla progettazione. Gli sviluppatori non dovranno così preoccuparsi dei requisiti non funzionali ogni volta che scrivono nuovo codice.
L'organizzazione disporrà inoltre di un insieme coerente di requisiti non funzionali implementati in tutto lo stack applicativo. Integrare queste funzionalità semplificherà il deployment, il monitoraggio, la risoluzione dei problemi e, in generale, la gestione del software in esecuzione sulle piattaforme di test e produzione. Tra gli esempi di requisiti non funzionali ci sono:
- Metriche di telemetria.
- Configurazioni di runtime.
- Feature toggle.
- Possibilità di tenere traccia delle dipendenze.
- Possibilità di tracciare le richieste avviate dagli utenti.
- Servizi resilienti e tolleranti ai guasti.
- Servizi che possono passare in modo controllato a una versione o a un livello inferiore su richiesta.
- Possibilità di cercare nei messaggi di log.
- Compatibilità con versioni precedenti e successive.
- Archiviazione dei dati e gestione degli insiemi di dati di produzione.
- Gestione e archiviazione dei log.
I modelli eseguibili devono includere una copertura completa di test automatizzati. Questi test chiariscono lo scopo del codice e come riutilizzarlo al meglio, e accelerano la creazione di test automatizzati per le applicazioni personalizzate basate sui modelli riutilizzabili.
Usa un unico repository di codice
Per condividere tutto ciò che imparate e producete, nell'unico repository conservi il codice sorgente e anche gli strumenti di deployment, il codice per costruire ed eseguire la pipeline, i test automatizzati, il codice per costruire e integrare la telemetria, gli standard, i tutorial, i documenti, i wiki, gli strumenti di supporto e gli standard di configurazione delle piattaforme.
Così tutte le risorse sono condivise in modo trasparente con l'intera organizzazione DevOps. Si evitano duplicazioni e versioni multiple degli stessi artefatti, componenti e strumenti di terze parti. Un solo repository permette inoltre di compilare, collegare e creare tutto in fase di esecuzione e di usare la versione più recente di tutto quando sviluppi, testi e distribuisci il software.
Adotta standard tecnologici e mantieni la flessibilità
Se vuoi che tutti nel team DevOps possano leggere, rivedere e correggere il codice altrui, definisci standard tecnologici di base che tutti nei team di sviluppo e operativi possano imparare e usare. Servono un linguaggio compilato, uno di scripting e uno per le interfacce grafiche. Lascia comunque che tutti esplorino le tecnologie che li interessano, così il team potrà continuare a imparare e sperimentare. Come potrà avere successo la tua prossima innovazione se non esplori e sperimenti ai confini di ciò che conosci?
CONCLUSIONE
In questo capitolo abbiamo riassunto alcune tecniche DevOps ampiamente adottate che permettono all'organizzazione di imparare e creare risorse durante il lavoro quotidiano. Con questi metodi, l'esperienza e le competenze accumulate nell'intera organizzazione DevOps sosterranno e rafforzeranno la professionalità e la qualità del lavoro di ogni membro del team.
Buona fortuna per il tuo percorso DevOps!
