Cos'è una piattaforma di sviluppo interna?

Copia URL

Una piattaforma di sviluppo interna (IDP) è costituita da un insieme standardizzato di strumenti e tecnologie self service che consentono agli sviluppatori di creare e distribuire il codice. Raccogliendo e semplificando gli elementi del processo di sviluppo, il suo obiettivo è rendere il lavoro quotidiano dei team più gestibile, efficiente e collaborativo.

Nota: nello stack tecnologico di un'organizzazione potrebbe essere presente anche un altro tipo di IDP, ossia un portale interno per gli sviluppatori. In questo caso, il portale interno per gli sviluppatori rappresenta il punto di accesso alla piattaforma applicativa e consente di accedere a tutti i suoi componenti, incluse la piattaforma di sviluppo interna e quella di orchestrazione dei container. Nell'ecosistema Red Hat, Red Hat® Developer Hub svolge il ruolo di portale interno per gli sviluppatori di livello enterprise, mentre la piattaforma applicativa può essere costituita da Red Hat® OpenShift® Platform PlusRed Hat® Ansible® Automation Platform.  

Scopri di più sull'esperienza degli sviluppatoriPagina disponibile in Inglese (Italiano non disponibile)

Gli sviluppatori di applicazioni sono gli utenti principali delle piattaforme IDP, mentre gli ingegneri di piattaforma sono responsabili della configurazione iniziale e della manutenzione di tali piattaforme. Per gli ingegneri di piattaforma, un IDP può essere considerato come un prodotto integrato pensato per fornire agli sviluppatori gli strumenti necessari per rendere operativa un'applicazione durante l'intero ciclo di vita.

Ingegneria della piattaforma e DevOps

L'architettura di una IDP si articola in specifici livelli funzionali, anche detti piani:

  • Piano di controllo per gli sviluppatori: è il principale punto di interazione per gli utenti. Comprende il portale per gli sviluppatori, i cataloghi dei componenti software, le interfacce utente (IU) e le interfacce a riga di comando (CLI). 
  • Piano di integrazione e distribuzione: è il motore di configurazione, generalmente basato su un orchestratore di piattaforma. Riceve dal piano di controllo le richieste degli sviluppatori e le traduce in flussi di lavoro automatizzati per creare, archiviare, configurare e distribuire le applicazioni.
  • Piano delle risorse: comprende l'infrastruttura di base standardizzata e gli ambienti di esecuzione necessari per ospitare le applicazioni, incluse le risorse di orchestrazione dei container, elaborazione, storage e rete.
  • Piani di sicurezza e osservabilità: si estendono all'intera piattaforma per proteggere le informazioni sensibili, gestire i segreti, applicare il controllo degli accessi basato sui ruoli (RBAC) e fornire monitoraggio in tempo reale e raccolta delle metriche per applicazioni e infrastruttura.

Sebbene l'infrastruttura di ogni organizzazione sia diversa, una piattaforma di sviluppo interna si basa su un insieme di componenti essenziali che, operando in modo integrato, semplificano il passaggio dallo sviluppo alla produzione in modo lineare, sicuro ed efficiente. Questi elementi essenziali costituiscono un'architettura che separa le interfacce utente della piattaforma dai sistemi backend automatizzati.

Principi architetturali dell'IDP

Oltre ai livelli funzionali, un'architettura IDP efficace si basa su principi progettuali fondamentali pensati per favorire la produttività degli sviluppatori, ridurre il carico cognitivo e supportare la crescita dell'organizzazione:

  • Estendibilità e integrazione: una IDP di livello enterprise collega strumenti che spesso operano in modo isolato. Uno dei principi architetturali fondamentali di una IDP è la capacità di estendersi e integrarsi facilmente con le pipeline CI/CD, gli strumenti DevSecOps e di gestione delle vulnerabilità, i sistemi di gestione dei problemi e le risorse cloud già presenti nell'organizzazione.
  • Template e golden path: i template mettono a disposizione degli sviluppatori modelli preconfigurati basati sulle best practice, definitigolden path. I golden path possono eseguire automaticamente il provisioning del codice standardizzato, dei file Infrastructure as Code (IaC) e degli strumenti di protezione integrati, contribuendo a eliminare gli ostacoli e applicando in modo lineare gli standard dell'organizzazione.

Le IDP aiutano le organizzazioni ad affrontare numerose sfide, tra cui la standardizzazione dei processi di sviluppo, il miglioramento della produttività degli sviluppatori e della collaborazione, l'onboarding e il self service, la scalabilità e la governance. 

