Cos'è il platform engineering: guida pratica per i team dev

Riassunto

Il platform engineering costruisce una piattaforma interna self-service che permette agli sviluppatori di ottenere ambienti, pipeline e servizi senza aspettare altre persone. Funziona come un prodotto, con gli sviluppatori come clienti, e si fonda sui golden path, cioè percorsi supportati per i compiti comuni. Non è DevOps con un nome nuovo: DevOps è una cultura, la SRE definisce l'affidabilità, il platform engineering fornisce la strada. Sotto circa 30 ingegneri di solito non vale la pena creare un team dedicato.

Sviluppatore alla scrivania con due monitor in un ufficio tecnico luminoso

Il platform engineering è la pratica di costruire e gestire una piattaforma interna che dà agli sviluppatori accesso self-service a ciò che serve per rilasciare software: ambienti, pipeline, servizi, documentazione e regole di sicurezza. Quindi, cos'è il platform engineering in pratica? Un piccolo team tratta il percorso tra «ho un'idea» e «gira in produzione» come un prodotto, e gli sviluppatori ne sono i clienti. L'obiettivo è meno attesa, meno ticket e meno strumenti da imparare.

Probabilmente hai già vissuto il problema. Un nuovo servizio richiede un repo, una pipeline, un database, dei segreti, delle dashboard e una rotazione di reperibilità, e ciascuno di questi elementi sta dietro una pagina wiki diversa o una persona diversa su Slack.

Perché il platform engineering è nato?

«Chi lo costruisce, lo gestisce» funzionava bene quando un team possedeva un solo servizio e pochi strumenti. Ha smesso di reggere quando la toolchain è cresciuta fino a Kubernetes, Terraform, tre sistemi di CI, un secret manager, un service mesh e uno stack di osservabilità. Ogni sviluppatore di prodotto doveva diventare, a tempo parziale, un ingegnere dell'infrastruttura.

Il costo non compare in una riga di budget, ma nel carico cognitivo. Chi impiega 90 minuti per capire quale chart Helm sia quella «giusta» non è rallentato da una mancanza di competenze. È rallentato da una mancanza di default.

Un sentiero lastricato che sale su una collina erbosa, metafora di un golden path

Il platform engineering è la correzione. Invece di chiedere a ogni team di assemblare da zero lo stesso stack, un team dedicato lo assembla una volta, lo rende l'opzione più semplice e lo mantiene in salute. Anche gli analisti vedono questa spinta: Gartner prevede che l'80% delle grandi organizzazioni di ingegneria del software avrà team di platform engineering entro il 2026, contro il 45% del 2022.

Cosa costruisce davvero un platform team?

Mettiamo da parte per un momento i diagrammi dei vendor. In molte aziende un platform team rilascia quattro cose.

Nessuna di queste cose richiede una nuova categoria di prodotto. Parecchie buone piattaforme sono nate come un template cookiecutter e un README che qualcuno teneva aggiornato.

Cos'è un golden path e perché i team lo ignorano?

La CNCF descrive un golden path come una «composizione templata di codice e capacità ben integrate per lo sviluppo rapido dei progetti», una definizione che Google Cloud illustra con un esempio Spring Boot. In parole semplici è un template che dà a un nuovo servizio, fin dal primo giorno, un repo, una pipeline, il logging e la configurazione di deploy.

Il modo in cui fallisce è altrettanto semplice. Un percorso che nessuno ha chiesto, costruito senza parlare con i team che dovranno usarlo, resta a un'adozione di una sola cifra, mentre il platform team si chiede perché gli sviluppatori continuino ad aprire ticket. Il percorso deve essere più corto della scorciatoia, altrimenti le persone prendono la scorciatoia.

Due regole tengono in vita i golden path:

  1. Asfaltati, non recintati. Gli sviluppatori possono uscire dal percorso, ma si assumono il carico di supporto per ciò che costruiscono fuori.

  2. Gestiti come un prodotto. Qualcuno legge i feedback, misura l'adozione ed elimina i percorsi che nessuno usa.

Il platform engineering è solo DevOps con un nome nuovo?

