<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Laurent Quastana</title>
    <description>The latest articles on DEV Community by Laurent Quastana (@laurent_quastana).</description>
    <link>https://dev.to/laurent_quastana</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2455076%2F757e51af-0af0-4ae2-a604-a1a996fe6a24.png</url>
      <title>DEV Community: Laurent Quastana</title>
      <link>https://dev.to/laurent_quastana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laurent_quastana"/>
    <language>en</language>
    <item>
      <title>Cartographier un SI: mon cheminement d’architecte SI, entre vision métier, vérité infra et pragmatisme open source</title>
      <dc:creator>Laurent Quastana</dc:creator>
      <pubDate>Thu, 30 Apr 2026 20:11:41 +0000</pubDate>
      <link>https://dev.to/laurent_quastana/cartographier-un-si-mon-cheminement-darchitecte-si-entre-vision-metier-verite-infra-et-23e3</link>
      <guid>https://dev.to/laurent_quastana/cartographier-un-si-mon-cheminement-darchitecte-si-entre-vision-metier-verite-infra-et-23e3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Je suis architecte SI dans le domaine de la santé, au sein d’un contexte où plusieurs établissements doivent progressivement mieux se coordonner, mutualiser certains services, sécuriser leurs systèmes et préparer les prochaines étapes de convergence numérique.&lt;/p&gt;

&lt;p&gt;Quand j’ai commencé ce travail, je venais d’un parcours plus orienté architecture logicielle, intégration et systèmes d’information complexes. J’avais déjà travaillé sur des sujets d’API, d’interopérabilité, d’EAI, de flux et de plateformes techniques. La complexité n’est pas seulement technique, elle est aussi organisationnelle, humaine, historique et réglementaire.&lt;/p&gt;

&lt;p&gt;Dans mon secteur, une application n’est jamais juste une application. Elle peut porter un processus de soin, une contrainte réglementaire, une dépendance éditeur, une interface HL7, une base Oracle, un serveur oublié, un flux SFTP, une habilitation Active Directory, une criticité métier, un contrat de maintenance, une exposition réseau, et parfois une connaissance qui n’existe que dans la tête de deux personnes.&lt;/p&gt;

&lt;p&gt;Très vite, une évidence s’est imposée : pour piloter un SI , il ne suffit pas d’avoir des serveurs qui tournent et des applications qui répondent. Il faut comprendre le paysage.&lt;/p&gt;

&lt;p&gt;Il faut savoir quelles applications existent, à quoi elles servent, qui les utilise, où elles sont hébergées, avec quoi elles communiquent, quels flux les relient, quelles dépendances elles portent, et quels impacts métier peuvent apparaître en cas d’incident.&lt;/p&gt;

&lt;p&gt;C’est ce cheminement que je veux partager ici : comment je suis passé d’un besoin assez classique de cartographie applicative à une réflexion plus globale sur la source de vérité, l’infrastructure, NetBox, les flux, les KPI, et finalement la création de mon propre outil open source : &lt;code&gt;it-landscape&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le point de départ : un SI réel, vivant, mais peu cartographié
&lt;/h2&gt;

&lt;p&gt;Le premier constat était assez simple : la connaissance existait, mais elle était dispersée.&lt;/p&gt;

&lt;p&gt;Un peu dans les fichiers Excel.&lt;br&gt;
Un peu dans les schémas Visio ou Draw.io.&lt;br&gt;
Un peu dans vCenter.&lt;br&gt;
Un peu dans les contrats éditeurs.&lt;br&gt;
Un peu dans les procédures d’exploitation.&lt;br&gt;
Un peu dans les tickets.&lt;br&gt;
Un peu dans les réunions.&lt;br&gt;
Et beaucoup dans la tête des équipes.&lt;/p&gt;

&lt;p&gt;Ce n’est pas une critique. C’est le fonctionnement naturel de beaucoup de SI historiques. Les équipes font tourner le système, règlent les urgences, déploient les projets, corrigent les flux, gèrent les migrations. La documentation arrive souvent après, quand il reste du temps. Et souvent, il n’en reste pas.&lt;/p&gt;

&lt;p&gt;Dans mon contexte, le périmètre était large : plusieurs établissements, plusieurs cultures SI, des applications cliniques, administratives, médico-techniques, logistiques, biomédicales, des flux inter-applicatifs, des hébergements mixtes, des applications locales et des solutions progressivement mutualisées.&lt;/p&gt;

&lt;p&gt;Le besoin n’était donc pas de produire un joli schéma. Le besoin était de construire une capacité durable à répondre à des questions simples :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quelles applications sont utilisées dans tel établissement ?&lt;/li&gt;
&lt;li&gt;Quels processus métier sont couverts ?&lt;/li&gt;
&lt;li&gt;Quelles applications sont communes à plusieurs sites ?&lt;/li&gt;
&lt;li&gt;Quels flux existent entre le DPI, la GAP, le laboratoire, la pharmacie ou l’imagerie ?&lt;/li&gt;
&lt;li&gt;Où sont hébergées les applications critiques ?&lt;/li&gt;
&lt;li&gt;Quels seraient les impacts si un serveur, une application ou un flux tombait ?&lt;/li&gt;
&lt;li&gt;Quels outils pourraient être mutualisés ?&lt;/li&gt;
&lt;li&gt;Quels points concentrent le plus de risques ?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ces questions paraissent simples. Mais sans cartographie structurée, elles demandent souvent plusieurs mails, plusieurs réunions, des exports manuels et beaucoup de recoupements.&lt;/p&gt;
&lt;h2&gt;
  
  
  Première piste : appliquer une méthode sérieuse de cartographie
&lt;/h2&gt;

&lt;p&gt;Mon premier réflexe a été de chercher un cadre méthodologique solide.&lt;/p&gt;

&lt;p&gt;Je ne voulais pas partir directement dans l’outil. Dans ce type de sujet, c’est tentant de commencer par “quel logiciel choisir ?”. Mais le vrai sujet est plutôt : “qu’est-ce qu’on veut représenter, pour qui, et pour décider quoi ?”.&lt;/p&gt;

&lt;p&gt;Je me suis donc intéressé aux guides de cartographie du SI, notamment dans une logique inspirée des démarches ANSSI : identifier les enjeux, collecter les informations, structurer les objets, produire des vues, maintenir la cartographie dans le temps.&lt;/p&gt;

&lt;p&gt;Cette approche avait beaucoup de sens dans ce contexte. Elle permettait de parler criticité, exposition, dépendances, hébergement, flux, sécurité, continuité d’activité. Elle permettait aussi de sortir d’une vision purement inventaire pour aller vers une vision de gouvernance.&lt;/p&gt;

&lt;p&gt;Dans cette logique, j’ai regardé des outils existants, notamment Mercator, qui propose une approche structurée de cartographie et un méta-modèle intéressant.&lt;/p&gt;

&lt;p&gt;Sur le papier, c’était cohérent.&lt;/p&gt;

&lt;p&gt;Mais sur le terrain, j’ai rencontré une première difficulté : un outil de cartographie détaillée peut être très pertinent pour des architectes, des RSSI ou des équipes techniques, mais il peut être trop dense pour des décideurs qui veulent d’abord comprendre les grands équilibres.&lt;/p&gt;

&lt;p&gt;Les DSI, les directions ou les responsables métier n’ont pas toujours besoin de voir immédiatement tous les objets techniques. Ils ont besoin d’une lecture claire :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quels domaines métier ?&lt;/li&gt;
&lt;li&gt;quels processus ?&lt;/li&gt;
&lt;li&gt;quelles applications ?&lt;/li&gt;
&lt;li&gt;quels sujets de convergence ?&lt;/li&gt;
&lt;li&gt;quels risques majeurs ?&lt;/li&gt;
&lt;li&gt;quelles priorités ?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le premier enseignement a donc été important : une bonne cartographie n’est pas une cartographie exhaustive. C’est une cartographie adaptée à son public.&lt;/p&gt;
&lt;h2&gt;
  
  
  Deuxième piste : produire une vision macro lisible
