
DevOps – Quella della platform engineering è una disciplina che si sta affermando. In questo articolo si spiega cos’è e i suoi vantaggi grazie a un accesso più semplice e veloce a servizi e risorse. Un obiettivo che si pone l’ingegneria del software è quello di facilitare il lavoro mettendo a disposizione template self-service per le attività più comuni. Questo è il compito dei platform engineer, cioè coloro che forniscono a chi programma la piattaforma di sviluppo interna più semplice possibile insieme con i tool che occorrono per produrre innovazione. Diamo un’occhiata alla disciplina del platform engineering e ai vantaggi che essa apporta allo sviluppo applicativo offrendo un accesso più semplice e veloce ai servizi e alle risorse. In particolare attraverso le moderne piattaforme per la gestione dei dati costruite su ambienti containerizzati con Kubernetes.
Dare agli sviluppatori ciò che essi vogliono
L’arrivo del modello DevOps alla fine del primo decennio del secolo ha portato con sé i principi chiave di ownership condivisa, feedback rapido e automazione dei workflow contribuendo a mettere in pratica la vision dello sviluppo agile. DevOps richiede un alto grado di autonomia da parte degli sviluppatori offrendo in cambio i tool necessari per diventare efficienti. L’automazione è uno dei cardini del metodo DevOps. Questo perché la rapidità dei cambiamenti che essa consente è incompatibile con la necessità di intervento umano all’interno dei workflow.
Le tre richieste
Le modalità operative preferite dagli sviluppatori (e da molti ruoli tecnici specializzati come data scientist, ricercatori AI ecc.) possono spesso essere ricondotte a tre richieste principali:
- accesso immediato alle risorse;
- risultati istantanei;
- self-service completo.
Usare quanto sopra come bussola per la realizzazione di servizi destinati a profili tecnici è un ottimo metodo per promuovere l’innovazione e garantirne una rapida diffusione. Anche se non sempre può essere possibile fornire risorse e risultati istantanei, comprimerne al massimo i tempi produce una superiore soddisfazione.
Platform engineering: è lo sviluppatore il cliente principale
Oggi assistiamo alla maturazione del modello DevOps attraverso l’avvento della platform engineering, nuova funzione per un’epoca più evoluta dello sviluppo applicativo che fornisce a chi programma una suite di tool self-service. Dietro le quinte, il platform engineering opera per mettere a disposizione un intuitivo catalogo di servizi e componenti infrastrutturali self-service che supportano il lavoro quotidiano dello sviluppatore.
Progettata per dare accesso istantaneo
Le best practice di questa disciplina hanno l’obiettivo di rendere attivi e produttivi gli sviluppatori in tempi più rapidi. E lo fa fornendo loro tutto quel che occorre per sperimentare, sviluppare, collaudare e implementare. La piattaforma fornita a questi sviluppatori prende spesso ispirazione dai servizi presenti sul cloud pubblico e dal loro modo di funzionare. È progettata per dare accesso istantaneo non solo ai migliori e più recenti tool e software che si trovano alla base dell’innovazione, ma anche agli stessi dati, protetti da controlli e protocolli di sicurezza predeterminati.
Kubernetes e la gestione dei dati
La piattaforma ideale dedicata agli sviluppatori comprende anche la gestione dei dati. Può quindi usare Kubernetes per orchestrare, implementare, operare e scalare applicazioni cloud-native e gestire i servizi dati che queste richiedono. Le funzionalità per la gestione dei dati sono essenziali per la platform engineering. Questo perché consentono l’esplorazione e i test in condizioni realistiche, per esempio usando una copia istantanea dei dati di produzione anziché un artificioso dataset sintetico. Le funzionalità di gestione dei dati dovrebbero idealmente essere progettate in ottica self-service e fornire accesso multi-tenant ai dati in modo altamente disponibile, affidabile, elastico e sicuro.
Come funzionano i Portworx Data Services
Un esempio di piattaforma di questo tipo è Portworx di Pure Storage. Completamente integrata con Kubernetes, permette agli sviluppatori di accedere facilmente a dati persistenti (comprese capacità di protezione come replica, backup e archiviazione dei dati). Così come agli stessi dataset attraverso la clonazione istantanea dei dati, consentendo la creazione e il ripristino self-service di copie snapshot istantanee per poter sperimentare, modificare e tornare a configurazioni precedenti in modo rapido e semplice. Portworx Data Services mette inoltre a disposizione un catalogo di servizi selezionati come MongoDB, Elasticsearch, Cassandra, Kafka e PostgreSQL. Semplificando in questo modo il deployment con pochi click o una singola chiamata ad API.
Le promesse di DevOps e la platform engineering
Questa la strada maestra della platform engineering Così gli sviluppatori possono implementare o scalare con semplicità i servizi ottimizzando configurazione e protezione dello storage. La soluzione offre agli sviluppatori toolchain e servizi dati facili da configurare che possono essere usati come componenti. E questo anche quando mancano competenze approfondite relativamente a Kubernetes o al deployment di un determinato engine di database in maniera sicura e scalabile. I team specializzati in platform engineering lavorano dietro le quinte per mettere lo sviluppo applicativo sulla strada del self-service. Con Kubernetes come framework di orchestrazione e container e servizi dati come risorse, i platform engineer possono finalmente concretizzare la vision di superiore agilità e produttività promessa da DevOps.