Communauté Fonctionnalités

Si vous recherchez des résultats différents, ne faites pas toujours la même chose, développez des logiciels hétérodoxes!

septembre 18, 2019

Si vous recherchez des résultats différents, ne faites pas toujours la même chose, développez des logiciels hétérodoxes!

This post is also available in : Anglais Espagnol

Logiciel Rolling Release, le navire

Le « Rolling Release » est un modèle qui s’est répandu ces dernières années grâce à l’essor de l’Internet et la maturité technologique des utilisateurs. Dans Pandora FMS, nous avons annoncé le lancement de la version 7.0, en mars 2017, à partir de laquelle nous avons lancé la version continue du logiciel. Mais qu’est-ce que cela signifie? Quels sont les avantages? Jetons un coup d’oeil !

logiciel rolling release 1

Introduction à la publication continue des logiciels

Comme nous l’avons mentionné, depuis la version 7.0 de Pandora FMS, nous avons adopté le modèle Rolling Release, de sorte que la manière de numéroter les différentes versions implique un changement remarquable. Ainsi, précédemment, nous utilisions la méthode traditionnelle de gestion des versions, puis à partir de la version 6, nous l’accompagnions de différents Service Packages («Service Pack» ou « SP » pour son abréviation en anglais).

Dans un bref résumé, nous vous montrons comment le nom de la version a évolué au fil des années (sur Wikipedia vous avez un excellent article avec plus de détails):

  • Version 1.0 : octobre 2004.
  • Version 2.0 : septembre 2008.
  • Version 3.0 : décembre 2009.
  • Version 4.0 : août 2011.
  • Version 5.0 : octobre 2013
  • Version 6.0 : novembre 2015
  • Version 7.0 : mars 2017

Logiciel Rolling Release

Ce n’est pas une mince affaire que d’étudier ce modèle de développement logiciel et que nous puissions écrire des milliers de mots qui soient sûrs que les deux parties l’apprécieraient beaucoup, nous n’avons pas peur du travail acharné, non. Mais suivons ce qu’un grand inventeur de l’antiquité a dit:

« La simplicité est la sophistication ultime »
Leonardo Da Vinci

logiciel rolling release 2

Ici, nous suivrons les conseils du légendaire italien et nous expliquerons avec un exemple pratique le concept de Rolling Release .

Nous sommes des designers nautiques

Imaginez que nous sommes un ingénieur de la marine et qu’un chantier naval nous a embauché pour construire un bateau. Il spécifie le nombre de passagers, le manchon,, sa longueur et son but (pêche, compétition, etc.). Ce petit projet ne posera aucun problème pour notre connaissance et nous n’aurons pas besoin de plus d’art pour le faire. De même, un petit logiciel qui effectue un petit travail ne représentera aucun inconvénient pour se développer.

Un bateau pour traverser la Méditerranée et visiter les îles grecques

Eh bien, ce chantier nous a chargé de concevoir une croisière pouvant accueillir des milliers de personnes, avec des aménagements spécifiques et conformément aux lois de l’Union européenne. Nous allons donc consacrer plusieurs années aux chefs de projet , car pour nous seuls, c’est très difficile à faire.

logiciel rolling release 3

Imaginons, en outre, que nous vivions au début des années 1900: nous devons embaucher des centaines de concepteurs et des milliers de constructeurs, des ouvriers qualifiés qui peuvent interpréter les plans avec une connaissance minimale de l’ingénierie, mais avec une grande habileté dans le travail manuel. Voyons pas à pas comment ce travail se déroule.

Exigences

Ici, il est essentiel que nous fournissions par écrit les caractéristiques du navire à concevoir, les pays qu’il visitera, les commodités qu’il transportera et surtout les attentes du client final en ce qui concerne l’achat du bateau.

Conception

Nous allons nous réunir avec nos collègues ingénieurs navals et affecter aux équipes des objectifs différents : ceux qui concevront l’arc, un autre groupe les cabines, la salle des machines, les cuisines et salles à manger etc. Tout le monde sait ce qu’il doit faire, du moins en théorie.

Mise en oeuvre

Pendant la phase de conception, les différentes parties du bateau seront fabriquées tandis que le chantier naval aura reçu nos plans et choisi la cale sèche pour commencer la construction de la coque et, parallèlement, entreront des composants. Ce processus de construction moderne est inspiré de la chaîne de processus inventée par Henry Ford et du concept d’inventaire équitable : seules les pièces, les parties et les matériaux seront présents lorsque le navire sera monté.

Vérification

