Dopo aver intrapreso un percorso di digitalizzazione con Red Hat basato sui Kubernetes, Ford usa un approccio community-first.

Ford

Da sempre, Ford Motor Company attribuisce grande valore alle tecnologie e agli standard aperti, per cui, quando lo scorso decennio ha definito la propria strategia di trasformazione digitale, è stato naturale guardare alle soluzioni open source. Tra le prime aziende ad adottare Kubernetes, mettendo online i carichi di lavoro di produzione già nel 2017, Ford ha reso le tecnologie open source la base fondante per le proprie iniziative di sviluppo cloud-native. Inoltre, l’azienda non si è limitata a utilizzare l’open source, ma ha proseguito il suo viaggio contribuendo anche ai progetti upstream.

A che punto è ora Ford e dove è diretta?

Lo scopriamo dalle parole di Satish Puranam, Cloud Leader di Ford Motor Company: “Sulla base del proprio processo di trasformazione digitale, che coinvolge tutta l’azienda, Ford sta realizzando la sua migliore gamma di prodotti di sempre, grazie alla quale ha raggiunto, tra gli altri, la seconda posizione a livello globale per vendite di veicoli elettrici, subito dopo Tesla. Inoltre, Ford ha migliorato ulteriormente l’esperienza dei consumatori attraverso tecnologie, servizi ed esperienze “always-on” basate su software. Ad esempio, tramite i dati dei veicoli connessi, Ford è in grado di identificare le preferenze dei clienti e lavorare per aggiungere nuove funzioni o apportare altri miglioramenti distribuendo software over-the-air a questi prodotti. Basti pensare a F-150 e Mustang Mach-E, in cui il software Ford Power-Up è stato recentemente aggiornato con la tecnologia BlueCruise per la guida autonoma in autostrada: da un giorno all’altro, i clienti sono passati dal guidare normalmente i loro veicoli ad avere le mani libere. Per sostenere questo cambiamento, Ford è impegnata eliminare molti degli ostacoli che prima impedivano agli esperti di software di essere più creativi e produttivi per consentire loro di concentrarsi sui contributi a valore aggiunto”.

Man mano che Ford ha acquisito maggiore dimestichezza con Kubernetes, l’azienda ha cercato di rendere i propri processi e flussi di lavoro ancora più efficienti, coerenti e scalabili. A tal fine, il team IT dell’azienda ha adottato Red Hat OpenShift Pipelines, basato sul progetto Tekton, per standardizzare la pipeline CI/CD, aiutandola a costruire, testare e distribuire le applicazioni su tutti i cloud. Il team IT di Ford ha adottato Tekton e ha riscontrato un successo quasi immediato. Questo li ha incoraggiati ad andare oltre il semplice consumo della tecnologia e a contribuire al progetto stesso, intervenendo soprattutto per ottimizzare la soluzione di casi d’uso aziendali.

Guidata da Red Hat, Ford ha imparato le regole delle comunità open source, aprendosi a contributi degli sviluppatori che hanno consentito di plasmare le versioni successive della tecnologia.

Il successo di Tekton

Quando Ford ha iniziato a sperimentare il CI/CD, il suo obiettivo era la ripetibilità dei processi e delle componenti, oltre alla possibilità di fornire un’esperienza unificata tra i team IT, anche con competenze e punti di vista diversi sugli strumenti. L’organizzazione IT ha adottato Tekton anche per la natura compositiva del progetto. Senza un linguaggio specifico da imparare, i team hanno potuto lavorare nei modi più idonei al proprio metodo, basandosi semplicemente sulle competenze già esistenti. Inoltre, per l’organizzazione IT la possibilità di estendere Tekton a tutti i cloud è particolarmente positiva poiché consente di non vincolarsi a un unico fornitore. A livello di produzione, Ford utilizza Tekton tramite OpenShift Pipelines per una versione completamente supportata e protetta, più adatta alle implementazioni di livello enterprise.

Da allora Tekton è diventato parte integrante della fornitura di servizi di infrastruttura e applicazioni IT per Ford. Tutto il provisioning del cloud viene ora effettuato esclusivamente su Tekton da migliaia di pipeline.

