Par Romain Boulanger.
J’ai eu la chance cette année d’être sélectionné pour le Voxxed Days qui se déroulait au Luxembourg le 21 et 22 juin 2023 pour présenter mon talk sur « Déployer de manière dynamique votre code avec GitLab CI ». Cela faisait un moment que je n’avais pas remis les pieds sur scène pour un événement de ce type.
Cette conférence regroupe plusieurs développeurs, mais surtout de véritables passionnés voulant partager du contenu ou échanger sur plusieurs thématiques : développement logiciel, UX/UI, Cloud, Big Data, sécurité, automatisation, etc. Le niveau des conférences était, quant à lui, très varié que vous soyez débutant ou expert, il y en a pour tous les goûts !
Au menu, plusieurs types de format : Keynote pour le début de la journée, University (2 heures), conférences (45 minutes), Tools in Action (25 minutes) et Quickies (15 minutes).
Dans cet article, je vous offre la possibilité de découvrir ou redécouvrir avec moi les quelques conférences auxquelles j’ai eu la chance d’assister.
Par Audrey Neveu et Agnes Crepet
Pour commencer, la Keynote d’ouverture de cette première journée nous parle d’éthique dans la tech avec le coût environnemental du numérique qui représente aujourd’hui moins de 4 %.
L’objectif est évidemment d’abaisser ce pourcentage par des gestes simples notamment de garder son téléphone portable plus longtemps. Ces téléphones sont en effet très peu recyclables, seulement 20 % des matériaux peuvent être récupérés et cela représente 57 millions de déchets électroniques. Dans 20 % des cas, un téléphone est changé à cause du manque de support logiciel.
De plus, un téléphone portable est extrêmement polluant : sa création nécessite plus de 200 composants dont 50 minerais, soit l’extraction de plus de 70kg de matières premières.
Le fait de produire toujours autant de téléphones engendre d’autres problématiques :
Plusieurs autres problèmes d’éthique sont aussi mentionnés :
Vol de données à cause d’application trop peu sécurisées ;
La surveillance par le traçage ou par la reconnaissance faciale ;
Les dangers de l’IA et le progrès associé à celui-ci avec le temps.
C’est pourquoi, la responsabilité du développeur est importante, notamment lors de la création d’une application pour éviter de récupérer des données sensibles d’un utilisateur sans son consentement.
Cette keynote se termine sur le fait de faire évoluer les mentalités et de changer les habitudes : il est préférable de garder son téléphone le plus longtemps possible (pour un téléphone qui disposerait d’une durée de vie de 7 ans, on estime que cela aboutirait à une réduction de 44 % de CO2) ou de le faire réparer.
Par Fawaz Ghali
À travers cette conférence, Fawaz Ghali met en lumière, dans un premier temps, les pertes dues à la fraude : 28 millards de dollars en 2020 et avec une estimation de 408 milliards entre 2021 et 2031, ce qui est conséquent !
Le but de la détection de fraude est d’analyser les comportements suspects sans impacter le quotidien des utilisateurs de l’application (ne pas augmenter le temps de traitement, latence, etc.).
L’exemple qui est pris se base sur le secteur bancaire où les banques utilisent plusieurs modèles afin de détecter des activités inhabituelles notamment dès qu’une personne change de pays, dépense des montants trop conséquents en créant un score qui permet de dire à la fin s’il s’agit d’une activité suspecte ou non.
Enfin, la présentation se termine sur une démonstration où des données sont analysées en temps réel, tout en utilisant un moteur de détection grâce à la solution Hazelcast.
Par Sébastien Blanc
Sébastien Blanc, dans une présentation sous forme de conte, nous indique l’ensemble des étapes nécessaires pour transformer une vieille application Spring 3.0 en mode Serverless. On parle d’une application qui permet de commander des Stroopwafel qui sont des gaufres néerlandaises.
Tout d’abord, cette application interagit avec d’autres de manière désynchronisée : l’objectif est d’ajouter des connecteurs afin de réagir à des événements afin de fluidifier le traitement des commandes. Ensuite arrive le moment où la technologie KNative est évoquée pour bénéficier de la technologie Serverless pour les applications conteneurisées de sorte à invoquer uniquement celles-ci quand il y a des commandes.
Par Nicolas Martignole
Dans ce retour d’expérience, Nicolas Martignole nous parle de l’organisation de la production de Doctolib qui est en fait une application monolithique en Ruby qui permet, entre autres, la prise de rendez-vous médicaux. Cette application est conteneurisée et s’exécute sur les régions AWS de Francfort et Paris.
Il indique que Doctolib c’est aussi trois mises en production par jour tout en utilisant la solution de supervision Datadog pour opérer le tout en possédant une multitude de sondes.
L’application a beau être un monolithe, elle est décomposée en « Engine » (concept Ruby), ce qui permet d’isoler le code en sous-périmètres.
Enfin, en ce qui concerne le déploiement de l’infrastructure, Terraform et Github Actions sont utilisés.
Par Katia Himeur
Katia Himeur évoque dans ce talk la méthode GitOps appliqué à Terraform en particulier dans le but d’éliminer les drifts (différence entre l’état déclaré et l’état désiré) qui sont le principal souci de cet outil.
Plusieurs options sont évoquées pour éviter cette problématique :
C’est la solution 3 qui a été privilégiée et mise en avant lors d’une démo en utilisant la méthode GitOps associée à Flux et TF-Controller.
En fonction de la configuration, l’état sera réconcilié toutes les minutes.
Pour finir, Katia évoque plusieurs avantages de Flux couplé avec TF-Controller :
Par moi 🙂
C’est à mon tour de présenter mon sujet !
Je vous parle ici de différentes manières de déployer le code de votre infrastructure avec Terraform que ce soit un petit projet avec du code contenu dans un dossier mais aussi pour des projets plus conséquents avec une base de code répartie dans différents dossiers. L’infrastructure utilisée se base sur Google Cloud.
L’objectif est dans un premier temps de vérifier avant le déploiement que notre code est propre en utilisant plusieurs outils :
Dans la première démonstration, je montre un pipeline GitLab CI avec l’ensemble des étapes ci-dessus pour déployer une infrastructure minimaliste.
Ensuite, je continue avec un cas plus avancé, où dans un mono repo on dispose de plusieurs couches ou composants (dossier, projet, réseau, etc.) de notre infrastructure, et, on souhaite visualiser l’ensemble de ces derniers via des étapes distinctes que ce soit pour le plan mais aussi pour l’apply.
C’est pourquoi, je me base sur une fonctionnalité avancée de GitLab CI qui se nomme les pipelines enfants. Cela permet de générer une « sous-pipeline » à partir de la pipeline principale de sorte à créer un ensemble d’étapes Terraform en fonction des couches ou composants de l’infrastructure.
Par Ludovic Piot
Une autre présentation à base de GitOps, mais cette fois-ci avec CrossPlane qui est un opérateur se déployant dans un cluster Kubernetes permettant de créer des ressources Cloud mais pas que. Cette solution a pour but d’éviter les drifts lorsque l’on utilise Terraform.
Tout d’abord, une présentation de l’outil est effectuée par Ludovic Piot qui indique que le nombre de providers ne cesse de croître dans différentes catégories : le Cloud, l’infrastructure as code, la CI/CD, mais aussi les outils de supervision.
Néanmoins, un problème existe lorsque l’on souhaite déployer CrossPlane pour créer des ressources : il nous faut un cluster Kubernetes.
Lors de sa démonstration sur Google Cloud, Ludovic se sert du MiniKube intégré à CloudShell pour initialiser CrossPlane et démarrer le déploiement de quelques ressources.
Le gros avantage de ce type d’outil : pouvoir déployer de l’applicatif mais aussi de l’infrastructure contenu dans des fichiers YAML. Petit point d’attention, à la différence de Terraform, cet outil ne fait pas de « plan » pour visualiser les ressources créées et ne gère pas les dépendances. Il utilise le concept de « retry » lors d’une erreur.
La présentation s’est terminée sur la présentation d’Anthos qui est un produit spécifique à Google Cloud permettant de gérer une flotte de cluster Kubernetes qu’il soit sur d’autres fournisseurs de Cloud ou dans le datacenter de l’entreprise. Anthos a l’avantage de s’intégrer avec l’ensemble des services Google Cloud et de bénéficier de fonctionnalités très intéressantes comme Workload Identity qui permet de lier un compte de service Kubernetes à un compte de service Google.
Par Laurent Kratz
Cette deuxième Keynote s’attarde sur l’IA associée à la musique. Un bref récapitulatif est fait sur la différence entre IA et Machine Learning (ML) où ce dernier est un des moyens qui se base sur l’apprentissage. Cet apprentissage se compose d’un algorithme à entrainer avec un ensemble de règles.
Laurent nous indique que la musique possède un lien très fort avec les mathématiques. Ce qui permet d’utiliser une intelligence artificielle pour composer des mélodies ou des chansons.
Enfin, la dernière partie se concentre sur l’éthique où de nouvelles régulations sont à prévoir. Notamment en ce qui concerne l’Union Européenne avec le fait de devoir afficher explicitement si un contenu a été généré par une Intelligence Artificielle.
Par Gaetan Eleouet
Dans ce talk, Gaetan Eleouet rappelle que la sécurité est l’affaire de tous. Un chiffre est cité : 72% des problématiques de sécurité proviennent du code !
Au cours de cette présentation qui alterne entre contenu théorique et démonstration, Gaetan fait la liste de plusieurs failles ainsi que de leurs impacts respectifs :
Les conséquences associées à ces failles peuvent être présentées sous la forme du trigramme CIA : Confidentiality (Confidentialité), Integrity (Intégrité) et Availability (Disponibilité)
L’OWASP (Open Web Application Security Project) permet de répertorier l’ensemble de ces vulnérabilités pour la sécurité des applications web. De plus, l’OWASP Top 10 a pour but de vulgariser les problèmes de sécurité les plus courants dans le but de sensibiliser et de réduire leur risque d’apparition au sein des applications développées.
Par Kevin Dubois
Dans cette dernière présentation à laquelle j’ai pu assister, Kevin Dubois nous parle GitOps avec l’utilisation de Argo et de Tekton, le tout dans un cluster Kubernetes.
Durant ce talk, Kevin souhaite faire évoluer son application qui est un jeu de voiture composé de deux équipes. Le but est de mettre en place une nouvelle fonctionnalité est de déployer cette dernière pour tous les utilisateurs.
C’est pourquoi Tekton va permettre d’exécuter plusieurs étapes appelées « steps » pour conteneuriser l’application au sein d’une tâche (task) jusqu’à mettre à jour le fichier YAML de déploiement avec le sha256 de cette nouvelle image.
L’étape suivante consiste à déployer cette nouvelle image avec Argo, et plus spécifiquement, Argo Rollouts qui permet de déployer petit à petit la nouvelle version si celle-ci ne comporte pas d’erreurs via un système de métrique basé sur Prometheus.
Pour se faire, Kevin utilise un objet de type AnalysisTemplate
couplé à un Rollout
pour permettre le déploiement progressif.
Cette édition 2023 du Voxxed Days Luxembourg était pour moi l’occasion de présenter mon talk tout en parcourant plusieurs conférences sur des sujets intéressants. Comme vous avez pu le constater, j’ai ciblé les conférences à base de Cloud et d’automatisation.
Je suis vraiment reconnaissant d’avoir eu la chance de participer à cette conférence et je souhaite remercier l’ensemble des organisateurs de l’événement ainsi que SoKube, qui m’a permis d’aller sur place.
J’attends avec impatience les futures éditions de cet événement, avec pourquoi pas, la possibilité de candidater à nouveau sur un autre sujet à présenter.