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