Lockheed Martin économise du temps, de l'argent et des efforts technologiques grâce à GitLab
Vous souhaitez découvrir ce que GitLab Ultimate peut offrir à votre équipe ?
La plus grande entreprise de défense au monde utilise la plateforme DevSecOps complète de GitLab pour réduire ses chaînes d'outils, accélérer sa production et améliorer la sécurité.
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 plateforme DevSecOps unifiée et complète de GitLab. Cette initiative vise à développer et déployer des logiciels de manière plus efficace, plus sécurisée et plus rapide pour des milliers de ses programmes, des plateformes satellitaires et des systèmes aérospatiaux aux logiciels de contrôle au sol, en passant par les logiciels maritimes de surface et sous-marins.
Répondre aux besoins de la mission avec rapidité et souplesse
Établie à Bethesda, dans le Maryland, Lockheed Martin emploie environ 116 000 personnes dans le monde entier et possède plus de 370 installations. L'entreprise est principalement engagée dans la recherche, la conception, le développement, la fabrication, l'intégration et le soutien de systèmes, de produits et de services de haute technologie. La majorité des ses activités concerne le ministère américain de la Défense et les agences du gouvernement fédéral américain. Rien que dans le secteur de l'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 à relever leurs défis les plus complexes et à rester à la pointe de la lutte contre les menaces émergentes en leur fournissant les solutions les plus avancées sur le plan technologique. Leurs équipes d'ingénieurs ont besoin de rapidité et de flexibilité pour répondre aux besoins spécifiques de chaque client, tout en utilisant une expertise et une infrastructure partagées pour rester abordables.
Complexité de la chaîne d'outils
Lockheed Martin a l'habitude d'utiliser une grande variété d'outils DevOps, de ClearCase à Jenkins, en passant par Dimensions, Redmine et Bitbucket. Chaque programme ou gamme de produits de l'entreprise avait sa propre chaîne d'outils. Il était rare qu'un outil soit identique à un autre, les membres de l'équipe choisissant simplement les outils qui leur étaient familiers.
Cela a conduit à des améliorations en termes d'efficacité, mais les résultats ont été variables.
Alan Hohn, Director of Software Strategy chez Lockheed Martin, a expliqué que la qualité de l'environnement de développement et de déploiement d'une équipe dépendait souvent de la chance dont bénéficiait l'équipe DevOps. Les programmes profitant d'un bon financement, ou ceux initiés par des dirigeants visionnaires, pouvaient être dotés d'une automatisation avancée pour les tests et les déploiements continus. En revanche, certains programmes se contentaient d'un simple serveur pour exécuter les compilations. Dans le pire des cas, l'absence totale d'automatisation entraînait un travail manuel plus important. D'autre part, les membres de l'équipe perdaient du temps et les risques de ne pas détecter certains problèmes étaient plus élevés.
Collaboration renforcée
Pour compliquer encore les choses, les équipes de développement logiciel de Lockheed Martin ont tenté à plusieurs reprises de mettre en place des dépôts de code permettant aux développeurs de réutiliser le code d'un programme à un autre. Mais ces dépôts étaient rarement, voire jamais, utilisés parce qu'ils n'étaient jamais inclus dans la multitude d'environnements dans lesquels les équipes développaient réellement le logiciel. Par conséquent, sans environnement de collaboration efficace, les développeurs devaient constamment repartir de zéro, et le code dans les dépôts « restait simplement là et devenait obsolète », explique Alan Hohn.
Une fois que Lockheed Martin a adopté à grande échelle la plateforme GitLab, le partage et la réutilisation des logiciels sont facilement devenus partie intégrante de leurs activités quotidiennes.
« Le fait de disposer de GitLab a complètement changé notre façon d'aborder les logiciels réutilisables. Le lieu où nous développons des logiciels est aussi le lieu où d'autres personnes peuvent partager, contribuer et participer à ce développement », déclare Alan Hohn. « Désormais, tous nos programmes ont accès à un environnement de développement logiciel de haute qualité. »
Cet environnement de développement implique directement de nombreux avantages pour les clients de Lockheed Martin. Une équipe travaillant sur un programme pour le ministère américain de la Défense a pu réduire ses délais de compilation de 12 heures à 4 heures grâce à l'utilisation de pipelines GitLab dotés de processus de compilation conteneurisés. Le programme a pu exécuter 16 compilations par nuit, au lieu de quatre auparavant, augmentant ainsi la fréquence des tests et la qualité des logiciels. Dans l'ensemble, le taux de réussite des compilations est passé de 60 % à 90 %. Résultat : le client final bénéficie de nouvelles fonctionnalités plus rapidement et de produits de meilleure qualité.
Créer la continuité
La collaboration entre les programmes et l'ensemble de l'entreprise a constitué l'un des défis les plus importants auxquels Lockheed Martin a dû faire face. En effet, ses logiciels résidaient dans de nombreux systèmes différents, avec des exigences de sécurité divergentes. La plateforme GitLab, associée à l'usine logicielle 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. Les équipes peuvent conserver un contrôle strict sur les composants logiciels critiques ou soumis à des contraintes de sécurité.
L'une des principales caractéristiques de l'usine logicielle de Lockheed Martin est qu'elle fournit une configuration commune entre le système d'intégration continue (CI) de GitLab et YAML, ainsi que des images communes de conteneurs de CI préconfigurées, compatibles avec les autres outils de développement logiciel de l'entreprise.
Les équipes doivent maintenir des environnements distincts 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. Elles doivent aussi souvent maintenir des versions particulières de leurs logiciels pendant des années, car ceux-ci sont parfois déployés dans des environnements opérationnels où ils ne peuvent pas être mis à jour fréquemment.
Pour relever ces défis, l'équipe d'Alan Hohn a créé un catalogue de pipelines communs pour les langages de programmation les plus courants. Ces pipelines regroupent des modules automatisés servant au scanning de sécurité, à la création d'images de conteneurs et au versionnage sémantique. Le catalogue de pipelines permet aux développeurs d'utiliser le même fichier source YAML dans plusieurs environnements, sans avoir à effectuer de modifications. Il permet également de créer une version historique utilisant une version spécifique d'un pipeline et garantit ainsi la cohérence des versions.
Avant d'adopter GitLab, Lockheed Martin avait fait quelques tentatives pour construire un ensemble commun de pipelines, mais elles ne concernaient que quelques utilisateurs et étaient trop normatives. Ce n'était pas suffisant.
Avec GitLab comme base de son catalogue de pipelines, Lockheed Martin a pu créer des modèles de pipelines qui peuvent être réutilisés dans de multiples environnements, y compris des réseaux déconnectés. Cela permet un gain de temps et d'efforts considérable, et garantit la continuité entre les différents projets. Désormais, les mises à jour du pipeline sont plus simples. Les tests sophistiqués ainsi que la gestion des nouvelles versions sont plus faciles et plus efficaces.
« Nous sommes certains que les modifications apportés à nos pipelines sont automatiquement et soigneusement testés. Ainsi nous répondons aux besoins des différentes équipes : celles qui innovent rapidement, comme les équipes de développement, mais aussi les équipes qui sont moins enclines à prendre des risques car elles travaillent sur la maintenance des systèmes critiques », explique Alan Hohn. « Notre nouvelle approche, basée sur certaines fonctionnalités clés du système d'intégration continue (CI) de GitLab, nous a aidés à trouver le bon équilibre entre partage des connaissances et personnalisation. »
Lockheed Martin traite désormais 2 500 pipelines par minute via le catalogue commun de pipelines.
Assurer une mise à l'échelle
L'adoption rapide de GitLab a nécessité la mise en place d'une solution plus évolutive. Lockheed Martin, GitLab et Amazon Web Services (AWS) ont donc collaboré pour automatiser et optimiser le déploiement du code de Lockheed Martin à l'échelle de l'entreprise. La solution a commencé par une analyse minutieuse de la conception entre les trois entreprises. AWS a ensuite contribué à automatiser et à optimiser le déploiement de GitLab au sein de Lockheed Martin pour l'environnement CI/CD en fournissant une infrastructure en tant que code (IaC) permettant de déployer l'environnement en deux heures, au lieu de plusieurs heures auparavant.
L'équipe AWS a également mis en place des workflows pour fournir une architecture de reprise après sinistre entièrement automatisée avec une haute disponibilité de la plateforme GitLab, conforme et évolutive. Cela a permis d'implémenter un processus cohérent qui s'exécute sans intervention manuelle. AWS a également aidé à mettre en place un système de répartition de charge afin d'ajuster automatiquement la capacité du processus de déploiement en fonction de la demande des développeurs pour les exécutions de pipelines et du trafic des utilisateurs. Des tests préalables à la migration ont été effectués pour établir des bases de référence, suivis de tests postérieurs à la migration pour mesurer les gains en performance et en évolutivité dans le cadre de déploiements plus rapides.
En outre, des contrôles de surveillance et de sécurité ont été mis en œuvre pour se conformer aux politiques de sécurité de Lockheed Martin. L'équipe a ainsi réussi à améliorer son efficacité opérationnelle, en réduisant le nombre des demandes de compilation en attente de traitement de 200 à zéro. Elle a également réduit la durée de déploiement du code à l'échelle de l'entreprise. Cet effort a permis de montrer comment les grandes entreprises comptant des milliers de développeurs de logiciels peuvent construire et déployer des pipelines de code automatisés, évolutifs et résilients dans le cloud à l'aide de plateformes telles que GitLab, en s'appuyant sur les bonnes pratiques d'AWS.
Adopter GitLab
Lockheed Martin n'a pas eu besoin de procéder à une évaluation formelle de la plateforme de GitLab avant de décider de l'adopter. Ses équipes DevOps ont, au fil des ans, utilisé une multitude d'outils sur le marché, et ont donc compris les capacités et les avantages offerts par GitLab. Par exemple, la capacité d'intégration continue intégrée à GitLab était une « fonctionnalité déterminante », selon Alan Hohn.
Et l'entreprise a vu grand avec GitLab. À l'heure actuelle, elle compte environ 64 000 projets sur la plateforme GitLab : certains projets hérités ont été migrés vers GitLab, tandis que d'autres ont été initiés sur la plateforme.
Lockheed Martin n'a pas pu éliminer toutes ses chaînes d'outils, mais a réussi à les réduire considérablement, ce qui a permis de diminuer la complexité, les coûts et la charge de travail.
« Nous savons que, pour certains programmes, le client souhaitera s'approprier l'environnement de développement et exigera un outil spécifique », explique Alan Hohn. « Notre objectif est de rendre obsolète la notion même de créer sa propre chaîne d'outils, et c'est exactement ce que nous sommes en train d'accomplir. Nos équipes utilisent simplement la plateforme GitLab car elles savent qu'elle offre toutes les fonctionnalités dont elles ont besoin.
« Avons-nous pour autant éliminé toute trace [de chaînes d'outils] ? Non », ajoute Alan Hohn. « Mais elles sont si petites que cela n'a aucune importance pour nous. »
Par exemple, avant d'adopter GitLab à grande échelle, l'entreprise utilisait Jenkins pour les serveurs CI, soit des milliers d'instances de Jenkins dans l'ensemble de l'entreprise. Ce n'est plus le cas.
« Tout le monde devait maintenir une installation différente. Nous avons réduit la maintenant à une seule plateforme, celle de GitLab », explique Alan Hohn. « Il y a encore des instances Jenkins, mais leur nombre ne représente qu'une petite fraction de ce qu'il était il y a trois ans. »
Gain de temps et économie d'efforts
Cette réduction des chaînes d'outils permet à Lockheed Martin d'économiser du temps, des ressources et de l'argent. L'entreprise peut donc continuer à innover et à proposer des solutions abordables à ses clients.
« Les équipes qui disposaient d'environnements indépendants devaient consacrer environ 20 heures par semaine, soit 80 heures par mois, au seul fonctionnement du système », poursuit Alan Hohn. « Pour une équipe composée de 12 personnes, cela revient à dédier au moins la moitié du temps de travail d'une personne à cette tâche. Nous avons réduit ce temps de travail d'environ 90 %. Désormais, les équipes ont juste besoin qu'une personne y consacre quelques heures de son travail. Étant donné qu'il y a beaucoup d'équipes dans l'entreprise, ce chiffre est multiplié. Avec plus de 10 000 ingénieurs logiciels, nous pouvons dire que nous économisons maintenant des centaines voire des milliers d'heures par an. »
Grâce à l'intégration de tous ces projets sur la plateforme unique de GitLab, les programmes existants qui, auparavant, étaient soumis à des tests mensuels et à des opérations trimestrielles, sont désormais soumis à des tests tous les six jours et à des opérations tous les vingt-six jours, note Alan Hohn.
« Il est très courant que des livraisons mensuelles se transforment en livraisons hebdomadaires et que des livraisons trimestrielles se transforment en livraisons mensuelles. », ajoute-t-il. « Ce que je veux dire par là, c'est qu'il est devenu très courant de voir la fréquence des livraisons évoluer de manière significative. »
Ce gain de temps permet à l'entreprise de consacrer davantage de temps à traiter les demandes des clients avec plus d'assurance et de fiabilité.
« Nous comptons de nombreux clients et travaillons sur un grand nombre de projets de développement logiciel », explique Ian Dunbar-Hall, Senior Software Engineer chez Lockheed Martin. « GitLab permet à une équipe de créer un dépôt et de mettre en place un pipeline de CI complet, de manière totalement autonome, en 30 minutes seulement. Avant l'utilisation de GitLab, ce processus prenait au moins 40 heures.
Renforcement de la sécurité
Étant donné que Lockheed Martin travaille avec le ministère de la Défense et les agences fédérales américaines, l'entreprise construit des systèmes essentiels à la sécurité nationale. La création de logiciels sécurisés fait, en effet, partie intégrante de Lockheed Martin et de ses clients. Certaines entreprises qui utilisent des chaînes d'outils recentrent cependant un défi majeur : il est facile de passer à côté d'une mise à jour en raison de la taille et de la complexité de la chaîne. Avec GitLab, elles n'ont plus à se soucier d'utiliser des outils qui n'ont pas été mis à jour, car la plateforme de GitLab est une plateforme unique et complète. Lorsqu'une mise à jour est effectuée sur GitLab, elle est appliquée une seule fois à l'ensemble de la plateforme, couvrant toutes les instances et tous les aspects du système.
Avec des clients axés sur la défense et la sécurité, la conformité est une question essentielle pour Lockheed Martin. La gestion de la conformité est plus facile depuis que l'entreprise utilise le framework de conformité de GitLab pour garantir la qualité des logiciels. L'automatisation permet également de rendre les versions et la gestion des dépendances plus efficaces et plus rapides.
L'utilisation d'une plateforme unique permet aux équipes de bénéficier d'un ensemble standardisé de fonctionnalités de sécurité automatisées. Cela inclut des outils d'analyse avancés, des scanners de vulnérabilités, mais aussi l'automatisation de la sécurité. Ces fonctionnalités sont intégrées dans la plateforme de manière fluide. Avant d'utiliser GitLab, les équipes de Lockheed Martin ne disposaient pas toutes des meilleurs outils de sécurité. Il n'existait aucun moyen standardisé de gérer les pratiques de sécurité. Maintenant, grâce au catalogue de pipelines communs que Lockheed Martin a mis en place, ses équipes utilisent des pipelines prêts à l'emploi qui intègrent, en standard, une sécurité de premier ordre. « Maintenant que nous disposons d'une méthode unifiée pour toutes les équipes, il est beaucoup plus facile pour elles de l'utiliser pour la création de logiciels, les tests et les scans de sécurité, ce qui améliore la qualité des produits que nous développons », confirme Alan Hohn.
Et avec GitLab, les équipes n'ont plus besoin d'experts en sécurité, parfois difficiles à trouver, pour configurer les différents outils. Alan Hohn précise qu'un processus de sécurité de premier ordre est déjà intégré à la plateforme.
« Il est désormais très fréquent pour nos équipes de procéder à un scanning de sécurité sophistiqué dans tous nos pipelines, car l'effort nécessaire pour les intégrer est considérablement réduit », explique Alan Hohn. « Les équipes sont désormais conscientes de l'état de sécurité du code qu'elles écrivent, ce qui n'était pas le cas auparavant. Cela ouvre la voie à des discussions sur la sécurité de notre logiciel qui n'avaient pas lieu auparavant. »
L'entreprise utilise toujours des outils de sécurité tiers hérités, mais les équipes utilisent la plateforme de GitLab pour faciliter leur intégration. « C'est un excellent complément », déclare Jeff Daniels, Director Automations and Applications. « C'est plus facile maintenant, avec la plateforme GitLab, qui renforce notre posture de sécurité et la qualité de notre code. »
Lockheed Martin a hâte de poursuivre sa courbe de croissance avec l'aide de la plateforme GitLab. Ses équipes DevOps prévoient de migrer un nombre encore plus important de leurs projets vers la plateforme DevSecOps. Une fois ces projets migrés, elles continueront à développer et à étendre leurs activités à partir de cette plateforme. « Nous espérons augmenter le nombre de projets utilisant des fonctionnalités de sécurité et de chaîne d'approvisionnement logicielle, ainsi que des pipelines et des tableaux de bord de conformité », déclare Alan Hohn.
À la date de publication, toutes les informations et les personnes mentionnées dans l'étude de cas sont exactes.