Cos'è un golden path per lo sviluppo di software?

Copia URL

Un golden path è una modalità ben definita, documentata e supportata di sviluppare e distribuire software all'interno di un'organizzazione. Con un percorso supportato, i team sono in grado di ottenere cicli di sviluppo più efficienti, mantenendo la conformità agli standard aziendali. I golden path offrono un approccio lineare agli ingegneri della piattaforma con l'obiettivo di supportare i team DevOps, i team AI/MLOps, i team dedicati alla sicurezza, alle reti o qualsiasi altro reparto IT, garantendo coerenza, affidabilità e un utilizzo efficiente di tempo e risorse.

A seconda delle dimensioni e del livello di competenze di un team di sviluppatori, la quantità di golden path può variare. Ad esempio, un'organizzazione con un team di ingegneria della piattaforma di recente formazione potrebbe disporre di pochi golden path che gestiscono processi chiave come lo sviluppo di microservizi, le pipeline CI/CD, il provisioning dell'infrastruttura e la configurazione dell'osservabilità. Al contrario, un team più senior potrebbe disporre di centinaia di golden path più articolati, come lo sviluppo di applicazioni front end, le pipeline di dati per carichi di lavoro di analisi o machine learning (ML), lo sviluppo di applicazioni serverless e i flussi di lavoro di sicurezza e conformità. Tuttavia, indipendentemente dalla dimensione o dall'esperienza del team, i golden path hanno diversi componenti comuni, tra cui: 

  • Modelli software: un modello di microservizi preconfigurato, come un modello Python FastAPI con pipeline Docker e CI/CD configurate.
  • Provisioning dell'infrastruttura: moduli Terraform o Pulumi precostruiti per risorse cloud.
  • Creazione e distribuzione di pipeline: azioni GitHub preconfigurate o script Jenkins.
  • Strumenti di osservabilità: soluzioni integrate di registrazione e monitoraggio.
  • Linee guida per la sicurezza: policy e scansioni preapplicate integrate nel flusso di lavoro.

Esplora Red Hat OpenShift per ingegneri della piattaforma

Il concetto di golden path

Il termine golden path è stato coniato dall'autore Frank Herbert nel suo romanzo di fantascienza I figli di Dune. Spotify ha dato origine al concetto di un modello (ispirato al golden path di Herbert) per i software pensato per aiutare i team di ingegneria a utilizzare strumenti e processi in maniera coerente. Da allora altre organizzazioni, tra cui Google e Netflix, hanno adottato tale approccio, ridenominandolo a volte con un nome proprio. Ad esempio, Netflix li definisce "Paved Road".

Un golden path è un approccio simile a quello che si usa per preparare una torta, che include diversi passaggi: preriscaldare il forno a una temperatura specifica, predisporre gli utensili che serviranno e procurarsi gli ingredienti necessari. Non si tratta solo di seguire una ricetta, ma anche di assicurarsi di utilizzare gli strumenti e le tecniche giusti. Se vuoi che altre persone ottengano lo stesso risultato, devi trovare dei modi per aumentare la coerenza e l'efficienza, esattamente come avviene con i golden path. Più si segue un modello specifico per lo sviluppo di software, più si affinano il processo e il prodotto. I passaggi da seguire in una ricetta sono paragonabili all'implementazione di un golden path. 

Secondo gli architetti software, inclusi gli esperti Red Hat®, i golden path dovrebbero avere quattro caratteristiche: opzionalità, trasparenza, estendibilità e personalizzabilità.

Opzionalità

I golden path dovrebbero essere una modalità di sviluppo e distribuzione facoltativa. Per consentire e promuovere l'innovazione, dovrebbe esserci abbastanza flessibilità per cessare gradualmente di adoperare i flussi di lavoro standard. I team di ingegneria devono poter valutare e identificare le situazioni in cui un golden path risulterebbe più beneficioso.

Trasparenza

I processi e gli strumenti dei golden path dovrebbero essere trasparenti. I golden path creano modelli che consentono vari approcci senza dover imparare e utilizzare la tecnologia alla base. Tale trasparenza offre ai team di sviluppo l'opportunità di analizzare in maniera più dettagliata gli altri meccanismi e processi contestuali.

