Gestion de la chaîne logistique logicielle : introduction

Aucun secteur n'est épargné : pour toutes les entreprises, la concurrence peut tout autant venir d'une start-up inconnue que de rivaux de longue date. Dans notre économie moderne, si vous n'innovez pas suffisamment rapidement, vous vous ferez dépasser par ceux qui le font. Demandez aux chaînes de télévision et aux entreprises de production de programmes pour le câble ce qu'elles pensent de Netflix. Demandez aux hôtels Hilton et Marriot ce qu'ils pensent d'Airbnb. La peur de devenir obsolète peut être extrêmement motivante.

L'un des plus grands défis pour les responsables en place, c'est que les équipes de direction se reposent sur leurs lauriers, les normes de développement sont profondément ancrées et alambiquées, les cyberattaques sur les écosystèmes de développement augmentent et les silos de longue date créés par les équipes chargées du développement logiciel, de la sécurité des applications et des opérations informatiques persistent. Ces normes culturelles et ces silos enracinés favorisent les frictions, ralentissent les opérations et freinent l'innovation.

Toutes les entreprises sont désormais des entreprises de logiciels. Cette réalité brutale, et la peur de devenir obsolètes, sont les raisons pour lesquelles de nombreuses entreprises ne voient plus le développement de logiciels comme un coût lié à leur activité, mais plutôt comme une compétence centrale et un impératif stratégique qui les définissent dans leur ensemble. C’est aussi la raison pour laquelle des entreprises du monde entier adoptent des solutions de gestion de la chaîne logistique logicielle, qui rationalisent la façon dont sont gérés les logiciels dont vos applications dépendent.

Plus vite les entreprises apportent de la valeur sur le marché, plus le marché les récompense. La gestion de la chaîne logistique logicielle permet d'éliminer les barrières entre les équipes chargées du développement et de la sécurité, à d'oublier les pratiques open source superflues et de récompenser la collaboration à grande échelle.

De nombreuses entreprises ne considèrent plus le développement logiciel comme un coût lié à leur activité, mais plutôt comme une compétence centrale.

La magie de l'open source

C'est là qu'entrent en scène les pratiques de développement open source : une composante clé des chaînes logistiques logicielles et de l'innovation logicielle moderne. 

Dès les débuts de l’informatique, les développeurs ont compris que confier des tâches courantes à un système prédéfini permettait d’accélérer le développement et de réduire les coûts de production. Cette tendance n'a fait que grandir avec les composants logiciels développés par les communautés, les bibliothèques prédéfinies et les composants tiers. Les composants open source permettent aux entreprises de gagner du temps et de l'argent, d'améliorer la qualité de leurs systèmes, de gagner en agilité et d'atténuer (certains) risques métier.

Le concept n'est pas né d'hier. Bien avant l'avènement de l'open source, Isaac Newton déclarait : « Si j'ai vu si loin, c'est en me tenant sur les épaules de géants et je découvre la vérité en m'appuyant sur les découvertes qui m'ont précédé ». Cette idée est l'une des principales raisons pour lesquelles les composants open source sont si attrayants pour les équipes de développement, bien que certains acteurs du secteur soient réticents à les adopter à grande échelle.

Il en va de même pour l'utilisation croissante d'applications conteneurisées. Pour faire simple, avec un accès libre et ouvert aux composants et conteneurs logiciels préexistants, pas besoin de réinventer la roue. Les logiciels sont exposés à une communauté mondiale de « co-développeurs », qui peuvent s'appuyer dessus pour concevoir des idées et les développer.

Aujourd'hui, toutes les hésitations qu'il y a pu avoir concernant l'open source sont loin derrière nous. En moyenne, une application est désormais composée de 85 % composants open source. 

Groupe 2859

Arrêterons-nous là pour l'instant, car nous parlerons davantage de l'utilisation grandissante de l'open source un peu plus tard. 

De nos jours, il est rare de développer sans composants logiciels open source. Et ce qui nous préoccupe de plus en plus, c'est comment gérer le processus de développement des composants de sources externes. Les entreprises doivent reconnaître que les logiciels se développent en dehors de leurs murs et de leurs réseaux. Quels sont les personnes, processus et outils impliqués dans les logiciels que vous déployez ?

Qu'est-ce que l'Open Source Software ?

Arrêtons-nous un instant. Nous parlons BEAUCOUP d’open source, et nous allons continuer. Nous allons également découvrir comment utiliser des composants tiers plutôt que de tout créer vous-même : ce qui représente une grande partie de la gestion de la chaîne logistique logicielle. Mais ce n'est pas tout.

Il est également essentiel de comprendre les deux autres composantes de base de la chaîne logistique logicielle, et ce que nous entendons par open source :

open-source-boxes

    1. Code source propriétaire : il s’agit du texte original que les développeurs écrivent de A à Z pour communiquer les instructions qui composent le logiciel.

    2. Open source : un terme générique qui englobe le développement de code source collaboratif, créé pour une utilisation et une modification publiques. Il se distingue d'autres termes similaires :

      1. Source disponible : où le code est visible à des fins d'audit, mais pas disponible à des fins d'utilisation ou de modification.

      2. Logiciel libre : implique un processus et une philosophie de partage égalitaire.

    3. InnerSource : projets gérés comme de l'open source et pouvant impliquer des composants open source, mais pas partagés en dehors de l'entreprise ou du groupe. Les composants InnerSource peuvent être impliqués dans le fonctionnement de nombreux outils et services internes. Ils font partie d'un mouvement plus large dont l'objectif est d'apporter les principes open source qui fonctionnent aux équipes de développement internes.

Bienvenue dans la chaîne logistique logicielle

