Il platform engineering, che centralizza le best practice e i componenti per i team di sviluppo, sta diventando sempre più importante man mano che le pratiche e i framework DevSecOps diventano più integrati nelle organizzazioni. Mira a normalizzare e standardizzare i flussi di lavoro degli sviluppatori fornendo "percorsi migliori" ("golden path") ottimizzati per la maggior parte dei carichi di lavoro, e dando la flessibilità di definire le eccezioni per il resto.
Gartner® prevede che "entro il 2026, l'80% delle grandi società di software engineering istituirà team di platform engineering come fornitori interni di servizi, componenti e strumenti riutilizzabili per la distribuzione delle applicazioni, rispetto al 45% nel 2022" [1]. Il platform engineering consente alle aziende, in particolare a quelle più grandi con molte attività ingegneristiche in parallelo, di scalare più facilmente i principi e gli strumenti DevSecOps. Questo approccio è fondamentale quando sono spinte a fare di più con meno.
I principali vantaggi del platform engineering
Commercializzazione più rapida: il platform engineering promette di aiutare a distribuire software di qualità migliore in modo più rapido ed economico. La creazione di un team di platform engineering ripagherà sul lungo termine, perché consente alle grandi società di svilupparsi rapidamente con meno strumenti e con risparmi significativi sui costi.
Riduzione dei rischi di sicurezza e conformità: meno strumenti e flussi di lavoro più standardizzati riducono il sovraccarico legato alla garanzia di conformità e la potenziale superficie di attacco. Secondo i report Cost of a Data Breach di IBM, il costo medio globale delle violazioni dei dati nel 2023 è stato pari a 4,45 milioni di dollari. Eppure, le aziende che hanno gestito efficacemente la superficie di attacco potrebbero contenere le violazioni più rapidamente.
Miglioramento dell'esperienza degli sviluppatori: La DevEx è una priorità crescente e le aziende competono per attrarre e trattenere i migliori sviluppatori. I team di platform engineering possono contribuire a migliorare la DevEx creando flussi di lavoro efficienti e automatizzati (i cosiddetti "golden path"), eliminando alcune attività manuali e non rilevanti per gli sviluppatori. In questo modo viene semplificato il lavoro quotidiano, permettendo agli sviluppatori di creare, testare ed eseguire il deployment delle applicazioni in modo efficiente, oltre che di concentrarsi sulle attività più importanti e critiche.## Best practice di platform engineering
La cultura prima di tutto
Se "platform" indica ciò che si costruisce, "engineering" descrive come la si costruisce. Troppe aziende si lanciano nell'acquisto e nell'installazione di tecnologie senza considerare come modificare la cultura aziendale per adottarle con successo.
I team di platform engineering devono quindi considerarsi product owner, e gli sviluppatori come clienti. Bisogna capire le esigenze degli sviluppatori e quindi raggiungere gli utenti finali per aiutarli a usare al meglio le risorse fornite. Per fare ciò sono necessarie competenze interne di marketing, comunicazione e assistenza clienti, che spesso mancano ai team tecnici.
La chiave è avere una mentalità e una cultura orientate al prodotto, affinché i team di platform engineering possano concentrarsi sulla creazione di valore per gli utenti finali (gli sviluppatori) ascoltando il feedback degli utenti, e iterando e migliorando continuamente il loro prodotto (la piattaforma degli sviluppatori). I leader devono quindi creare un ambiente in cui i team abbiano gli strumenti per capire come aiutare i clienti (interni). Devono rendere il più semplice possibile l'uso dei servizi, ad esempio attraverso interfacce self-service o API programmabili.
Creare valore commerciale
Quando si avvia un'iniziativa di platform engineering, si può essere tentati di copiare le azioni dei team altamente produttivi. Ma spesso si dà troppa enfasi alla struttura del team o agli strumenti che utilizza. Questi infatti sono spesso i risultati di un team altamente produttivo, non ciò che lo rende tale. Invece di concentrarsi sulla struttura e sugli strumenti del team, bisogna pensare ai risultati desiderati, quindi identificare gli strumenti e le strutture del team giusti per raggiungerli.
Definisci l'obiettivo del platform engineering in termini di impatto aziendale. Sviluppare software più velocemente è ottimo. Ma perché? A quale obiettivo serve?
Aumentare la velocità e l'agilità è un obiettivo comune a molte imprese, ma potrebbe nascondere altri traguardi desiderati. Un time-to-market lento ha un ovvio costo di opportunità, poiché le organizzazioni devono fare scelte difficili sui prodotti a cui dare priorità. Chi può muoversi più rapidamente è anche meglio equipaggiato per rispondere ai mercati in rapida evoluzione. E tutto ciò ha implicazioni per la sicurezza, perché permette di rispondere in modo rapido ed efficiente in caso di incidenti.
Le metriche comuni di produttività ed efficienza sono sicuramente utili, ma occorre tradurle in valori monetari per chiarirne il valore commerciale. Ad esempio, supponiamo che il platform engineering riduca il tempo che un nuovo sviluppatore impiega per eseguire il suo primo commit verso la produzione. In questo caso, si risparmia una certa percentuale dello stipendio annuale di quello sviluppatore e parte dello stipendio delle persone che lo aiutano. Probabilmente aumenterà anche la fidelizzazione del personale, riducendo la necessità di nuove assunzioni costose (con costi di pubblicità, reclutamento e lunghi cicli di colloqui).
I dirigenti possono quindi ottimizzare le iniziative di platform engineering rimanendo concentrati sul valore commerciale, per ottenere i giusti risultati.
L'importanza della misurabilità
È importante avere a disposizione metriche che aiutino a monitorare i progressi del team di platform engineering e a capire come gli sviluppatori usano (o non usano) i servizi forniti. Questi dati permettono di migliorare costantemente, identificare gli ambiti con buoni risultati o capire se inserire risorse aggiuntive, oltre che contribuire al marketing interno.
Ecco alcune potenziali metriche da tenere in considerazione:
-
Tasso di adozione: quanti sviluppatori usano attivamente la piattaforma?
-
Time-to-value: quanto tempo occorre perché un nuovo sviluppatore inizi a distribuire il codice sulla piattaforma?
-
Coinvolgimento della community: quale percentuale di componenti all'interno della piattaforma è stata fornita dalla community? Ad esempio, se un team sviluppa un nuovo job di CI potenzialmente utile anche per altri colleghi, lo condivide con il team di platform engineering affinché possa essere utilizzato su una scala più ampia?
Sviluppo per tutti
Gli early adopter di una piattaforma di sviluppo potrebbero essere i più visibili (e quelli che esprimono più esplicitamente la propria opinione) all'inizio del processo. Ricorda però che gli early adopter, che in genere rappresentano meno del 20% di un'organizzazione, possono avere esigenze molto diverse rispetto alla maggior parte degli utenti che alla fine useranno la piattaforma. Quando definisci i golden path che hanno senso per la tua organizzazione, assicurati di pensare alla maggioranza, non solo agli early adopter.
Un golden path comune su cui vale la pena investire in anticipo è una pipeline di CI/CD end-to-end che supporta un particolare tipo di carico di lavoro su una serie di piattaforme target (come Kubernetes). Una volta che questo carico di lavoro di base è supportato, offre una base solida per tutti gli altri e dà la certezza che la piattaforma possa offrire valore. È dunque importante definire i golden path prioritari della tua organizzazione in relazione ai risultati che generano.
La piattaforma DevSecOps: una base per il platform engineering
Una piattaforma DevSecOps fornisce un'interfaccia utente, un archivio dati unificato e la sicurezza incorporata nel ciclo di vita DevSecOps. Con una piattaforma DevSecOps, le organizzazioni possono costruire una base per il platform engineering con flussi di lavoro as-a-service (WaaS) per l'intero processo di sviluppo software.
Ecco alcuni elementi critici di una piattaforma DevSecOps che generalmente contribuiscono al successo del platform engineering:
-
Pianificazione e collaborazione: Il platform engineering non funziona senza trasparenza. Riunire tutte le persone coinvolte sulla stessa piattaforma permette di ottimizzare la comunicazione e aiuta gli sviluppatori a restare al corrente di obiettivi e strategie, migliorando in tal modo i processi di pianificazione, sviluppo, test, messa in sicurezza, deployment e monitoraggio del codice.
-
CI/CD e orchestrazione: l'orchestrazione è al centro del platform engineering. Una piattaforma aiuta gli sviluppatori a controllare la qualità del codice e a portarlo in produzione. Fornisce inoltre un meccanismo di creazione di modelli che garantisce l'integrazione delle più comuni best practice e la coerenza del flusso di lavoro in termini di qualità.
-
Esperienza degli sviluppatori: la DevEx mira a semplificare la vita quotidiana degli sviluppatori automatizzando le attività manuali e eliminando le decisioni inutili. Con una piattaforma DevSecOps, il codice è raccolto in un'unica posizione e questa centralizzazione aiuta gli sviluppatori a trovare ciò di cui hanno bisogno, riducendo al minimo le commutazioni di contesto. Inoltre, la disponibilità di modelli riutilizzabili e di funzionalità basate sull'IA, come i suggerimenti e le spiegazioni del codice, permette di semplificare i processi e agevola l'onboarding degli sviluppatori, che possono così mettersi subito al lavoro per generare valore.
-
Sicurezza integrata: con una piattaforma DevSecOps, le analisi di sicurezza automatiche garantiscono che tutto il codice soddisfi i criteri minimi e, soprattutto, che gli sviluppatori abbiano un accesso autonomo a tali dati: infatti non dovranno aspettare fino all'implementazione in produzione per scoprire che il team di sicurezza ha individuato una vulnerabilità critica.
-
Metriche e analisi: affinché un'iniziativa di platform engineering abbia successo, occorre identificare gli obiettivi commerciali alla base del progetto ed essere in grado di monitorare i progressi. Le dashboard e le analisi che estraggono i dati in ogni fase del ciclo di sviluppo software consentono di monitorare facilmente le metriche chiave, valutare l'impatto dei miglioramenti dei processi ed esaminare gli ostacoli nel dettaglio. Ciò permette ai responsabili di identificare rapidamente tendenze e colli di bottiglia, per concentrare gli sforzi sui progetti a rischio.
Scopri di più su come GitLab accelera lo sviluppo software fornendo ai team DevSecOps un unico portale self-service per strumenti e flussi di lavoro, riducendo il carico cognitivo e rendendo la distribuzione del software più scalabile.
[1] Gartner, Top Strategic Technology Trends for 2024, Bart Willemsen, Gary Olliffe e Arun Chandrasekaran, 16 ottobre 2023. GARTNER è un marchio registrato e un marchio di servizio di Gartner, Inc. e/o delle sue controllate negli Stati Uniti e a livello internazionale. Entrambi vengono utilizzati nel presente documento previa autorizzazione. Tutti i diritti riservati.
Sondaggio globale DevSecOps 2024
Leggi i risultati del sondaggio condotto tra oltre 5.000 professionisti DevSecOps in tutto il mondo e scopri come si evolvono le opinioni sulla sicurezza, sull'IA e sulla DevEx.
Leggi il report