&lt;/h2&gt;

&lt;p&gt;Après cette première étape, j’ai donc changé d’angle.&lt;/p&gt;

&lt;p&gt;Au lieu de chercher tout de suite la cartographie parfaite, j’ai commencé par produire une vision macro, plus visuelle, plus simple, plus directement compréhensible.&lt;/p&gt;

&lt;p&gt;L’idée était de représenter le SI par grands domaines :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;administratif ;&lt;/li&gt;
&lt;li&gt;clinique ;&lt;/li&gt;
&lt;li&gt;médico-technique ;&lt;/li&gt;
&lt;li&gt;logistique ;&lt;/li&gt;
&lt;li&gt;support ;&lt;/li&gt;
&lt;li&gt;échange de données ;&lt;/li&gt;
&lt;li&gt;cybersécurité ;&lt;/li&gt;
&lt;li&gt;outils techniques.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Puis, dans chaque domaine, de positionner les applications principales, leur rôle, leur criticité, leur statut, et parfois leur dimension multi-établissement.&lt;/p&gt;

&lt;p&gt;Cette approche a eu un vrai effet. Les échanges sont devenus plus simples. Les personnes pouvaient réagir à une vue globale. Elles voyaient immédiatement les trous, les doublons, les dépendances, les applications communes et les différences entre établissements.&lt;/p&gt;

&lt;p&gt;Ce type de carte n’était pas une source de vérité technique. Mais elle jouait un rôle essentiel : créer une représentation partagée.&lt;/p&gt;

&lt;p&gt;Et dans un projet de cartographie, c’est une étape clé. Avant de maintenir une donnée, il faut que les acteurs comprennent pourquoi elle existe. Avant d’avoir une base propre, il faut créer l’envie de la regarder. Avant de parler modèle, il faut créer un langage commun.&lt;/p&gt;

&lt;p&gt;Cette deuxième piste m’a donc permis de réconcilier deux mondes :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;le monde stratégique, qui a besoin de lisibilité ;&lt;/li&gt;
&lt;li&gt;le monde technique, qui a besoin de précision.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mais elle avait aussi ses limites.&lt;/p&gt;

&lt;p&gt;Un schéma Draw.io, même bien fait, reste difficile à maintenir dans le temps. Il peut devenir très utile en comité, mais il devient vite fragile comme référentiel. Dès que les applications changent, que les flux évoluent, que les hébergements bougent, il faut mettre à jour manuellement. Et si la mise à jour dépend d’une seule personne, la cartographie redevient rapidement obsolète.&lt;/p&gt;

&lt;p&gt;Le deuxième enseignement était donc clair : une vue macro est indispensable, mais elle ne suffit pas. Il faut la connecter à une donnée structurée.&lt;/p&gt;
&lt;h2&gt;
  
  
  Troisième piste : créer un outil simple, orienté lecture applicative
&lt;/h2&gt;

&lt;p&gt;C’est là qu’est née l’idée de &lt;code&gt;it-landscape&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Je ne voulais pas construire un énorme outil d’architecture d’entreprise. Je voulais quelque chose de plus simple, plus léger, plus lisible, capable de répondre à un besoin concret : représenter un SI par établissements, domaines, processus, applications et flux.&lt;/p&gt;