In parte sì, e la risposta onesta è più utile di quella del marketing. DevOps è una cultura: responsabilità condivisa tra sviluppo e operations, cicli di feedback brevi. Il platform engineering è un modo per rendere sostenibile quella cultura su larga scala, trasformando il lavoro operativo ripetuto in un prodotto.

SRE è un'altra disciplina ancora. Gli SRE definiscono obiettivi di affidabilità, li misurano e decidono quando smettere di rilasciare per proteggerli. Il platform team fornisce la strada asfaltata, il team SRE ti dice quanto rischio puoi permetterti percorrendola.

Le modalità di fallimento sono la parte da leggere due volte. Un platform team che raccoglie ticket e costruisce qualunque cosa gli venga chiesta è un team operations con un nome nuovo, e si porta dietro tutti i vecchi problemi delle code.

Rack di server con cavi aggrovigliati da un lato e cavi ordinati dall'altro

Quando un platform team vale il costo in persone?

Lascia perdere se hai meno di circa 30 ingegneri e uno o due servizi. A quella dimensione bastano un buon repo di template e un modulo Terraform condiviso, e un platform team a tempo pieno è solo overhead. Un paio di persone in un team di dieci finiranno in silenzio per diventare la piattaforma, e va bene così.

Comincia a ripagarsi quando vedi ripetersi gli stessi segnali:

La versione minima utile è quella che Team Topologies chiama thinnest viable platform: quanto basta per rimuovere il dolore ripetuto più grande, documentato bene, e niente di più. Parti dal flusso che costa più ore tra i team, di solito «crea un nuovo servizio» o «ottieni un ambiente di preview».

Il feature management è un buon esempio di capacità più economica come servizio condiviso che come dieci versioni private.

Un servizio di flag che ogni team può chiamare, con lo stesso audit trail e le stesse regole di pulizia, evita a ogni team di scrivere il proprio sistema di toggle a metà. Che lo compri o lo costruisca, deve stare sulla piattaforma e non in ogni repo.

Cosa c'entra la piattaforma con la lettura del codice?

Più di quanto i diagrammi ammettano. Una piattaforma è utile solo quanto la conoscenza che la circonda. Quando uno sviluppatore chiede «come si autentica il servizio A verso il servizio B?», la risposta sta nel codice, nella configurazione e in un runbook che potrebbe avere sei mesi.

È qui che i platform team bruciano tempo in silenzio. Sono loro a ricevere la domanda su Slack che inizia con «dove è configurato X?» e a rispondere a memoria, ancora, per la quinta volta in settimana. L'effetto si vede quando un repo supera le 80K righe e il platform team diventa un indice di ricerca umano.

Laptop di uno sviluppatore con un editor di codice accanto a uno schizzo di diagramma di sistema su un taccuino

Alcuni strumenti aiutano, e risolvono metà del problema ciascuno. Gli strumenti docs-as-code tengono la parte scritta vicina al sorgente.

Gli assistenti consapevoli del codice rispondono a domande sul codice stesso. Quello di Sourcegraph, Cody, è pensato per organizzazioni grandi e multi-repo ed è venduto alle aziende su preventivo, quindi si adatta ai platform team di grandi estate più che a un team di quindici persone.

Per il lavoro quotidiano dentro l'editor, un assistente generico copre parecchio terreno, con la riserva che conosce solo il contesto che gli dai.

Lo schema che copieremmo: metti i template dei golden path, il catalogo di ownership e un indice ricercabile del codice nello stesso posto, e lascia che i nuovi ingegneri facciano domande lì prima di chiederle a una persona. È misurabile in ore: se dopo averlo fatto il platform team riceve meno di dieci domande «dove è configurato questo» a settimana, ha funzionato.

Come iniziare senza costruire una cattedrale?

