Architecture d’un « home lab »
Les choix de l’architecte
Pour réaliser ce « home lab » à peu de frais, je me suis imposé des contraintes pour sa construction. Tous les systèmes ou logiciel sont open sources ou sous licence ouverte et répondent aux exigences d’une entreprise (sécurité, scalabilité, charge…, ) mais tiennent dans un environnement limité en ressources.
Les contraintes matérielles
Le matériel est un PC de type Barebone Industriel Fanless avec processeur N100 12th Gen (4 VCPU 3.40 GHz, 4 Threads, VT-x, VT-d) avec (16 Go de RAM, 1 GPU Intel® UHD Graphics 750 Mhz 24 Threads) 2 ports réseau, 2 ports COM, 2 HDMI, 4 ports USB, Wifi 5 (AC) 2 Antennes, BT 4.2. Le matériel aura coûté 175 € en 2023.
Les contraintes réseaux
Les deux ports réseaux 1 Gbit sont utilisés pour un pour la connexion à la box et l’autre vers des équipements internes.
Les contraintes logicielles
Pour pouvoir simuler plusieurs machines, je me suis tourné vers la solution Proxmox. Cette solution d’entreprise propose une version communautaire pour une utilisation personnelle. La solution est basée sur un Linux Debian. Elle propose des conteneurs LXC (KVM) ou des machines virtuelles (QEMU).
Les contraintes d’environnements
En raison du peu de CPU, un seul environnement de développement et de productions cohabitent.
Consommation / impact environnementale
Évidemment tout ceci a un coût, la consommation du barbone est de 26w ce qui est peu, car peu puissant, mais suffisant pour quelque tests.
Schéma d’architecture du home lab

Pour la démonstration, on crée deux conteneurs LXC (KVM). Un pour le firewall (pfsense) et un conteneur pour portainer.io (solution basée sur docker). Avec docker un conteneur pour le reverse proxy (ici Ngnix Proxy Manager) pour permettre d’accéder au autre conteneur docker.
Cette solution est la plus minimaliste et s’adaptera facilement à toutes les petites configurations matérielles.
Avec une configuration plus importante, on peut remplacer pfsense par une solution Fortinet (licence de démonstration quatre connexions simultanées) et docker par Kubernetes/docker.
