Che cos'è la progettazione della piattaforma?
La progettazione della piattaforma è una pratica basata sui principi DevOps che cerca di migliorare la sicurezza, la conformità, i costi e il valore di business di ogni team di sviluppo attraverso esperienze sviluppatore migliorate e self-service all'interno di un framework sicuro e regolamentato. Si tratta sia del cambio di mentalità basata sul prodotto che di un set di strumenti e sistemi per supportarlo.
Ultimamente, c'è un sacco di entusiasmo nel settore intorno al termine ingegneria della piattaforma. Gartner prevede che circa l'80 % delle organizzazioni di ingegneria abbia un team dedicato all'ingegneria della piattaforma entro il 2026. Questi team si concentrano sulla creazione di una piattaforma per sviluppatori interna. Indipendentemente dal dominio, ovvero le vendite (Microsoft Dynamics, Salesforce), l'evasione dei servizi (ServiceNow), le comunicazioni (Twilio), le piattaforme, in base alla loro natura intrinseca, sono progettate per ottenere scalabilità e ridurre il tempo necessario per offrire valore aziendale.
Le piattaforme che gli sviluppatori usano o estendono hanno la possibilità di eliminare i problemi durante il processo di sviluppo con esperienze di sviluppo altamente ottimizzate e operazioni semplificate. Queste piattaforme includono strumenti che:
- Aiutare gli sviluppatori a essere autosufficienti (ad esempio, starter kit, plug-in IDE)
- Assistenza con le attività comuni
- Incapsulare modelli e procedure comuni in blocchi predefiniti riutilizzabili
- Fornire consigli e feedback tempestivi sui problemi o sui rischi per la sicurezza
- Semplificare le operazioni gestendo l'infrastruttura e gli strumenti sottostanti
Una piattaforma per sviluppatori interna è incentrata sulle procedure di sviluppo interne di un'azienda. Si definisce un set di percorsi di sviluppo consigliati e supportati per la produzione e si "pavimenta" in modo incrementale con una piattaforma interna.
Per usare un'analogia del mondo reale, i nuovi percorsi spesso iniziano come percorsi di sporcizia, ma man mano che più persone le usano, sono pavimentate per migliorare la sicurezza mantenendo velocità e velocità effettiva. I percorsi pavimentati all'interno di una piattaforma per sviluppatori interna hanno obiettivi simili. Sono progettati per guidare gli sviluppatori attraverso requisiti e standard critici senza sacrificare la velocità di distribuzione degli sviluppatori. Ciò si ottiene fornendo ai team di sviluppo funzionalità self-service standardizzate, sicure e scalabili. Allo stesso tempo, è comunque possibile semplificare le operazioni e l'organizzazione IT per garantire che l'infrastruttura e gli strumenti sottostanti siano efficienti, conformi e convenienti. Mentre alcuni percorsi potrebbero essere parzialmente pavimentati, un percorso d'oro completamente pavimentato riduce il carico cognitivo per tutti coinvolti.
Gli sviluppatori sono i principali consumer o clienti di una piattaforma per sviluppatori interna. L'automazione e la centralizzazione consentono operazioni efficienti garantendo al tempo stesso requisiti degli stakeholder come la conformità.
Con la progettazione della piattaforma, si crea questa piattaforma interna combinando una mentalità orientata al prodotto con gli apprendimento di DevOps e DevSecOps per offrire un set di strumenti. Questi strumenti forniscono un'automazione, un monitoraggio, una governance e un'osservabilità sufficienti che guidano naturalmente i team di sviluppo "nella fossa del successo". In qualità di responsabile dell'ingegneria della piattaforma per una multinazionale di mass media, ha messo:
L'ingegneria della piattaforma è stata adottata per aumentare la velocità o la velocità nella fornitura di prodotti. I team centralizzati eliminano la necessità di ogni team di preoccuparsi dell'infrastruttura, aumentando così l'efficienza... Migliorano anche la sicurezza e la sicurezza perché tutto è predefinito, riducendo gli errori. - Daniel, Cloud Engineer, Fortune 500 Media Company
Una piattaforma per sviluppatori interna consente di centralizzare e ridimensionare le conoscenze specializzate nell'intero ciclo di vita dello sviluppo e delle operazioni riducendo o eliminando il carico cognitivo e i passaggi manuali.
Creare piattaforme per sviluppatori in modo incrementale, concentrandosi su self-service e automazione
L'implementazione di una strategia di progettazione della piattaforma efficace richiede lavoro, ma vale la pena pagare. Non è raro che i team con meno di 20 persone possano supportare migliaia di sviluppatori e centinaia di progetti.
Tuttavia, la creazione di una piattaforma per sviluppatori interna è un percorso. Non è consigliabile un approccio "big bang" o uno sforzo guidato dall'alto verso il basso. Un aspetto critico dell'ingegneria della piattaforma consiste nell'applicare una mentalità del prodotto in cui gli sviluppatori, i professionisti di Machine Learning o i data scientist vengono trattati come clienti. In qualità di ingegnere della piattaforma presso un'azienda tecnologica, lo ha messo:
[Ci sono] due problemi principali che [i nostri] strumenti di progettazione della piattaforma sono stati progettati per risolvere. Il primo è stato quello di facilitare il provisioning dei servizi usando un modello self-service. … Il secondo consiste nel fornire sistemi di supporto automatico, ad esempio metriche delle prestazioni e disponibilità delle applicazioni. L'obiettivo era consentire agli sviluppatori di lavorare più velocemente ed in modo più efficiente, avendo tutte le informazioni necessarie per risolvere i problemi e ottimizzare le applicazioni. - Alex, Lead Cloud Architect, Large Technology Company
Nessuna delle due aziende è la stessa, quindi considerare le esigenze specifiche dei clienti interni per tracciare un corso incrementale attraverso questo percorso. Stabilendo un set di blocchi predefiniti di base che verranno assemblati nel corso del tempo, è possibile assicurarsi che la piattaforma per sviluppatori interna abbia un valore sufficiente che i team di sviluppo diventino sostenitori e vogliano usarlo lungo il percorso. Usare queste informazioni per creare una piattaforma praticabile più sottile, un prodotto minimo funzionante per la piattaforma) e crescere da lì.
Il punto importante è che si vuole considerare gli investimenti effettuati in queste aree come blocchi predefiniti chiave per il percorso di progettazione della piattaforma. È quindi possibile concentrarsi sulla creazione di un'associazione coesiva con gli investimenti personalizzati per aggiungere valore unico per l'azienda, invece di creare tutto da zero.