Continuous Integration Continuous Delivery

Business case

20 Dec 2019
Digipolis stond voor de uitdaging om taken aan te wijzen die intern zeer specifieke kennis van CI/CD vereisen. Omdat CI/CD geen geïsoleerd project is, maar een bedrijfsbrede implementatie, was men op zoek naar een partner die hen op piekmomenten kon ondersteunen.

Digipolis Service Factory ontwikkelt en biedt verschillende microdiensten aan voor de meest voorkomende zakelijke verzoeken. Pauwels Consulting ondersteunt Digipolis bij de implementatie van een goede Continuous Integration / Continuous Delivery in de Service Factory.

Over Digipolis

Digipolis is de ICT-partner voor de steden Gent en Antwerpen. Zij kopen en ontwikkelen software, implementeren hardware, netwerk en telefonie-infrastructuur. Naast de implementatieactiviteiten coachen ze medewerkers in de stadsdiensten en ondersteunen ze hun dagelijks gebruikte applicaties en leveren ze hoogstaande ICT-projecten.

Uitdagingen

red hat opeOm de microdiensten in productie te nemen, doet Digipolis Continuous Integration / Continuous Delivery (CI / CD) binnen de Service Factory. Digipolis maakt hiervoor gebruik van een set van tools die dit proces ondersteunen. Het team gebruikt Red Hat Openshift als applicatieplatform. Openshift is een Kubernetes-platform waarop men Docker-images kan implementeren die met veel extra functionaliteiten zijn gebouwd. Bijna alle tools die gebouwd zijn draaien op het Openshift platform, geïnstalleerd in twee aparte clusters. Een cluster voor ‘dev & test’ en een productiecluster, elk met een eigen image repository, security policies en high availability rules.

 

nexus jenkins

 

 

 

 

Alle tools die nodig zijn voor CI / CD draaien op Openshift. De belangrijkste zijn Jenkins en Nexus Repository Manager. Jenkins wordt gebruikt om de CI / CD pijplijn te definiëren en uit te voeren. Digipolis moest hun pijpleiding handmatig starten en ook was handmatige goedkeuring nodig om van acceptatie naar productie te gaan.

In de pijplijn werd aangegeven welke automatische testen nodig waren om uit te voeren, welke constructies klaar zijn om te maken en waar ze worden uitgerold. De pijpleiding is geschreven in Groovy en heeft een declaratieve syntaxis. Ze gebruiken de Nexus Repository Manager als cache van Maven en Red Hat repositories. Ze worden ook gebruikt voor hun eigen bibliotheken en pakketten.

De broncode van onze microservices wordt gedeeld via Github. Ontwikkelaars, medewerkers van de Service Factory en systeemgebruikers van de verschillende tools hebben toegang tot de broncode. Hierdoor kan iedereen snel en eenvoudig aanpassingen maken en delen waar nodig. Alle CI/CD-configuratie wordt ook samengevoegd met de broncode van de microdiensten.

Digipolis stond voor de uitdaging om taken aan te wijzen die intern zeer specifieke kennis van CI/CD vereisen.  Omdat CI/CD geen geïsoleerd project is, maar een bedrijfsbrede implementatie, was men op zoek naar een partner die hen op piekmomenten kon ondersteunen.

Oplossing

De IT-afdeling van Pauwels Consulting beschikt over een devops en infra competence center met expertise in zowel de Red Hat stack als de Openshift stack en expertise in alle aspecten van CI/CD.

Pauwels Consulting helpt Digipolis met verschillende taken:

    • Schrijftests voor bestaande en nieuwe microdiensten.
    • Opzetten van geautomatiseerde statische code-analyse om te controleren op beveiligingsproblemen, technische schulden te meten en te rapporteren over de testdekking.
    • Stroomlijnen van pijplijnen, zodat alle opdrachten in dezelfde fasen worden uitgevoerd.
    • Verminderen van de omvang van de Jenkinsfiles door gebruik te maken van gedeelde leidingen.
    • Instellen van Github webhooks om alle jobs automatisch te starten.
    • Implementeren van Open Shift’s nieuwe Jenkins client plugin.