Package

Suivant le type de logiciel proposé par la source upstream, il peut être nécessaire de faire quelques manipulations afin de le préparer à la plateforme cible.

En fonction du format initial et de la forme d’encombrement finale désirée, la création d’un artéfact peut-être nécessaire. Par exemple, dans le cas d’une application nodejs, on installera les dépendances nécessaires au fonctionnement du logiciel, que l’on poussera dans un bucket.

Le schéma ci-dessous présente la logique mise en oeuvre pour construire le paquet en fonction des contraintes présentées précédemment.

alternate text

On prépare le paquet et on le conserve précieusement, versionné, dans un bucket car il sera utilisé durant la création de l’image.

Le process peut paraître compliqué… oui et non. Tout ce travail préparatoire va permettre de:

  • standardiser le processus de construction en fonction des différents formats initiaux.

  • uniformiser les cas particuliers dans l’usine de build.

  • préparer des logiciels pour du conteneur (docker, lxc) ou du baremetal.

  • diminuer le nombre de téléchargement (latence réseau, timeout, rate limiting, etc).

  • ne plus être tributaire des plateformes publiques, etc

L’essentiel étant de faire le plus gros du travail avant le déploiement en production ce qui diminuera d’autant la complexité du code d’infrastructure des couches suivantes (le déploiement et les tâches opérationnelles).

S’il doit y avoir une rupture dans la chaîne, elle doit se produire durant la phase de conception du livrable, à l’étape du build, pour ne pas impacter les déploiements en production.