Nel mondo del software, la popolarità del platform engineering è in crescita. Soprattutto, perché questa disciplina sta dimostrando di aiutare le organizzazioni IT aziendali a introdurre ancora più efficienza e automazione nella metodologia DevOps, e di conseguenza a ridurre il time-to-market per la consegna delle applicazioni agli utenti finali.
Definito dalla società di ricerca e consulenza Gartner “un approccio tecnologico emergente che può accelerare l’erogazione delle applicazioni e il ritmo a cui queste producono valore per il business”, il platform engineering continua a diffondersi.
Gartner lo colloca tra i principali trend tecnologici strategici del 2023, e prevede che, entro il 2026, l’80% delle organizzazioni di software engineering instaurerà team di piattaforma come fornitori interni di servizi, componenti e strumenti riutilizzabili per la distribuzione delle applicazioni. Secondo Gartner “alla fine il platform engineering risolverà il problema centrale della cooperazione tra sviluppatori software e operatori”. Il platform engineering, chiarisce, è emerso come risposta alla crescente complessità delle moderne architetture software.
Alleggerire il carico cognitivo che opprime gli sviluppatori
Come accennato, l’obiettivo del platform engineering è costruire una piattaforma software interna all’organizzazione IT, sviluppata e manutenuta da un team dedicato. Tale piattaforma condivisa è progettata per supportare le esigenze degli sviluppatori software e altri professionisti IT, attraverso la messa a disposizione di tool, componenti, funzionalità comuni e riusabili che semplificano molte complesse operazioni di routine e consentono di sgravare il carico di lavoro mentale a cui i team DevOps sono sottoposti. La piattaforma funziona in sostanza come interfaccia, studiata per nascondere agli utenti la crescente complessità dell’infrastruttura cloud sottostante.
Una complessità oggi sempre più difficile da governare. Da un lato, infatti, l’avvento della nuvola informatica, grazie alla capacità del cloud di erogare le risorse in modo rapido ed elastico, accanto all’affermazione del paradigma DevOps, ha certamente permesso di accelerare il ciclo di sviluppo software e di eseguire il deployment delle applicazioni a ritmi prima impensabili. Dall’altro, però, è aumentata la complessità tecnologica, perché per trarre il massimo vantaggio dal cloud nello sviluppo software occorre possedere conoscenze tecniche molto approfondite in numerosi ambiti disciplinari del software engineering.
Platform engineering, sfida aperta ai complessi ambienti DevOps
L’attuale complessità di gestione del ciclo di sviluppo software e dell’infrastruttura di distribuzione finisce inevitabilmente per rallentare la produttività degli sviluppatori e dei team DevOps, ritardando la consegna delle applicazioni agli utenti finali. Per comprendere appieno questa complessità, è sufficiente pensare, ad esempio, al tasso di diffusione delle applicazioni cloud-native, cioè quelle progettate in modo specifico per l’architettura cloud e basate su microservizi. Secondo Gartner, entro il 2025, oltre il 95% dei nuovi workload digitali verranno implementati su piattaforme cloud-native. Nel 2021 questi carichi di lavoro erano solo il 30%.
Le architetture cloud-native rendono più complessa l’implementazione e la configurazione delle applicazioni. Occorre padroneggiare microservizi e container, gestire ecosistemi di API (Application Programming Interface) in continua espansione, controllare svariati componenti software, creare e configurare repository, creare e amministrare pipeline CI/CD lungo tutto il ciclo di sviluppo e distribuzione del codice.
All’interno dei team DevOps, gli sviluppatori non hanno più solo la responsabilità di scrivere codice. Devono gestire anche diversi linguaggi di programmazione, saper utilizzare molti strumenti di sviluppo, testing, deployment, monitoraggio del software, e cooperare al provisioning e alla manutenzione dell’infrastruttura che consente il suo funzionamento. Un’infrastruttura in cui l’approccio IaC (Infrastructue as Code) per l’automazione dei processi di configurazione manuali è ormai all’ordine del giorno, e dove i workload distribuiti su complessi cluster Kubernetes sono sempre più diffusi.
Funzionalità e servizi dedicati per aumentare la produttività
Il platform engineering aumenta la produttività dei team venendo incontro a tutti questi problemi, e rendendo disponibile nei complessi ambienti DevOps una piattaforma centralizzata, che favorisce la collaborazione, ed è costruita in maniera specifica da personale esperto, di volta in volta, sulla base delle particolari necessità dei vari gruppi di utenti che operano in una data organizzazione IT.
Insomma, l’approccio fondato sul platform engineering sembra davvero giocare un ruolo chiave per il successo di DevOps su larga scala, come confermano i risultati dello “State of DevOps Report: Platform Engineering Edition 2023”, un sondaggio condotto tra i professionisti IT e i responsabili che lavorano con i gruppi, o fanno parte dei team, dedicati alla progettazione di queste piattaforme aziendali.
La crescente popolarità del platform engineering e dei suoi benefici, indica la ricerca di quest’anno, emerge chiaramente, con il 93% dei rispondenti che dichiarano che l’adozione di tale piattaforma da parte dei team è un passo nella giusta direzione. Inoltre, la stragrande maggioranza (94%) concorda sul fatto che il concetto di piattaforma stia aiutando la propria azienda a realizzare meglio i benefici di DevOps.
Il 68% sta sperimentando un incremento nella velocità di sviluppo, il 60% miglioramenti nell’affidabilità del sistema, il 59% maggior produttività ed efficienza, e il 57% migliori standard nei flussi di lavoro. In aggiunta, le organizzazioni stanno puntando a investire in ulteriori talenti nel settore. Il 71% dei rispondenti dichiara infatti che la propria azienda prevede di assumere personale con esperienza di platform engineering nei prossimi dodici mesi.