Sur le chantier naval, ils ne pourront pas construire le navire sans plus: il faudra mesurer et peser les pièces qui composent le navire pour confirmer qu’elles ont été conçues conformément aux copies des plans reçus. Une fois confirmé que tout va bien, il sera hissé par la grue.. Au cours de cette phase, nous noterons les erreurs de conception : si le ou les moteurs reçus sont conformes aux plans et procédons au montage. À ce moment, nous nous rendrons compte qu’ils ne rentrent pas dans la salle des machines ou qu’une pièce dépasse. qui empêche son introduction. Non seulement avec les erreurs de conception que nous aurons à traiter, il peut arriver qu’un groupe de concepteurs ait effectué le même travail qu’un autre groupe et non le leur. Ainsi, une confusion dans les tâches assignées aura fait perdre du temps de travail, en répétant une même tâche, et, en outre, un travail à effectuer. La vérification traite également de cela, de ce qui reste à recevoir pour commencer le montage.

À ce moment, ils commenceront à perdre du temps et de l’argent pour régler les problèmes et ne pas perdre tout l’effort et le travail effectué, s’il existe des solutions.

Maintenance

Une fois tous les obstacles surmontés, nous verrons notre tout nouveau navire prêt à flotter dans les eaux du port pour ses premiers essais. La phase de maintenance commence dès son humidification. Même si elle est correctement peinte et que l’électricité circule dans ses parties métalliques, la lutte contre la corrosion se poursuivra jusqu’à la fin de ses jours d’utilisation.

Modèle en cascade

Ce que nous venons d’expliquer, ce sont les activités du processus de développement logiciel mais réalisées selon le modèle en cascade, ce qui présente des avantages et des inconvénients:

  • Il y a un contrôle central du projet, les efforts sont bien dirigés.
  • Il est difficile de dépasser le coût initial car, comme tout est planifié, seules les directives et le calendrier doivent être suivis à la lettre.
  • Le problème, c’est que le processus est séquentiel, jusqu’à ce qu’une phase soit passée et que la suivante ne le soit pas.
  • Si le chantier naval a oublié de nous fournir un cahier des charges, son ajout entraîne un coût plus élevé.
  • Lorsque les matériaux et les pièces arrivent et que l’assemblage commence, nous constatons les défauts de conception.
  • Le chantier naval ne participe pas au processus de conception. Par conséquent, ses observations ne nous sont pas données en échange de corrections ou amélioration de la conception.

Un navire fabriqué selon le logiciel Rolling Release

Bienvenue au XXIe siècle

En ce début de siècle, le travail de conception et de construction de notre «grand luxe » avec de nouveaux outils, précisément des logiciels, nous permet de progresser. Bien que les activités de développement de logiciels soient répétées (car la construction d’un bateau poursuivra toujours le même objectif), la manière de faire la différence ou le modèle que nous choisirons fera la différence. Plus précisément, nous utiliserons de nouveaux outils de conception qui élargiront nos horizons.

Exigences

Le début est presque identique à l’exemple que nous avons proposé, mais avec une grande différence : nous pouvons revoir les exigences pour les modifier ou même ajouter d’autres exigences. Continuez à lire pour découvrir comment cela est possible.

Conception

Les différences de modèle sont notées ici : le Rolling Release implique l’intégration continue du logiciel avec ou sans l’Implémentation Logicielle Continue.

En récapitulant et simplifiant : Intégration, Libération et Implémentation (logiciel continu).

Revenons à notre navire : lors de la phase de conception, nos collègues ingénieurs de la marine travailleront sur les conceptions qui leur ont été attribuées avec le logiciel de CAO (et ils ne pourront pas en choisir un autre car leurs informations d’identification ne le permettront pas) et une fois qu’ils l’auront considéré, ceux qui ont atteint un objectif défini le « téléchargeront » vers le reste du projet situé dans un référentiel qui n’est pas seulement un simple lieu de stockage. Un des premiers avantages est que vous pouvez déterminer automatiquement si la proposition d’un groupe affecte un autre groupe de travail, nous alertant pour que nous puissions décider ce qui est assimilé de ce qui est jeté (cela s’appelle collisions).

Mais le plus important, c’est que nous aurons un logiciel qui prendra tous les plans (en réalité des dessins réalisés en troisième dimension de manière virtuelle) et vérifiera d’abord chacun des composants individuels attribués à chaque équipe, puis construira le bateau complet virtuellement, ce qui produira un rapport de résultat indiquant quelles erreurs possibles ont été trouvées et si les exigences du projet ont été respectées.

