Case Study: Lockheed Martin

Lockheed Martin gagne du temps, de l’argent et du muscle technologique avec GitLab

Le plus grand sous-traitant de la défense au monde utilise la plate-forme DevSecOps de bout en bout de GitLab pour réduire les chaînes d’outils, accélérer la production et améliorer la sécurité.
lockheed martin

Lockheed Martin Corp., le géant américain de l’aérospatiale, de la défense, de la sécurité de l’information et de la technologie, a adopté la plate-forme DevSecOps unique et de bout en bout de GitLab pour développer et déployer plus efficacement, en toute sécurité et plus rapidement des logiciels pour des milliers de leurs programmes, allant des plates-formes satellites à l’aérospatiale. des systèmes aux logiciels de contrôle au sol et aux logiciels maritimes de surface et de subsurface.

“En passant à GitLab et en automatisant le déploiement, les équipes sont passées de livraisons mensuelles ou hebdomadaires à des livraisons quotidiennes ou multiples.”

-Alan Hohn, directeur de la stratégie logicielle, Lockheed Martin

Répondre aux besoins de la mission avec rapidité et flexibilité

Basé à Bethesda, Maryland, Lockheed Martin compte environ 116 000 employés dans le monde, avec plus de 370 installations. La société est principalement engagée dans la recherche, la conception, le développement, la fabrication, l’intégration et le maintien de systèmes, produits et services de technologie de pointe. La majorité des affaires de l’entreprise se font avec le Département américain de la Défense et les agences gouvernementales fédérales américaines. Dans la seule industrie aéronautique, Lockheed Martin a réalisé un chiffre d’affaires de 26,7 milliards de dollars en 2021.

Les clients de Lockheed Martin comptent sur l’entreprise pour les aider à surmonter leurs défis les plus complexes et à garder une longueur d’avance sur les menaces émergentes en leur fournissant les solutions les plus avancées sur le plan technologique. Leurs équipes d’ingénierie ont besoin de rapidité et de flexibilité pour répondre aux besoins de mission spécifiques de chaque client, tout en utilisant une expertise et une infrastructure partagées pour garantir l’abordabilité.

Complexité de la chaîne d’outils

Lockheed Martin a l’habitude d’utiliser une grande variété d’outils DevOps, de ClearCase à Jenkins, Dimensions, Redmine et Bitbucket. Chaque programme ou gamme de produits de l’entreprise avait sa propre chaîne d’outils. Rares étaient les uns comme les autres, les membres de l’équipe choisissant simplement des outils avec lesquels ils étaient familiers.

Cela a conduit à des efficacités et des résultats inégaux.

Alan Hohn, directeur de la stratégie logicielle chez Lockheed Martin, a déclaré que la qualité de l’environnement de développement et de déploiement d’une équipe était souvent basée sur la chance de l’équipe DevOps. Les programmes bien financés, ou ceux avec un leadership orienté vers l’avant, auraient peut-être eu une automatisation de haute qualité pour tout, des tests aux déploiements continus, tandis que d’autres programmes n’auraient peut-être eu qu’un serveur de construction pour exécuter des compilations. Et dans le pire des cas, les programmes n’auraient peut-être eu aucune automatisation, créant plus de travail pratique, utilisant le temps des membres de l’équipe et augmentant les risques de problèmes manqués.

Accroître la collaboration

Pour ajouter au défi, les équipes de développement de logiciels de Lockheed Martin avaient fait de nombreuses tentatives pour mettre en place des référentiels de code qui permettraient aux développeurs de réutiliser le code dans les programmes – mais ces référentiels étaient rarement, voire jamais, utilisés car ils n’étaient jamais incorporés dans la multitude de environnements où les équipes développaient réellement le logiciel. Cela signifiait que les développeurs, sans un environnement de collaboration solide, partaient toujours de zéro et que le code dans les référentiels était simplement « assis et pourri », explique Hohn.

Une fois que Lockheed Martin a largement adopté la plate-forme GitLab, le partage et la réutilisation de logiciels sont devenus facilement partie intégrante de leurs opérations quotidiennes.

“Avoir GitLab a complètement changé notre approche des logiciels réutilisables, car l’endroit où nous développons des logiciels est également l’endroit où d’autres personnes peuvent partager, contribuer et participer à ce développement”, déclare Hohn. “Désormais, tous nos programmes ont accès à un environnement de développement logiciel de haute qualité.”

