Informazioni approfondite tecniche / Golden Paths

Golden Path: creazione di architetture di processi per il software

Le esigenze dettate dal business di oggi possono essere estremamente impegnative. Un Golden Path definisce e semplifica il processo di sviluppo del software, consentendo agli sviluppatori di concentrarsi sulla scrittura di codice, anziché sulla configurazione e sulla gestione di strumenti e infrastruttura, riducendo così il time-to-production.


Che cos'è un Golden Path?

Un Golden Path (talvolta noto anche come Paved Road o Paved Path) è un percorso ben informato, ben definito, specifico per attività e supportato per la creazione di software. Se un team riesce a rimanere lungo il Golden Path, il processo di sviluppo può procedere in modo più rapido e agevole. I Golden Path consentono alle organizzazioni di creare software migliore e di distribuirlo più rapidamente nell'ambiente di produzione, con livelli superiori di qualità e controllo. Team diversi all'interno di un'organizzazione usano frequentemente un'ampia gamma di strumenti, framework e linguaggi. Gli sviluppatori trascorrono spesso troppo tempo a cercare la tecnologia adatta e a imparare a usarla, a discapito del tempo da dedicare alla creazione di software di qualità.

Questo approccio genera un ecosistema frammentato di strumenti, framework e documentazione, un maggiore carico cognitivo e un livello incoerente di competenze e conoscenze. Un Golden Path offre un approccio supportato con strumenti, processi e approcci ben definiti per lo sviluppo e il deployment di software. Incorpora in genere tecnologie native per il cloud, tra cui Kubernetes, CI/CD, DevOps e DevSecOps. L'utilizzo di strumenti e processi definiti e lo sviluppo di "software Golden Path" possono migliorare la produttività degli sviluppatori e ridurre il time-to-value.

Definendo e supportando attentamente framework, strumenti, best practice e così via, un Golden Path consente di:

  1. Migliorare le competenze. È possibile ottenere una visuale incentrata sugli sviluppatori del processo di sviluppo del software end-to-end. Con gli strumenti adeguati, gli sviluppatori non si trovano a dover cercare costantemente qualcosa da adattare per completare il proprio lavoro.
  2. Ridurre le attività ripetitive degli sviluppatori. È possibile diminuire il carico cognitivo astraendo le complessità a livello di infrastruttura, strumenti, terminologia, processi e persone.

Un Golden Path offre valore tramite:

  1. Individuazione e apprendimento. Obiettivi e tutorial dettagliati e ben delineati con best practice integrate semplificano l'onboarding di nuovi membri del team e consentono di individuare gli strumenti e i servizi disponibili e preferiti.
  2. Creazione e iterazione. È possibile creare applicazioni utilizzando template e acceleratori condivisibili con cui gli sviluppatori possono farsi strada attraverso il caos. Servizi e documenti facilmente individuabili e riutilizzabili sono essenziali per garantire coerenza e trasparenza con un Golden Path.
  3. Integrazione e distribuzione. È possibile abilitare livelli di automazione e self-service con strumenti come pipeline CI/CD, gestione di API o container.
  4. Operation migliorate. È possibile ottenere visibilità e un livello più avanzato di approfondimento attraverso il monitoraggio e l'osservabilità. È inoltre possibile gestire il comportamento di un'applicazione prima che raggiunga la fase di produzione con funzionalità come metriche, tracce e registri.

Golden Path e Paved Road

Il concetto di Golden Path nello sviluppo di software è stato originariamente sviluppato da Spotify per aiutare i tecnici a gestire le crescenti complessità dell'infrastruttura nativa per il cloud e per porre un freno a ciò che veniva definito come "sviluppo basato su indiscrezioni". Un Golden Path di Spotify offre opzioni per strumenti e servizi, nonché una roadmap per i team IT contenente tutorial, documentazione e best practice. Per i fan della fantascienza, il termine "Golden Path" (sentiero dorato) deriva dal classico di Frank Herbert "I figli di Dune".Una Paved Road in Netflix è un approccio analogo che incorpora una combinazione di cultura e strumenti per standardizzare le pratiche di sviluppo.




Come progettare un Golden Path

Seguire un Golden Path permette di consolidare le best practice e ridurre i processi decisionali. Ogni azienda che sviluppa e distribuisce software (telecomunicazioni, trasporti, sanità o produzione) può trarre vantaggio dalla definizione di alcuni Golden Path. Gli elementi da includere in un Golden Path, tuttavia, possono variare a seconda del business e degli obiettivi.

La progettazione di un Golden Path consiste nei seguenti passaggi:

  • Passaggio 1: definire gli obiettivi
  • Passaggio 2: identificare i destinatari
  • Passaggio 3: studiare le best practice
  • Passaggio 4: scegliere gli strumenti
  • Passaggio 5: creare un prototipo
  • Passaggio 6: documentare il tutto
  • Passaggio 7: ottenere feedback ed eseguire iterazioni

Ogni Golden Path è un artefatto vivente che risponde al feedback degli utenti e cambia con l'evolversi della tecnologia. Sebbene i Golden Path eliminino le complessità, devono comunque offrire un certo grado di libertà di deviazione all'interno del percorso o consentire una certa estensibilità, per permettere agli sviluppatori di usare uno strumento o un approccio preferito per le situazioni che lo richiedano.




Aspetti da considerare in fase di valutazione dei Golden Path

