Plam Bear Metal | seedee a écrit :
Flexibilité de la virtu : juste non. Une VM par définition n'est pas flexible, et même avec la pseudo flexibilité de VMWare et d'autres, beaucoup de guests y répondent très mal. J'ai une quantité non négligeable dans mon infra de VMs qui sont vues par ESXi comme bouffant 100% de leur RAM assignée, alors que le guest utilise 20% au même instant.
Tu assignes de manière très statique les ressources de ton bare metal. et ça reste moins perfo qu'un container bare metal, avec l'abstraction que présente l'archi bare metal > OS > virtu > OS > appli, là où le container fait bare metal > OS > container > appli. isolation : j'en parle ensuite..
ProxMox et SmartOS font tous deux du container + VM
SmartOS étant basé sur noyau BSD, il profite de la très bonne hermétisation des containers de la plate forme
Un Jail BSD n'a pas accès au reste du système by design.
Non, ça c'est l'idée que tu t'en fais depuis l'arrivée de Docker sur le marché.
A l'origine, les containers apparus sur BSD à l'origine étaient là pour proposer une forme tout à fait hermétique de faire tourner des applis par rapport au reste du système, ce que faisait chroot avant pour des binaires isolés.
C'est à cause de l'augmentation de la complexité des applis et de leur dépendance à d'autres qu'est apparu le container.
cf bryan Cantrill, l'un des mecs à l'origine de ça.
vas lire un bon coup sur l'implémentation des jails BSD...
Ton avis reste tout à fait centré sur le container LINUX qui malheureusement n'est pas très hermétique étant basé sur cgroup
|
1. Juste si. Une VM est par définition flexible. C'est l'intérêt majeur de la virtu. Si c'est pas le cas, ta une plateforme de merde ou pas configuré correctement tes machines. Aujourd'hui, tu peux migrer une VM d'un DC à l'autre, avec le storage en live, ça marche très bien. C'est pas de la pseudo flexibilité, c'est de la flexibilité et ça marche. Donc n'invente pas des problèmes là où 99% des gens utilisent justement de la virtu pour ça sans problèmes Et pour le coup, j'en croise des milliers par ans des utilisateurs de la virtu.
2. IRL, les 3% de pertes de perfs de la virtu, ça coûte RIEN par rapport à cette flexibilité. Pose toi la question sinon : le monde entier est-il vraiment con à encore utiliser de la virtualisation, même les très gros du cloud ? (AWS par exemple, qui est sur Xen). Ou alors c'est plus flexible que tu ne l'imagines ?
seedee a écrit :
Enfin bref, un sujet qui divise beaucoup, le fameux VM vs container
en attendant, dans mon infra, plus de la moitié des VMs pourraient être aisément être converties en containers, faisant tourner des services web (php, mariadb / mysql, redis, mais aussi FileMaker qui existe en linux, le serveur d'impression, le ftp, différents machins en java déjà sous linux, ...). Ces services étant par définition extrêmement variables en charge, le container est particulièrement adapté.
Y'a juste le trio AD / DNS / DHCP, le WSUS, et la console de gestion Kaspersky où je suis un peu plus coincé sur Windows, mais avec ces services, la charge ne varie que très peu.
Après, c'est vrai que j'ai la chance de ne pas avoir de bidule type SAP qui tourne, ou d'appli métier codée y'a 20ans qui ne tourne que sous Windows qui sont gérées par la DSI centrale de l'univ où je suis (je suis l'unique sys admin d'une des composantes de l'univ).
Mais avec le développement du télétravail et de l'enseignement à distance à très grande échelle, le besoin croissant de services type NextCloud, Jitsi, RocketMail, Big Blue Button se fait ressentir, et la question du container revient vu que le blocage de ressources VMs sur un service limitera par essence les autres, alors qu'un bon cluster de containers permettra une flexibilité des ressources matérielles disponibles
|
Ça ne divise pas, c'est complémentaire. C'est pas un remplacement, en tout cas pas dans la vraie vie (ou alors faut me dire où ). J'ai vu de mes yeux cet enthousiasme quand Docker est arrivé (« la virtu c'est mort »). J'en ai même parlé avec les fondateurs de Docker, et devine quoi, ils en sont vite revenu de leur propre aveux
Auissi je pige pas la partie en gras. La variabilité de la charge n'est pas un argument ni pour l'un, ni pour l'autre. Ensuite, ton NextCloud, Jitsi, RocketMail et BBB, tu les fais tourner sur la même machine physique ensemble dans des containers ? (perso ça me choque sauf si c'est que pour toi en interne, mais si c'est des clients différents, LOL, aucune chance de faire ça en terme de sécu).
Et même si c'est que pour toi, il te faut une infra de cluster de container pour ces besoins, et ça c'est au moins aussi voir plus complexe à mettre en œuvre que son équivalent en VM « pures » (donc pareil, je vois pas en quoi c'est mutuellement exclusif). Et franchement une VM par service, ça a du sens quand tu veux isoler (dans ce cas VM >> container), mais qu'en c'est pour le même client, tu sais pas faire tourner des services dans `systemd` Dans ce cas, la containerisation rajoute une couche inutile je trouve Bloquer les ressources, je suis pas sûr de piger, il existe aussi plein de moyen de faire respirer tes VMs à l'heure actuelle. Quand c'est nécessaire, ce qui est pas souvent le cas IRL. Je trouve pas les containers con si t'es bien organisé et que ton compute est complètement séparé de tes données « persistantes », le container à du sens oui
J'ai aussi vu déficit de savoir faire/connaissance système aussi, on sait plus créer des usersou des units, systemd qui gère très bien tout ça (même les limites par services ). Le container sent souvent l'excuse à deux balles car on sait pas (ou veux pas, c'est entendable) comprendre comment marche le système. Au final c'est souvent calé dans des VMs, car c'est tout moisi et on veut pas contaminer autour, mais je vais pas faire un procès à la techno pour de mauvais usages (c'est une expérience perso avec un dev quand on faisait de l'intégration chez nous).
l0g4n a écrit :
Non mais tu peux lire tout ce que tu veux. Mais quand tu as besoin d'isolation (et pas juste pour le fun), tu as besoin qu'elle soit reconnu et validée par l'organisme qui te l'impose.
Et l'ANSSI, la DISA, PCI-DSS, HDS et autres, l'isolation par des conteneurs sur des données sensibles, c'est non. Ou alors faut faire certifier à tes frais.
Et je te parle même pas d'avoir besoin que ta payload soit compatible. T'a élégamment ignoré le sujet.
|
Quand tu vois déjà les besoins d'isolation, faut un truc vraiment solide, le container c'est quasi du service.
docmaboul a écrit :
Ben non, même pour du pas jetable. Il n'y a même pas de débat sur le fond. Demain j'ai besoin de fournir du TFTP (au pif), quel intérêt d'avoir une VM pour ça ? Perdre de la RAM, du disque, de la CPU, du temps, remplir des sauvegardes ? Avoir un ratio de 1:100 entre ce qui m'est réellement utile et tout ce qui va être embarqué avec l'OS ?
Aller, le seul "service" intéressant que fournit l'OS, dans un sens large, c'est la maj de l'application. Pour le reste, je dois passer vraiment passer à côté de quelque chose parce que c'est la deuxième fois qu'on a ce débat, et je ne vois toujours pas l'intérêt de conserver des VMs.
Après, il va sans dire que l'administration/gestion des conteneurs devrait être aussi facile qu'elle peut l'être pour des VMs.
Et là, on voit bien que les éditeurs d'hyperviseurs ne font pas trop d'efforts pour le moment
|
1. Tu peux avoir ton serveur TFTP sur une VM Alpine, 50Mo d'utilisé sur le stockage Parfaite isolation, utilisation de SDN de manière simple (isolation réseau, VxLAN, tunnel, gestion fine de toutes les ressources, backup de ta machine si jamais c'est de la prod importante, voir HA au niveau VM, migration à chaud si besoin ailleurs donc sans perte de service visible). C'est justement pour les softs où ta pas la main dessus (perso j'écris pas mon TFTP en Cloud native), ça te laisse une fléxibilité inégalable, pour un coût très modique, car ça « juste marche ».
2. « Passer à côté » : je renvoie au fait que les très gros « on prem » (qui on pas décidé de tourner sur les serveurs des autres) continuent à utiliser de la virtu et même à tout baser dessus. C'est pas par inertie, mais que ça apporte une flexibilité à un niveau inégalé en rapport qualité/prix/sécurité. C'est assez factuel. Pas cher, efficace, flexible, et bien isolé. Pour les mêmes raisons que le x86 a gagné par exemple face à certaines archi très prometteuses
Après si tu veux de la sécurité au top et des ressources ultra-légère, le mieux c'est de l'unikernel (le « meilleur des 2 mondes »). C'est génial sur le papier, et Docker à l'époque (2 ou 3 ans jsais plus) à racheté une boîte qui faisait ça.
Et… ça n'a pas marché. Les raisons : faut tout ré-écrire tes services pour que ça marche Remember : si tu veux être adopté, faut être complémentaire, et si tu remplaces, il faut être aussi simple, ou VRAIMENT avoir de quoi différencier.
---------------
Spécialiste du bear metal
|