Aller au contenu

Réalisations, développement & infrastructures

Migration meconnu.fr vers Cloud AWS

A venir… 2025

Freelance - Projet associatif

Amazon Web Services

Ayant obtenu un financement de la part de la société Amazon dans le cadre de la migration de meconnu.fr vers le cloud, les chantiers suivants sont en cours :

  • Migration de MariaDB vers PostgreSQL
  • Réécriture du site internet de PHP vers Mkdocs Materials + Svelte
  • Exposition des données de meconnu.fr par API en s’appuyant sur Supabase
  • Passage de OpenLiteSpeed vers NGINX
  • Migration vers AWS en « refactoring » complet du site internet

Environnement technique: AWS, Terraform, PostgreSQL, PHP, Svelte, JS, Nginx, Mkdocs

Migration d'un moteur transactionnel

Janvier 2024 à Décembre 2024

CDI iMSA en tant qu'Expert Multi-technologie dans la Fabriq’ équipe « Forgerons »

Langage Cobol

A partir de janvier 2024, je travaille pour iMSA en tant qu'expert multi-technologies affecté à la Fabriq’ au sein de l’équipe Forgerons composée de 7 personnes. En charge de la migration du moteur transactionnel depuis AIX 32bits vers Linux 64bits, cette mission requiert une excellente maitrise du langages C ainsi que de solides connaissances des systèmes d’exploitation Unix et Linux. J'apprends le Cobol et met en place des processus de CI/CD par le biais de Gitlab, Jenkins ou encore Ansible afin de procéder à la compilation, au déploiement d’environnement de développement et d’exécution. En 3 mois, au sein de l’équipe Forgerons, je deviens le référent produit (6 librairies « métier » composées d’objets issus de 7.500 sources C et 20.000 sources Cobol). J’assure le portage des librairies vers Linux et j’interviens sur le débogage et l’altération du code du TP. En tant que référent de l’équipe sur l’OS Linux, je provisionne et j’installe la machine technique utilisée pour notre POC. Notre équipe est parvenue en 1 PIP (6 sprints) à valider le portage de AIX 32 bits vers AIX 64 bits et valider les premières exécutions de Batch sous Linux en moins de 2 PIPs.

Environnement technique: AIX, COBOL, C, PostgreSQL, Linux, Jenkins, Gitlab, n8n, Ollama, mkdocs, Docker, Ansible

Festival Crescendo

Mars 2024 - Aujourd'hui

Freelance IA86 Computer Consulting - Projet associatif

En freelance, à la demande d’un client issu du monde du divertissement, je migre le site internet de l’Association depuis une installation WordPress « classique » hébergée de manière mutualisée vers une version multilingue s’appuyant sur Mkdocs materials et NextCloud. Cette solution permet une mise à jour transparente depuis un poste de travail et l’édition de la mise en page dans un format Markdown simple et WYSIWYG (what you see is what you get).

Site internet Crescendo

Environnement technique: Mkdocs, Svelte, JavaScript, Docker, Docker compose, NextCloud, SMTP/POP, Cloud

Automatistation de datacenters

Janvier 2023 à janvier 2024

CDI ESN Open Ingénieur intégrateur DevOps affecté à INRAE

Datacenter

En 2023, dans le cadre d'une mission pour un client institutionnel spécialisé dans la recherche scientifique, j'ai mis en place un système complet d'administration basée sur Rundeck. Ce système assure aujourd'hui encore la gestion de l'exploitation de trois datacenters.