S’il y a un inconvénient, il sera possible de contacter les responsables de l’événement pour qu’ils prennent les mesures nécessaires et n’aillent pas plus loin. Un autre avantage est que nous pouvons attribuer des informations d’identification aux équipes du chantier naval afin qu’elles puissent examiner et faire des observations pour que le projet bénéficie d’une intégration complète.

Mise en oeuvre

Les composants déjà conçus peuvent être fabriqués et acheminés vers le port afin de gagner du temps. De là, nous pouvons relancer le projet puisque ces pièces sont arrivées et confirmer le bon déroulement chronologique de la création.

Vérification

De la même manière, vous pouvez vérifier les composants et les télécharger dans le référentiel, de sorte que soit confirmé ce qu’ils viennent de terminer, chaque fois que les concepteurs «téléchargent» leurs étapes et effectuent l’assemblage virtuel. Ici, vous pouvez remarquer même s’il y a « trop de pièces » et donc revenir à la conception (ou le chef de projet décidera s’il n’utilise définitivement pas cette pièce ). Cela sera considéré comme une perte, même s’ils parviennent à vendre le matériau à un bon prix, le temps perdu (conception et fabrication) ne peut pas être récupéré, mais la bonne qualité du produit sera sauvegardée.

Maintenance

Une fois qu’il est à l’eau, la phase de maintenance commence. Nous nous associons tous à des réparations mineures et majeures, mais il peut aussi y avoir d’autres événements qui motivent la conception à nouveau : maintenant, le navire est destiné à être transatlantique pour visiter les îles des Caraïbes, où des vents puissants entraînent les vagues. Nous devons donc ajouter des stabilisateurs… et de nouveau au « tableau » de conception pour répéter le cycle afin de renvoyer le navire au chantier !

Logiciel Rolling Release

Maintenant, nous pouvons parler correctement de l’élaboration d’un programme. Parlant correctement des définitions:

  • L’Intégration Continue (« Continuous integration ») consiste à intégrer plusieurs fois par jour le travail de développeurs individuels dans un référentiel maître afin de détecter les erreurs d’intégration et d’accélérer le développement collaboratif.
  • La Distribution Continue (« Continuous delivery ») concerne la réduction des frictions dans le processus d’implémentation ou de libération, l’automatisation des étapes nécessaires à l’implémentation d’une compilation pour que le code puisse être libéré en toute sécurité. à n’importe quel moment.
  • L’Implémentation Continue (« Déploiement continu ») va encore plus loin en déployant automatiquement chaque changement de code.

Intégration continue

Comme nous l’expliquons dans l’exemple de la conception du bateau, le Rolling Release consiste, dans les grandes lignes, à ce que les programmeurs, à la fin de la journée, (et y compris plusieurs fois à jour) incluent à nouveau, tout leur travail au référentiel. Mais comment fonctionne ceci ? Pour expliquer le contrôle de branches de logiciel, nous avons besoin de revoir un peu l’histoire pour savoir d’où nous venons et vers où nous allons…

Linus Torvalds, rsync et git : petit résumé

En 1998, il était déjà difficile de coordonner le développement du kernel de Linux. Il faudra attendre l’an 2000 pour qu’un logiciel capable de contrôler les versions de manière efficace, voit le jour. Cette année-là arrive Apache Subversion (en abrégé SVN). Mais Linus n’étant pas encore satisfait, ils ont décidé en 2002 de confier à une entreprise le projet de logiciel permettant de contrôler les versions de tout développement de logiciel, ce qui n’a pas abouti comme prévu. Bien que le programme présente d’importantes nouveautés, utiles pour les autres et toujours en vigueur, c’est aussi le secteur semi-privé qui a créé des frictions avec la communauté du logiciel libre.

À quelque chose malheur est bon, Torvalds a confié à Andrew Tridgell (aussi père du rsync et de Samba Server) la réalisation d’une solution et il s’avère que rsync en serait la base. En 2005, Git est né (et voit également le jour, le Mercurial, autre logiciel de contrôle de version) et, à ce jour, ces trois alternatives capturent la majorité du marché de la programmation.

Une des nouveautés imposées par Git est que chaque programmeur possède une copie du référentiel principal. Ainsi, si chaque équipe possède une copie du référentiel principal, si elle disparaît, elle peut toujours être récupérée via la combinaison ordonnée et logique de chacune des copies. Le sujet de la sauvegarde des données a donc été pratiquement résolu.

Il a également imposé le développement par branches : un programmeur disposant d’une copie complète du projet peut ouvrir une branche en parallèle et « transférer » leurs modifications afin que l’équipe décide de l’ajouter à la branche principale ou d’être écartée une fois pour toutes. Ce que nous venons d’expliquer est plus que suffisant ; mais qu’est-ce que cela a à voir avec le Rolling Release ?