Un Golden Path consente alle organizzazioni di consolidare conoscenze e best practice, favorire l'onboarding di nuovi membri del team e incrementare la condivisione e l'individuazione tra i team. Ciò determina livelli superiori di automazione e innovazione, una produzione di software più rapida e sicura e un'esperienza di sviluppo (DevX) migliorata.

Componenti standard di un Golden Path

I Golden Path rappresentano un catalizzatore per la cooperazione tra team, dalla condivisione e dall'individuazione di documentazione e API interne all'applicazione di strumenti e sicurezza. Consentono di standardizzare le best practice e orientare i team nella giusta direzione. I componenti di un Golden Path includono:

  • Repository di documentazione. Gli sviluppatori possono creare un'applicazione iniziale da un template configurato automaticamente, avviando subito il processo di sviluppo. Nuovi microservizi possono essere attivati dai template sviluppati dai team delle operation seguendo le best practice dell'organizzazione.
  • Catalogo di software. Gli sviluppatori godono di una certa discrezionalità nella scelta dei loro strumenti e servizi preferiti: serverless o Kubernetes? Google Cloud Platform o Amazon Web Services? CircleCI o Jenkins? Rendendo i servizi facilmente individuali e disponibili, si incoraggia il riutilizzo degli stessi servizi, anziché costringere gli sviluppatori a sceglierne o addirittura inventarne di nuovi.
  • Scaffolding/framework. È possibile sviluppare template personalizzati per consentire ai team di creare rapidamente i progetti, assicurando al contempo la compliance alle specifiche e agli standard tecnici. In questo modo, i team possono distribuire software senza incorrere in complessità.
  • Supply chain del software. Molti Golden Path incorporano progetti Open Source, ad esempio Backstage come portale per gli sviluppatori o Tekton per le pipeline CI/CD. In combinazione con plug-in personalizzabili e best practice incorporate, questi strumenti accelerano la supply chain, ottimizzano il ciclo di sviluppo del software e forniscono Golden Path verso la produzione.

Portali self-service per sviluppatori

Nello sviluppo di software, un portale per sviluppatori è progettato per raccogliere strumenti, conoscenze, risorse di formazione e altre tecnologie con l'obiettivo di ridurre le complessità e il carico cognitivo. Raccogliendo tutto il necessario per un Golden Path e rendendolo accessibile in un'unica posizione, un portale per sviluppatori consente una gestione interna in modalità self-service e può fungere da base per un Golden Path, permettendo ai team di individuare risorse, creare progetti, integrare componenti e strumenti, nonché distribuire e gestire il software, il tutto da un unico punto di monitoraggio.

Entro il 2025, il 75% delle organizzazioni con team di addetti alle piattaforme fornirà portali self-service per sviluppatori per migliorare l'esperienza di sviluppo e accelerare l'innovazione di prodotti. Un'importante decisione che devono prendere le organizzazioni intenzionate a creare un portale per sviluppatori è quella di scegliere se costruirlo da zero o utilizzare un progetto Open Source esistente, come Backstage.

Backstage

Backstage è un portale Open Source per sviluppatori che centralizza strumenti dell'infrastruttura, componenti software, dati e documentazione dietro un unico punto di monitoraggio. È stato sviluppato da Spotify ed è ora supportato dalla Cloud Native Computing Foundation (CNCF). Una libreria di plug-in personalizzabili promuove la collaborazione e il riutilizzo e accelera l'onboarding.

Backstage consente agli sviluppatori di:

  • Creare nuovo software in pochi secondi, in linea con le best practice dell'organizzazione
  • Gestire software in una posizione centralizzata
  • Esplorare e utilizzare un ecosistema di plug-in estendibili
  • Collaborare più facilmente con tutti i membri dell'organizzazione


Golden Path in VMware

Tanzu si impegna ad aiutare le organizzazioni ad accelerare il ritmo dello sviluppo di software, migliorare la qualità e ridurre le attività ripetitive. Offriamo una gamma di prodotti e servizi che permettono di utilizzare al meglio i Golden Path esistenti o di crearne di nuovi.

Tanzu Application Platform è una soluzione end-to-end integrata e centralizzata che consente alle aziende di creare e distribuire più software, in modo più rapido e sicuro, tramite un set avanzato di strumenti per sviluppatori e Golden Path già tracciati per la produzione. Tanzu Application Platform utilizza Backstage per migliorare l'esperienza di sviluppo.

Tanzu Labs aiuta i team a potenziare le iniziative di modernizzazione delle applicazioni e fornisce consigli sulla definizione dei Golden Path che saranno in grado di soddisfare le esigenze dei team dedicati al software e del business.

Tanzu Observability (in precedenza, Tanzu Observability) offre dashboard personalizzate e pronte all'uso per le applicazioni che riuniscono metriche, tracce e gestione dei registri, semplificando la visibilità sull'intero stack per gli ambienti multi-cloud.

Sviluppo di Golden Path per applicazioni Spring

VMware e Microsoft collaborano per rendere Azure Spring Apps un Golden Path per il deployment e la scalabilità delle applicazioni Spring nel cloud. Con Azure Spring Apps è possibile distribuire applicazioni Spring basate su eventi nel cloud e renderle immediatamente operative. È un Golden Path verso la produzione che semplifica il processo di deployment e ottimizza l'utilizzo delle risorse.