flowchart TD
us1((Postes clients))-- HTTPS -->lb1[/Reverse Proxy\]
us1-- HTTPS -->lb2[/Reverse Proxy\]
lb1-- cnx principale -->rd1[[Rundeck actif - vmi-dev-226]]
lb1-. cnx secondaire .->rd2[[Rundeck passif - vmi-dev-220]]
lb2-. cnx secondaire .->git2
lb2-- cnx pincipale -->git1
subgraph DC Ile de France
rd1-- SSH-->ex1[[Node Executor 1  - vmi-dev-228]]
rd1-- Authentification LDAP -->rd1
git1[[Gitlab - vmi-dev-229]]-- commit -->run1[[Runner - vmi-dev-227]]
git1-- Import/Export -->rd1
run1-- Prsync -->ex1
rd1-- SSH -->git1
end
subgraph DC Toulouse
git2[[Gitlab - vmi-dev-225]]-- commit -->run2[[Runner - vmi-dev-222]]
git1-- commit -->run2
git2-- Import/Export -->rd2
git1-- incrond Sync -->git2
git2-- commit -->run1
rd1-- incrond Sync -->rd2
rd2-- Authentification LDAP -->rd2
rd2-- SSH -->ex2[[Node Executor 2 - vmi-dev-224]]
run2-- Prsync -->ex2
run1-- Prsync -->ex2
run2-- Prsync -->ex1
ex1-- SSH -->test[[VM de test - vmi-dev-221]]
ex2-- SSH -->test
ex1-- SSH -->bast
ex2-- SSH -->bast[[The Bastion]]
bast-- SSH -->mac[[Toute machine *]]
end

Cette solution, essentiellement basée sur Rundeck, Bash, et Ansible, s'appuie également sur Gitlab, LDAP, et un module sur mesure intégré avec The Bastion (OVH). À la demande du client, HAproxy d’entrée a été remplacé par un load balancer matériel. J’ai développé un plugin Rundeck afin d’implémenter une solution de loadbalacing logiciel au niveau de l’exécution des nœuds.

Environnement technique: Rundeck, Gitlab, Java (plugin Rundeck), EfficientIP, F5, VMware ESXI API, Ansible, Bash, PostgreSQL (HA)

IA64, The Even More Pedagogical System

2023

Projet personnel

En évolution permanente, ce projet vise à offrir une plateforme d'apprentissage dédiée à la programmation en assembleur X86 (8/16/32 bits). Construit principalement en Javascript/JQuery, le site inclut un assembleur, un débogueur, ainsi qu'un éditeur de texte en ligne permettant aux utilisateurs de créer et de tester leurs propres programmes.

Assembleur de ia64 Assembleur de ia64

Environnement technique: JQuery, JS, HTML, Assembleur X86

Confortation de la sécurité du SI Université de Limoges

Novembre 2022 à Mai 2023

Datacenter

Fonctionnaire d'état titulaire DSI Université Limoges - RSSI adjoint

Afin de pallier l'absence d'un RSSI (poste en attente de recrutement), j'ai rejoint l'équipe RSSI composée de 2 personnes afin d'apporter mon expertise sur le volet technique de la Sécurité des Systèmes d'Information. J’ai constitué une équipe étendue de sécurité et proposé un plan de confortation du Système d’Information basé sur une réorganisation structurelle et une évolution des pratiques par un changement progressif du « mindset » de nos usagers et des collaborateurs techniques. J’ai audité une grande partie des entêtes produites par les sites internet exposés vers l’Internet. J’ai mis en place des investigations automatisées avec des scripts Bash afin de réaliser des audits du trafic est des ports ouverts sur les différents hôtes (1 VLAN/semaine). J’initie une politique de renforcement du SI est en collaboration avec les différents responsables de service sur toutes les parties sensibles du SI : AD, Serveurs Web, Authentification, Ferme applicative…etc.

Environnement technique: Fortinet, NMAP, Bash, PrivateBin, VaultWarden, Docker, Dashy, Linux, Hedgedoc

Plateforme intégration/déploiement continue

Janvier 2023 - Cluster K8S Dédié

Fonctionnaire d'état titulaire DSI Université Limoges - gestionnaire d'infrastructure

Un projet de Cluster Kubernetes est en cours de développement, visant à mettre en place une plateforme pédagogique permettant aux étudiants de déployer leurs propres micro-services ou d'utiliser des Notebook Jupyter. Ce cluster, composé de 4 nœuds puissants partageant 8 processeurs et 1,5 To de RAM, est conçu pour répondre aux besoins de 7 000 étudiants.

