GitLab aiuta Lockheed Martin a risparmiare tempo, denaro e risorse tecnologiche
Vuoi scoprire i vantaggi di GitLab Ultimate per il tuo team?
Il più grande appaltatore della difesa al mondo usa la piattaforma DevSecOps end-to-end di GitLab per ridurre le toolchain, accelerare la produzione e migliorare la sicurezza.
Lockheed Martin Corp., un gigante americano del settore aerospaziale, della difesa, della sicurezza delle informazioni e della tecnologia, ha adottato la piattaforma singola DevSecOps end-to-end di GitLab per sviluppare ed eseguire il deployment di software più efficienti, sicuri e rapidi per migliaia di programmi, dalle piattaforme satellitari ai sistemi aerospaziali fino ai software di controllo a terra e ai software marittimi di superficie e subacquei.
Soddisfare le esigenze della missione con velocità e flessibilità
Con sede a Bethesda, nello stato del Maryland, Lockheed Martin conta circa 116.000 dipendenti in tutto il mondo e oltre 370 sedi. La società si occupa principalmente di ricerca, progettazione, sviluppo, produzione, integrazione e sostegno di sistemi, prodotti e servizi tecnologici avanzati. Gran parte delle sue attività è svolta per il ministero della difesa e per le agenzie del governo federale degli Stati Uniti. Nel 2021, nel solo settore aeronautico, Lockheed Martin ha registrato vendite per 26,7 miliardi di dollari.
I clienti si affidano a Lockheed Martin per superare le sfide più complesse e rimanere al passo con le minacce emergenti, fornendo le soluzioni tecnologicamente più avanzate. I team tecnici dell'azienda hanno bisogno di velocità e flessibilità per soddisfare le esigenze specifiche di ogni cliente, e di usare competenze e infrastrutture condivise per garantire la convenienza delle soluzioni.
Complessità della toolchain
Lockheed Martin usa da sempre un'ampia gamma di strumenti DevOps, come ClearCase, Jenkins, Dimensions, Redmine e Bitbucket. Ogni programma o linea di prodotti dell'azienda aveva una propria toolchain. Raramente una era uguale all'altra e i team sceglievano gli strumenti con cui avevano familiarità.
Questo approccio causava disomogeneità nell'efficienza e nei risultati.
Alan Hohn, direttore della strategia software di Lockheed Martin, spiega che la qualità dell'ambiente di sviluppo e deployment di un team si basa spesso sulla fortuna del team DevOps. I programmi con grandi finanziamenti, o quelli con una leadership lungimirante, potevano avere un'automazione di alta qualità per ogni elemento del processo, dai test ai deployment continui, mentre altri avevano solo un server di compilazione. Nei casi peggiori, i programmi non avevano alcuna automazione ed era necessario un lungo lavoro pratico che aumentava la probabilità di trascurare involontariamente i problemi.
Maggiore collaborazione
Inoltre, i team di sviluppo software di Lockheed Martin avevano fatto numerosi tentativi di creare repository di codice che consentissero agli sviluppatori di riutilizzare il codice nei vari programmi, ma questi venivano usati raramente, o mai, perché non venivano mai incorporati nei tanti ambienti in cui i team stavano effettivamente sviluppando il software. Per questo motivo gli sviluppatori non avevano un ambiente di collaborazione solido e partivano sempre da zero, mentre il codice nei repository "rimaneva a marcire", spiega Hohn.
Quando Lockheed Martin ha adottato la piattaforma di GitLab in diversi ambienti aziendali, la condivisione e il riutilizzo del software sono diventati parte delle operazioni quotidiane.
"Avere GitLab ha completamente cambiato il modo in cui ci avviciniamo al software riutilizzabile, perché il luogo in cui lo sviluppiamo è anche quello in cui altre persone possono condividere, contribuire e partecipare allo sviluppo", afferma Hohn. "Ora, tutti i nostri programmi hanno accesso a un ambiente di sviluppo software di alta qualità."
Questo ambiente di sviluppo si traduce in vantaggi diretti per i clienti di Lockheed Martin. Un team che lavorava a un programma per il Ministero della difesa degli Stati Uniti ha potuto ridurre i tempi di sviluppo da 12 a 4 ore grazie alle pipeline di GitLab con compilazione containerizzata. Questo ha permesso al programma di eseguire 16 build per notte, anziché quattro, aumentando la frequenza dei test e la qualità del software. Nel complesso, il successo della compilazione è passato dal 60% al 90%. Grazie a questo miglioramento il cliente riceve nuove funzionalità più velocemente e con una qualità migliore.
Creare continuità
Una delle sfide più grandi che Lockheed Martin ha dovuto affrontare nel promuovere la collaborazione tra i programmi e in tutta l'azienda è il fatto che il software risiedeva in molti sistemi diversi, con requisiti di sicurezza differenti. GitLab, insieme alla software factory di Lockheed Martin, consente all'azienda di modularizzare il proprio software in modo che i componenti riutilizzabili possano essere condivisi in ambienti accessibili a livello globale, mentre i team possono ancora avere un buon controllo sui componenti software mission-critical o con vincoli di sicurezza.
La software factory di Lockheed Martin offre una YAML di configurazione comune della CI di GitLab e immagini comuni del container della CI preconfigurate compatibili con gli altri strumenti di sviluppo software.
I team devono mantenere ambienti separati per motivi di sicurezza, quindi la loro configurazione deve poter funzionare in diversi ambienti di hosting per i registri delle immagini e gli strumenti associati. Spesso hanno anche bisogno di sostenere versioni specifiche del loro software per anni, perché il deployment avviene in ambienti operativi in cui non è possibile aggiornare di frequente.
Per affrontare queste sfide, il team di Hohn ha creato un catalogo di pipeline comuni per i linguaggi di programmazione più diffusi, che include moduli per l'analisi di sicurezza, lo sviluppo di immagini del container e il controllo semantico delle versioni. Il catalogo di pipeline consente agli sviluppatori di utilizzare lo stesso file di origine YAML in più ambienti senza dover apportare modifiche. Il catalogo consente inoltre di creare una build storica utilizzando una versione specifica di una pipeline e garantisce la coerenza delle versioni.
Prima di adottare GitLab, Lockheed Martin aveva fatto alcuni tentativi di costruire un insieme comune di pipeline, ma queste supportavano solo pochi utenti ed erano eccessivamente prescrittive. C'era bisogno di qualcosa di più.
Con GitLab come base del catalogo di pipeline, Lockheed Martin ha potuto creare modelli di pipeline riutilizzabili in più ambienti, comprese le reti disconnesse. Ciò consente di risparmiare tempo e fatica e garantisce la continuità tra i progetti. Ora gli aggiornamenti della pipeline sono più semplici, mentre i test e la gestione delle release sofisticati sono più semplici ed efficienti.
"Oggi possiamo essere certi che le modifiche alle nostre pipeline vengono testate automaticamente e accuratamente. Possiamo supportare facilmente sia i team di sviluppo in rapido movimento che i team avversi al rischio che aggiornano le capacità mission-critical", afferma Hohn. "Il nostro nuovo approccio, basato su alcune funzionalità chiave della CI di GitLab, ci ha aiutato a trovare il giusto equilibrio tra condivisione e personalizzazione".
Lockheed Martin ora fornisce 2.500 pipeline al minuto attraverso il catalogo comune.
Scalabilità fluida
Poiché la rapida adozione di GitLab ha creato la necessità di una soluzione più scalabile, Lockheed Martin, GitLab e Amazon Web Services (AWS) hanno collaborato per automatizzare e ottimizzare la distribuzione del codice di Lockheed Martin in tutta l'azienda. Innanzitutto, le tre società hanno architettato accuratamente il progetto. AWS ha poi contribuito ad automatizzare e ottimizzare l'implementazione di GitLab di Lockheed Martin per l'ambiente CI/CD, fornendo l'Infrastructure as Code (IaC) per distribuire l'ambiente in due ore, invece delle diverse ore impiegate in precedenza.
Il team AWS ha inoltre stabilito flussi di lavoro per fornire un'architettura di ripristino di emergenza completamente automatizzata e altamente disponibile per GitLab, e che fosse conforme e scalabile. Questo ha permesso di avere un processo coerente, senza interventi manuali. AWS ha anche supportato il bilanciamento del carico per scalare automaticamente il processo di deployment in base alla domanda degli sviluppatori per le esecuzioni della pipeline e al traffico degli utenti, in modo che gli sviluppatori non rimanessero in attesa dei deployment da eseguire. Sono stati eseguiti test pre-migrazione per stabilire le linee di base, seguiti da test post-migrazione per misurare i guadagni in termini di prestazioni e scalabilità per deployment più veloci.
Inoltre, sono stati implementati controlli di monitoraggio e sicurezza per conformarsi ai criteri di sicurezza di Lockheed Martin. Il team ha quindi potuto fornire efficienze operative e il numero di richieste di build in attesa di essere elaborate è sceso da 200 a zero, con una riduzione dei tempi di deployment del codice in tutta l'azienda. Questo lavoro ha dimostrato come grandi società con migliaia di sviluppatori software possono creare ed eseguire il deployment di pipeline di codice automatizzate, scalabili e resilienti nel cloud, con piattaforme come GitLab e adottando le best practice AWS.
La scelta di GitLab
Lockheed Martin non aveva bisogno di eseguire una valutazione formale della piattaforma di GitLab prima di sceglierla. I team DevOps dell'azienda nel corso degli anni avevano usato numerosi strumenti sul mercato, quindi conoscevano le capacità e i vantaggi che avrebbero ottenuto da GitLab. Ad esempio, secondo Hohn la funzionalità di integrazione continua integrata di GitLab era "assolutamente rivoluzionaria".
Per l'azienda, GitLab ha rappresentato una vera svolta. Oggi Lockheed Martin ha circa 64.000 progetti sulla piattaforma GitLab: alcuni progetti legacy sono stati migrati su di essa e altri sono stati avviati direttamente sulla piattaforma.
Lockheed Martin non si è liberata di tutte le sue toolchain, ma le ha notevolmente ridotte, insieme alla complessità, ai costi e al carico di lavoro.
"Ci rendiamo conto che ci saranno programmi in cui il cliente vuole avere il pieno controllo dell'ambiente di sviluppo e desidera uno strumento specifico", spiega Hohn. "Vogliamo arrivare a quel punto, e ora i dipendenti non prendono nemmeno in considerazione la possibilità di costruire una toolchain propria. Usano GitLab perché sanno che funziona.
"Abbiamo cancellato tutte le tracce [delle toolchain]? No", aggiunge Hohn. "Ma sono così lievi che non sono significative".
Prima di adottare diffusamente GitLab, l'azienda utilizzava Jenkins per i server di CI, con migliaia di istanze in tutta l'organizzazione. Ma la situazione è cambiata.
"Ognuno doveva mantenere un'installazione diversa. Ora tutto viene svolto prevalentemente su GitLab", spiega Hohn. "Ci sono ancora istanze Jenkins, ma sono una piccola parte di quelle che avevamo tre anni fa".
Meno tempo e fatica
Queste toolchain ridotte consentono all'azienda di risparmiare tempo, fatica e denaro, per continuare a innovare e fornire soluzioni convenienti ai clienti.
"I team che avevano ambienti indipendenti dovevano dedicare circa 20 ore alla settimana e 80 ore al mese solo per mantenere il sistema in funzione", ricorda Hohn. "In un team di 12 persone, questo significava dedicare almeno mezza persona. Abbiamo ridotto questo numero di circa il 90%. Ora una sola persona dedica un paio d'ore all'attività. Questo si moltiplica per molti team. La nostra società conta oltre 10.000 tecnici software, perciò stiamo risparmiando centinaia o migliaia di ore all'anno".
Avere tutti questi progetti sulla singola piattaforma di GitLab significa che i programmi legacy che in precedenza, in media, potevano essere consegnati ai test mensilmente e alle operazioni trimestralmente, ora vengono inviati per i test ogni sei giorni e alle operazioni ogni 26 giorni, osserva Hohn.
"Spesso le consegne mensili diventano settimanali", aggiunge. "Le consegne trimestrali diventano mensili. Questo livello di cambiamento è molto comune".
Un simile risparmio di tempo significa che l'azienda può rispondere alle richieste dei clienti in modo più sicuro e affidabile.
"Abbiamo molti clienti e abbiamo molte attività di sviluppo software", afferma Ian Dunbar-Hall, ingegnere software senior di Lockheed Martin. "GitLab consente a un team di passare da zero a un repository e una pipeline di CI completa, totalmente self-service, in 30 minuti anziché in 40 ore almeno come in passato".
Migliore sicurezza
Dal momento che Lockheed Martin collabora con il Ministero della difesa e le agenzie federali, l'azienda realizza sistemi fondamentali per la sicurezza nazionale. Ciò significa che la creazione di software sicuro è parte integrante sia di Lockheed Martin che del lavoro dei suoi clienti. Qualsiasi azienda che utilizza toolchain si scontra con la facilità di perdere un aggiornamento a causa delle dimensioni e della complessità della catena. Ora, con GitLab, non c'è più il rischio di usare strumenti che non sono stati aggiornati, perché con una singola piattaforma end-to-end l'aggiornamento deve essere eseguito una sola volta e riguarda ogni istanza.
Dal momento che i clienti operano nel settore della difesa e della sicurezza, la conformità è una questione critica per Lockheed Martin. La gestione è più facile ora che l'azienda utilizza il framework di conformità di GitLab, per imporre la qualità del software, e l'automazione, per rendere più efficiente e veloce la gestione delle release e delle dipendenze.
L'uso di un'unica piattaforma significa anche che i team hanno un set standardizzato di funzionalità di sicurezza automatizzate e perfettamente integrate, dagli strumenti di analisi all'avanguardia all'analisi delle vulnerabilità e all'automazione della sicurezza. Prima di GitLab, non avevano i migliori strumenti di sicurezza e non esisteva un modo standardizzato per gestire le pratiche di sicurezza. Ora, con il catalogo di pipeline comune di Lockheed Martin, i team usano anche pipeline standard che hanno già prassi di sicurezza integrate di alta qualità. "Ora che abbiamo un approccio più comune, è molto più facile per i team applicare un metodo simile per sviluppare software ed eseguire test e analisi di sicurezza, il che aumenta il livello di qualità dei prodotti che creiamo", afferma Hohn.
Con GitLab non c'è più bisogno di esperti di sicurezza, difficili da reperire, per configurare vari strumenti. Come spiega Hohn, le prassi di sicurezza migliori disponibili sono già integrate.
"Oggi è estremamente comune che sofisticate funzionalità di analisi di sicurezza siano integrate in tutte le nostre pipeline, perché lo sforzo necessario per questa integrazione è molto minore", aggiunge Hohn. "I team ora sono consapevoli della security posture del codice che stanno scrivendo: questo non era possibile in passato. Ciò ci consente di considerare la sicurezza del nostro software in modo più consistente che in passato".
L'azienda usa ancora alcuni strumenti di sicurezza legacy di terze parti, ma i team si servono della piattaforma di GitLab per semplificarne l'integrazione. "È un ottimo complemento", afferma Jeff Daniels, Direttore delle automazioni e delle applicazioni. "È più facile ora che abbiamo GitLab, che aumenta la nostra security posture e la qualità."
Lockheed Martin ora vuole continuare a crescere con GitLab. In futuro i team DevOps migreranno ancora più progetti sulla piattaforma DevSecOps e si espanderanno a partire da quella. "Speriamo di veder crescere il numero di progetti che utilizzano le funzionalità di sicurezza e di fornitura del software, comprese le pipeline e le dashboard di conformità", afferma Hohn.
Tutte le informazioni e le persone coinvolte nel case study rappresentano fedelmente la situazione reale al momento della pubblicazione.