Cet environnement de développement se traduit directement par des avantages pour les clients de Lockheed Martin. Une équipe travaillant sur un programme pour le département américain de la Défense a pu réduire les temps de construction de 12 heures à 4 heures grâce à l’utilisation de pipelines GitLab avec des constructions conteneurisées. Cela a permis au programme d’exécuter 16 builds par nuit, au lieu de quatre, augmentant ainsi la fréquence des tests et la qualité du logiciel. Dans l’ensemble, le succès de la construction est passé de 60 % à 90 %. En conséquence, le client reçoit de nouvelles fonctionnalités plus rapidement et avec une meilleure qualité.

Créer une continuité

L’un des défis les plus importants auxquels Lockheed Martin a dû faire face pour favoriser la collaboration entre les programmes et dans l’ensemble de l’entreprise est que leurs logiciels résidaient dans de nombreux systèmes différents, avec des exigences de sécurité différentes. GitLab, en collaboration avec la Software Factory de Lockheed Martin, permet à l’entreprise de modulariser ses logiciels afin que les composants réutilisables puissent être partagés dans des environnements accessibles à l’échelle mondiale, tandis que les équipes peuvent toujours maintenir un contrôle étroit sur les composants logiciels critiques ou soumis à des contraintes de sécurité.

L’une des principales caractéristiques de la Software Factory de Lockheed Martin est qu’elle fournit une configuration commune GitLab CI YAML et des images de conteneur CI communes qui sont préconfigurées pour fonctionner avec leurs autres outils de développement logiciel.

Les équipes doivent maintenir des environnements séparés pour des raisons de sécurité, leur configuration doit donc pouvoir fonctionner dans différents environnements d’hébergement pour les registres d’images et les outils associés. Ils ont également souvent besoin de maintenir des versions particulières de leur logiciel pendant des années, car il est parfois déployé dans des environnements opérationnels où il ne peut pas être mis à jour fréquemment.

Pour relever ces défis, l’équipe de Hohn a créé un catalogue de pipelines communs pour les langages de programmation populaires avec des modules pour l’analyse de sécurité, la création d’images de conteneurs et la gestion sémantique des versions. Le catalogue de pipeline permet aux développeurs d’utiliser le même fichier source YAML dans plusieurs environnements sans avoir à apporter de modifications. Le catalogue permet également de créer un build historique à partir d’une version spécifique d’un pipeline et garantit la cohérence des versions.

Avant d’adopter GitLab, Lockheed Martin avait fait quelques tentatives pour construire un ensemble commun de pipelines, mais ils ont fini par ne prendre en charge que quelques utilisateurs et étaient trop normatifs. Ce n’était pas assez.

Avec GitLab comme base de son catalogue de pipelines, Lockheed Martin a pu créer des modèles de pipeline qui peuvent être réutilisés dans plusieurs environnements, y compris des réseaux déconnectés. Cela permet d’économiser du temps et des efforts et assure la continuité entre les projets. Désormais, les mises à jour du pipeline sont plus simples, et les tests sophistiqués et la gestion des versions sont plus faciles et plus efficaces.

« Désormais, nous pouvons être sûrs que les modifications apportées à nos pipelines sont automatiquement et minutieusement testées, et nous pouvons facilement prendre en charge à la fois des équipes de développement en évolution rapide et des équipes averses aux risques qui maintiennent des capacités critiques », déclare Hohn. “Notre nouvelle approche, basée sur certaines fonctionnalités clés de GitLab CI, nous a aidés à trouver le bon équilibre entre communité et personnalisation.”

Lockheed Martin dessert désormais 2 500 pipelines par minute via le catalogue commun de pipelines.

Delivering scale

Parce que l’adoption rapide de GitLab a créé le besoin d’une solution plus évolutive, Lockheed Martin, GitLab et Amazon Web Services (AWS) ont travaillé ensemble pour automatiser et optimiser le déploiement du code de Lockheed Martin dans l’entreprise. La solution a commencé par un examen bien architecturé de la conception entre les trois sociétés. AWS a ensuite aidé à automatiser et à optimiser le déploiement de Lockheed Martin GitLab pour l’environnement CI/CD en fournissant Infrastructure as Code (IaC) pour déployer l’environnement en deux heures, au lieu des plusieurs heures qu’il fallait auparavant.

