Aller au contenu principal

S'Ă©quiper pour se former đź’»

Vous cherchez à vous former ou à progresser sur un outil d’infrastructure as code, un outil utilisé dans des pipelines CI/CD où pour apprendre à déployer des applications sur des clusters Kubernetes ? De quelle configuration avez-vous besoin pour vous former ?

Quelles solutions envisagées ?​

Tout dépend de votre objectif :

  • Dans un simple but de formation avec des serveurs Ă©phĂ©mères, vous pouvez dĂ©marrer avec un PC portable disposant de suffisamment de ressources CPU, mĂ©moire et disque nĂ©cessaire.

  • Dans le but de monter un homelab persistant, vous aurez besoin de plus de ressources. Un ou plusieurs mini-pc disposant de suffisamment de ressources CPU, mĂ©moire et disque nĂ©cessaire.

Première solution : PC Portable​

Si vous n’avez pas besoin de rendre vos réalisations persistantes, alors un pc portable ou un mini-pc. En effet, il est possible de se former à ses outils en utilisant un simple PC où vous installerez un hyperviseur de type 2 comme hyper-v, virtualbox, Vmware player ou KVM. Cette machine devra posséder un nombre de cores suffisants, 8 étant le minimum et de 16 Go de RAM. Cela vous permettra de créer au moins 3 VM tournant en concurrences pour faire tourner par exemple un cluster kubernetes.

Pour instancier vos VM, vous pouvez utiliser un outil comme terraform ou vagrant (ma préférence dans ce cas d’usage).

Exemple de configuration :

Seconde solution : Un ou plusieurs mini-pc​

Vous souhaitez pouvoir créer des VM sur des hyperviseurs de type 1 comme Proxmox ou VmWare ESXi en utilisant un outil de provisionning du type terraform, ansible ou pulumi. Il vous faudra une machine qui servira de console pour lancer les taches de provisionning, une ou plusieurs autres pour héberger vos VM (compute). La machine hébergeant la console pourra servir à construire et à héberger vos images ou templates de VM, mais aussi de serveur dhcp et ipam.

attention

Attention: si vous souhaitez installer proxmox ou VmWare ESXi, faites attention à la carte réseau !

La console​

Votre console peut être une machine possédant un processeur avec 4 cœurs et 8 Go de RAM. Pour le disque, si vous hébergez vos images localement et non sur un serveur NAS, prenez au minimum un ou plusieurs disques d’une capacité d’au moins 1 To total (plus c’est mieux).

Exemple de configuration :

Les machines hébergeant le compute​

Ces machines pouvant héberger plusieurs VM, il faudra prendre des machines possédant un CPU avec au minimum 8 coeurs et 16 Go de mémoire. Pour la partie disque un minimun de 512Go peut faire l’affaire, tout dépendant du volume de données nécessaires au fonctionnement des applications que vous souhaitez héberger. Personnellement, je privilégie les machines avec les processeurs AMD possédant les meilleurs rapports Prix/Nbre de cores par rapport à Intel.

Exemple de configuration :

Un serveur NAS ou pas​

Pour le stockage de vos données persistantes vous pouvez envisager deux solutions :

  • Pour les plus bricoleurs un simple serveur NFS depuis un PC peut faire l'affaire.
  • Pour ceux qui ont du budget un serveur NAS. Des exemples de configuration.

Des exemples de config en fonction de votre objectif​

Se former à un outil de gestion de configuration​

Si vous souhaitez vous former à un gestionnaire de configuration comme ansible, chef, puppet ou pulumi alors la persistance est importante comme critère de choix. Donc envisagez la seconde solution

Se former aux pipelines CI/CD pour déployer des applications​

Dans ce genre de cas d’objectif, il n’est pas forcément utile d’utiliser des ressources à la maison. Vous pouvez utiliser les runners mis à disposition sur les services en ligne comme Gitlab ou Github. Par contre, pour ceux qui veulent utiliser leurs propres runners il vous faudra au minimum un pc hébergeant un cluster mono-noeud avec du k3s par exemple. Pour les ressources 4 cores et 8Go de RAM est un minimum. Ensuite, vous souhaitez déployer vos applications non cloud-natives sur vos propres VM, il faudra ajouter les serveurs décrit dans la section se former à l’utilisation d’un hyperviseur de type 1. La console pourrait héberger les runners mais attention à prendre alors un serveur avec 8 cores au minimum et 16Go de RAM.

Se former aux déploiements et à l’hébergement d’applications cloud natives.​

Ce genre de besoins demandes des ressources identiques à celles utilisées pour héberger des VM. Il vous faudra donc au minimum un pc avec 8 coeurs et 16 Go de RAM. Si vous souhaitez faire tourner vos pipelines CI/CD sur une autre machine un minimun de 4 cores et 8Go de RAM fera l’affaire.

Quel OS choisir ?​

La question ne se pose pas. Compte tenu de la domination de Linux dans ce domaine, il faudra choisir un OS de cette famille. Privilégiez-les releases que vous serez amené à rencontrer dans la vie professionnelle : Famille redhat ou debian.

Et le réseau​

Quid de comment connecter vos machines entre elles. Il suffit de s’équiper d’un petit switch avec 8 à 16 ports en Gigabit. Vous en trouvez pour une trentaine d’euros. Si votre HOMELAB est loin de votre box internet ajoutez un couple d’adaptateur CPL. Faites bien attention aux ports sur lesquels vous connecterez vos CPL à votre box.

Conclusion​

J’ai essayé de recenser les différents cas de d’auto-formation envisagée. Vous remarquerez qu’en général, on peut démarrer avec une seule machine.

astuce

Pour vous aider Ă  choisir le bon CPU, je vous conseille de vous rendre sur le site cpubenchmark et en particulier sur cette page.