Platform Engineering: Trasformare l'approccio DevOps

Platform Engineering: Trasformare l’approccio DevOps

Introduzione

L’implementazione di pratiche DevOps nel ciclo di vita dello sviluppo del software offre miglioramenti sostanziali nella creazione e nella manutenzione del software. Tuttavia, l’esperienza nell’adozione di queste pratiche varia da un’entità all’altra, influenzata da fattori quali le dimensioni, la maturità Agile, il modello di architettura o le integrazioni con sistemi legacy.

L’obiettivo principale è ottimizzare le prestazioni dei team di Sviluppo introducendo il concetto di “esperienza dello sviluppatore” per valutare l’eccellenza. Sebbene sia stato fatto un lavoro antecedente per poter fornire a questi team gli strumenti necessari e per misurare i miglioramenti a ogni cambiamento, i risultati non sono sempre ottimali. Ad esempio, nelle organizzazioni con più team, la mancanza di omogeneità nel ciclo di sviluppo e consegna, così come la diversità degli strumenti utilizzati, porta a complessità, una richiesta di manutenzione aggiuntiva e ripercussioni sui costi.

D’altra parte, nelle organizzazioni con un team DevOps centralizzato, il “carico cognitivo” dei team di Sviluppo diminuisce grazie a una maggiore distribuzione delle responsabilità nella definizione del ciclo di sviluppo e consegna, nonché degli strumenti associati. Tuttavia, questo non evita tensioni tra i team DevOps e di Sviluppo in situazioni conflittuali dovute alla mancanza di comprensione.

Queste situazioni distolgono l’attenzione dall’essenza di DevOps, che cerca di automatizzare il ciclo di vita del software (SW) per allineare le iniziative e promuovere la collaborazione tra i team, per fornire il software in modo più efficiente e meno stressante, essenziale per poterlo fare in modo continuo.

 

Un nuovo approccio DevOps

Stanno emergendo nuove tendenze che cercano di trasformare il modello DevOps in un prodotto aziendale, allontanandosi dal suo trattamento come semplice progetto. Viene adottato il concetto di Product Agile, che si concentra sulla chiarezza dell’interazione tra i team, sulla responsabilizzazione per massimizzare il contributo al valore, sull’aumento del flusso di consegna e sulla riduzione del “carico cognitivo” per i team di Sviluppo.

La proposta prevede la standardizzazione dell’infrastruttura, la creazione di interfacce self-service per gli sviluppatori e la creazione di un team che si occupi della manutenzione della piattaforma. Questa evoluzione si chiama Platform Engineering e comporta il cambiamento del nome del team DevOps in “team di ingegneria”.

La strategia è quella di continuare con DevOps, cambiando il modo in cui viene gestito per renderlo globale, e avere dei feedback, in modo tale da garantire l’incorporazione delle esigenze dei team di Sviluppo man mano che si presentano, attraverso il profilo agile del Product Owner per creare e mantenere un prodotto che risolva tutte le loro sfide quotidiane.

L’idea principale è quella di riutilizzare gli strumenti e i processi esistenti per ridurre al minimo l’impatto iniziale. Nelle nuove organizzazioni, si suggerisce di contrattare prodotti integrati come GitLab o GitHub che offrono già gli strumenti necessari oltre ad evolvere con ulteriori opzioni di integrazione con altri prodotti freemium o della comunità.

La creazione del team Platform includerà i team DevOps, Operations/Systems/Security esistenti e i membri del team di Sviluppo che sono consapevoli dei vantaggi di questo cambiamento. La comprensione delle esigenze degli utenti, la capacità di dare priorità al lavoro e la costruzione di una piattaforma utile sono fondamentali, nonostante le difficoltà. L’obiettivo è che, grazie alla piattaforma, i team di Sviluppo possano sviluppare e consegnare con le tempistiche e i ritmi necessari, concentrandosi sull’applicazione piuttosto che sull’apprendimento crescente di questioni DevOps.

Per fornire un accesso organizzato e completo al nuovo prodotto, si raccomanda una “Piattaforma di sviluppo interna” attraverso un portale centralizzato. Gli studi indicano che la creazione di una piattaforma di sviluppo interna ha un impatto positivo sull’evoluzione delle pratiche DevOps, in quanto standardizza un modello self-service di strumenti e tecnologie per gli sviluppatori, riducendo il carico cognitivo che potrebbe compromettere le loro prestazioni.

 

Conclusioni

Aziende come Spotify, Airbnb e Zalando hanno già adottato questo modello e Gartner prevede che, entro il 2028,  l’80% delle organizzazioni che si occupano di sviluppo software disporrà di team interni di Platform Engineering, che forniranno servizi, componenti e strumenti interni riutilizzabili da parte dei team di sviluppo per la consegna del software.

Autore: Iñigo Chaso Rico, Responsabile LoB industrializzazione di SDLC.