Bonjour !

J'aimerais avoir l'avis de plusieurs personnes, permettez-moi de m'expliquer.

Cela fait plusieurs années que je travaille en tant que full-stack dans le développement web. Au début, je ne voyais pas l'intérêt d'installer une machine virtuelle sur mon ordinateur uniquement pour le développement, car, à mon avis, le logiciel que j'utilise, Laragon, depuis de nombreuses années, fait le travail parfaitement. Cependant, j'ai récemment remarqué qu'il y avait parfois des problèmes lorsque je devais changer la version de PHP, voire passer de MySQL à MariaDB/PostgreSQL, et ainsi de suite.

Maintenant, avec de nombreux projets en cours et un passage fréquent d'un projet à l'autre tout au long de la journée (je travaille sur environ 2 à 3 projets différents par jour), même si les changements ne sont parfois que mineurs (généralement la mise à jour de la version de PHP et de MySQL pour correspondre à l'environnement de développement), cela devient de plus en plus compliqué à gérer. Hier encore, j'ai dû réinitialiser complètement tout ce qui était lié au développement sur ma machine et réinstaller Laragon, car j'avais complètement cassé le logiciel sans savoir comment.

Ce n'est pas tout, car je m'occupe également de la conception de produits virtuels. Cela signifie que j'ai des projets où je travaille sur des serveurs de jeux (comme Arma 3, Garry's Mod, GTA 5), et j'ai des craintes quant à l'utilisation d'une machine virtuelle qui pourrait limiter ma capacité à continuer ce type d'activité.

Est-ce que certains d'entre vous seraient disponibles pour discuter de ces problèmes ici (afin de pouvoir également partager publiquement les réponses à mon problème) ? Je remercie infiniment ceux qui prendront le temps de lire mes préoccupations et de me répondre.

4 réponses


Bonjour,

perso, sur tous mes projets de dev, j'utilise docker. C'est moins gourmand en ressources que l'utilisation de VMs et ça simplifie beaucoup le développement sur différents projets ainsi que le travail en équipe. Ensuite, plus besoin de se préoccuper des compatibilités de versions php/mariadb, nodejs, elasticsearch ... , il suffit de fournir la bonne config avec le projet et tous les dev démarrent la même version de la stack (si tu travaille en équipe).
J'ai encore des projets qui trainent avec du Php 7.4 en cours de migration et des nouveaux projets en Php 8.2, avec des BDD différentes, des fronts en vue3 ou réact (donc avec du build via différentes versions de node js) et là docker simplifie beaucoup le passage d'un projet à l'autre. Il suffit d'arrêter une stack, de démarrer l'autre et... c'est tout.
Gillesr

Aecy
Auteur

Salut ArnaudMorre, merci pour ta réponse. Oui, ce que je trouve bien utile c'est le fait de pouvoir rapprocher la machine de "dev" à la machine de "prod" pour éviter deja tout soucis qu'on a surement déjà tous rencontré tous ! aha mais merci pour tes précisions. Je continue toujours à y réfléchir

Aecy
Auteur

Salut Gillesr, merci également pour ta réponse bien fournis, on voit vraiment comment chacun travail c'est chouette.

J'ai trouvé un article bien complet qui compare les deux, j'vais me faire mon propre opinion et essayer d'en parler et de donner ma "solution" pour mon propre switch case.

J'espère en aider plus d'un et pourquoi proposer un nouveau sujet a Grafikart car je trouve que ce genre de sujet est assez vague parfois et que bien souvent, le dev trouve sa solution pour lui et basta. Il faut travailler quand même dans un environnement qui nous plait sinon ça marche pas longtemps... Merci pour vos retours, je ferais mon retour également !

Hello :)

Alors pour commencer y a deux bots (quand y a un lien glissé dans un message c'est du bot x))

ENSUITE: Comme a dit gillesr Docker c'est la meilleure solution

L'avantage avec Docker aussi c'est que tu ne dira plus JAMAIS de ta vie "mais ça marche sur ma machine :(" parce que tu peux déployer ton image Docker dans ton hébergeur :)

Une VM bon c'est possible mais c'est une très vieille pratique qui a été abandonnée dès la sortie de Docker parce que trop de problèmes :/

Pour Docker grossomerdo tu places un Dockerfile et tun docker-compose.yml dans ton projet, dans ces fichier tu dit que tu veux récupérer telles images (php7.4, 8.1, node 16, node 18, mariadb, mysql, mailhog, etc...) tu build l'appli, et tout est pret, quand tu as fini ton travail tu kill ton container, bref tu n'as plus besoin d'avoir PHP/Node/Mysql installé sur ta machine, tu as des instances jettables de tout l'env de dev, 5minutes à configurer pour la première fois dans un projet, et 5secondes pour switcher entre les projets avec l'env de dev déjà tout prêt :p