Estendibilità

I golden path dovrebbero essere estendibili, per poter aggiungere nuove funzionalità. Benché siano personalizzabili per loro natura, essendo modelli che si possono modificare in base alla situazione, se uno scenario di utilizzo specifico richiede una capacità aggiuntiva, un golden path dovrà essere sufficientemente flessibile da consentire tale espansione.

Personalizzabilità

I golden path dovrebbero essere altamente personalizzabili in base alle esigenze dei team di sviluppo (interni o di terze parti) e all'esperienza che l'organizzazione ha accumulato svolgendo questa attività manualmente. Ciò offre la possibilità di creare standard che verranno implementati in questi golden path e di migliorare al contempo la sicurezza.

I golden path possono variare a seconda della situazione specifica, ma dovrebbero sempre avere queste quattro caratteristiche.

Le tecnologie Red Hat per uno sviluppo più efficiente

In genere, sono gli ingegneri della piattaforma a creare e mantenere i golden path, in quanto sono loro a fornire ai team di sviluppo best practice, strumenti definiti, servizi, risorse e processi in grado di aumentare la produttività degli sviluppatori. L'ingegneria della piattaforma serve a migliorare la produttività e la collaborazione tra i team, incrementando la coerenza e l'efficienza. I team di ingegneria della piattaforma si dedicano a individuare le inefficienze legate allo sviluppo e a ridurle offrendo funzionalità e strumenti standard e riutilizzabili per mezzo di un'Internal Developer Platform (IDP). Un'IDP è una piattaforma pensata per semplificare le attività degli sviluppatori che raccoglie un set standardizzato di strumenti e tecnologie accessibili in modalità self service. 

I golden path possono supportare scenari di utilizzo che includono:

Sviluppo di applicazioni

Gli sviluppatori puntano a creare, testare e distribuire applicazioni in modo standardizzato e incentrato sulla sicurezza. I golden path agevolano lo svolgimento di queste attività predisponendo un percorso per ottenere uno sviluppo più efficiente. Utilizzando i golden path, i team delle applicazioni dispongono di una base unificata che consente la condivisione delle informazioni, promuove la creazione di strumenti condivisi e migliora l'agilità e la mobilità in tutta l'organizzazione. 

Data Science

I data scientist raccolgono, analizzano e interpretano i dati per generare informazioni fruibili. Possono anche specializzarsi nello sviluppo e nell'implementazione di sistemi di intelligenza artificiale (IA)ML. I golden path aiutano i team di operazioni ML (MLOps) a integrare i modelli ML nello sviluppo di software, supportano i data scientist nello sviluppo di modelli di intelligenza artificiale e possono essere utilizzati dagli sviluppatori per implementare tali modelli. 

Site Reliability Engineering (SRE)

I team SRE sono responsabili del deployment, della configurazione e del monitoraggio del codice, oltre che di tutte le operazioni legate a disponibilità, latenza, gestione delle modifiche, risposta alle emergenze e gestione della capacità dei servizi in produzione. I golden path offrono coerenza per il SRE nella creazione di sistemi software scalabili e altamente affidabili.

Amministrazione dei sistemi (sysadmin)

Gli amministratori di sistema distribuiscono, configurano e gestiscono i sistemi informatici di un'organizzazione. Avendo in gestione migliaia di macchine, hanno bisogno di metodi scalabili e sostenibili. I golden path forniscono un framework chiaro per le attività e i processi comuni, semplificando o automatizzando le routine. Questo può ridurre le complessità di gestione e ridurre il rischio di errori.


Cosa sono gli strumenti per l'ingegneria della piattaforma?

Come modello self service, i golden path offrono svariati vantaggi che supportano la produttività degli sviluppatori, tra cui: 

Carico cognitivo ridotto: i processi standardizzati riducono il carico cognitivo degli sviluppatori, permettendo loro di dedicarsi maggiormente all'innovazione. 

Sviluppo più rapido: avendo attività definite, i team di sviluppo possono raggiungere i risultati desiderati senza dover cercare strumenti e individuare processi, grazie alle best practice esistenti e consolidate di cui già dispone l'organizzazione. 