Le organizzazioni che dispongono di più team di sviluppo si trovano spesso in difficoltà nel gestire le priorità, monitorare set eterogenei di strumenti e tecnologie, definire best practice e garantire il rispetto degli standard di sicurezza e conformità. 

  • Standardizzazione: offre un set standardizzato di strumenti e servizi per tutti i team e riduce così le incoerenze e gli errori.
  • Produttività: aiuta ad automatizzare la configurazione e la gestione degli ambienti di sviluppo, la configurazione delle pipeline di compilazione e la distribuzione delle applicazioni. Ciò permette agli sviluppatori di dedicarsi al codice erogando le nuove funzionalità più velocemente.
  • Collaborazione: offre una piattaforma condivisa che favorisce la collaborazione e la comunicazione fra i team di sviluppo e il resto dell'organizzazione, come i team operativi e di sicurezza.
  • Onboarding e self service: consentono ai nuovi sviluppatori di acquisire più rapidamente familiarità con gli strumenti appropriati, migliorandone l'esperienza e riducendo il tempo necessario per diventare operativi e iniziare a creare valore.
  • Scalabilità: offre una piattaforma scalabile e capace di crescere con l'organizzazione che semplifica l'onboarding di nuovi team e garantisce a tutti i team l'accesso agli stessi strumenti e servizi.
  • Governance: crea un framework che offre alle organizzazioni flessibilità e aderenza alle best practice, nel rispetto dei requisiti di sicurezza e conformità, e permette di monitorare e gestire efficacemente gli ambienti di sviluppo.

Quali sono gli strumenti di ingegneria della piattaforma?

L'adozione di una cultura DevOps non può che essere favorita dalla presenza di una piattaforma IDP. DevOps è un approccio alla cultura, all'automazione e alla progettazione delle piattaforme, che ha l'obiettivo di accelerare e intensificare la distribuzione delle applicazioni software e delle relative funzionalità attraverso modalità di collaborazione più efficienti fra i team operativi e di sviluppo. 

Scopri il rapporto tra ingegneria della piattaforma e DevOps

La combinazione di Red Hat® OpenShift® e Red Hat Developer Hub offre ai team di ingegneria della piattaforma gli strumenti essenziali per realizzare e gestire efficacemente una piattaforma di sviluppo interna (IDP) e sviluppare template, documentazione e flussi di lavoro dei progetti per la creazione di "golden path". 

Scopri Red Hat OpenShift per l'ingegneria della piattaforma

Di seguito sono riportate alcune delle funzionalità offerte da Red Hat:

Soluzioni sicure e conformi: Red Hat Developer Hub raccoglie in un'unica posizione centralizzata e coerente una suite completa di strumenti e componenti verificati e affidabili che semplificano le attività degli sviluppatori. Questa soluzione contribuisce a migliorare la produttività, a ridurre gli ostacoli e a semplificare la governance grazie a strumenti di protezione e modalità di accesso self service.

Esperienza di sviluppo innovativa: Red Hat mette a disposizione dei suoi clienti le sue competenze e l'esperienza maturata grazie alle collaborazioni con l'ecosistema dei partner e alla partecipazione ai progetti open source.

Autogestione e manutenzione: Red Hat offre l'accesso a una suite comune di strumenti per sviluppatori che agevola e ottimizza la creazione di servizi e applicazioni cloud native.

Supporto per la correzione di bug importanti e nuove funzionalità: Red Hat Developer Hub offre una posizione centralizzata dove trovare le ultime versioni di funzionalità, architettura di sistema e documentazione relativa alle applicazioni.

Integrazione semplificata: i nuovi strumenti e servizi sono preintegrati (tramite Red Hat Plug-ins for Backstage). Ciò consente di estendere la piattaforma e supportarne la crescita, offrendo un'esperienza unificata e coerente che integra strumenti, risorse, standard, responsabili, collaboratori e amministratori dell'infrastruttura.

L'importanza dell'ingegneria della piattaforma. Durata del video: 2:31

Risorsa

L'evoluzione dell'ingegneria della piattaforma nell'era dell'IA

Questo articolo fornisce un riepilogo generale del sondaggio condotto da Illuminas sull'evoluzione dell'ingegneria della piattaforma nell'era dell'IA. Scopri i dettagli.

Red Hat Advanced Developer Suite

Un insieme di soluzioni che consente agli ingegneri della piattaforma di migliorare l'efficienza dello sviluppo e la sicurezza delle applicazioni.

Continua a leggere

Cos'è un golden path per lo sviluppo software?

Scopri di più sui golden path, metodi affidabili, ben documentati e supportati per creare e distribuire il software all'interno di un'organizzazione.

Quali sono gli strumenti di ingegneria della piattaforma?

Gli strumenti di ingegneria della piattaforma sono risorse che supportano i team di sviluppo consentendo loro di incrementare la produttività tramite un approccio self service.

Ingegneria della piattaforma e DevOps

Scopri le differenze tra l'ingegneria della piattaforma e la metodologia DevOps per scegliere l'approccio più adeguato alla realizzazione dei tuoi obiettivi.

Platform engineering: risorse consigliate