Lors du déploiement de projets, j'utilise toujours des dossiers pour déployer des projets. Récemment, j'ai essayé d'utiliser le déploiement de projets du package WAR et j'ai rencontré les problèmes suivants :
Spécifiez le chemin local de l'emplacement du fichier téléchargé, mais comme il est indépendant du projet, vous devez configurer le projet séparément pour y accéder
Lorsque l'entreprise a un grand nombre de projets (environ 200 pour un serveur, environ 20 serveurs), chaque projet est configuré ainsi, et les travaux d'exploitation et de maintenance sont très lourds
Un seul fichier CSS ou JS a été ajusté lors de la maintenance, mais il a dû être reconditionné et publié
Par rapport à la méthode du dossier précédente, c'est vraiment gênant. J'aimerais demander aux étudiants expérimentés :
.Quels scénarios d'application avez-vous rencontrés en utilisant les packages WAR ?
Comment résoudre le problème que j'ai rencontré ?
Voici mon expérience réelle d'exploitation et de maintenance :
La configuration doit être indépendante du projet, afin que le package war ne puisse être créé qu'une seule fois et appliqué à différents environnements
Utilisez des outils d'exploitation et de maintenance automatisés tels que SaltStack, Ansible ou Jenkins pour vous aider à effectuer des opérations par lots
Si vous vous attendez à ce que les ressources statiques changent fréquemment, il est préférable de les séparer du projet Java et de les déployer sur différents sites, ou d'utiliser nginx pour les détourner
Il est recommandé de déployer le programme pour décompresser le fichier war (au lieu de laisser Tomcat le décompresser tout seul), d'arrêter Tomcat, d'utiliser ln -s pour diriger le répertoire ROOT vers un nouveau répertoire, puis de démarrer Tomcat, afin que Tomcat fonctionnera plus facilement ;
Ne supprimez pas l'ancien répertoire pour l'instant. Si le déploiement est incorrect, utilisez ln -s pour basculer le répertoire ROOT vers l'ancien afin d'obtenir une restauration rapide.
Expérience pratique :
.Les projets que j'ai traités sont tous publiés sous forme d'annuaires sur weblogic. Structure des annuaires :
J'ai écrit plusieurs scripts shell selon cette structure standard pour automatiser les tâches d'exploitation et de maintenance, telles que le démarrage, l'arrêt, la surveillance, la mise à jour, etc. Cela n'a en fait pris que quelques jours et il n'y avait pas beaucoup de code, mais maintenant je ne le fais plus jamais manuellement à nouveau. Sur les questions d'exploitation et de maintenance.
Le processus de base est le suivant : soumission du développement de code-->Exportation SVN du package de mise à jour incrémentielle-->téléchargement sur le serveur-->exécution sur le serveur
Si vous modifiez une page HTML, vous devez la reconditionner. Que faire si vous saisissez le mauvais fichier ? Les statiques peuvent être publiés séparément, donc si je change simplement un JAVA, je dois le reconditionner, et je le mérite ?
Aucun conteneur ne publie et ne sert réellement d'applications dans un package war. Elles sont toutes décompressées dans un emplacement temporaire. Le package war est dans un format compressé. Vous devez laisser n'importe quel conteneur lire les ressources du fichier compressé à chaque fois qu'il répond à une requête. Il y aura des problèmes de performances (au moins pour JSP).
C'est ma solution personnelle pour certains petits projets. Pour les grands projets, vous aurez peut-être besoin d'une chaîne d'outils complète, qui est une intégration continue ou quelque chose du genre.