Dans ce projet, j'occupe le rôle de référent technique pour les solutions "Cloud" durant l'année 2022.

Novembre 2018 à Mai 2023 - Cluster K8S

Fonctionnaire d'état titulaire DSI Université Limoges - gestionnaire d'infrastructure

En 2018, j'ai rejoint le service Outils Numériques de la DSI de l'Université de Limoges, où j'ai été chargé de mettre en place une plateforme d'intégration et de déploiement continu, orchestrée par Kubernetes et GitLab. J'ai installé un cluster agnostique sur 4 VMs VMware, partageant un système de fichiers GlusterFS. RKE a été utilisé pour déployer et administrer divers aspects du cluster.

Poster "Kubernetes"

Poster "Kubernetes"

Le cluster est employé pour déployer des documentations statiques via des scripts CI/CD et pour développer des applications en PHP/React. Le monitoring est assuré par Grafana, Prometheus, Kibana, et Elastic Search. Ce travail a été présenté sous forme de poster lors des Journées Réseaux de l'Enseignement Supérieur et de la Recherche.

Environnement technique: Kubernetes, Docker, Traefik, NGINX, Linux, Ceph, GlusterFS, VMware ESXI, Grafana, MySQL/MariaDB, PostgreSQL, OpenLiteSpeed, Traefik, PHP, FluentBit, Prometheus, Kuma

Adaptation de la solution de déploiement de poste de travail FOG

2015 à 2018

Datacenter

Fonctionnaire d'état titulaire DSI Université Limoges ASI gestionnaire d'infrastructure - Pôle « support »

Entre 2015 et 2018, j'ai participé à l’harmonisation des outils utilisés par la DSI de l’Université de Limoges en adaptant la solution Open-Source FOG à notre infrastructure. J’accompagne les administrateurs dans l’usage de la solution et j’assure l’ajustement de l’environnement technique (filtrage, configuration commutateurs réseau). Le code PHP est altéré afin d’adapter la solution à notre infrastructure.

Environnement technique: PHP, Switch CISCO/HP, Mysql

meconnu.fr

2017 à aujourd'hui

Projet associatif

Datacenter

En 2017, en collaboration avec mon père suite à l'expérience acquise avec "La Creuse Secrète", j'ai lancé "meconnu.fr" : un portail collaboratif dédié au patrimoine français. La nouvelle version du site, mise en ligne en mai 2017, couvre plusieurs départements français. Ce projet a également vu la création de l'Association loi 1901, reconnue d'intérêt général, pour soutenir son développement. Le site utilise des micro-services conteneurisés sous Docker, hébergés sur un serveur dédié. La partie publique est développée en PHP, tandis que le back-office repose sur le CMS SPIP avec des ajouts en PHP et Javascript/JQuery.

Environnement technique: OpenLiteSpeed, Traefik, Docker, Let's encrypt, PostgreSQL, Supabase, REST API, PHP, JS, JQuery, Dokuwiki, Svelte

Distribution Linux orientée Virtualisation du poste de travail

2014 à 2015 - Microlinux V2

Fonctionnaire d'état titulaire DSI Université Limoges ASI ingénierie logicielle - Pôle « support »

Entre 2013 et 2014, j'ai conduit un projet visant à créer la V2 de Microlinux, une distribution Linux spécialisée dans la virtualisation du poste de travail. Cette version démarre en PXE par le réseau, sans nécessiter d'installation préalable, et son interface dynamique est développée en HTML (Web GTK).

Structure du Microlinux V2 Structure du Microlinux V2

Journées Réseaux de l'Enseignement Supérieur et de la Recherche

L'interface de déploiement des machines virtuelles a été développée en Jython (Python over Java), tandis que le backend de déploiement et l'interface dynamique des clients ont été codés en Python.

Client Microlinux V2 Client Microlinux V2