Implementando una pipeline CI/CD, Ford è riuscita a ridurre i tempi di consegna delle applicazioni. Automazione e ripetibilità hanno portato a una riduzione degli errori, con l’ulteriore vantaggio che quelli che vengono commessi sono più facili da tracciare e correggere. Inoltre, Ford è stata in grado di rilasciare nuovi aggiornamenti con maggiore frequenza. Grazie a distribuzione e deployment continui, le nuove funzionalità e i miglioramenti arrivano nelle mani degli utenti finali ad una velocità mai vista prima.

La collaborazione con la community

Forte del successo ottenuto con Tekton, Ford si è rivolta a Red Hat per avviare un’iniziativa congiunta che aiutasse il team IT dell’azienda a contribuire all’upstream del progetto Tekton. Sulla base dell’uso che Ford fa da tempo delle tecnologie open-source, l’azienda ha voluto compiere un ulteriore passo avanti contribuendo in prima linea all’interno della community.

Insieme a Red Hat, ha formato un team virtuale per portare avanti i casi d’uso aziendali all’interno del progetto Tekton. Contribuendo alla community, Ford ha portato la propria esperienza concreta nel progetto consentendo di soddisfare al meglio le esigenze degli utenti aziendali, in particolare concentrandosi sulla creazione di una tecnologia in grado di soddisfare meglio le crescenti esigenze su larga scala nelle aree della sicurezza e della riduzione del ciclo di feedback.

I contributi di Ford al progetto Tekton

Il caso d’uso iniziale da risolvere era quello di impedire l’esecuzione non necessaria della pipelineRun in base alla modifica o meno di un file. In precedenza, la soluzione di Ford consisteva nel verificare se i file erano stati modificati all’interno di un task personalizzato, il che risultava macchinoso.

Per risolvere questo problema, Ford ha contribuito all’upstream con Tekton Triggers, un componente che arricchisce il payload di github di una richiesta in arrivo con l’elenco dei file modificati relativi a un evento pull_request o push. Questo elenco verrebbe poi verificato utilizzando un intercettore CEL per interrompere l’elaborazione e/o passare alla pipelineRun, dove l’elenco dei file può essere utilizzato da un task.

Un altro contributo di Ford all’upstream di Tekton è un intercettore che blocca l’esecuzione di un trigger di richiesta di pull a meno che non sia invocato da un proprietario, i cui proprietari sono definiti in un file OWNERS alla radice del repository. Con questo contributo, una richiesta di pull della pipeline viene eseguita solo dopo essere stata esaminata da un proprietario del modulo. Questo aiuta a ridurre le risorse e a migliorare la sicurezza dello spazio dei nomi eseguendo solo le pipeline approvate, dato che Ford ha migliaia di sviluppatori che contribuiscono a diversi moduli. Le modifiche hanno portato a un processo più efficiente e incentrato sulla sicurezza. I contributi di Ford sono stati rilasciati in Tekton Triggers v0.23.0, consentendo ad altre aziende di trarre vantaggio da queste caratteristiche.

Il ruolo della mentorship di Red Hat

Ford e Red Hat si impegnano a promuovere all’interno di Tekton un’innovazione che può essere utilizzata da altre aziende, a dimostrazione del fatto che avere un progetto e strumenti più solidi porta in ultima analisi a una maggiore innovazione in tutto il settore IT. Collaborando e imparando con Red Hat, Ford ha potuto comprendere e coinvolgere più rapidamente la community. Red Hat ha svolto un ruolo di mentore per Ford, mostrando come iniziare a contribuire e i passi da compiere.

Secondo Satish Puranam, Cloud Leader di Ford Motor Company: “È facile consumare l’open source, ma solo quando siamo stati coinvolti nella community upstream abbiamo capito la fatica che questi progetti richiedono, con un numero considerevole di singoli collaboratori. La collaborazione con Red Hat si è rivelata preziosa e ci ha aiutato a capire come inserirci e collaborare con la più ampia community open source”.

Andando avanti nell’iniziativa, Ford intende espandere il proprio lavoro nell’ambito dei contributi open-source ed essere coinvolta in altri progetti legati a Tekton per accelerare la propria trasformazione digitale e migliorare ulteriormente la propria gamma di prodotti di punta.