L'ingegneria della piattaforma è diventata una disciplina fondamentale per le organizzazioni basate sui dati, ma un acronimo continua a creare confusione. IDP è l'acronimo di due termini diversi: piattaforma interna per sviluppatori e portale interno dello sviluppatore. I due concetti sono correlati, ma non sono la stessa cosa, e confonderli può portare un'organizzazione a costruire esperienze di sviluppo incomplete o a non supportare adeguatamente la distribuzione del software moderno.
Una piattaforma interna per sviluppatori (IDP) è un insieme centralizzato di strumenti, servizi e workflow interni che un'organizzazione stabilisce per facilitare la realizzazione, implementare e gestire il software senza dover gestire tutta l'infrastruttura sottostante da sola.
Un portale interno dello sviluppatore (anch'esso abbreviato nell'acronimo ambiguo IDP) è un'interfaccia che permette agli ingegneri di scoprire e accedere agli strumenti, ai workflow, alle API, alla documentazione e alle Integrazioni necessarie per costruire e mantenere il software. Fornisce una destinazione unica per i processi di sviluppo e le conoscenze istituzionali di un'organizzazione, così che gli sviluppatori possano lavorare in modo efficiente con un modello self-service.
Questi due termini vengono spesso confusi proprio perché, come detto, condividono lo stesso acronimo e perché entrambi riguardano la formazione degli sviluppatori.
Gli ambienti moderni di distribuzione del software sono sempre più complessi. Gli sviluppatori devono destreggiarsi tra cluster Kubernetes, pipeline CI/CD, infrastrutture cloud, strumenti observability, repository infrastrutture-as-code (IaC ), requisiti di conformità e altro ancora. E man mano che le organizzazioni crescono, il numero di servizi interni e dipendenze lungo il ciclo di vita dello sviluppo software (SDLC) cresce. Questo è particolarmente vero per le aziende che utilizzano architetture di microservizi distribuiti su più provider di cloud.
L'ingegneria della piattaforma è emersa come risposta a questa complessità, evolvendosi da iniziative DevOps più ampie. Invece di costringere tutti i team di sviluppo a diventare esperti in infrastrutture e operazioni, le organizzazioni creano team di piattaforma centralizzati responsabili della creazione di sistemi riutilizzabili e "percorsi ideali" che astraggono il lavoro operativo ripetitivo. L'obiettivo è ridurre il carico cognitivo degli sviluppatori e consentire il self-service, in modo che possano concentrarsi sulla creazione e la distribuzione del software.
Questa tendenza ha dato origine a due livelli distinti ma interconnessi: la piattaforma interna per sviluppatori e il portale interno dello sviluppatore.
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
La piattaforma è la spina dorsale operativa che consente la distribuzione standardizzata del software e il self-service agli sviluppatori. Si tratta di tutta la tecnologia e di tutti gli strumenti che, combinati insieme, creano quei percorsi ideali. Solitamente, è composta dai seguenti componenti:
Automazione dell'infrastruttura (come Terraform)
Pipeline CI/CD
Astrazioni Kubernetes
Controlli delle identità e degli accessi
Sistemi di provisioning ambientale
Guardrail di sicurezza
Modelli di infrastructure-as-code
Orchestrazione cloud-native
Integrazioni GitHub
Observability in tempo reale
Sistemi di applicazione delle politiche
La magia della piattaforma è che gli sviluppatori potrebbero non interagire mai direttamente con molti di questi sistemi. La piattaforma si occupa di tutte le operazioni più complesse legate alla distribuzione del software e di solito è mantenuta da un team dedicato. Il suo scopo è esporre workflow e modelli infrastrutturali approvati in modo riutilizzabile, scalabile e sicuro
Il portale è l'interfaccia utente che permette agli sviluppatori di scoprire e interagire con le funzionalità della piattaforma. È come un pannello di controllo per l'ecosistema ingegneristico. In genere fornisce:
Cataloghi dei servizi
Centri di documentazione
Individuazione delle API
Moduli di richiesta infrastrutturali
Dashboard di distribuzione
Metadati sulla proprietà
Schede di valutazione e stato di salute
Modelli
Workflow self-service
Collegamenti agli strumenti operativi
Questi componenti sono spesso unificati tramite la tecnologia open source chiamata Backstage, un framework di portali frontend apprezzato per la sua estensibilità. Non è una piattaforma completa: le organizzazioni richiedono ancora automazione del backend, orchestrazione e strumenti di infrastruttura per fornire funzionalità self-service.
Il portale centralizza l'accesso alle risorse di progettazione che altrimenti sarebbero frammentate su decine di sistemi. Non esegue workflow: fornisce semplicemente un'interfaccia user-friendly che li attiva altrove sulla piattaforma. La piattaforma fornisce le funzionalità operative effettive.
Una piattaforma interna per sviluppatori può esistere anche senza un portale. Gli sviluppatori possono interagire tramite CLI, API, workflow GitOps o direttamente tramite repository di infrastruttura. Allo stesso modo, un portale può esistere anche senza una piattaforma sofisticata sottostante. In tal caso, il portale diventa poco più di un catalogo di servizi o uno strato di documentazione.
I team di ingegneri più piccoli possono trarre notevole vantaggio da un portale leggero, anche solo per centralizzare documentazione, metadati, API e individuazione dei servizi. Un portale così limitato, che funga da singola fonte affidabile, può fornire risultati rapidi consolidando le conoscenze operative, sebbene ciò richieda una solida governance.
Un'organizzazione matura, basata sui dati e composta da centinaia o migliaia di sviluppatori, avrà bisogno sia di un portale che di una piattaforma. Insieme, questi sistemi creano un'esperienza più user-friendly per gli ingegneri che altrimenti dovrebbero navigare manualmente tra toolchain e workflow infrastrutturali frammentati.
In pratica, molte organizzazioni iniziano il loro percorso di ingegneria della piattaforma implementando un portale come Backstage, perché l'interfaccia crea visibilità e slancio organizzativo.
La piattaforma diventa essenziale per casi d'uso come: Provisioning dell'infrastruttura self-service
Workflow di distribuzione standardizzati
Orchestrazione multi-cloud
Percorsi ideali sicuri
Applicazione delle politiche
Governance dei costi
Automazione dell'ambiente
Gestione del ciclo di vita dell'infrastruttura
Esperienze di sviluppo coerenti tra i team
Senza la standardizzazione fornita dalle piattaforme, la produttività degli sviluppatori ne risentirà, poiché gli sviluppatori saranno responsabili di attività estranee che interrompono il workflow principale degli sviluppatori. Questa standardizzazione semplifica anche l'onboarding.
Insieme, il portale e la piattaforma offrono un servizio self-service, il che significa che gli sviluppatori possono scoprire le risorse in modo indipendente e su richiesta tramite il portale ed eseguire attività operative tramite la piattaforma.
L'AI sta rimodellando entrambi questi componenti. All'interno della piattaforma, l'AI può automatizzare attività operative come il provisioning dell'infrastruttura, l'ottimizzazione CI/CD, l'applicazione delle politiche, l'analisi degli incidenti e la gestione dei costi, tra le altre.
Nel portale, l'AI migliora la scoperta e l'usabilità. Gli sviluppatori possono utilizzare query in linguaggio naturale per individuare API, documentazione, modelli, informazioni sulla proprietà e workflow operativi senza dover navigare manualmente in più sistemi. Un assistente AI come IBM Bob può guidare l'onboarding, rispondere a domande sugli strumenti interni e consigliare percorsi ideali approvati in base agli standard organizzativi.
Con l'AI, il self-service non è mai stato così funzionale, e applicare l'AI sia ai portali che alle piattaforme significa che gli sviluppatori possono concentrarsi sulle loro responsabilità principali.
Accelera la distribuzione del software con Bob, il tuo partner AI per uno sviluppo sicuro e consapevole degli intenti.
Ottimizza le attività di sviluppo del software con strumenti affidabili basati su AI che riducono al minimo il tempo dedicato alla scrittura, al debug, al refactoring o al completamento del codice, lasciando più spazio all'innovazione.
Reinventa i workflow e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.