L’équipe AWS a également établi des flux de travail pour fournir une architecture de reprise après sinistre entièrement automatisée et hautement disponible pour GitLab, conforme et évolutive. Cela a permis un processus cohérent qui s’exécute sans intervention manuelle. AWS a également pris en charge l’équilibrage de charge pour mettre à l’échelle automatiquement le processus de déploiement en fonction de la demande des développeurs pour les exécutions de pipeline et le trafic des utilisateurs afin que les développeurs n’attendent pas que les déploiements s’exécutent. Des tests de pré-migration ont été effectués pour établir des lignes de base, suivis de tests de post-migration pour mesurer les performances et les gains d’évolutivité en fournissant des déploiements plus rapides.

De plus, des contrôles de surveillance et de sécurité ont été mis en place pour se conformer aux politiques de sécurité de Lockheed Martin. En conséquence, l’équipe a été en mesure d’améliorer l’efficacité opérationnelle, le nombre de demandes de build en attente de traitement passant de 200 à zéro, et de réduire le temps de déploiement du code dans toute l’entreprise. Cet effort a montré comment de grandes entreprises comptant des milliers de développeurs de logiciels peuvent créer et déployer des pipelines de code automatisés, évolutifs et résilients dans le cloud à l’aide de plates-formes telles que GitLab en tirant parti des meilleures pratiques AWS.

Avec GitLab

Lockheed Martin n’a pas eu besoin de faire une évaluation formelle de la plate-forme de GitLab avant de décider de l’utiliser. Les équipes DevOps de l’entreprise ont, au fil des ans, utilisé une multitude d’outils sur le marché, ils ont donc compris les capacités et les avantages qu’ils retireraient de GitLab. Par exemple, la capacité d’intégration continue intégrée de GitLab était une “fonctionnalité qui tue”, selon Hohn.

Et l’entreprise est allée en grand avec GitLab. Aujourd’hui, ils ont environ 64 000 projets sur la plate-forme GitLab – certains projets hérités ont été migrés vers GitLab et d’autres ont été lancés sur la plate-forme.

Lockheed Martin ne s’est pas débarrassé de toutes ses chaînes d’outils, mais l’entreprise les a considérablement réduites, réduisant ainsi la complexité, les coûts et la charge de travail.

« Nous sommes conscients qu’il y aura des programmes dans lesquels le client souhaite posséder l’environnement de développement et souhaite un outil spécifique », explique Hohn. “Nous voulons aller droit au but, et ce que nous réalisons, c’est que les gens n’envisagent même pas de créer leur propre chaîne d’outils. Ils utilisent simplement GitLab parce qu’ils savent que cela fonctionne.

« Avons-nous effacé toutes les traces [des chaînes d’outils] ? Non », ajoute Hohn. “Mais c’est si petit que ça n’a pas d’importance pour nous.”

Par exemple, avant d’adopter largement GitLab, l’entreprise utilisait Jenkins pour les serveurs CI – des milliers d’instances de Jenkins dans toute l’organisation. Ce n’est plus le cas.

« Tout le monde devait maintenir une installation différente. Nous avons réduit cela à GitLab principalement », explique Hohn. “Il existe encore des instances de Jenkins, mais elles ne représentent qu’une petite fraction du nombre d’il y a trois ans.”

Gain de temps et d’efforts

Ces chaînes d’outils réduites font gagner du temps, de la force et de l’argent à l’entreprise, ce qui lui permet de continuer à innover et à proposer des solutions abordables à ses clients.

“Pour les équipes qui avaient des environnements indépendants, elles devaient consacrer environ 20 heures par semaine et 80 heures par mois juste pour faire fonctionner le système”, explique Hohn. « Dans une équipe de 12 personnes, c’est consacrer au moins une demi-personne. Nous avons réduit cela d’environ 90 %. Ils passent maintenant quelques heures du temps d’une personne. Cela s’est multiplié dans de nombreuses équipes. En tant qu’entreprise comptant plus de 10 000 ingénieurs en logiciel, nous pouvons dire que nous économisons des centaines ou des milliers d’heures par an.

Avoir tous ces projets sur la plate-forme unique de GitLab signifie que des programmes hérités qui auraient pu auparavant, en moyenne, être livrés aux tests tous les mois et aux opérations tous les trimestres, sont désormais livrés aux tests tous les six jours et aux opérations tous les 26 jours, note Hohn.

« Il est très courant que nous voyions des livraisons mensuelles devenir hebdomadaires », ajoute-t-il. « Nous voyons des livraisons trimestrielles devenir mensuelles. Je veux dire, cette ampleur des changements est très courante.

Ce gain de temps signifie que l’entreprise peut répondre aux demandes des clients avec plus de confiance et de fiabilité.

