Condividi tramite


Definire l’ambito del problema

Quando si punta alla definizione della piattaforma per sviluppatori interna, è prima necessario definire la piattaforma più sottile possibile (TVP). Un TVP è una variante dell'idea di un prodotto minimo funzionante (MVP) nella gestione dei prodotti classica.

Questo diagramma consente di orientare il pensiero su come la piattaforma per sviluppatori può evolversi nel tempo. Tenere presente che il problema principale dell'organizzazione può causare la deviazione da quanto descritto qui a causa degli investimenti esistenti o delle esigenze dell'organizzazione. Non è necessario passare alla fase successiva, a meno che l'organizzazione non lo richieda.

Diagramma per illustrare come l'ingegneria della piattaforma può evolversi nel tempo.

Se si inizia da zero, questo rappresenta una progressione comune. Nelle prime fasi, concentrarsi sull'individuazione delle funzionalità necessarie, sull'analisi fit-gap dei prodotti con wrapping ridotto e sulla creazione di strumenti o funzionalità di piattaforma minimi. Successivamente, man mano che si ridimensiona, si inizierà probabilmente a concentrarsi sulla riutilizzabilità e guidare le persone verso il basso percorsi tracciati predefiniti con asset riutilizzabili. Infine, si passa a un modello di "archivio digitale" simile al consumer per semplificare la compilazione e la gestione delle applicazioni. È consigliabile seguire una mentalità del prodotto in tutto il mondo, quindi non è consigliabile passare alla fine e variare il percorso specifico. Queste fasi finali assomigliano più a "prodotto" compattato nel senso tradizionale, ma questa è una destinazione, non un punto di partenza.

Aree degli argomenti di progettazione della piattaforma

Data la dimensione di questo argomento, è consigliabile suddividere internamente il modo in cui si parla di progettazione della piattaforma in quattro aree di argomento:

Sistemi di progettazione: un mix curato di suite DevOps come GitHub e Azure DevOps e altri strumenti e servizi di sviluppo. Oltre agli strumenti e ai servizi DevOps critici, ad esempio CI/CD o gestione pacchetti, questa area include anche funzionalità usate direttamente durante il processo di codifica, ad esempio ambienti di codifica basati sul cloud, scanner di codice e litri e assistenti di intelligenza artificiale come GitHub Copilot.

Piattaforma dell'applicazione: selezione curata di servizi (ad esempio IaaS, PaaS e osservabilità) destinati a ogni "stack di app" (classe di applicazione, modello di app, linguaggi) che un'organizzazione vuole usare per offrire valore aziendale. Ciò include una combinazione di servizi specifici dello stack di app insieme ai servizi comuni usati in tutto. Un esempio di piattaforma applicativa può includere App contenitore di Azure, Cosmos DB per l'archiviazione, Azure Key Vault per i segreti, per il controllo degli accessi in base al ruolo e identità, Criteri di Azure per la conformità e il controllo, l'osservabilità tramite Grafana e una topologia di rete correlata.

Modelli di applicazione: un set di modelli ben definiti, creati dall'organizzazione, modelli di avvio rapido che incapsulano subito e rimangono le linee guida corrette per una determinata piattaforma applicativa, linguaggio e set di sistemi di progettazione. Possono fare riferimento ad altri modelli centralizzati e fornire codice iniziale, riferimenti API e SDK, pipeline CI/CD, configurazione degli strumenti e altro ancora.

Funzionalità self-service per sviluppatori: questa è la combinazione per il lavoro di progettazione della piattaforma. Si tratta di una combinazione di API, agenti di orchestrazione, catalogo, modelli ed esperienze utente progettate per ridurre il lavoro degli sviluppatori e consentire ai team di sviluppo di self-service e di essere più autonomi, pur rispettando al tempo stesso selezioni e linee guida/governance delle tre aree precedenti.

Immagine delle aree di base della progettazione della piattaforma.

L'integrazione di sistemi di progettazione, piattaforme applicative, modelli di applicazione e funzionalità self-service per sviluppatori costituisce la base di una strategia di progettazione della piattaforma. Combinando strumenti DevOps, servizi cloud e funzionalità self-service, le organizzazioni possono ridurre significativamente il lavoro degli sviluppatori, migliorare la produttività e garantire la conformità agli standard di governance.