The Doppler Quarterly (FRANÇAIS) Printemps 2018 | Page 57
1. Un pipeline CI/CD normalisé pour l’automatisation de la génération et du
déploiement
2. Des déploiements stables et reproductibles
3. Des versions moins volumineuses et plus fréquentes
Amorçage à partir d'une image de base
Notre premier souci a été de réduire le nombre de modifications du code au cours
de la conteneurisation. La complexité a ainsi pu être réduite, tout en continuant à
nous offrir la possib ilité d'effectuer des tests de régression avant et après la transi-
tion de la plateforme de VM vers les conteneurs. Une fois l’application mise en exé-
cution dans les conteneurs en mode production, nous avons appliqué notre inten-
tion d’exploiter les avantages des conteneurs en refactorisation et en
rearchitecturant l’application.
Puisqu’il s’agissait d’un scénario de type « lift and shift », le système d’exploitation
et les bibliothèques ont été définis via l’application existante. Notre objectif était
donc de déterminer la meilleure manière d’inclure ces dépendances dans un con-
teneur. Comme l’application exigeait à la fois l’usage de Linux et du kit de dévelop-
pement Java, nous avons extrait une image Open Source à partir du hub Docker
basée sur Linux Alpine et OpenJDK. Selon les cas, il existe d'autres options, telles
que les images certifiées fournies par le Docker Store en cas de nécessité, ou encore
la création d’une image personnalisée à partir de zéro pour maintenir les politiques
et les outils au sein de l’entreprise. Cette dernière option est celle qui offre le plus
de flexibilité, mais elle requiert un effort supplémentaire pour la prise en charge et
la maintenance.
Nous avons ensuite créé un fichier Dockerfile hérité à partir d’une image de base
Open Source, copié le composant JAR de l'application dans le système de fichiers du
conteneur, puis lancé l’application en exécutant le fichier via une ligne de
commande.
PRINTEMPS 2018 | THE DOPPLER | 55