Microlinux a été présenté lors des prestigieuses Journées Réseaux de l'Enseignement Supérieur et de la Recherche (Présentation/Article).

Environnement technique: Linux, oVirt, Python, Docker, Traefik, NGINX, Linux, Ceph, GlusterFS, PXE, Java, RDP, SPICE, Jython, CentOS

Lapati.net

2015

Prestation à titre gratuit

Vers 2015, je suis responsable du développement et de la mise en ligne du site de e-commerce Lapati.net. Ce projet comprenait également la conception graphique, incluant la création du logo et d'une banderole géante (5m x 1m20) pour la devanture du magasin.

Lapati.net

Environnement technique: Prestashop, PHP, JS, JQuery

Wirechem

2015 - Version production Java

Projet personnel à visée pédagogique - Version production Java

En 2015, j'ai entrepris le développement d'une version de production du jeu en Java, utilisant Eclipse avec LibGDX et Android Compilation Suite, avant de migrer vers Android Studio pour les développements ultérieurs. Le jeu est conçu pour fonctionner sur Android à partir de la version 4.0.

Chargement du jeu Chargement du jeu

Choix des niveaux / Monde n°1 Choix des niveaux / Monde n°1

Jeu en fonctionnement Jeu en fonctionnement

Prototype en Python

Inspiré par le jeu de chimie SpaceChem, j'ai développé en 2013 un prototype de jeu en Python, utilisant Pyglet. Ce prototype met en œuvre un algorithme cellulaire conçu pour simuler les déplacements d'électrons et de photons à travers des pistes en cuivre et des fibres.

Prototype en Python Prototype en Python

Environnement technique: Java, LibGDX, Python 2.x/3.x, Android SDK

La Creuse Secrète

Décembre 2014

Projet personnel

Lancé en 2014, "La Creuse Secrète" a été conçu pour recenser le patrimoine de la Creuse, le rendant accessible en ligne gratuitement. Développé avec le CMS SPIP, ce site intègre des fonctionnalités en PHP et Javascript/JQuery pour une meilleure interactivité.

Bandeau du site internet "La Creuse Secrète" Bandeau du site internet "La Creuse Secrète"

Environnement technique: SPIP, MySQL, PHP, JS, JQuery, Bash

Gestion de parc informatique et télécommunication

2007 à 2014

IUT du Limousin, Site délocalisé de Tulle - Assistant ingénieur gestionnaire de parc informatique

J'assure le maintien en conditions opérationnelles du parc informatique de l'IUT du Limousin du Site délocalisé de Tulle. Je suis le seul informaticien sur site en charge du réseau et des systèmes informatiques. Suite à l'intégration des IUFM à l'Université, j'assure aussi la gestion du parc de L'ESPE de Tulle à partir de 2013.

IUT du Limousin

  • Support niveau I,II,III
  • Développement d’application PHP (dépôt rapport de stage)
  • Virtualisation du parc informatique avec création du client Microlinux V1.0
  • Découpage du réseau en VLAN
  • Ajout d’un service VPN (openVPN)
  • Création de plan de réseau et des ressources informatiques
  • Développement d’un script de démarrage Kixtart
  • Mise en place d’un agenda automatique d’examen relié aux sessions de travail

2009 - Microlinux V1

Alors que je travaillais à l'IUT du Limousin, site de Tulle, j'ai développé la première version de Microlinux, une distribution Linux orientée vers la virtualisation du poste de travail. Exploitant les fonctionnalités du système de fichiers ZFS, Microlinux permet de figer l'état de plusieurs systèmes d'exploitation et de gérer leur coexistence. La réinstallation des postes de travail peut être programmée à distance, et un contrôle via SSH permet de gérer l'ensemble des postes.

Interface de déploiement de VM Interface de déploiement de VM

Microlinux a été déployé sur l'ensemble du site de Tulle (200 postes), au CRIP de Limoges (60 postes), et à l'IUT du Limousin site de Brive (50 postes). Après 15 ans d'utilisation, ce système reste encore en exploitation.