Depuis de nombreuses années maintenant, les outils et services gérés par du matériel spécialisé deviennent 100 % logiciels ou presque.

  • Serveurs : processeurs virtuels
  • Stockage : réseaux SAN (Storage Area Network)
  • Commutateurs : commutateurs logiciels
  • Réseaux : SDN (réseaux définis par logiciel)
  • Communications : radios définies par logiciel

Si votre secteur s'appuyait sur un type de puce ou de matériel en particulier, il est probablement passé à des composants génériques du commerce contrôlés par logiciel. En d'autres termes, la chaîne logistique logicielle va être impliquée dans de plus en plus d'outils et de services.

Si vous n'aviez pas entendu l'expression « chaîne logistique logicielle » avant 2020 (ou si vous n'en entendez parler que maintenant), vous n'êtes pas le seul. Chez Sonatype, nous menons des recherches, nous étudions et nous parlons de chaînes logistiques logicielles depuis près de 15 ans, ainsi que tout ce qui concerne leur gestion et leur protection. Pendant 7 de ces années, nous avons créé un rapport annuel : L'état de la chaîne logistique logicielle.

Malheureusement, ce n’est qu’avec l’attaque de SolarWinds en 2017 que le concept de chaînes logistiques logicielles a commencé à gagner du terrain dans les conversations.

intro-further-reading

 

Un sujet abordé aux plus hauts niveaux du gouvernement

À la suite de l’attaque mentionnée ci-dessus et de plusieurs autres violations très médiatisées de la sécurité de la chaîne logistique logicielle, en mai 2021, le Président Biden a signé le décret sur la cybersécurité, qui contient des sections approfondies sur la protection et la sécurisation de la chaîne logistique logicielle. 

En outre, en 2022, le Bureau de la gestion et du budget de la Maison-Blanche en a fait une affaire d'État dans sa note de service « Protéger les logiciels stratégiques grâce à des mesures de sécurité renforcées ».

... il est urgent de mettre en œuvre des mécanismes plus rigoureux et prévisibles pour s’assurer que les produits fonctionnent en toute sécurité, de la manière prévue. Le gouvernement fédéral doit identifier et mettre en œuvre des pratiques qui renforcent la sécurité de la chaîne logistique logicielle et protègent l'utilisation des logiciels dans les environnements opérationnels des administrations.

— MÉMO 2021 DU BUREAU DE LA GESTION ET DU BUDGET DE LA MAISON-BLANCHE

Mieux comprendre les chaînes logistiques : un indispensable

Même si le terme « chaîne logistique logicielle » est généralement désormais compris, sa définition varie grandement en fonction des interlocuteurs. Ce terme est presque toujours précédé du terme « attaque » ou « sécurité » Bien évidemment, la sécurisation de la chaîne logistique logicielle est primordiale, mais cela ne représente qu'une partie de la gestion de la chaîne logistique logicielle.

En nous concentrant uniquement sur la sécurité, nous passons à côté de trop d'opportunités : innovation, facilité de maintenance, intégrité et durabilité. La gestion de la chaîne logistique logicielle est complexe, mais il s'agit également de réduire les charges sur l'innovation, la dette technique et d'augmenter la satisfaction, la productivité et les revenus des employés. Il est essentiel que tout le monde le comprenne : développeurs et équipes de sécurité, tout autant que les responsables DevOps, les RSSI, les professionnels informatiques, les avocats, et d'autres.

Nouvelle situation : nouveaux termes et nouveaux outils pour en parler. Comment s'inscrit-elle dans le paysage du développement logiciel moderne ? Quelle est la proportion de code empruntée à d'autres sources par rapport à celle rédigée de A à Z ? De nombreux programmes empruntent carrément les mêmes composants, ou des composants très similaires à d'autres : les différences sont parfois infimes. Ceci est révélateur des tendances actuelles dans le secteur : prendre des composants à droite à gauche, et les configurer pour distribuer ou vendre le résultat final dans le cadre d'un service ou d'un programme.

Bonne nouvelle : il s'agit pour bon nombre d'entre eux de concepts éprouvés qui améliorent les logiciels pour l'ensemble des utilisateurs. Mais pour expliquer les problèmes actuels, vous devez comprendre ces concepts.

La gestion de la chaîne logistique logicielle est complexe, mais il s'agit également de réduire les charges sur l'innovation, la dette technique et d'augmenter la satisfaction, la productivité et les revenus des employés.

Un problème bien défini est un problème à moitié résolu
(John Dewey, 1938)

C'est pour toutes ces raisons que nous avons entrepris de créer ce guide d’introduction à la gouvernance de la chaîne logistique. Nous allons retourner aux sources, expliquer pourquoi la situation devient de plus en plus complexe et ce que cela implique pour le monde en général. Nous allons également aborder quelques outils et politiques que vous devriez utiliser pour protéger votre entreprise/environnement de développement/projet logiciel, etc.

Avant de poursuivre, précisons qu’il s’agit d’un document évolutif. Comme nous l'avons déjà indiqué, les chaînes logistiques logicielles sont complexes. Nous n'avons fait qu'effleurer la surface des chaînes logistiques logicielles. Et même si cette présentation est plutôt complète, elle n'a pas couvert tous les aspects de ce sujet. Nous voulons faire de ce document un guide réellement complet de la gestion de la chaîne logistique logicielle, et cela va prendre du temps. 

Ce n'est pas une tâche que nous allons pouvoir accomplir seuls, votre aide serait la bienvenue. Si vous remarquez qu'il manque certains éléments, ou si vous souhaitez contribuer à cette entreprise, prenez contact avec nous.

Enveloppe Sonatype

Prêt à essayer les produits Nexus ?