Branches de développement courtes

Étant donné que le logiciel Rolling Release dépend de l’Intégration Continue , cette opération doit être effectuée fréquemment et avec des branches très courtes, qui doivent être intégrées rapidement à la branche principale. L’objectif de ces développements brefs est d’utiliser une toute autre nouvelle procédure .

Compilations logicielles fréquentes

Au moyen d’un logiciel qui examine en permanence le code source principal, d’abord en appliquant le smock testing aux composants individuels, puis au projet complet, pour ensuite compiler et même appliquer le trempage peut être déterminé très rapidement et directement si les modifications récentes fonctionnent et respectent les paramètres du projet. Comme nous nous en souvenons dans notre exemple de construction d’un navire à passagers, les compilations automatisées chaque fois qu’elles mettent à jour le code source de manière fréquente, nous permettent d’interagir et de passer en revue la chaîne de processus du développement logiciel.

Compilation conditionnelle de logiciels

Ce modèle automatisé nous apporte un avantage supplémentaire : il est possible d’ajouter de nouvelles options pour les utilisateurs mais elles sont désactivées par défaut. Pour quelles raisons ? Pour offrir aux consommateurs des alternatives.

Distribution continue (Rolling Release)

Le Rolling Release constitue la prochaine étape de l’Intégration Continue. Cela consiste à pouvoir proposer automatiquement de nouvelles mises à jour, des modifications ou des améliorations apportées au logiciel via la chaîne de processus.Dans notre référentiel d’applications, nous aurons ensuite publié et fait une liste afin de télécharger tous les fichiers nécessaires à la nouvelle version. Cela dépendra désormais du logiciel installé du côté du client pour se connecter au référentiel, trouver les différences et les montrer à l’utilisateur soit par une notification sur le bureau de notre application, soit par un message contextuel discret. Toutefois, l’utilisateur n’a pas nécessairement à recevoir un message indiquant qu’une mise à jour est disponible. Passons à l’étape suivante, de sophistication avec simplicité.

logiciel rolling release 4

Mise en œuvre continue

Imaginez que vous avez des milliers de clients et tous, ou du moins la grande majorité, ont des attentes sur les nouvelles versions qui facilitent leur travail quotidien. Toute amélioration est donc toujours la bienvenue.

Un jour comme les autres, la publication est annoncée dans notre référentiel et PAF ! des milliers de périphériques connectés en même temps… même si nous avons un Réseau de Distribution de Contenus (« Content Delivery Network » ou CDN ), cela nous causera quelques problèmes. Tout d’abord, dans notre référentiel, vous disposez d’un équilibreur de charge et de serveurs de référentiels mis en miroir. À un moment donné, ils seront surchargés ou même réduits. Et si nous avons un service CDN, cela nous fera mal quand nous devrons ouvrir les coffres de notre entreprise, car lorsque le trafic atteint un pic ou une augmentation soudaine, c’est facturé en plus.
Ici, le Rolling Release intervient avec l’Implémentation Continue : en fait, les modifications de chaque version sont petites mais constantes.

Mais l’Implémentation Continue permet également de télécharger et d’installer ces mises à jour en arrière-plan, mais désactivées par défaut en attendant l’annonce publique correspondante. Un autre avantage est que cela nous permet également de comptabiliser les entreprises qui ont décidé de ne pas le mettre à jour afin de pouvoir effectuer une une première approche ou des enquêtes.

Imaginez maintenant le visage de nos utilisateurs lorsque la notification d’une nouvelle version disponible apparaît avec la question « Voulez-vous installer la nouvelle mise à jour ? » Ils acceptent et en une ou deux minutes, le processus est activé. Vous vous souvenez de la compilation conditionnelle ? La surprise et la satisfaction d’une tâche de mise à jour logicielle bien exécutée de manière transparente pour nos clients valent bien le dur travail de modification du modèle de développement : le Rolling Release est arrivé jusqu’à Pandora FMS pour y rester et c’est extrêmement utile.

logiciel rolling release 5

Conclusion

Tout cela est possible grâce à la maturité technologique que nous avons acquise, nous qui avons commencé à programmer et à sauvegarder sur les disquettes dans les années 80, sommes soulagés. Nous attendons avec impatience cette formidable opportunité ouverte à tous, une nouvelle feuille de route.

Et rappelez-vous, « Pandora FMS » signifie « Flexibilité » et le « Rolling Release » le prouve bel et bien. Notre engagement à vous fournir le plus puissant outil de surveillance de logiciel libre du marché. Happy Learning !


Written by:



Leave a comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.