&lt;p&gt;Le dépôt &lt;code&gt;it-landscape&lt;/code&gt; est donc né comme un MVP Next.js pour cartographier un système d’information: applications, processus métier, serveurs, VLANs, flux applicatifs et impacts d’incident. Le projet propose notamment une vue métier, une vue applicative, une vue réseau, une vue des flux, une simulation d’incident, une administration des référentiels JSON, ainsi qu’un premier socle de sécurité avec authentification, rôles et audit. (&lt;a href="https://github.com/lquastana/it-landscape" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;L’approche de départ était volontairement pragmatique :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;des fichiers JSON comme base simple ;&lt;/li&gt;
&lt;li&gt;une interface web lisible ;&lt;/li&gt;
&lt;li&gt;des vues par établissement ;&lt;/li&gt;
&lt;li&gt;des filtres par domaine, criticité, hébergement, interface ou caractère multi-établissement ;&lt;/li&gt;
&lt;li&gt;une logique de trigrammes applicatifs ;&lt;/li&gt;
&lt;li&gt;une représentation des flux ;&lt;/li&gt;
&lt;li&gt;une première capacité de simulation d’impact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pourquoi JSON ? Parce que je voulais quelque chose de simple à comprendre, versionnable, diffable, facile à alimenter, facile à corriger, et qui ne nécessite pas immédiatement une base de données complexe.&lt;/p&gt;

&lt;p&gt;Dans un SI, l’objectif n’est pas toujours de faire le plus sophistiqué. Il est souvent plus utile de faire quelque chose que les équipes peuvent comprendre, reprendre, améliorer et maintenir.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;it-landscape&lt;/code&gt; m’a permis de transformer une carte statique en outil vivant.&lt;/p&gt;

&lt;p&gt;Là où un schéma donne une photo, l’outil commence à donner une capacité d’exploration.&lt;/p&gt;

&lt;p&gt;On peut filtrer.&lt;br&gt;
On peut chercher.&lt;br&gt;
On peut relier.&lt;br&gt;
On peut préparer des KPI.&lt;br&gt;
On peut commencer à discuter gouvernance.&lt;br&gt;
On peut identifier les applications critiques.&lt;br&gt;
On peut réfléchir aux impacts.&lt;/p&gt;

&lt;p&gt;Mais assez vite, une nouvelle question est arrivée.&lt;/p&gt;
&lt;h2&gt;
  
  
  La fausse bonne idée : tout mettre dans le même outil
&lt;/h2&gt;

&lt;p&gt;Quand on commence à cartographier, on a envie de tout représenter.&lt;/p&gt;

&lt;p&gt;Les applications.&lt;br&gt;
Les serveurs.&lt;br&gt;
Les VLANs.&lt;br&gt;
Les IPs.&lt;br&gt;
Les flux.&lt;br&gt;
Les bases de données.&lt;br&gt;
Les certificats.&lt;br&gt;
Les sauvegardes.&lt;br&gt;
Les utilisateurs.&lt;br&gt;
Les habilitations.&lt;br&gt;
Les incidents.&lt;br&gt;
Les contrats.&lt;br&gt;
Les coûts.&lt;/p&gt;

&lt;p&gt;Et c’est précisément là que le risque apparaît : transformer un outil lisible en fourre-tout.&lt;/p&gt;

&lt;p&gt;Au début, j’ai naturellement intégré quelques objets d’infrastructure dans &lt;code&gt;it-landscape&lt;/code&gt;. C’était utile pour comprendre les dépendances applicatives. Mais plus j’avançais, plus je voyais une limite : l’infrastructure a déjà ses propres modèles, ses propres objets, ses propres exigences de qualité.&lt;/p&gt;

&lt;p&gt;Un VLAN n’est pas juste une information décorative dans une fiche application.&lt;br&gt;
Une IP doit être unique, historisée, rattachée correctement.&lt;br&gt;
Une VM dépend d’un cluster, d’un host, d’un site, d’interfaces, de tags, parfois de règles d’exploitation.&lt;br&gt;
Un inventaire infra doit pouvoir être automatisé, audité, synchronisé.&lt;/p&gt;

&lt;p&gt;Je me suis alors posé une question structurante :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Est-ce que &lt;code&gt;it-landscape&lt;/code&gt; doit devenir aussi un référentiel d’infrastructure ?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ma réponse actuelle est non.&lt;/p&gt;

&lt;p&gt;Et cette décision est probablement l’une des plus importantes du projet.&lt;/p&gt;
&lt;h2&gt;
  
  
  La rencontre avec NetBox : accepter de spécialiser les outils
&lt;/h2&gt;

&lt;p&gt;Pour l’infrastructure, NetBox est beaucoup plus adapté.&lt;/p&gt;

&lt;p&gt;NetBox est pensé comme une source de vérité infrastructure et réseau : IPAM, DCIM, VLANs, interfaces, équipements, virtualisation, API REST, extensions. Dans mon article précédent, j’expliquais justement pourquoi je préférais spécialiser les rôles : &lt;code&gt;it-landscape&lt;/code&gt; pour les vues applicatives, les flux, les KPI et la lisibilité métier ; NetBox pour l’inventaire infrastructure, les IPs, les VLANs, les clusters, les VMs, les interfaces et les ressources techniques. (&lt;a href="https://dev.to/laurent_quastana/de-rvtools-a-netbox-construire-une-source-de-verite-infra-sans-perdre-la-cartographie-applicative-1k2m"&gt;DEV Community&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;J’ai donc commencé à expérimenter NetBox en interne, avec un déploiement Docker Compose, pour valider rapidement la valeur sans lancer immédiatement un chantier trop lourd.&lt;/p&gt;

&lt;p&gt;Ensuite est venue la question de l’alimentation.&lt;/p&gt;

&lt;p&gt;Pour la partie VMware, plusieurs pistes existaient :&lt;/p&gt;
&lt;h3&gt;
  
  
  Option 1 : l’intégration officielle vCenter
&lt;/h3&gt;

&lt;p&gt;Intéressante, mais pas forcément adaptée à mon contexte immédiat, notamment parce que certaines capacités avancées s’adressent plutôt à des offres NetBox Cloud ou Enterprise.&lt;/p&gt;
&lt;h3&gt;
  
  
  Option 2 : &lt;code&gt;netbox-sync&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Très intéressante aussi. C’est une approche plus durable pour synchroniser différentes sources vers NetBox, notamment VMware.&lt;/p&gt;
&lt;h3&gt;
  
  
  Option 3 : RVTools + API NetBox
&lt;/h3&gt;

&lt;p&gt;C’est finalement l’approche que j’ai retenue pour démarrer.&lt;/p&gt;

&lt;p&gt;Pourquoi ? Parce que je voulais comprendre le modèle de données avant d’automatiser trop vite.&lt;/p&gt;

&lt;p&gt;Je voulais voir comment mapper les datacenters, les clusters, les hosts, les VMs, les interfaces, les VLANs et les IPs. Je voulais contrôler ce que j’importais, éviter de polluer NetBox avec trop d’informations inutiles, et corriger progressivement les erreurs.&lt;/p&gt;

&lt;p&gt;Dans mon article précédent, je détaillais cette approche : exporter les données depuis RVTools, puis les pousser dans NetBox via l’API REST avec PowerShell, afin de garder la main sur les champs importés, la correspondance entre datacenters, sites et clusters, la création des VLANs, le rattachement des IPs, les commentaires enrichis et la logique de mise à jour. (&lt;a href="https://dev.to/laurent_quastana/de-rvtools-a-netbox-construire-une-source-de-verite-infra-sans-perdre-la-cartographie-applicative-1k2m"&gt;DEV Community&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Cette étape a été très formatrice.&lt;/p&gt;

&lt;p&gt;Elle m’a confirmé qu’il ne fallait pas opposer cartographie applicative et inventaire infrastructure. Il faut les articuler.&lt;/p&gt;
&lt;h2&gt;
  
  
  Le modèle cible : deux niveaux, deux outils, une cohérence
&lt;/h2&gt;

&lt;p&gt;Aujourd’hui, ma vision est beaucoup plus claire.&lt;/p&gt;

&lt;p&gt;Je ne cherche plus à faire un outil unique qui fait tout. Je cherche à connecter des référentiels spécialisés.&lt;/p&gt;

&lt;p&gt;Dans cette logique :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NetBox = vérité infrastructure
it-landscape = lecture applicative et gouvernance SI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;NetBox porte les objets techniques :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sites
Clusters
Hosts
VMs
Interfaces
IPs
VLANs
Ressources techniques
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;it-landscape&lt;/code&gt; porte la lecture SI :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Établissements
Domaines métier
Processus
Applications
Flux inter-applicatifs
KPI
Statuts
Criticités
Dépendances fonctionnelles
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;À terme, une application dans &lt;code&gt;it-landscape&lt;/code&gt; pourrait pointer vers ses ressources NetBox :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application métier
├── Domaine métier
├── Processus couvert
├── Flux applicatifs
├── Criticité
├── KPI / statut / documentation
└── Ressources infra liées dans NetBox
    ├── VM
    ├── IP
    ├── VLAN
    └── Cluster
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;C’est cette séparation qui me semble saine.&lt;/p&gt;

&lt;p&gt;Elle permet de garder NetBox propre, orienté infrastructure.&lt;br&gt;
Elle permet de garder &lt;code&gt;it-landscape&lt;/code&gt; lisible, orienté métier et gouvernance.&lt;br&gt;
Et elle permet de connecter les deux mondes sans les confondre.&lt;/p&gt;

&lt;p&gt;Le dépôt &lt;code&gt;it-landscape&lt;/code&gt; prévoit déjà cette logique : quand &lt;code&gt;NETBOX_URL&lt;/code&gt; et &lt;code&gt;NETBOX_TOKEN&lt;/code&gt; sont définis, les endpoints infrastructure et réseau peuvent lire NetBox comme source de vérité, et un script permet de peupler NetBox depuis les JSON locaux pour une démonstration. (&lt;a href="https://github.com/lquastana/it-landscape" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;
  
  
  Les problèmes rencontrés
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. La donnée existe, mais elle n’est pas fiable partout
&lt;/h3&gt;

&lt;p&gt;Le premier problème n’est pas l’outil. C’est la qualité de donnée.&lt;/p&gt;

&lt;p&gt;Une application peut avoir plusieurs noms selon les équipes.&lt;br&gt;
Un serveur peut être connu par son hostname, son alias, son rôle applicatif ou son IP.&lt;br&gt;
Un flux peut être documenté côté EAI, mais pas côté application.&lt;br&gt;
Un hébergement peut être connu globalement, mais pas qualifié précisément.&lt;/p&gt;

&lt;p&gt;La cartographie oblige à normaliser.&lt;/p&gt;

&lt;p&gt;Il faut des identifiants.&lt;br&gt;
Des conventions de nommage.&lt;br&gt;
Des statuts.&lt;br&gt;
Des niveaux de criticité.&lt;br&gt;
Des propriétaires.&lt;br&gt;
Des règles de mise à jour.&lt;/p&gt;

&lt;p&gt;Sans ça, on ne construit pas une source de vérité. On construit un nouvel Excel plus joli.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Les publics n’ont pas les mêmes attentes
&lt;/h3&gt;

&lt;p&gt;Un DSI veut une vision synthétique.&lt;/p&gt;

&lt;p&gt;Un RSSI veut voir les risques, les expositions, les criticités.&lt;/p&gt;

&lt;p&gt;Un ingénieur système veut retrouver une VM, une IP, un VLAN, un cluster.&lt;/p&gt;

&lt;p&gt;Un chef de projet veut comprendre les dépendances applicatives.&lt;/p&gt;

&lt;p&gt;Un métier veut savoir à quoi sert l’application et qui contacter.&lt;/p&gt;

&lt;p&gt;Le piège serait de vouloir répondre à tout le monde avec la même vue.&lt;/p&gt;

&lt;p&gt;J’ai appris qu’il fallait accepter plusieurs niveaux de lecture :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;macro pour décider ;&lt;/li&gt;
&lt;li&gt;applicatif pour comprendre ;&lt;/li&gt;
&lt;li&gt;technique pour exploiter ;&lt;/li&gt;
&lt;li&gt;sécurité pour prioriser ;&lt;/li&gt;
&lt;li&gt;gouvernance pour maintenir.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. L’exhaustivité peut tuer l’adoption
&lt;/h3&gt;

&lt;p&gt;Au début, on veut tout cartographier.&lt;/p&gt;

&lt;p&gt;Mais plus on ajoute de champs, plus on rend la contribution difficile. Et si contribuer devient difficile, la cartographie n’est plus maintenue.&lt;/p&gt;

&lt;p&gt;J’ai donc préféré une logique progressive :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;cartographier les objets utiles ;&lt;/li&gt;
&lt;li&gt;stabiliser les conventions ;&lt;/li&gt;
&lt;li&gt;valider avec les équipes ;&lt;/li&gt;
&lt;li&gt;automatiser ce qui peut l’être ;&lt;/li&gt;
&lt;li&gt;enrichir ensuite.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;La cartographie doit produire de la valeur rapidement. Sinon, elle devient un chantier permanent sans usage réel.&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Le vrai sujet est la gouvernance
&lt;/h3&gt;

&lt;p&gt;Un outil ne maintient pas une cartographie à lui seul.&lt;/p&gt;

&lt;p&gt;Il faut savoir :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;qui est responsable de la donnée ;&lt;/li&gt;
&lt;li&gt;qui valide une modification ;&lt;/li&gt;
&lt;li&gt;à quelle fréquence on revoit les informations ;&lt;/li&gt;
&lt;li&gt;quels contrôles de cohérence sont faits ;&lt;/li&gt;
&lt;li&gt;comment on arbitre les doublons ;&lt;/li&gt;
&lt;li&gt;comment on intègre les nouveaux projets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dans mon cheminement, la cartographie est progressivement devenue moins un sujet documentaire et plus un sujet de gouvernance SI.&lt;/p&gt;
&lt;h2&gt;
  
  
  Ce que &lt;code&gt;it-landscape&lt;/code&gt; apporte aujourd’hui
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;it-landscape&lt;/code&gt; est encore un projet jeune, mais il porte une idée simple : rendre la cartographie SI plus accessible, plus lisible et plus actionnable, notamment dans un contexte où les moyens sont limités mais les enjeux très forts.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, l’outil propose notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;une vue métier par établissement, domaine, processus et application ;&lt;/li&gt;
&lt;li&gt;une vue applicative regroupée par trigramme ;&lt;/li&gt;
&lt;li&gt;une vue réseau avec VLANs, réseaux, passerelles et serveurs ;&lt;/li&gt;
&lt;li&gt;une vue des flux applicatifs ;&lt;/li&gt;
&lt;li&gt;une simulation d’impact en cas d’indisponibilité d’un serveur, d’une application ou d’un flux ;&lt;/li&gt;
&lt;li&gt;une administration des référentiels JSON ;&lt;/li&gt;
&lt;li&gt;des imports Excel ;&lt;/li&gt;
&lt;li&gt;une gestion des habilitations ;&lt;/li&gt;
&lt;li&gt;un socle RBAC avec rôles &lt;code&gt;viewer&lt;/code&gt;, &lt;code&gt;editor&lt;/code&gt;, &lt;code&gt;admin&lt;/code&gt; ;&lt;/li&gt;
&lt;li&gt;un journal d’audit local des écritures et exports. (&lt;a href="https://github.com/lquastana/it-landscape" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce n’est pas un outil magique.&lt;br&gt;
Ce n’est pas un remplaçant de NetBox.&lt;br&gt;
Ce n’est pas un EAM complet.&lt;br&gt;
Ce n’est pas une CMDB universelle.&lt;/p&gt;

&lt;p&gt;C’est un outil volontairement pragmatique, pensé pour répondre à un besoin concret : donner une lecture claire d’un SI applicatif, de ses flux, de ses dépendances et de ses impacts.&lt;/p&gt;
&lt;h2&gt;
  
  
  Ce que je retiens de ce cheminement
&lt;/h2&gt;

&lt;p&gt;Le premier enseignement, c’est qu’une cartographie utile n’est pas forcément la plus complète. C’est celle qui aide réellement à décider, exploiter, sécuriser ou transformer.&lt;/p&gt;

&lt;p&gt;Le deuxième, c’est qu’il faut séparer les responsabilités des outils. Un outil de gouvernance applicative ne doit pas devenir une CMDB infrastructure. Une source de vérité infrastructure ne doit pas devenir un fourre-tout métier.&lt;/p&gt;

&lt;p&gt;Le troisième, c’est que la donnée doit être structurée, mais l’expérience utilisateur doit rester simple. Si la cartographie n’est compréhensible que par celui qui l’a construite, elle ne sert pas assez.&lt;/p&gt;

&lt;p&gt;Le quatrième, c’est que le cheminement compte autant que le résultat. Dans mon cas, je suis passé par plusieurs étapes :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Constat terrain
→ besoin de visibilité
→ étude méthodologique
→ première approche structurée
→ difficulté d’adhésion côté décideurs
→ vue macro Draw.io
→ besoin de données maintenables
→ création de it-landscape
→ question de l’infrastructure
→ expérimentation NetBox
→ import RVTools + API
→ séparation claire des responsabilités
→ trajectoire d’intégration entre référentiels
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Et finalement, ce cheminement m’a amené à une conviction simple :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;La cartographie SI ne doit pas être un document.&lt;br&gt;
Elle doit devenir un système vivant d’aide à la décision.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Pourquoi je publie le repo
&lt;/h2&gt;

&lt;p&gt;J’ai publié &lt;code&gt;it-landscape&lt;/code&gt; parce que je pense que beaucoup d’équipes SI, notamment dans les hôpitaux, les collectivités, les structures publiques ou les organisations multi-sites, rencontrent les mêmes problèmes.&lt;/p&gt;

&lt;p&gt;On a souvent besoin d’un outil simple pour commencer.&lt;br&gt;
Pas forcément d’une grosse plateforme.&lt;br&gt;
Pas forcément d’un projet à six mois.&lt;br&gt;
Pas forcément d’un référentiel parfait.&lt;/p&gt;

&lt;p&gt;Juste un socle pour représenter les applications, les processus, les flux, les dépendances et commencer à produire une vision partagée.&lt;/p&gt;

&lt;p&gt;Le projet est open source, sous licence MIT, et disponible sur GitHub. Le dépôt contient également une documentation, une démo guidée, une architecture, une roadmap, des tests, un Dockerfile, un Docker Compose et une première intégration NetBox. (&lt;a href="https://github.com/lquastana/it-landscape" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Si le sujet vous parle, vous pouvez :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tester le projet ;&lt;/li&gt;
&lt;li&gt;l’adapter à votre contexte ;&lt;/li&gt;
&lt;li&gt;proposer des idées ;&lt;/li&gt;
&lt;li&gt;ouvrir des issues ;&lt;/li&gt;
&lt;li&gt;contribuer ;&lt;/li&gt;
&lt;li&gt;ou simplement mettre une étoile au repo pour soutenir la démarche.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L’objectif n’est pas de vendre une solution miracle.&lt;br&gt;
L’objectif est de partager un retour d’expérience et de construire progressivement un outil utile, sobre et compréhensible.&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Ce travail de cartographie m’a appris qu’un SI ne se comprend pas depuis un seul angle.&lt;/p&gt;

&lt;p&gt;Il faut la vision métier.&lt;br&gt;
Il faut la vision applicative.&lt;br&gt;
Il faut la vision flux.&lt;br&gt;
Il faut la vision infrastructure.&lt;br&gt;
Il faut la vision sécurité.&lt;br&gt;
Et surtout, il faut réussir à faire dialoguer ces visions.&lt;/p&gt;

&lt;p&gt;Mon approche actuelle repose donc sur un principe simple :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ne pas tout fusionner.
Connecter les bons référentiels.
Garder chaque outil dans son rôle.
Faire simple, utile, maintenable.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;it-landscape&lt;/code&gt; est ma contribution à cette approche : un outil léger pour rendre la cartographie applicative plus lisible, plus vivante et plus proche des besoins de gouvernance SI.&lt;/p&gt;

&lt;p&gt;La suite logique sera de renforcer l’intégration avec NetBox, d’améliorer les vues d’impact, de consolider les KPI, et de continuer à rapprocher la cartographie applicative de la réalité opérationnelle du terrain.&lt;/p&gt;

&lt;p&gt;Parce qu’au fond, une bonne cartographie n’est pas celle qu’on imprime une fois par an.&lt;/p&gt;

&lt;p&gt;C’est celle qu’on utilise quand il faut décider, diagnostiquer, sécuriser, mutualiser ou expliquer.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>De RVTools à NetBox : Construire une source de vérité infra sans perdre la cartographie applicative</title>
      <dc:creator>Laurent Quastana</dc:creator>
      <pubDate>Tue, 28 Apr 2026 08:08:44 +0000</pubDate>
      <link>https://dev.to/laurent_quastana/de-rvtools-a-netbox-construire-une-source-de-verite-infra-sans-perdre-la-cartographie-applicative-1k2m</link>
      <guid>https://dev.to/laurent_quastana/de-rvtools-a-netbox-construire-une-source-de-verite-infra-sans-perdre-la-cartographie-applicative-1k2m</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Dans beaucoup d’environnements SI, la documentation d’infrastructure finit par se disperser : un peu dans vCenter, un peu dans des fichiers Excel, un peu dans des schémas, un peu dans la tête des équipes.&lt;/p&gt;

&lt;p&gt;C’est encore plus vrai dans un contexte où l’on doit composer avec des applications critiques, des flux inter-applicatifs, des contraintes d’exploitation, des VLANs, des sauvegardes, des dépendances éditeurs et des périmètres parfois historiques.&lt;/p&gt;

&lt;p&gt;Dans cette logique, j’ai commencé à structurer une cartographie applicative avec mon outil &lt;code&gt;it-landscape&lt;/code&gt;, un tableau de bord léger basé sur JSON pour représenter des domaines, processus et applications d’un établissement de santé. (&lt;a href="https://github.com/lquastana/it-lanscape?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Mais assez vite, une question s’est posée :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Est-ce que mon outil doit aussi devenir un référentiel d’infrastructure ?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ma réponse actuelle : &lt;strong&gt;non&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Je préfère spécialiser les outils :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;it-landscape&lt;/code&gt; pour les vues applicatives, les flux, les KPI et la lisibilité métier ;&lt;/li&gt;
&lt;li&gt;NetBox pour l’inventaire infrastructure, IPAM, VLANs, clusters, VMs, interfaces et ressources techniques.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NetBox est justement conçu comme une source de vérité réseau et infrastructure, en combinant notamment IPAM, DCIM, API REST et extensions. (&lt;a href="https://netboxlabs.com/docs/netbox/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;netboxlabs.com&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi NetBox ?
&lt;/h2&gt;

&lt;p&gt;NetBox n’est pas seulement un inventaire. C’est une base structurée pour documenter et automatiser l’infrastructure.&lt;/p&gt;

&lt;p&gt;Dans mon cas, les objets utiles étaient notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les sites ;&lt;/li&gt;
&lt;li&gt;les clusters VMware ;&lt;/li&gt;
&lt;li&gt;les hôtes ESXi ;&lt;/li&gt;
&lt;li&gt;les machines virtuelles ;&lt;/li&gt;
&lt;li&gt;les interfaces ;&lt;/li&gt;
&lt;li&gt;les adresses IP ;&lt;/li&gt;
&lt;li&gt;les VLANs ;&lt;/li&gt;
&lt;li&gt;les relations VM → cluster → site ;&lt;/li&gt;
&lt;li&gt;les commentaires techniques issus des exports.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L’objectif n’était pas de faire un simple import ponctuel, mais de commencer à bâtir une base propre, réutilisable et exploitable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Déploiement interne via Docker Compose
&lt;/h2&gt;

&lt;p&gt;Pour démarrer rapidement, j’ai choisi un déploiement interne de NetBox via Docker Compose.&lt;/p&gt;

&lt;p&gt;Le dépôt &lt;code&gt;netbox-docker&lt;/code&gt; fournit les composants nécessaires pour construire et exécuter NetBox sous forme de conteneurs ; il s’agit d’un projet maintenu par la communauté NetBox. (&lt;a href="https://github.com/netbox-community/netbox-docker?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;L’approche Docker Compose est intéressante pour un premier socle interne :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;déploiement rapide ;&lt;/li&gt;
&lt;li&gt;dépendances maîtrisées ;&lt;/li&gt;
&lt;li&gt;PostgreSQL et Redis intégrés ;&lt;/li&gt;
&lt;li&gt;possibilité de versionner la configuration ;&lt;/li&gt;
&lt;li&gt;facilité de reconstruction en environnement de test.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dans mon contexte, cela permettait de valider rapidement la valeur de NetBox sans lancer immédiatement un chantier d’industrialisation lourd.&lt;/p&gt;

&lt;h2&gt;
  
  
  La question de l’inventaire VMware
&lt;/h2&gt;

&lt;p&gt;Une fois NetBox déployé, le vrai sujet devient l’alimentation des données.&lt;/p&gt;

&lt;p&gt;Pour la virtualisation VMware, plusieurs options existent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 1 : intégration officielle vCenter
&lt;/h3&gt;

&lt;p&gt;NetBox Labs propose une intégration VMware vCenter permettant de synchroniser des données vCenter vers NetBox, notamment pour réduire la saisie manuelle et la dérive documentaire. (&lt;a href="https://netboxlabs.com/docs/integrations/platform-integrations/vmware-vcenter/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;netboxlabs.com&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Cette intégration est intéressante, mais elle s’adresse au périmètre NetBox Cloud / Enterprise avec NetBox Assurance. (&lt;a href="https://netboxlabs.com/blog/announcing-general-availability-of-the-vmware-vcenter-integration-for-netbox-enterprise-and-netbox-cloud/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;netboxlabs.com&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Dans un contexte NetBox Community auto-hébergé, ce n’était donc pas l’option la plus directe pour moi.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 2 : netbox-sync
&lt;/h3&gt;

&lt;p&gt;En open source, une alternative intéressante existe : &lt;code&gt;bb-Ricardo/netbox-sync&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Le projet permet de synchroniser des objets depuis différentes sources vers NetBox, notamment VMware vCenter et des inventaires Redfish. (&lt;a href="https://github.com/bb-ricardo/netbox-sync?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;C’est probablement l’une des pistes les plus propres si l’on veut une synchronisation plus durable entre vCenter et NetBox.&lt;/p&gt;

&lt;p&gt;Mais dans mon cas, je voulais d’abord comprendre le modèle de données, contrôler les mappings et éviter de pousser trop d’informations trop vite.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 3 : RVTools + API NetBox
&lt;/h3&gt;

&lt;p&gt;J’ai donc choisi une approche plus progressive :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;exporter les données depuis RVTools, puis les pousser dans NetBox via l’API REST avec PowerShell.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ce choix m’a permis de garder la main sur :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les champs réellement importés ;&lt;/li&gt;
&lt;li&gt;la correspondance entre datacenters, sites et clusters ;&lt;/li&gt;
&lt;li&gt;la création des VLANs ;&lt;/li&gt;
&lt;li&gt;le rattachement des IPs ;&lt;/li&gt;
&lt;li&gt;les commentaires enrichis ;&lt;/li&gt;
&lt;li&gt;la logique de mise à jour ;&lt;/li&gt;
&lt;li&gt;la correction progressive des erreurs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ce que j’ai importé en premier
&lt;/h2&gt;

&lt;p&gt;Je suis parti d’un export RVTools complet, mais je n’ai pas tout importé directement.&lt;/p&gt;

&lt;p&gt;Les premiers fichiers réellement utiles ont été :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RVTools_tabvInfo.csv
RVTools_tabvHost.csv
RVTools_tabvCluster.csv
RVTools_tabvNIC.csv
RVTools_tabvDatastore.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le premier socle importé dans NetBox couvre :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les sites ;&lt;/li&gt;
&lt;li&gt;les clusters VMware ;&lt;/li&gt;
&lt;li&gt;les hosts ESXi ;&lt;/li&gt;
&lt;li&gt;les interfaces physiques ESXi ;&lt;/li&gt;
&lt;li&gt;les VMs ;&lt;/li&gt;
&lt;li&gt;les interfaces VM ;&lt;/li&gt;
&lt;li&gt;les VLANs ;&lt;/li&gt;
&lt;li&gt;les IPs primaires ;&lt;/li&gt;
&lt;li&gt;les datastores en commentaires de cluster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le résultat obtenu :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hosts ESXi créés / MAJ        : X
Interfaces ESXi créées / MAJ  : X
VMs créées / MAJ              : X
Interfaces VM créées / MAJ    : X
VLANs créés / réutilisés      : X
IPs primaires traitées        : X
Templates ignorés             : X
Lignes vides ignorées         : X
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;À ce stade, NetBox devient déjà utile : on peut rechercher une VM, voir son IP, son VLAN, son cluster, son hôte ESXi d’origine, son OS et ses informations de contexte.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi ne pas tout mettre dans NetBox ?
&lt;/h2&gt;

&lt;p&gt;C’est un point important.&lt;/p&gt;

&lt;p&gt;NetBox doit rester une source de vérité infrastructure. Il ne doit pas devenir un fourre-tout applicatif.&lt;/p&gt;

&lt;p&gt;Par exemple, certaines informations RVTools sont intéressantes pour l’audit, mais pas forcément comme objets natifs NetBox :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;snapshots ;&lt;/li&gt;
&lt;li&gt;VMware Tools obsolètes ;&lt;/li&gt;
&lt;li&gt;ISO montées ;&lt;/li&gt;
&lt;li&gt;USB connectés ;&lt;/li&gt;
&lt;li&gt;alertes RVTools ;&lt;/li&gt;
&lt;li&gt;détails fins des partitions ;&lt;/li&gt;
&lt;li&gt;détails des disques VMDK ;&lt;/li&gt;
&lt;li&gt;licences ;&lt;/li&gt;
&lt;li&gt;multipath ;&lt;/li&gt;
&lt;li&gt;HBA.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ces données peuvent être utiles, mais plutôt sous forme de :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tags ;&lt;/li&gt;
&lt;li&gt;commentaires ;&lt;/li&gt;
&lt;li&gt;journal entries ;&lt;/li&gt;
&lt;li&gt;rapports d’audit ;&lt;/li&gt;
&lt;li&gt;custom fields ciblés.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L’objectif est d’éviter de polluer le référentiel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Articulation avec it-landscape
&lt;/h2&gt;

&lt;p&gt;Mon idée pour la suite est de faire évoluer &lt;code&gt;it-landscape&lt;/code&gt; vers un outil plus spécialisé sur la vision applicative.&lt;/p&gt;

&lt;p&gt;Je souhaite conserver dans &lt;code&gt;it-landscape&lt;/code&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les vues applicatives ;&lt;/li&gt;
&lt;li&gt;les domaines métier ;&lt;/li&gt;
&lt;li&gt;les processus ;&lt;/li&gt;
&lt;li&gt;les flux inter-applicatifs ;&lt;/li&gt;
&lt;li&gt;les KPI ;&lt;/li&gt;
&lt;li&gt;les statuts applicatifs ;&lt;/li&gt;
&lt;li&gt;les liens vers la documentation ;&lt;/li&gt;
&lt;li&gt;les dépendances fonctionnelles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et déléguer à NetBox :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les VMs ;&lt;/li&gt;
&lt;li&gt;les IPs ;&lt;/li&gt;
&lt;li&gt;les VLANs ;&lt;/li&gt;
&lt;li&gt;les clusters ;&lt;/li&gt;
&lt;li&gt;les hosts ;&lt;/li&gt;
&lt;li&gt;les interfaces ;&lt;/li&gt;
&lt;li&gt;les ressources techniques ;&lt;/li&gt;
&lt;li&gt;les informations d’infrastructure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L’idée n’est donc pas de remplacer NetBox, mais de s’y connecter.&lt;/p&gt;

&lt;p&gt;À terme, une application dans &lt;code&gt;it-landscape&lt;/code&gt; pourrait pointer vers les objets NetBox correspondants :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application métier
  ├── Flux applicatifs
  ├── KPI
  ├── Statut métier
  └── Ressources infra liées dans NetBox
        ├── VM
        ├── IP
        ├── VLAN
        └── Cluster
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cela permet de séparer proprement deux niveaux :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NetBox       = vérité infrastructure
it-landscape = lecture applicative et gouvernance SI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Ce que je retiens
&lt;/h2&gt;

&lt;p&gt;Cette expérimentation confirme plusieurs choses.&lt;/p&gt;

&lt;p&gt;D’abord, NetBox prend rapidement de la valeur dès qu’il est alimenté avec un minimum de données propres.&lt;/p&gt;

&lt;p&gt;Ensuite, l’API REST est suffisamment simple pour permettre une intégration progressive, sans forcément attendre une solution complète de synchronisation.&lt;/p&gt;

&lt;p&gt;Enfin, partir de RVTools est une bonne approche pragmatique pour amorcer le référentiel, surtout lorsque l’on veut comprendre les données avant d’automatiser davantage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;La cartographie ne peut pas être uniquement applicative, ni uniquement technique.&lt;/p&gt;

&lt;p&gt;Il faut les deux.&lt;/p&gt;

&lt;p&gt;NetBox apporte une base solide pour l’infrastructure.&lt;br&gt;
Un outil comme &lt;code&gt;it-landscape&lt;/code&gt; peut rester concentré sur la lecture applicative, les flux, les KPI et la gouvernance.&lt;/p&gt;

&lt;p&gt;Le bon équilibre n’est donc pas de tout fusionner, mais de connecter les bons référentiels entre eux.&lt;/p&gt;

&lt;p&gt;Pour moi, cette première étape RVTools → PowerShell → API NetBox est surtout une manière pragmatique de poser les fondations :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;commencer simple, importer proprement, comprendre le modèle, puis automatiser progressivement.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>infrastructure</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Revenir aux bases du DevOps avec une stack simple</title>
      <dc:creator>Laurent Quastana</dc:creator>
      <pubDate>Fri, 17 Apr 2026 21:58:07 +0000</pubDate>
      <link>https://dev.to/laurent_quastana/revenir-aux-bases-du-devops-avec-une-stack-simple-4i0m</link>
      <guid>https://dev.to/laurent_quastana/revenir-aux-bases-du-devops-avec-une-stack-simple-4i0m</guid>
      <description>&lt;p&gt;On parle souvent du DevOps avec beaucoup d’outils et de concepts.&lt;br&gt;&lt;br&gt;
Mais dans la pratique, le besoin de départ est souvent plus simple : &lt;strong&gt;préparer des serveurs Linux de façon propre, homogène et reproductible&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;C’est l’idée derrière mon projet :&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/lquastana/minimal-linux-ops-stack" rel="noopener noreferrer"&gt;minimal-linux-ops-stack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Je n’ai pas cherché à construire une grosse plateforme. L’objectif est plus modeste : poser une base simple pour automatiser la configuration initiale de serveurs Linux avec Ansible, dans une logique claire et facile à reprendre.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi ce projet
&lt;/h2&gt;

&lt;p&gt;Avec le temps, on voit souvent apparaître les mêmes problèmes : des serveurs configurés un peu à la main, des différences entre machines, des ajustements faits dans l’urgence, et au final peu de visibilité sur l’existant.&lt;/p&gt;

&lt;p&gt;Au début, ça fonctionne.&lt;br&gt;&lt;br&gt;
Puis on finit par se demander :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ce qui a vraiment été configuré,&lt;/li&gt;
&lt;li&gt;si les serveurs sont alignés,&lt;/li&gt;
&lt;li&gt;et si on serait capable de reconstruire la même base proprement ailleurs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est précisément à ce niveau qu’une approche DevOps simple apporte déjà de la valeur.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pour moi, les bases du DevOps, c’est ça
&lt;/h2&gt;

&lt;p&gt;Avant les grosses chaînes d’outils, je retiens surtout quelques principes :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;décrire l’infrastructure dans du code,&lt;/li&gt;
&lt;li&gt;éviter les actions manuelles répétées,&lt;/li&gt;
&lt;li&gt;pouvoir rejouer une configuration proprement,&lt;/li&gt;
&lt;li&gt;intégrer un minimum de sécurité dès le départ.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dit autrement : avoir une base claire, versionnée et répétable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ce que contient la stack
&lt;/h2&gt;

&lt;p&gt;Le projet repose sur des briques simples :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ansible&lt;/strong&gt; pour décrire la configuration,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gitea&lt;/strong&gt; pour stocker le code,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semaphore UI&lt;/strong&gt; pour lancer les playbooks,&lt;/li&gt;
&lt;li&gt;et une cible Linux de démonstration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La baseline actuelle couvre des besoins de base mais utiles :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;installation de paquets communs,&lt;/li&gt;
&lt;li&gt;configuration du fuseau horaire,&lt;/li&gt;
&lt;li&gt;création éventuelle d’un utilisateur admin,&lt;/li&gt;
&lt;li&gt;hardening SSH,&lt;/li&gt;
&lt;li&gt;désactivation du login root direct,&lt;/li&gt;
&lt;li&gt;authentification par clé plutôt que par mot de passe.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce n’est pas spectaculaire, mais c’est justement le but : faire simple, propre et utile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi ce sujet me parle
&lt;/h2&gt;

&lt;p&gt;Dans mon parcours, j’ai travaillé sur des environnements où la stabilité, la traçabilité et la fiabilité comptent beaucoup, notamment dans le domaine hospitalier.&lt;/p&gt;

&lt;p&gt;Ce type de contexte m’a appris qu’on ne manque pas toujours d’outils. On manque souvent surtout de standardisation, de visibilité et de bases propres.&lt;/p&gt;

&lt;p&gt;C’est pour ça que j’aime les approches progressives : avant de vouloir tout industrialiser, il y a déjà beaucoup de valeur à poser un socle clair.&lt;/p&gt;

&lt;h2&gt;
  
  
  Idées d’évolution
&lt;/h2&gt;

&lt;p&gt;La suite logique serait d’aller un peu plus loin, tout en gardant l’esprit simple du projet :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;renforcer la sécurité de base,&lt;/li&gt;
&lt;li&gt;mieux gérer la dérive dans le temps,&lt;/li&gt;
&lt;li&gt;ajouter plus de contrôles automatiques,&lt;/li&gt;
&lt;li&gt;intégrer un peu d’observabilité.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L’idée n’est pas de grossir pour grossir, mais d’améliorer la cohérence du socle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Je vois ce projet comme une base saine, pas comme une plateforme complète.&lt;/p&gt;

&lt;p&gt;Une manière simple de :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;versionner une configuration,&lt;/li&gt;
&lt;li&gt;automatiser une baseline,&lt;/li&gt;
&lt;li&gt;réduire les écarts manuels,&lt;/li&gt;
&lt;li&gt;et rendre l’exploitation plus lisible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce n’est pas révolutionnaire, mais c’est utile.&lt;br&gt;&lt;br&gt;
Et souvent, c’est déjà une bonne façon de faire du DevOps.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>ansible</category>
      <category>sysadmin</category>
    </item>
    <item>
      <title>Sécuriser HL7/MLLP avec Stunnel (mTLS)</title>
      <dc:creator>Laurent Quastana</dc:creator>
      <pubDate>Mon, 07 Jul 2025 14:37:18 +0000</pubDate>
      <link>https://dev.to/laurent_quastana/securiser-hl7mllp-avec-stunnel-mtls-46b4</link>
      <guid>https://dev.to/laurent_quastana/securiser-hl7mllp-avec-stunnel-mtls-46b4</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Vous échangez des flux HL7 en clair entre EAI et DPI ?&lt;br&gt;
Voici comment les sécuriser avec TLS mutuel sans toucher au code source, en 4 commandes et un Docker Compose.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🌍 Contexte
&lt;/h2&gt;

&lt;p&gt;Les messages HL7 sont souvent véhiculés via MLLP (Minimal Lower Layer Protocol)… sans chiffrement.&lt;br&gt;
C’est encore toléré dans certains SIH, mais difficilement défendable en 2025 :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exposition des données patients (PHI) en clair&lt;/li&gt;
&lt;li&gt;Absence d’authentification forte entre systèmes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alors comment ajouter une &lt;strong&gt;couche TLS mutuelle&lt;/strong&gt; sans casser un lien MLLP existant ?&lt;br&gt;
Réponse : &lt;strong&gt;Stunnel + Docker&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Objectif du projet
&lt;/h2&gt;

&lt;p&gt;Le dépôt &lt;a href="https://github.com/lquastana/mllp-safetunnel" rel="noopener noreferrer"&gt;&lt;code&gt;mllp-safetunnel&lt;/code&gt;&lt;/a&gt; fournit un environnement de test pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;encapsuler HL7/MLLP en TLS (avec &lt;strong&gt;authentification mutuelle&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;simuler&lt;/strong&gt; des flux EAI ⇄ DPI via deux conteneurs Docker&lt;/li&gt;
&lt;li&gt;tester la réception, les ACKs, et l’interopérabilité&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎯 Sans changer le code du DPI ou de l’EAI.&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Contenu du dépôt
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Répertoire / fichier&lt;/th&gt;
&lt;th&gt;Rôle&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;eai/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Dockerfile + scripts Python simulant l’envoi HL7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dpi/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Idem côté DPI (réception + retour)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stunnel/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Certificats X.509 de test + script &lt;code&gt;gen-certs.sh&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Orchestration complète&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docs/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Diagrammes, bonnes pratiques sécurité, cheatsheets HL7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Les conteneurs utilisent deux réseaux internes (net_eai, net_dpi).&lt;br&gt;
Seuls les &lt;strong&gt;ports TLS (32100, 32200)&lt;/strong&gt; sont exposés à l’hôte.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Prérequis
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docker ≥ 24.0&lt;/li&gt;
&lt;li&gt;Docker Compose v2&lt;/li&gt;
&lt;li&gt;OpenSSL (si vous régénérez les certificats)&lt;/li&gt;
&lt;li&gt;Ports TCP disponibles : &lt;code&gt;32100&lt;/code&gt;, &lt;code&gt;32200&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔧 Démarrage rapide
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Cloner le dépôt&lt;/span&gt;
git clone https://github.com/votre_org/mllp-safetunnel.git
&lt;span class="nb"&gt;cd &lt;/span&gt;mllp-safetunnel

&lt;span class="c"&gt;# 2. (Optionnel) régénérer les certificats&lt;/span&gt;
./stunnel/gen-certs.sh

&lt;span class="c"&gt;# 3. Lancer l’environnement&lt;/span&gt;
docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;

&lt;span class="c"&gt;# 4. Suivre les logs&lt;/span&gt;
docker compose logs &lt;span class="nt"&gt;-f&lt;/span&gt; eai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Des messages HL7 (MDM^T02, ADT^A01) sont simulés toutes les 20 secondes, avec accusé de réception (ACK).&lt;/p&gt;




&lt;h2&gt;
  
  
  📡 Détail des tunnels Stunnel
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔁 EAI → DPI (client TLS)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Étape&lt;/th&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Protocole&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Envoi MLLP clair&lt;/td&gt;
&lt;td&gt;&lt;code&gt;21010&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tunnel TLS sortant&lt;/td&gt;
&lt;td&gt;&lt;code&gt;32100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TLS mutuel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redirection vers DPI (clair)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;21010&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TCP interne&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🔁 DPI → EAI (retour)
&lt;/h3&gt;

&lt;p&gt;Même logique, avec les ports &lt;code&gt;22010&lt;/code&gt; (clair) → &lt;code&gt;32200&lt;/code&gt; (TLS) → &lt;code&gt;22010&lt;/code&gt; (clair).&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Simulation HL7
&lt;/h2&gt;

&lt;p&gt;Chaque conteneur embarque :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Script&lt;/th&gt;
&lt;th&gt;Rôle&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;send.sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Envoie un fichier HL7, logue le résultat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;send_loop.sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Envoi auto toutes les 20 s (actif par défaut)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;listen.sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Écoute MLLP, affiche + ACK&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;server.log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Démarrage du service HL7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Exemple de test manuel :
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Depuis EAI vers DPI&lt;/span&gt;
docker compose &lt;span class="nb"&gt;exec &lt;/span&gt;eai /app/send.sh
docker compose &lt;span class="nb"&gt;exec &lt;/span&gt;dpi /app/listen.sh

&lt;span class="c"&gt;# Depuis DPI vers EAI&lt;/span&gt;
docker compose &lt;span class="nb"&gt;exec &lt;/span&gt;dpi /app/send.sh
docker compose &lt;span class="nb"&gt;exec &lt;/span&gt;eai /app/listen.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛠️ Personnalisation
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Besoin&lt;/th&gt;
&lt;th&gt;À modifier&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Certificats de prod&lt;/td&gt;
&lt;td&gt;Remplacer les fichiers dans &lt;code&gt;stunnel/&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Autres ports&lt;/td&gt;
&lt;td&gt;Modifier &lt;code&gt;stunnel.conf&lt;/code&gt; et &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remplacer simulateurs&lt;/td&gt;
&lt;td&gt;Monter vos conteneurs EAI / DPI réels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logs plus verbeux&lt;/td&gt;
&lt;td&gt;Ajouter &lt;code&gt;debug = 7&lt;/code&gt; dans les confs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🔐 Bonnes pratiques sécurité
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TLS mutuel obligatoire&lt;/strong&gt; (&lt;code&gt;verify = 2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Limiter l’exposition aux ports &lt;code&gt;32100&lt;/code&gt; / &lt;code&gt;32200&lt;/code&gt; uniquement&lt;/li&gt;
&lt;li&gt;Automatiser la rotation des certificats (&lt;code&gt;gen-certs.sh&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Surveiller &lt;code&gt;stunnel.log&lt;/code&gt;, surtout en cas d’erreurs handshake&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📈 Envisager la production
&lt;/h2&gt;

&lt;p&gt;Ce projet est une base pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Démonstrateur sécurité avant mise en production&lt;/li&gt;
&lt;li&gt;Formation des équipes DevOps santé&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il peut être adapté en &lt;strong&gt;k8s&lt;/strong&gt;, supervisé avec &lt;strong&gt;Prometheus&lt;/strong&gt;, ou branché sur un EAI Mirth/Rhapsody.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧾 Licence
&lt;/h2&gt;

&lt;p&gt;MIT — libre d’usage et d’adaptation, y compris en contexte hospitalier.&lt;/p&gt;




&lt;p&gt;👉 &lt;strong&gt;Repo GitHub&lt;/strong&gt; : &lt;a href="https://github.com/lquastana/mllp-safetunnel" rel="noopener noreferrer"&gt;github.com/lquastana/mllp-safetunnel&lt;/a&gt;&lt;br&gt;
📢 Questions ? Ouvert aux PR / issues / idées !&lt;/p&gt;

</description>
      <category>hl7</category>
      <category>tls</category>
      <category>healthcare</category>
      <category>stunnel</category>
    </item>
    <item>
      <title>Mapping a Hospital Information System</title>
      <dc:creator>Laurent Quastana</dc:creator>
      <pubDate>Tue, 01 Jul 2025 11:53:43 +0000</pubDate>
      <link>https://dev.to/laurent_quastana/mapping-a-hospital-information-system-1mpm</link>
      <guid>https://dev.to/laurent_quastana/mapping-a-hospital-information-system-1mpm</guid>
      <description>&lt;h2&gt;
  
  
  1 — About me
&lt;/h2&gt;

&lt;p&gt;I’m a software engineer who spent more than a decade designing application architectures &lt;strong&gt;in banking&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Since 2022 I’ve served as transversal architect for several public hospitals (~ 300 apps, 500 data flows). My role: give &lt;strong&gt;CIOs&lt;/strong&gt; and operations a dual view—strategic &lt;em&gt;and&lt;/em&gt; hands-on—of their digital ecosystem.&lt;/p&gt;




&lt;h2&gt;
  
  
  2 — Starting point
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No global map&lt;/strong&gt; – every silo had its own PowerPoint.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No flow matrix&lt;/strong&gt; – impossible to size cyber-exposure or dependencies.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sparse documentation&lt;/strong&gt; on many off-the-shelf products.
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; governance suffered from &lt;strong&gt;limited visibility&lt;/strong&gt;, slowing territorial convergence and compliance work (PGSSI-S, HAS 2025).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3 — Method: follow the ANSSI playbook
&lt;/h2&gt;

&lt;p&gt;The French cyber-agency guide &lt;em&gt;“Mapping an Information System in Five Steps”&lt;/em&gt; provides the backbone:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;establish the stakes,
&lt;/li&gt;
&lt;li&gt;collect reality,
&lt;/li&gt;
&lt;li&gt;pick tooling,
&lt;/li&gt;
&lt;li&gt;produce the views,
&lt;/li&gt;
&lt;li&gt;keep the map alive.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  4 — Micro view: an ANSSI-aligned cartography engine
&lt;/h2&gt;

&lt;p&gt;To capture the &lt;strong&gt;nuts-and-bolts layer&lt;/strong&gt;—processes, applications, assets, flows, criticality—I rely on an &lt;strong&gt;open-source engine built around the ANSSI meta-model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengths&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;multi-user workflow &amp;amp; JSON API
&lt;/li&gt;
&lt;li&gt;out-of-the-box alignment with EBIOS risk analysis
&lt;/li&gt;
&lt;li&gt;easy to script exports for DevSecOps pipelines
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Trade-offs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;substantial first data load&lt;/strong&gt; (time + people)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;information-dense diagrams&lt;/strong&gt;: perfect for engineers, too detailed for an executive “big picture”&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5 — Macro view: a Draw.io schema
&lt;/h2&gt;

&lt;p&gt;To bridge that &lt;em&gt;big-picture gap&lt;/em&gt;, I built a &lt;strong&gt;Domain → Process → Application&lt;/strong&gt; diagram (criticality, hosting model, mutualisation). Great for the C-suite—even if it can’t generate KPIs on its own.&lt;/p&gt;




&lt;h2&gt;
  
  
  6 — Dual tooling &amp;amp; data pipeline
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Angle&lt;/th&gt;
&lt;th&gt;Tooling choice&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Granular / operational&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ANSSI-aligned cartography engine&lt;/td&gt;
&lt;td&gt;Live knowledge base; validates new flows; links to biomedical assets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Macro / indicators&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;it-lanscape&lt;/strong&gt; (my OSS repo)&lt;/td&gt;
&lt;td&gt;Nightly JSON → static dashboards: process similarity, mutualisation rate, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;👉 &lt;strong&gt;Give it a try:&lt;/strong&gt; fork the project on GitHub → &lt;a href="https://github.com/lquastana/it-lanscape" rel="noopener noreferrer"&gt;https://github.com/lquastana/it-lanscape&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




</description>
      <category>architecture</category>
      <category>healthcare</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
