Salut,
PS: Une autre solution consiste à mettre en place une intégration continue, bien plus pratique mais plus difficile à mettre en place.
Ah, ça parle d'intégration continue, c'est mon domaine du moment.
Si jamais ça t'intéresse plus en détail fait moi signe, mais pour ceux qui veulent quelques explications et utilités basiques, voici mon retour d'expérience sur le sujet.
Cela consiste a ne se soucier que du projet en local. Ici le projet est le serveur. Les sources du serveur sont dans un dossier, disons sur ton bureau. Pour le versionning, on utilise un gestionnaire de projets, je ne citerai que GIT. Plusieurs sites webs proposent de gérer un projet GIT, par exemple le plus connu et open sources Github, une version privée Gitlab, et une version type gestion de projet avancée BitBucket.
L'intégration continue c'est le fait d'avoir une version 1.0 en ligne sur ton serveur principal où tout fonctionne et une version 2.0 sur un autre serveur (en local pourquoi pas) qui te permet de tester que tout fonctionne au fil du temps. Tu peux travailler un mois sur ta v2.0 sans empêcher les gens de jouer sur ton serveur, et mettre ta v2 en ligne et de juste avoir a restart ton serveur (Et si c'est bien fait, même pas !).
Ah et aussi ! Il y a un systeme de versionning : si jamais tu mets ta v2.0 en ligne, mais que ça fonctionne pas, tu as simplement à dire a GIT "Retour en arrière, met la V1", et tout revient comme avant. Plus besoin de couper le serveur, de prendre la backup, de la dezipper, d'ouvrir ton FTP, d'upload les fichiers et de démarrer le serveur.
Il y a aussi un aspect collaboratif, personne ne trifouille plus le FTP, chacun a une version du serveur dans un dossier sur son bureau, il fait des ajouts, des modifs, des maps etc.. Et il te demande "Je peux ajouter tout ça au projet ?". A toi de choisir oui ou non, si tu mets oui et que ça marche plus, no-stress tu peux revenir à la version d'avant.
Donc on passe d'une méthode de travail ou tu travailles sur ton serveur via a un FTP, où un plugin ou les autres développeurs peuvent tout casser à tout moment, à une méthode de travail plus consciencieuse, avec du versionning, et du travail collaboratif. Cette méthode de travail est utilisé dans le monde du développement informatique évidemment
Et l'intégration continue dans tout ça ?
C'est le fait de dire que quand une version de ton projet te plait, tu dis a GIT "Met moi cette version en ligne!". Il se charge de mettre sur ton serveur tout ce qui a été modifié, sans que tu aies besoin de toucher le moindre FTP. Via X ou Y méthode, il prend tes fichiers, coupe ton serveur, met les fichiers, allume ton serveur. Tes joueurs ont été déconnectés une minute mais la mise à jour est intégrale, fini de dire "Le site est indisponible 10 jours car on va faire des modifs" ou de faire des reloads alors que les gens jouent.
Oulala tu vas un peu vite, j'ai des questions !
Kécécé GIT ? --> http://putaindecode.io/fr/articles/git/
Ah ! Et du coup c'est quoi la différence avec Github ? --> https://github.com/HappyBlocks-Mc/H...-Qu'est-ce-que-GitHub,-et-comment-s'en-servir
J'ai pas envie de cliquer sur tes liens, tu peux me faire un résumé ? Je vais faire mieux que ça : C'est parti pour un usecase rempli d'infos !
Tu as ton dossier sur ton bureau contenant les mêmes fichiers que sur ton serveur : IDENTIQUES. Sur ton serveur des gens jouent. Tu as seulement un monde PVP. Tu te dis "Ah je vais ajouter un monde skyblock".
Donc dans ton dossier tu ajoutes le plugin skyblock, la map skyblock, tu lances tout ça en local, ça marche ! Donc tu demandes a GIT "Voila, tous ces fichiers là c'est ma V2".
Pendant ce temps là ton ami builder DabouLeDabeur a fait une map pour le spawn du monde skywars. Il demande donc a GIT "Ajoute ma map à la V2". Tu reçois un petit message qui te dit "DabouLeDabeur souhaite ajouter des fichiers".
Tu dis oui, et ta v2 est prête ! Tu dis à GIT "Go on met à jour !", il envoie tout ça sur ton serveur.
Tes joueurs sont déconnectés, ton serveur inaccessible 3 minutes, et c'est reparti !
Tu te connectes, et la TOUT EST CASSE !!!!!
Mais no stress, tu demandes à GIT "Met moi la version précédente". Ton serveur est inaccessible 3 minutes, et tout revient comme avant !
Tu répares la map qui avait cassé ton serveur. Tu test en local et tout marche ? Tu redis à GIT "Go !" et voila, ton serveur est à jour !
Fiuuuuuu je sais que j'ai beaucoup parlé mais ça me semblait intéressant comme réponse
!
Oui je n'ai pas expliqué comment faire, comment automatiser, quels services utilisés etc.. Mais c'était un cours théorique ! Si jamais quelque chose de plus étoffé (voire un tuto) vous intéresse, n'hésitez pas à me le dire