Continuous Integration Continuous Delivery

Business Case

20 Dec 2019
Digipolis faisait face au défi de désigner les tâches exigeant des connaissances internes très spécifiques de l’approche CI/CD.  Comme CI/CD n'est pas un projet isolé, mais une mise en œuvre à l’échelle de l'entreprise, nous recherchions un partenaire capable de les soutenir pendant les périodes de forte activité.

Digipolis Service Factory développe et propose différents microservices répondant aux demandes professionnelles les plus fréquentes. Pauwels Consulting soutient Digipolis dans la mise en œuvre d’une bonne approche Continuous Integration/Continuous Delivery au sein de la Service Factory.

À propos de Digipolis

Digipolis est le partenaire ICT des villes de Gand et d’Anvers. En tant que tel, Digipolis achète et développe des logiciels et met en œuvre les capacités matérielles, de réseau et d’infrastructures téléphoniques. Outre ces activités d’implémentation, Digipolis coache les collaborateurs des services communaux, soutient les applications que ceux-ci utilisent quotidiennement et mène à bien des projets ICT de haut niveau.

Défis

pauwels consulting red hat openshift partnershipPour produire les microservices, Digipolis met en pratique une approche Continuous Integration/Continuous Delivery (CI/CD) au sein de la Service Factory. À cette fin, Digipolis a recours à un ensemble d’outils qui soutiennent ce processus. L’équipe utilise Red Hat Openshift comme plateforme d’application. Openshift est une plateforme Kubernetes sur laquelle des images Docker dotées de nombreuses fonctionnalités supplémentaires peuvent être mises en œuvre. Presque tous les outils conçus tournent sur la plateforme Openshift, installée dans deux clusters distincts. Un cluster de « dev & test » et un cluster de production, chacun étant pourvu de son propre référentiel d’images, de ses propres politiques de sécurité et de ses propres règles de haute disponibilité.

nexus pauwels consulting jenkins business case digipolis

Tous les outils nécessaires à l’approche CI/CD tournent sur Openshift. Les principaux outils sont Jenkins et Nexus Repository Manager. Jenkins est utilisé pour définir et exécuter le pipeline CI/CD. Digipolis devait lancer ses pipelines manuellement et une approbation manuelle était également nécessaire pour passer de l’acceptation à la production.

Le pipeline indiquait quels tests automatiques étaient nécessaires à l’exécution, quelles structures étaient prêtes à être réalisées et où elles seraient déployées. Le pipeline est rédigé en Groovy et est caractérisé par une syntaxe déclarative. Ils utilisent Nexus Repository Manager comme cache des référentiels Maven et Red Hat. Ils sont également utilisés pour leurs propres bibliothèques et progiciels.

Le code source de nos microservices est partagé via GitHub. Les développeurs, les collaborateurs de la Service Factory et les utilisateurs système des différents outils ont accès au code source. Cela permet à chacun de procéder à des adaptations rapidement et en toute simplicité, et de les partager si nécessaire. Toutes les configurations CI/CD sont également fusionnées avec le code source des microservices.

Digipolis faisait face au défi de désigner les tâches exigeant des connaissances internes très spécifiques de l’approche CI/CD.  Comme CI/CD n’est pas un projet isolé, mais une mise en œuvre à l’échelle de l’entreprise, nous recherchions un partenaire capable de les soutenir pendant les périodes de forte activité.

Solution

    • Le département IT de Pauwels Consulting dispose d’un centre de compétences en DevOps et infrastructures, bénéficiant d’une expertise tant en matière de pile Red Hat que de pile Openshift, ainsi que d’une expertise dans tous les aspects de la configuration CI/CD.
    • Pauwels Consulting aide Digipolis à accomplir différentes tâches :
    • Tests d’écriture tant pour les nouveaux microservices que les microservices existants.
    • Mise en place d’une analyse statique et automatisée des codes afin de contrôler les problèmes de sécurité, de mesurer les dettes techniques et d’établir des rapports relatifs à la couverture de test.
    • Rationalisation des pipelines afin que toutes les missions soient exécutées au cours des mêmes phases.
    • Diminution de l’ampleur des fichiers Jenkins à l’aide de pipelines partagés.
    • Paramétrage des webhooks GitHub pour lancer automatiquement toutes les tâches.
    • Mise en œuvre du nouveau plug-in client Jenkins d’OpenShift.