Coerenza stabilita: i modelli condivisibili e i migliori processi interni contribuiscono a garantire la coerenza tra i progetti, con risultati migliori e una maggiore qualità, indipendentemente dal fatto che il team di sviluppo sia interno o di terze parti.

Più automazione: l'automatizzazione delle attività ripetitive, come i deployment o i test del codice, semplifica l'applicazione di pratiche quali pipeline CI/CD, Infrastructure as Code (IaC)gestione delle API (interfacce di programmazione delle applicazioni).  

Onboarding più semplice: grazie alla documentazione e agli strumenti di facile accesso, i nuovi membri del team possono apprendere più rapidamente un flusso di lavoro senza dover individuare l'approccio migliore per ogni attività.

Maggiore sicurezza: i modelli garantiscono che gli standard di sicurezza vengano rispettati con le pratiche integrate, semplificando gli audit successivi.  

Progettare un golden path significa creare una strategia che garantisca un'esperienza semplice ed efficace. Anche se i contenuti di un golden path possono variare in base agli obiettivi, esistono alcune best practice di cui tener conto per ottenere cicli di sviluppo più efficienti.

  1. Definire l'utente: l'utente più tipico di un golden path è un team di sviluppo. Dato che i modelli sono creati e gestiti da più team o membri del team, gli utenti saranno un gruppo specifico di persone con competenze diverse, come programmazione, profilazione e sicurezza.
  2. Identificare lo scopo: lo scopo complessivo di un golden path è incrementare la produttività degli sviluppatori automatizzando le pratiche esistenti.
  3. Stabilire ciascuna fase del percorso: la creazione di passaggi e linee guida chiari garantirà all'utente una struttura semplice ed efficace per completare ogni attività.
  4. Offrire strumenti e risorse: mettere a disposizione documentazione e strumenti per l'esecuzione contribuirà a contestualizzare l'adozione di un golden path.
  5. Integrare con un'IDP: per essere facilmente reperibili, i golden path devono essere ubicati nelle IDP. Integrare un golden path ne garantisce la disponibilità attraverso l’IDP e consente il self service per gli sviluppatori.
  6. Misurare l'efficacia e ripetere il processo: per stabilire l'efficacia o meno di un golden path, occorre utilizzare metriche. Queste possono includere metriche DevOps Research and Assessment (DORA), SPACE Framework o Flow Framework. Inoltre, è essenziale raccogliere feedback dagli utenti e ripetere il processo per migliorare l'efficienza.

Sviluppo di microservizi

Un esempio di utilizzo di un golden path è la creazione di un nuovo microservizio a partire da modelli predefiniti creati dai team operativi. 

I microservizi sono un approccio architetturale alle applicazioni in cui una raccolta di servizi indipendenti comunica tramite API ottimizzate. Un'architettura di microservizi fornisce un approccio più efficiente allo sviluppo delle applicazioni, consentendo l'esistenza indipendente di ogni funzione di base all'interno di un'applicazione. Utilizzando elementi applicativi separati, i team DevOps possono collaborare senza rallentare lo svolgimento delle attività altrui. Ciò consente a più sviluppatori di lavorare simultaneamente alla stessa app, riducendo le tempistiche di sviluppo. 

Un golden path può aumentare ulteriormente la produttività degli sviluppatori creando un processo efficiente per la creazione, il deployment e la gestione dei microservizi. Un golden path efficace per i microservizi integra una pipeline ben strutturata con una particolare attenzione all'automazione, alle best practice e all'osservabilità.

Scopri di più sui microservizi

Distribuzione di MLOps 

I golden path possono aiutare con la distribuzione di MLOps. Ispirate ai principi DevOps e GitOps, le MLOps puntano a creare una serie di passaggi in continua evoluzione per l'integrazione dei modelli di ML nei processi di sviluppo software. Migliorando la collaborazione fra i team, le MLOps promuovono lo sviluppo agile e i processi decisionali basati sui dati. L'adozione di un approccio MLOps riduce le attività manuali necessarie per la manutenzione di un modello di machine learning e garantisce prestazioni e affidabilità continue.