“Nous servons de nombreux clients et nous avons de nombreuses activités de développement de logiciels”, explique Ian Dunbar-Hall, ingénieur logiciel senior chez Lockheed Martin. “GitLab permet à une équipe de passer de zéro à un référentiel et à un pipeline CI complet, totalement en libre-service, en 30 minutes, au lieu des 40 heures, minimum, qu’il fallait auparavant.”

Amélioration de la sécurité

Étant donné que Lockheed Martin travaille avec le ministère de la Défense et des agences fédérales, l’entreprise construit des systèmes essentiels à la sécurité nationale. Cela signifie que la création de logiciels sécurisés fait partie intégrante de Lockheed Martin et de ses clients. Un défi pour toute entreprise utilisant des chaînes d’outils est qu’il est facile de manquer une mise à jour en raison de la taille et de la complexité de la chaîne. Désormais, avec GitLab, ils n’ont plus à se soucier d’utiliser des outils qui n’ont pas été mis à jour, car avec une plate-forme unique de bout en bout, une mise à jour ne doit être effectuée qu’une seule fois et chaque instance est couverte.

Et avec des clients axés sur la défense et la sécurité, la conformité est un problème crucial pour Lockheed Martin. C’est plus facile à gérer maintenant que l’entreprise utilise le cadre de conformité de GitLab pour faire respecter la qualité des logiciels et l’automatisation pour rendre les versions et la gestion des dépendances plus efficaces et plus rapides.

L’utilisation d’une plate-forme unique signifie également que les équipes bénéficient d’un ensemble standardisé de fonctionnalités de sécurité automatisées – des outils d’analyse de pointe à l’analyse des vulnérabilités et à l’automatisation de la sécurité – intégrés de manière transparente. Avant d’utiliser GitLab, les équipes ne disposaient pas toutes des meilleurs outils de sécurité et là n’existait aucun moyen standardisé de gérer les pratiques de sécurité. Désormais, avec le catalogue de pipelines commun de Lockheed Martin, les équipes utilisent également des pipelines prêts à l’emploi qui intègrent déjà la meilleure sécurité de leur catégorie. « Maintenant que nous avons une approche plus commune, il est beaucoup plus facile pour les équipes de tirer parti d’une méthode commune. de créer, de tester et d’analyser la sécurité des logiciels, ce qui augmente le niveau de qualité des produits que nous créons », déclare Hohn.

Et avec GitLab, les équipes n’ont plus besoin d’experts en sécurité, qui pourraient être difficiles à trouver pour toutes les équipes, pour configurer divers outils. La meilleure sécurité de sa catégorie est déjà intégrée, selon Hohn.

“Aujourd’hui, il est extrêmement courant d’avoir des capacités d’analyse de sécurité sophistiquées dans le cadre de tous nos pipelines, car l’effort nécessaire pour ajouter cela aux pipelines est tellement plus petit”, déclare Hohn. « Les équipes sont désormais conscientes de la posture de sécurité du code qu’elles écrivent d’une manière qu’elles ne connaissaient pas auparavant. Cela permet des conversations sur la sécurité de nos logiciels qui n’avaient pas lieu à l’ancienne.

L’entreprise utilise encore certains outils de sécurité hérités de tiers, mais les équipes utilisent la plate-forme de GitLab pour faciliter leur intégration. « C’est un excellent complément », déclare Jeff Daniels, directeur des automatisations et des applications. “C’est plus facile maintenant que nous avons GitLab, ce qui améliore notre posture de sécurité et notre qualité.”

Lockheed Martin cherche à continuer à se développer avec GitLab. Les équipes DevOps migreront encore plus de leurs projets vers la plate-forme DevSecOps et se développeront à partir de là. « Nous espérons voir une croissance du nombre de projets utilisant les fonctionnalités de sécurité et de chaîne d’approvisionnement logicielle, y compris les pipelines de conformité et les tableaux de bord », déclare Hohn.

Toutes les informations et les personnes impliquées dans l’étude de cas sont exactes au moment de la publication.

 

ALM-Toolbox est un distributeur officiel de SonarQube, GitLab  et offre du conseils, des licences SonarQube et SonarCloud, la mise en œuvre, la formation et aide les clients à intégrer SonarQube aux flux commerciaux et aux pipelines CI/CD.
Contactez-nous pour toute question, y compris les prix et les devis : sonarqube@almtoolbox.com ou appelez-nous : 866-503-1471 (USA/Canada) ou +33 (0)1 84 17 53 28