Bonsoir !
Je m’exerce sur le déploiement d’applications NodeJS et VueJS sur un serveur Linux avec Docker. J’ai un serveur de test sur DigitalOcean que j’utilise pour mes tests.
Pour le moment, je m’en sort plutôt très bien.
J’ai un docker-compose qui contient mon API, mon Frontend et mon "Reverse Proxy" qui permet de rediriger les URLs sur les bonnes applications (par exemple, monsite.com sur l’app Vue et api.monsite.com sur l’API).
Grâce au Webhook, je peux lancer un script SH pour déployer une applications indépendamment de l’autre, juste en faisant un git push du code sur une certaine branche, qui va exécuter le script, qui :
- Stoppera le container de l’application
- Le supprimera
- Le recréera.
Tout ça fonctionne bien (à part que 1) je ne sais pas encore comment faire que mon Webhook se lance tout seul, je suis obligé de lancer la commande "Webhook -hooks Hook.json" manuellement depuis mon serveur avant chaque déploiement et 2) Le GitHub action dit que le déploiement est OK car il n’attend pas le retour du Webhook et donc forcément, s’arrêt sur "Succès" dès qu’il à réussi à exécuter le Webhook - mais sans attendre le retour donc).
Cependant, j’aimerais aller un peu plus loins. J’ai deux choses en tête :
- Le Load Balancing
- Le déploiement sans intéruption
Je vais commencer par le deuxième point : Aujourd’hui, quand je déploie une application, celle-ci deviens indisponible de l’arrêt du container jusqu’à sa recréation. Existe-t-il un moyen de déployer l’application sur un nouveau container, et une fois fait, rediriger l’ancien container vers le nouveau avant de le supprimer ? Comme ça, pas d’interruption.
Pour le premier point maintenant, j’avoue avoir très peu de connaissance. Dejà, je n’ai pas bien saisi si, pour le Load Balancing, il fallait plusieurs serveur ou un seul ?
J’ai cru comprendre (et ça paraît logique) que le Load Balancing c’est quand on à plusieurs serveur, pour répartir les demandes entre ceux-ci. Mais j’ai pu lire ici et là que c’était possible avec un seul serveur, mais plusieurs container (si je me souviens bien). Avez-vous plus de détails ? Ou des lien à me donner ? J’arrive assez bien à comprendre l’anglais, mais si j’avais des ressources en français, ce serait beaucoup mieux, car là, j’ai vraiment besoin de comprendre en détail (et de comprendre les petits détails), car c’est un domaine assez compliqué pour moi, donc autant ne pas ajouter la difficulté de la langue.
Aussi, comment mettre ça en place ? Parce que j’ai vu le mot "Load Balancing" associé à plusieurs techno : Docker, Kubernetes, PM2 et Nginx. Ça veut dire quoi ? Que je peux choisir si je veut le mettre en place en utilisant uniquement Nginx, PM2 ou Docker par exemple ? Au pif, si je prend PM2 : Si j’arrive à l’atteindre, c’est que je suis déjà sur mon container qui exécute PM2, donc comment ça peut faire du "Load Balancing" ?.
Bref, c’est surtout cette partie que je trouve assez compliqué, et je n’arrive pas à trouver de ressource en français qui pourrait vraiment m’aider.
Si vous avez des liens, voir des cours gratuit ou payant (pas plus de 15€ au total, mais pour le moment, je privilégierais le gratuit), n’hésitez surtout pas !
Merci !