S'équiper pour se former au Devops
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 :
- Recherche sur Amazon de Pc Portables avec 8 Cores et 16 Go de RAM
- Recherche sur Amazon de Mini-PC avec 8 cores et 32 Go de RAM
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: si vbous 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 :
- MINIS FORUM JB95 Intel Celeron Silver N5095 Quad-Core CPU 8 Go / 256 Go SSD à 220€
- Beelink SER5 Ryzen 5 5560U 6 Cores 12 Threads 16 Go / 512 Go SSD Wi-Fi6E à 390€
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.
Pour vous aider à choisir le bon CPU, je vous conseille de vous rendre sur le site cpubenchmark et en particulier sur cette page.