Cos'è l'ingegneria della piattaforma?

Copia URL

L'ingegneria della piattaforma è una disciplina attinente allo sviluppo software che ha lo scopo di migliorare la produttività, il ciclo di vita delle applicazioni e la velocità di rilascio. L'obiettivo ultimo dell'ingegneria della piattaforma è individuare le inefficienze che ancora ostacolano e rallentano il lavoro dei team di sviluppo e ridurle offrendo funzionalità e strumenti comuni e riutilizzabili per mezzo di un'Internal Developer Platform (IDP).

Può essere considerata un approccio multidisciplinare all'ottimizzazione della produttività e della cultura del lavoro, che genera anche un impatto positivo sugli utili. Dal punto di vista aziendale, i programmi di ingegneria della piattaforma ottimizzano il time to market delle applicazioni, le operazioni e l'efficienza delle attività di sviluppo, distribuzione, gestione e manutenzione delle applicazioni. Dal punto di vista culturale, invece, hanno lo scopo di migliorare le interazioni tra i team tramite modalità più collaborative e di evitare situazioni di sovraccarico cognitivo, offrendo agli sviluppatori gli strumenti e il supporto necessari per dedicarsi alle attività più strategiche.

Scopri Red Hat OpenShift per l'ingegneria della piattaforma

L'ingegneria della piattaforma avvantaggia le organizzazioni perché incoraggia la coerenza e l'efficienza. Favorisce una migliore collaborazione tra i team e riduce la curva di apprendimento per i nuovi membri del team, consentendo una cooperazione più efficiente. Con ingegneria della piattaforma può intendersi sia un ambito lavorativo specifico, sia una disciplina o metodologia adottata da un team.

L'obiettivo principale dell'ingegneria della piattaforma è ridurre il tempo dedicato alle attività amministrative che compromettono la produttività degli sviluppatori e generano ostacoli nel ciclo di vita delle applicazioni. 

In che modo gli ingegneri della piattaforma supportano gli sviluppatori?

I team e i professionisti che si occupano di ingegneria della piattaforma sono responsabili della gestione dell'infrastruttura e della creazione di una serie di strumenti che supportino gli sviluppatori in un flusso di lavoro pensato appositamente per rispondere alle loro necessità, detto anche "golden path".

La gamma personalizzata di strumenti e processi selezionati dagli ingegneri della piattaforma soddisferà le esigenze specifiche di un'organizzazione grazie a funzionalità self service e a un'infrastruttura automatizzata che agevola gli sviluppatori di software. Adattabilità è la parola chiave di questo approccio che non vincola gli sviluppatori a soluzioni specifiche, ma permette loro di utilizzare gli strumenti più confacenti alle esigenze dei singoli progetti. Allo stesso tempo, gli sviluppatori non hanno bisogno di apprendere nuove competenze e di occuparsi di attività superflue, il che permette loro di concentrarsi sulla scrittura del codice.

I team di ingegneria della piattaforma garantiscono anche l'applicazione di framework affidabili in materia di governance, così da poter controllare le risorse, la sicurezza e la conformità in tutti gli ambienti. Ciò costituisce un ulteriore vantaggio per le aziende, perché offre un approccio pratico al monitoraggio delle prestazioni, al tracciamento dei costi e all'identificazione di potenziali rischi e vulnerabilità. 

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


Scopri di più su DevOps e sull'ingegneria della piattaforma

Cos'è una piattaforma applicativa?

Un'Internal Developer Platform (IDP) consiste in un set standardizzato di strumenti e tecnologie self service di cui gli sviluppatori necessitano per creare, distribuire e gestire il codice durante l'intero ciclo di vita di un'applicazione. Le toolchain integrate nelle IDP rendono più vantaggioso e produttivo il flusso di lavoro degli sviluppatori, sono incentrate su fattori come la sicurezza e la scalabilità e, in ultima analisi, permettono alle aziende di creare un maggiore valore per i clienti.

DevOps è un approccio allo sviluppo software che le organizzazioni adottano per coniugare le funzioni di sviluppo con quelle legate alle operazioni IT all'interno di flussi di lavoro iterativi. L'ingegneria della piattaforma si concentra invece sulla creazione di piattaforme e strumenti interni a supporto di tali flussi di lavoro. 

Questo approccio aiuta a definire un set di strumenti, conoscenze, servizi e processi standardizzati che tutti i team di sviluppo dell'organizzazione potranno utilizzare. Avvalendosi di piattaforme appositamente selezionate e aggiornate, i team di sviluppo possono creare, distribuire ed essere responsabili dei propri strumenti e componenti, mentre è il team addetto alla piattaforma che crea, distribuisce e si occupa dei componenti della piattaforma. 

Le pratiche DevOps prevedono che gli sviluppatori cerchino, imparino a conoscere, distribuiscano e gestiscano il software in autonomia; ciò implica anche un livello più alto di conoscenza e controllo del software in fase di produzione. 

L'adozione della metodologia DevOps e della distribuzione continua implica toolchain e pipeline più lunghe. In più, la necessità di integrare la sicurezza in ogni fase della creazione e della gestione di un'applicazione obbliga gli sviluppatori a conoscere in maniera approfondita anche gli aspetti più complessi delle applicazioni che creano.

Questo livello di autonomia può aumentare la responsabilità e il carico di lavoro mentale: un aspetto di cui non beneficia né l'azienda né il singolo.

