Débuter un projet en 2017 : Intégration continue

22 Jun 2017

Supervision

Introduction

Après un première article sur la supervision et l’alerting on continue notre chemin pour poser des bases solides à la construction d’un projet en 2017.

Aujourd’hui la gestion de sources et l’intégration continue !

Etape 1 : Intégration continue

Tout, absolument tout doit être dans votre gestionnaire de versions.

La règle ci-dessus est extrêmement importante, et nous avons fait cette erreur avec notre instance Jenkins qui s’est progressivement transformée en dépôt de code source alternatif pour les scripts de tests, d’exploitation et de déploiement.

Quand on en vient à devoir sauvegarder la configuration de Jenkins car il y a bien trop de code uniquement présent dans celui-ci c’est le signe d’un vrai problème.

Suite à ce constat nous avons décidé de remplacer presque intégralement Jenkins par Gitlab CI. Le point positif est la très bonne intégration entre la partie gestion de sources et la partie intégration continue (encore heureux ! 😁), plus besoin de gérer des hooks entre Gitlab et Jenkins. Autre point primordial, il n’y a aucune IHM (ça se dit ça encore en 2017 ?) dans Gitlab CI, tout doit être dans le code source, défini sous forme d’un pipeline (et c’est pas plus mal 🙃).

Pour le déploiement des runners (les machines exécutant les jobs d’intégration continue) on va utiliser Docker. Cela permet de réduire l’installation de la machine à sa plus simple expression: Docker et c’est tout !

Plus besoin de mettre à jour tous ses runners quand on ajoute une nouvelle brique logicielle (NodeJs, Go, …), il suffit uniquement d’utiliser l’image Docker dédiée et c’est bon (en plus cela servira aussi pour le développement local).

Vos runners éviteront ainsi de se transformer en machine fourre-tout avec 3 versions de Java, 7 de NodeJs et un phantomJs dans un coin que tout le monde à oublié.

Au niveau des outils utilisés donc:

Trucs et astuces :

Conclusion

Avec ça nous disposons d’une base solide pour gérer le code source de notre projet et toute la partie intégration continue. Nous allons ensuite passer à l’étape suivante à savoir construire notre premier environnement pour déployer notre code source et c’est ce que nous verrons dans la troisième partie.

Stay tuned and See ya !