Environnement technique: Linux, OpenVPN, Proxmox, VMWare ESXI, netASQ, Windows, Kixtart, PHP, MySQL, Centreon

Gestion de parc informatique et télécommunication

Faculté de médecine et de pharmacie de l'Université de Limoges

2003 à 2007

Faculté de médecine et de pharmacie de Limoges - Technicien d'exploitation et de maintenance

Affecté comme premier et seul informaticien du campus "Santé", j'assure la MCO de l'ensemble des moyens numériques (incluant la téléphonie et le câblage réseau). L'établissement comporte 2800 étudiants, pour un total de 3000 usagers, 3 réseaux de classe C & 2 B subnetés C, 4 baies de brassage.

Tâches réalisées :

  • Amélioration du réseau physique (passage de 100mbs partagé en 1gbs commuté)
  • Centralisation des DNS
  • Formalisation des procédures de MCO
  • Réalisation des plans du réseau informatique
  • Mise en place de serveurs applicatifs centralisés (application scolarité et gestion)
  • Création de deux salles informatiques en libre accès pour les étudiants
  • Développement d'applications web (PHP)
  • Câblage réseau catégorie 5/6
  • Passage de la téléphonie en RJ45
  • Installation de 400 ordinateurs en 4 années d’activité
  • Support niveau I & II

Aux alentours de 2005, j'ai porté un logiciel de calcul en Pharmacocinétique d'une version payante de Fortran vers une version libre. Ce projet a eu un impact notable, étant ensuite adopté par des universités belges.

Environnement technique: Linux, Windows, Solaris, PHP, MySQL, Fortran, Samba, OCS inventory, GLPI, NAGIOS/NAGVIS, câblage CAT 6

COS2000v2 "Protected Mode"

2003 à aujourd'hui

Projet personnel, créer un système d’exploitation en Langage C – mode protégé

Démarrage de COS2000v2 Démarrage de COS2000v2

En 2003, j'ai continué à faire évoluer COS2000 en créant une version en langage C, avec un noyau monolithique chargeable via Grub. Cette version, publiée en 2007, inclut un ordonnanceur multitâche, une gestion de la mémoire virtuelle paginée, et une séparation stricte entre le code système et utilisateur, renforçant ainsi la sécurité grâce au "Protected Mode".

Console de CO2000v2 en action Console de CO2000v2 en action

Environnement technique: Assembleur X86, GCC, Make, VMware, Qemu, Virtualbox

Aide au technicien informatique

2001 à 2003

CDD - Faculté des Lettres et des Sciences Humaines de Limoges

Assistant du technicien de maintenance et d'exploitation de données dans toutes les tâches quotidiennes de maintenance préventive et curative du parc informatique.

Tâches réalisées :

  • Câblage réseau FTP CAT 5E,
  • Installation de salles informatique
  • Administration du serveur DNS
  • Tâches de sauvegarde
  • Support niveau I
  • Aide installation serveur Novel Netware et Linux

Environnement technique: Linux, Windows, Novel Netware, IP/IPX, câblage CAT 5E, DNS

COS2000v1 - Assembleur X86 "Real Mode"

1998 - 2007

Projet personnel, créer un système d’exploitation en Assembleur X86

Logo de Cos2000 Logo de Cos2000

En 1998, j'ai initié le développement de mon propre système d'exploitation, COS2000, un projet qui m'a permis d'approfondir mes compétences en architecture des ordinateurs et en langage assembleur. Ce système a évolué au fil des années, intégrant des fonctionnalités comme le "Flat Unreal Mode" et un format d'exécutable propriétaire pour l'utilisation de bibliothèques pseudo-dynamiques.

Console de COS2000v1 Console de COS2000v1

Vue des librairies dans la console Vue des librairies dans la console

Explorateur d'executable au format CE - Ecrit en C++ Explorateur d'executable au format CE - Écrit en C++

Environnement technique: Assembleur X86 (tasm, masm, tubo debugger), Make, VMWare