L'utilizzo di un golden path come linea guida per la distribuzione di ML può aiutare i team a sviluppare, distribuire e gestire i modelli di apprendimento automatico. I golden path aiutano con le MLOps stabilendo flussi di lavoro e procedure, come le pipeline automatizzate, per garantire una distribuzione dei modelli affidabile e coerente. 

I team MLOps possono trarre vantaggio da golden path che forniscono modelli compatibili con i vari criteri degli standard MLOp, e al contempo adattabili in base agli scenari di utilizzo.

 Scopri di più sulla metodologia MLOps 

Agentic AI

Un agente di IA (o Agentic AI) è un software progettato per interagire con dati e strumenti in modo tale da richiedere il minimo intervento da parte dell'utente. È in grado di svolgere attività creando un elenco di passaggi ed eseguendoli in modo autonomo. Agentic AI si differenzia dall'automazione tradizionale perché utilizza dati in tempo reale, modelli di ML e un ciclo di feedback per prendere decisioni basate sul contesto.

Per implementare Agentic AI, è necessario creare un sistema in grado di fornire un modello linguistico di grandi dimensioni (LLM) con accesso a strumenti e algoritmi esterni che impartiscono istruzioni su come gli agenti di IA dovrebbero utilizzare tali strumenti. Come i golden path, anche Agentic AI incorpora un processo ottimizzato e autonomo per il raggiungimento di un obiettivo o il completamento di un'attività, l'apprendimento e l'adattamento in base alle necessità.

 Scopri di più su Agentic AI

I prodotti e i servizi Red Hat si completano a vicenda per supportare lo sviluppo di software e garantire la flessibilità necessaria a ottenere cicli e processi più efficienti, favorire l'approccio self service, accelerare l'onboarding e ridurre l'onere delle attività ripetitive.

Red Hat Developer Hub fornisce un portale self service in cui ogni singolo team di sviluppo dell'organizzazione può utilizzare tutti i golden path, disponendo di un hub centrale per tutte le conoscenze e la documentazione tecnica pertinente per un progetto specifico. Con Red Hat Developer Hub, le organizzazioni hanno la possibilità di utilizzare i modelli software esistenti per avviare una nuova applicazione o un microservizio oppure di creare e utilizzare modelli personalizzati per il proprio ambiente specifico.

In combinazione con Red Hat Developer Hub, Red Hat OpenShift® consente ai team di sviluppo di utilizzare gli strumenti applicativi che conoscono, tra cui applicazioni cloud native, tradizionali e modernizzate. Red Hat OpenShift Pipelines e Red Hat OpenShift GitOpsRed Hat OpenShift Service MeshRed Hat OpenShift Serverless e molte altre tecnologie sono già incluse e integrate con Red Hat OpenShift per semplificare i flussi di lavoro degli sviluppatori e supportare l'integrazione con molti altri strumenti open source. 

Mettendo la sicurezza al centro, Red Hat Trusted Software Supply Chain serve a integrare la sicurezza nei componenti, nei processi e nelle linee guida per la realizzazione del software. Gli sviluppatori possono adottare processi di scrittura, creazione, deployment e monitoraggio della distribuzione del software conformi alle pratiche di sicurezza previste dalla tua azienda.

Prova Red Hat Developer Hub

Continua a leggere

Cosa sono gli strumenti per l'ingegneria della piattaforma?

Gli strumenti per l'ingegneria della piattaforma sono risorse di supporto per i team di sviluppo, a cui consentono di migliorare 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.

Cloud computing: Red Hat OpenShift per gli ingegneri della piattaforma

Red Hat OpenShift offre gli strumenti di progettazione delle piattaforme ideali per creare e gestire le Internal Developer Platform (IDP).

Platform engineering: risorse consigliate

Prodotti in evidenza

  • Red Hat Developer Hub

    Una piattaforma aziendale aperta basata su Backstage per la creazione di portali per sviluppatori che consolida visivamente gli elementi del processo di sviluppo.

  • Red Hat OpenShift

    Una piattaforma per lo sviluppo di applicazioni unificata che ti consente di creare, modernizzare e distribuire applicazioni in modo scalabile, in base all'infrastruttura hybrid cloud di tua scelta.