La maggior parte degli sforzi di platform che falliscono parte dallo strumento. L'ordine migliore è persone, poi percorsi, poi strumenti.

  1. Intervista dieci sviluppatori. Chiedi dove perdono tempo tra una PR unita e una funzionalità in esecuzione. Sentirai le stesse tre risposte.

  2. Scegli un percorso e rilascialo in un mese. Un singolo template «nuovo servizio» che funziona dall'inizio alla fine batte un portale con 40 riquadri vuoti.

  3. Misura prima e dopo. Monitora il tempo al primo deploy di un nuovo servizio e il tempo alla prima PR unita per un nuovo assunto. Questi due numeri ti diranno più di qualunque sondaggio di soddisfazione.

  4. Pubblica una roadmap e un changelog. Il lavoro di piattaforma è invisibile se non lo rendi visibile.

  5. Elimina cose. Ritira percorsi e strumenti che nessuno usa. Una piattaforma più piccola di cui le persone si fidano batte una più grande che aggirano.

Resisti alla tentazione di comprare prima un portale. Un portale sopra un insieme disordinato di flussi ti dà un disordine dall'aspetto migliore, e un catalogo con 247 voci, metà delle quali obsolete, è peggio di nessun catalogo.

Cosa va storto, e come lo riconosci in anticipo?

Tre schemi di fallimento tornano sempre.

La piattaforma helpdesk. Le richieste arrivano via ticket, il team le evade a mano e chiama tutto questo self-service. Test: uno sviluppatore può completare il compito comune senza parlare con nessuno?

La piattaforma imposta. La leadership obbliga ogni team a passare alla piattaforma prima che sia buona. I numeri di adozione sembrano ottimi e il sentiment crolla. Lascia che l'uso si guadagni nei primi sei mesi.

La piattaforma tuttofare. Ogni richiesta diventa una funzionalità, la superficie esplode e la qualità cala. Dì di no, per iscritto, con le motivazioni.

Un segnale precoce utile è il rapporto tra domande su Slack e risposte documentate. Se la stessa domanda compare tre volte in un mese e non esistono doc, template o automazione, quella è la prossima voce del backlog.

Se dovessi fare una sola cosa lunedì, sceglierei il lavoro che fa perdere più tempo tra i team e lo renderei noioso. Per la maggior parte delle aziende è creare un nuovo servizio o ottenere un ambiente di test. Scrivi il percorso, mettilo dove le persone lo troveranno, conta le ore che fa risparmiare, e solo allora decidi se ti serve un team più grande.

Il platform engineering non è una toolchain da installare. È la decisione di trattare gli sviluppatori interni come clienti, e la prova che l'hai presa è una distanza più corta tra il primo giorno di un nuovo assunto e la sua prima modifica unita.

Domande frequenti

Cos'è il platform engineering in parole semplici?
È la pratica di costruire una piattaforma interna self-service che permette agli sviluppatori di ottenere ambienti, pipeline, servizi e documentazione senza dover chiedere ogni volta a qualcuno. Il team che la gestisce tratta gli sviluppatori come clienti.
Qual è la differenza tra platform engineering e DevOps?
DevOps è una cultura basata su responsabilità condivisa tra sviluppo e operations. Il platform engineering è un modo per rendere questa cultura sostenibile su larga scala, trasformando il lavoro operativo ripetuto in un prodotto interno.
Quanti ingegneri servono per avere un platform team?
Sotto circa 30 ingegneri e con uno o due servizi, di solito non conviene un team dedicato. Bastano un buon repo di template e un modulo Terraform condiviso. Un platform team a tempo pieno diventa utile quando i problemi di deploy e onboarding si ripetono tra più team.
Cos'è un golden path?
È un percorso opinionato e supportato per un compito comune, per esempio creare un nuovo servizio API. Di solito è un template che fornisce repo, pipeline, logging e configurazione di deploy fin dal primo giorno.
Serve un portale come Backstage per fare platform engineering?
No. Un portale è uno dei modi per esporre la piattaforma, ma non è obbligatorio. Un repo di template con una CLI e un catalogo ben tenuto possono bastare, e comprare un portale prima di avere flussi puliti peggiora spesso il problema.
Come si misura il successo di una piattaforma interna?
Due numeri danno un'indicazione chiara: il tempo al primo deploy di un nuovo servizio e il tempo alla prima PR unita per un nuovo assunto. Un altro segnale utile è il calo delle domande ripetute su Slack a cui non corrisponde una risposta documentata.