Paketo – Cloud Native Buildpack, conteneuriser facilement.

Paketo & Cloudnative Buildpacks, qu’est ce donc ?

Les cloudnative buildpack (dont Paketo fait partie et propose une implémentation) sont une collection de script qui vont exécuter certaines tâches afin de construire une image de conteneur à partir de vos sources applicatives. Chaque script invoqué va « participer » à la construction de l’image de conteneur finale. Ils sont organisés en plusieurs types :

  • Buildpacks
  • Builders
  • Stack
  • Cycle de vie

Buildpacks

Les buildpacks sont les scripts qui vont intervenir selon la matière applicative. Exemple, vous codez une application JAVA, il existe des buildpacks pour maven, pour la gestion de JAR, WAR, pour la fourniture de JDK ou JRE.
Si vous êtes sur de la matière nodeJS, vous aurez un buildpack pour la fourniture d’un serveur node, un pour la gestion de NPM etc.
Les buildpacks peuvent aussi être l’assemblage de plusieurs buildpacks. Exemple, le buildpack JAVA va regrouper l’ensemble des buildpacks qui peuvent intervenir pour cette matière là (maven, jre, jar…).

Builders

Les builders sont le resultat de l’agrégation de plusieurs buildpacks. Ce sont les points d’entrée pour l’outillage. Paketo fourni plusieurs builders qui regroupent chacun les buildpacks de plusieurs technologies (.net, JAVA, Node, Python…).

Stack

Les stacks sont les images docker qui seront utilisées par les builders afin d’executer les scripts des buildpacks. Aucun outil n’est nécessaire sur votre machine, ces outils là sont fournis par les stack qui accompagnent les builders. Les stacks sont composées de deux images dockers : une image pour la construction de l’image docker de votre application et une image pour l’exécution de votre conteneur qui sera généralement plus légère et contiendra moins d’éléments afin de limiter le nombre de binaires.

Paketo – Buildpack, builders, stacks

Cycle de vie

Lorsqu’un buildpack va être exécuté il va suivre un cycle de vie qui contient plusieurs étapes, mais dont les étapes principales sont la detection et la construction.

Phase de detection

La phase de détection est le moment ou chaque buildpack va vérifier s’il peut contribuer ou non à l’image de conteneur finale. Si vous êtes sur une matière JAVA et que vous utilisez Gradle, le buildpack MVN n’entrera pas en action. Au contraire, si un pom.xml est détecté, le buildpack maven va se positionner comme contributeur pour l’image de conteneur et sera invoqué dans la phase de construction.

Phase de construction

C’est la phase ou les buildpack entrent vraiment en action. Chaque action faite par le buildpack résultera en une couche de l’image de conteneur finale.

Paketo buildpacks – Phases du cycle de vie
Print Friendly, PDF & Email

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

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