Open source
Qu’est-ce que l’open source ?
Un logiciel open source est un logiciel créé et distribué avec l’intention d’autoriser de multiples équipes et développeurs à le modifier et à y apporter de nouvelles fonctionnalités ou des correctifs pour son développement continu et ses mises à jour.
En quoi l’open source est-il différent des autres modèles ?
Lorsque les développeurs créent, publient et mettent à jour un logiciel open source, leur intention est que la communauté des développeurs dans son ensemble soit en mesure de contribuer à son progrès continu. Le code source du logiciel est en libre accès sous sa forme non compilée, ce qui permet à ceux qui le souhaitent de contribuer en apportant leur expertise pour le faire évoluer ou le modifier.
Quelles sont les attentes à l’égard de l’open source ?
Une autre caractéristique de l’open source est que les utilisateurs peuvent créer des versions qui fonctionneront sur différents systèmes d’exploitation ou environnements en ligne. La seule attente à l’égard des logiciels open source est que les personnes qui y contribuent mettent également leurs propres mises à jour à la disposition de la communauté.
Historique de l’open source
Les logiciels open source sont en fait antérieurs de plusieurs décennies aux logiciels commercialisés, puisque leur origine remonte au système de compilateur A-2 en 1953. Jusqu’aux années 1970, la philosophie dominante considérait que le produit de base était le matériel informatique proprement dit, et non les programmes créés et chargés sur ce matériel. Avec la sortie des logiciels disponibles dans le commerce (souvent achetés par correspondance sous la forme de lignes de texte imprimées), l’open source est resté un état d’esprit dominant pour les ordinateurs commerciaux, universitaires et amateurs.
Distribué pour la première fois par AT&T au début des années 1970, le système d’exploitation UNIX en est un exemple notoire. Des versions commerciales, propriétaires et à source fermée d’UNIX seront publiées par la suite, mais les logiciels pour UNIX seront créés et distribués dans le cadre du projet GNU, créé en 1983. En 1991, un nouveau noyau libre et open source appelé LINUX, du nom de son créateur Linus Torvalds, est rapidement devenu (et demeure encore aujourd’hui) le standard quasi universel.
L’Open Software Foundation a été créée en 1988 en tant que groupe à but non lucratif visant à définir et entretenir un standard pour le développement d’UNIX. Elle a depuis fusionné avec X/Open pour former The Open Group. Avec près de 1 000 membres représentant un échantillon représentatif de fabricants de matériel et de développeurs de logiciels, l’Open Group propose des certifications professionnelles et gère de nombreuses normes telles que Single UNIX Specification (SUS) et Open Agile Architecture Standard.
Quels sont les avantages du modèle open source ?
Au niveau de l’entreprise, le développement de logiciels open source présente de nombreux avantages dont bénéficient les professionnels de l’informatique, les utilisateurs et les développeurs eux-mêmes. La rapidité et l’agilité de la mise en œuvre des demandes de fonctionnalités, l’évolutivité verticale et les économies de coûts sont autant d’avantages considérables.
Le modèle de développement de l’open source ressemble beaucoup à celui du cloud. Les correctifs et les fonctionnalités peuvent être répartis entre plusieurs développeurs ou équipes, puis validés et compilés par d’autres. La quantité de ressources affectées est variable, et des équipes supplémentaires peuvent être ajoutées, le cas échéant. De nombreux exemples de logiciels open source sont initialement gérés par un petit groupe, qui évolue jusqu’à ce qu’une communauté de plus en plus large contribue au développement continu du projet.
Cette démarche permet également d’attirer des talents de haut niveau, susceptibles de créer des solutions nouvelles et différentes aux problèmes rencontrés dans le développement. Les groupes qui travaillent à la maintenance des logiciels open source n’ont pas à attendre qu’un fournisseur publie des correctifs ou de nouvelles fonctionnalités : ils peuvent simplement les créer eux-mêmes.
Les logiciels open source offrent également des économies et des avantages considérables. La majorité des logiciels sont distribués gratuitement. L’investissement en temps et en argent nécessaire au développement continu de l’open source est partagé par l’ensemble de la communauté. Le risque d’enfermement propriétaire n’existe plus, puisque les utilisateurs ne sont pas liés par un contrat avec un tiers.
L’avantage le plus important réside sans doute dans le fait qu’une entreprise peut véritablement évoluer à la vitesse de l’innovation. Avec des coûts mieux contrôlés, un développement et une mise en œuvre plus rapides, ainsi que la possibilité d’externaliser efficacement la maintenance continue, les avantages des logiciels open source sont évidents.
Logiciel libre, logiciel à source fermée et logiciel open source
Pratiquement tous les logiciels disponibles aujourd’hui, qu’ils soient commercialisés ou dans le domaine public, répondent à l’une des trois définitions suivantes. Le terme logiciel à « source fermée » est probablement la définition la plus facile à interpréter, tandis que les termes « gratuit » et « open source » sont parfois utilisés de manière interchangeable malgré certaines différences fondamentales. En raison des nombreux recoupements entre les deux, le terme FOSS est souvent utilisé pour décrire les logiciels qui sont à la fois libres et open source.
Logiciels à source fermée ou propriétaires
Les logiciels à source fermée sont généralement chiffrés et compilés dans un format protégé. Ils sont fournis avec la condition expresse que le code source ne peut pas être décompilé, modifié, recompilé ou redistribué sans autorisation. Les systèmes d’exploitation commerciaux tels que Microsoft Windows ou Apple macOS constituent des exemples types de logiciels à source fermée. Ceux-ci sont considérés comme la propriété intellectuelle du développeur, et les deux sociétés ont fait des efforts considérables pour protéger leur travail.
Logiciels libres
La distribution des logiciels libres est assortie des « quatre libertés essentielles » définies par l’organisation à but non lucratif Free Software Foundation. Celles-ci vous autorisent à : exécuter le logiciel comme vous le souhaitez et dans n’importe quel but ; à étudier ou modifier le code source ; à redistribuer le logiciel original ; et à redistribuer votre version modifiée. Le terme « free » fait ici référence à ces quatre libertés et non à la gratuité : il existe de nombreux exemples de logiciels libres ayant été commercialisés.
Logiciels open source
Les logiciels open source répondent aux définitions établies par l’Open Source Initiative, créée à la fin des années 1990 pour remédier à ce que la communauté des développeurs considérait comme les limites des logiciels libres. Comme indiqué ci-dessus, l’open source fait autant référence à une philosophie de développement qu’à un type de licence accordé aux autres utilisateurs. L’Open Source Initiative indique que le logiciel peut être redistribué gratuitement, que le code source est accessible au public et peut être modifié et distribué dans un format différent. De plus, elle exclut toute discrimination à l’encontre de personnes ou de groupes et ne restreint en aucune façon l’utilisation d’autres logiciels.
Qu’est-ce que le modèle de développement open source ?
Le modèle de développement open source est défini par les processus et les valeurs qui le différencient du modèle traditionnel, alors même qu’il est de plus en plus largement adopté par les acteurs traditionnels du développement. Le développement de l’open source met l’accent sur la collaboration, l’évaluation par des pairs et la philosophie du « release early, release often », qui permet des mises à jour plus fréquentes.
Le processus de demande de fonctionnalités avec le développement open source est constant. Lorsque des fonctionnalités, des corrections ou des mises à jour sont suggérées, le processus de demande de fonctionnalités du modèle open source stipule que la suggestion est discutée et validée collégialement avant d’être conçue et mise en œuvre. Lorsqu’une nouvelle version est compilée, elle est partagée au sein de la communauté en tant que version alpha pour faire l’objet de tests, de commentaires et de contributions supplémentaires.
L’un des principes fondamentaux du modèle open source est que plusieurs personnes ou petits groupes partagent la responsabilité de la création et de la maintenance du code source. Ces mises à jour sont partagées entre plusieurs groupes pour tester et valider le code avec une transparence totale au sein des équipes. Une fois qu’un projet est prêt à être mis en œuvre, le code est transmis à la maintenance ou au responsable du logiciel, qui est chargé de s’assurer que tout le code nouvellement soumis répond aux normes du projet.
Comment les solutions logicielles open source sont-elles appliquées ?
Une migration quasi généralisée vers l’adoption de logiciels open source a eu lieu, 95 % des entreprises informatiques utilisant des logiciels open source pour la modernisation de l’infrastructure, le développement d’applications et les processus DevOps.
À titre d’exemple, le système d’exploitation LINUX est une illustration parfaite du modèle open source. Cela vaut non seulement l’environnement lui-même, mais aussi pour les centaines d’applications open source conçues pour fonctionner en son sein. Il ne s’agit naturellement pas du seul exemple de logiciel d’infrastructure : Xen, KVM et OpenStack sont également des logiciels open source.
En ce qui concerne le Big Data, la plateforme Hadoop d’Apache et sa plateforme d’analyse de données Spark, de même que la base de données Atlas de MongoDB, sont autant d’exemples de logiciels développés selon le modèle open source. Les applications de machine learning comprennent Apache MXNet, PyTorch et TensorFlow.
Parmi les autres exemples de logiciels open source dont l’utilisation est quasi omniprésente aujourd’hui, citons les outils et frameworks de développement web tels que WordPress et PHP, jQuery, Angular et Ruby on Rails. Pour les applications mobiles, le système d’exploitation Android de Google est largement adopté, tandis qu’Apache Cordova est un framework open source populaire pour le développement d’applications mobiles multiplateformes.
L’open source et HPE
La collaboration fait partie de l’ADN de HPE. Nous sommes convaincus que les technologies et communautés open source peuvent contribuer au déploiement de solutions innovantes et sécurisées à grande échelle. HPE propose de nombreuses solutions logicielles open source pour un large spectre d’applications d’entreprise. HPE est fier de soutenir, d’utiliser et d’alimenter plusieurs projets open source.
Chapel est un langage de programmation parallèle destiné à l’informatique évolutive, portable depuis les ordinateurs de bureau et les ordinateurs portables jusqu’aux plus hauts niveaux d’applications de calcul à haute puissance.
SmartSim permet aux applications de calcul haute performance traditionnelles d’exploiter le machine learning (ML) et l’intelligence artificielle (AI), en dotant ainsi les chercheurs de fonctionnalités supplémentaires pour les simulations, telles que l’analytique en ligne, le pilotage de modèles et la visualisation.
KubeDirector est un contrôleur personnalisé Kubernetes open source qui facilite le déploiement d’applications avec état dans des clusters Kubernetes standard. Il définit les caractéristiques des applications par des métadonnées et des artefacts de configuration, ce qui facilite le déploiement et la mise à jour des applications.
SPIFFE est un plan de contrôle d’identité universel qui fait partie de la Cloud Native Computing Foundation. Il s’agit essentiellement d’un ensemble de standards permettant d’authentifier des services dans des environnements dynamiques et hétérogènes grâce à l’utilisation d’une identité cryptographique indépendante de la plateforme. SPIRE est un système open source qui met en œuvre le plan de contrôle SPIFFE dans une grande variété d’environnements.