Aller au contenu

Mes réalisations professionnelles

Service Informatique Campus "Marcland"

De 2003 à 2007, j'ai mis en place toutes les briques nécessaires à l'édificiation du Service Informatique de la Faculté de Médecine & de Pharmacie de Limoges:

  • Amélioration du réseau physique
  • Centralisation des DNS
  • Formalisation des procédures de MCO
  • Réalisation des plans du réseau informatique
  • Mise en place de serveurs applicatifs
  • Création de 2 salles informatiques libre accès à destination des étudiants

Portage logiciel de calcul en Pharmacocinétique

Autour de 2005, j'ai porté un logiciel de calcul en Pharmacocinétique d'une version payante de Fortran vers une version libre. Le projet ayant fait des émules, a été exporté vers des Université Belges.

Distribution Linux orientée Virtualisation du poste de travail.

Microlinux V1

En 2009, exerçant à l'IUT du Limousin - Site de Tulle, j'ai créé une Distribution Linux orientée Virtualisation du poste de travail nommée "Microlinux". Exploitant les capacités d'instantanées prodiguées par le système de fichier ZFS, le Microlinux permet de figer l'état de plusieurs systèmes d'exploitation et de gérer la cohabitation de plusieurs versions de ceux-ci. Un logiciel de virtualisation (Qemu/KVM ou VMware selon la version) assure le lancement du système d'exploitation souhaité sur le poste de travail. La réinstallation des postes de travail peut être programmée de manière distante, elle s'effectue en envoyant des flux multicast peut consommateurs de bande passante. Un contrôle distant des machines par le biais de SSH octroie la possibilité de piloter à distance l'ensemble des postes de travail de l'IUT.

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

Ce système fut exploité sur l'ensemble du site de Tulle (200 postes), au CRIP de Limoges (60 postes), à l'IUT du Limousin site de Brive (50 postes). Après maintenant 15 ans d'utilisation, le système est encore actuellement utilisé.

Microlinux V2

En 2013/2014, j'ai effectué une conduite de projet et du développement dans l'optique de créer une V2 du Microlinux. Le Client V2 démarre en PXE par le réseau et ne nécessite aucune installation préalable. Son interface est dynamique car en HTLM (Web GTK).

Structure du Microlinux V2 Structure du Microlinux V2

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

Client Microlinux V2 Client Microlinux V2

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

En 2016, suite à l'obtention de ma licence, j'intègre le Master Cryptis...Le projet ne sera pas repris puis abandonné alors qu'avancé à plus de 95%.

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

Plateforme intégration/déploiement continue

Cluster K8S

Je rejoins le service Outils Numérique de la DSI de l'Université de Limoges en 2018. Je suis chargé de mettre en place une plateforme intégration/déploiement continue animée par Kubernetes et Gitlab. J'installe un Cluster agnostique sur 4 VMs VMware qui se partagent un système de fichier GlusterFS. J'utilise RKE pour déployer et administrer certains aspects du cluster.

Poster "Kubernetes" Poster "Kubernetes"

Le cluster est utilisé pour déployer des documentations statiques par le biais de scripts CI/CD et pour réaliser le développement d'application en PHP/React. Grafana/Prometheus/Kibana et Elastic Search permettent d'assurer le monitoring.

Le travail fut présenté sous forme de poster lors de prestigieuses Journées Réseaux de l'Enseignement Supérieur et de la Recherche

Cluster K8S Dédié

Un nouveau projet de Cluster Kubernetes est en cours d'élaboration afin de mettre en place une plateforme d'enseignement autorisant les étudiants à déployer leur propres micro-services ou à utiliser des Notebook Jupyter.

4 noeuds puissants partagent 8 processeurs, 1.5To de RAM pour offrir le service aux 7000 étudiants potentiels.

Dans ce projet, je suis le référent "Cloud" au niveau technique.

Infrastructure

Dans le cadre d'une mission pour un client institutionnel versé dans la recherche scientifique, j'ai mis en place une interface d'administration basée sur Rundeck permettant de lancer des travaux afin d'assurer l'administration et l'exploitation de 3 datacenters. Basé essentiellement sur Rundeck, Bash et Ansible, la solution s'appuie aussi notablement sur Gitlab, LDAP et est interfacé avec un module développé sur mesure avec The Bastion (OVH). HAproxy a été abandonné au profit de loadbalancer matériel à la demande du client.

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