2009-10-08 9 views
2

La façon dont nous gérons actuellement les déploiements de sites sur le serveur, puis le changement de sites entre démo/acc/live "mode" est un peu hasardeux et je cherche pour améliorer l'ensemble du processus.Gestion des déploiements de sites entre démo/staging/live sur les serveurs de production

J'ai passé en revue les outils de déploiement automatisés, mais aussi la façon dont le serveur est structuré. Je vais enregistrer les questions de déploiement automatisé pour un autre poste, ici je suis intéressé par la façon dont les gens organisent le code sur leurs serveurs de production.

Nous avons actuellement 3 dossiers de premier niveau sur le lecteur de données, "démo", "acceptation" et "live". Il y a des différences ténues entre ce qui classifie quelque chose comme "démo" ou "acc" dans lequel je ne vais pas entrer, il suffit de dire que je veux me débarrasser de tout argument/ambiguïté. Notre procédure de déploiement est la suivante, une fois qu'un site est développé, déployez-le sous un en-tête d'hôte "d'acceptation" tel que acceptance.project-domain.com sous le dossier "acceptation". Le client passe en revue le site, nous lui faisons un test pour nous assurer que toutes les chaînes de connexion/permissions, etc. sont correctes. Le client donne l'OK pour aller vivre. À ce stade, nous redéfinissons complètement le site sous le dossier «live» et lui donnons l'en-tête de l'hôte en direct. Bien sûr, à ce stade, le site est totalement non testé dans son état déployé (ne parle pas de tests unitaires ici, je veux dire les autorisations de fichiers, les erreurs de configuration IIS, etc.). Le site doit alors être retesté :(

Je pense une structure quelque chose comme ça, serait beaucoup mieux:

/<customer>/<project>/<fullversion>/wwwroot 

De cette façon, un nouveau site peut être déployé dans un dossier sous version1 Si le client donne l'OK, vous changez simplement les en-têtes et vous êtes absent.S'il y a des demandes de changement, ils passent sous un v1.1 qui peut avoir l'en-tête d'acceptation, une fois qu'il obtient le bon, permuter les en-têtes Rincez et répétez

Ce processus serait également beaucoup plus facile à gérer pour un déploi automatisé Script de yment. Avoir tout le code pour un site sous un dossier parent unique signifie que les permissions de téléchargement peuvent être limitées à un seul site, donc vous ne pouvez pas écraser accidentellement le code d'un autre site, il est beaucoup plus facile de garder une trace des versions sur le serveur. wiki de gestion peut facilement être maintenu ... la liste continue! Quelles sont vos méthodes d'organisation du code et de gestion des déploiements?

Répondre

1

La plupart des gens ne fonctionnent pas comme vous l'avez proposé, car ils utilisent des serveurs distincts pour les tests et les live.

Nous avons supprimé toute la configuration de nos projets, afin que nous puissions déployer exactement le même code sur les machines test et live et qu'ils récupèrent automatiquement la configuration correcte. Cela empêche les moments inattendus "oups je pointer vers le test au lieu de vivre". Votre idée pourrait bien marcher, mais que se passe-t-il si vous décidez de diviser vos serveurs à l'avenir (vous ne pouvez pas exécuter exactement les tests de performance si cela peut potentiellement avoir un impact sur vos sites Web en direct, par exemple).

Questions connexes