Ponendo l'accento sull'empatia e sul percorso dell'utente, l'ingegneria della piattaforma sfrutta la metodologia DevOps trovando modi più efficaci per automatizzare la distribuzione delle applicazioni, migliorare la collaborazione e la comunicazione, ridurre gli errori, ottimizzare la sicurezza e la conformità, aumentare l'efficienza e, soprattutto, reindirizzare le potenzialità degli sviluppatori laddove necessario. 

Trasformazione in una cultura DevOps

L'ingegneria della piattaforma allevia la responsabilità dell'infrastruttura che grava sugli sviluppatori. Ciò è un'esigenza particolarmente sentita negli ambienti ibridi e multicloud. 

Da sempre gli sviluppatori hanno la responsabilità di valutare e scegliere lo strumento più adeguato alle proprie esigenze, oppure di crearlo da zero. Mentre prima dello sviluppo tecnologico questo tipo di aspettativa poteva essere sostenibile, con l'attuale ritmo di crescita delle aziende supportare gli utenti e ottenere scalabilità a livello dell'intera organizzazione in maniera efficiente è sempre più complesso.

Un ingegnere della piattaforma realizza un'IDP efficace individuando attivamente inefficienze e carenze nell'attività degli sviluppatori e selezionando strumenti e tecnologie in grado di ridurre o alleviare tali mancanze. Inizia da un approccio minimalista, incorporando solo gli strumenti che sai offriranno un vantaggio al tuo team di sviluppo. Quindi espandi le funzionalità in modo graduale, cosicché si evolvano insieme alle esigenze degli sviluppatori, anche in base al loro feedback. 

I team che si occupano di Site Reliability Engineering (SRE) gestiscono l'infrastruttura IT alla base e sviluppano processi e contenuti di automazione volti a garantirne l'integrità e l'operatività continua. I team SRE e gli ingegneri della piattaforma hanno quindi obiettivi comuni, ma mentre i primi si occupano principalmente di prestazioni, affidabilità e scalabilità dei software, gli ingegneri della piattaforma si dedicano ai sistemi e all'esperienza di sviluppo.

Sia l'ingegneria della piattaforma sia la site reliability engineering riguardano la creazione e la manutenzione dei sistemi. La differenza tra i due approcci sta nell'obiettivo di ciascuna pratica. 

Scopri di più sull'approccio di Red Hat al site reliability engineering

L'ingegneria della piattaforma funziona solo quando la piattaforma viene considerata un prodotto e gli sviluppatori interni dei clienti. La sua adozione incontra i maggiori ostacoli quando viene trattata come un rigido requisito IT anziché un prodotto destinato ai propri sviluppatori interni. Se un team di ingegneria realizzasse un'IDP senza comprendere le reali difficoltà degli sviluppatori, questi tenderebbero ad aggirare la piattaforma per mantenere la propria velocità. 

È anche possibile che un'organizzazione ingegnerizzi in modo eccessivo o insufficiente la piattaforma. L'ingegneria della piattaforma non consiste nella sola creazione dell'interfaccia utente di un portale per sviluppatori (come Backstage). Per rendere il self service realmente efficace, è necessario automatizzare e orchestrare l'infrastruttura in modo più funzionale. Tuttavia, anche progettare una piattaforma per ogni potenziale scenario di utilizzo futuro comporterebbe un'enorme complessità e una curva di apprendimento ripida.

Inoltre, i team della piattaforma devono affrontare l'enorme sfida tecnica di trasformare gli strumenti e la complessità aziendale in flussi di lavoro semplificati e automatizzati. Alleviare questa complessità che grava sugli sviluppatori richiede un lavoro costante di astrazione e manutenzione, attività che possono rapidamente sovraccaricare un team con risorse insufficienti. 

Per superare questi ostacoli, le organizzazioni di successo adottano una rigorosa "mentalità del prodotto", lanciando una Thinnest Viable Platform (TVP) che risolve per primo un singolo ostacolo tecnico. Collaborando con un gruppo pilota di sviluppatori motivati alla progettazione dei flussi di lavoro iniziali, i team creano dei "golden path" self service e fluidi che gli ingegneri scelgono di utilizzare in modo attivo. Anziché imporre l'adozione, favoriscono l'utilizzo della piattaforma riducendo la resistenza, sfruttando il successo interno per ampliare gradualmente l'automazione dell'infrastruttura a tutta l'azienda.

Red Hat® OpenShift®Red Hat Advanced Developer Suite offrono una soluzione completa di ingegneria della piattaforma per l'intero ciclo di vita dello sviluppo del software. Red Hat OpenShift è una base affidabile per la distribuzione, la gestione e la scalabilità delle applicazioni in produzione. Red Hat Advanced Developer Suite consente ai team responsabili della piattaforma di potenziare la produttività degli sviluppatori, ridurre i rischi e ottimizzare lo sviluppo basato sull'IA. I risultati? Vantaggi operativi immediati e trasformazione a lungo termine. Red Hat Advanced Developer Suite amplia ulteriormente le funzionalità di Red Hat OpenShift con un portale di sviluppo interno e una catena di distribuzione del software fidata per fornire una piattaforma di sviluppo interna (IDP).

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'è GitOps?

GitOps è un insieme di procedure per la gestione delle configurazioni di applicazioni e infrastrutture, che utilizza Git come single source of truth per l'infrastruttura dichiarativa.

Cos'è l'osservabilità?

Il termine osservabilità si riferisce alla capacità di monitorare, misurare e comprendere un sistema o un'applicazione attraverso l'analisi di output, registri e metriche sulle prestazioni.

Gli approcci alle metriche DevOps

Le metriche DevOps permettono di misurare l'efficacia delle procedure DevOps, ovvero quelle procedure volte all'integrazione di sviluppo software e operazioni IT.

DevOps: risorse consigliate