Question

Nous déployons actuellement des applications Web en créant une base de données et en exécutant des scripts SQL via un analyseur de requêtes. Ensuite, nous copions la sortie de " publier un site Web " et configurer ce site Web dans IIS.

Nous avons vu Websetup dans Visual Studio, mais cette partie semble être très peu documentée. Par exemple, nous ne savons pas exactement comment demander à l'utilisateur l'adresse IP et le mot de passe du serveur SQL. Nous avons également tendance à faire en sorte que les sites Web déployés de cette manière apparaissent dans des dossiers tels que http://example.com/project , à la place. http://example.com .

Ensuite, il y a des problèmes avec AJAX.Net non installé ou un correctif non appliqué.

Jusqu'à présent, nous avons un accès physique aux serveurs. Nous allons bientôt envoyer des CD-ROM. Quel est le compromis pratique entre intervention manuelle et automatisation?

Était-ce utile?

La solution

Évitez le déploiement de Visual Studio et automatisez autant que possible. Les projets de déploiement Web et NAnt peuvent être vos amis!

En bref, notre configuration de déploiement:

  1. Nous utilisons RedGate SQL pour consigner les différences entre les bases de données dev et live.

  2. Un fichier de génération NAnt qui appelle MSBUILD pour générer le projet de déploiement Web (.wdproj), compresse l'application Web résultante compilée (ainsi que le script de modification SQL), puis télécharge le fichier zip sur le serveur.

  3. Du côté serveur, il existe un autre fichier de construction NAnt qui déconnecte l'application, sauvegarde la base de données, sauvegarde le site Web. exécute le script de modification SQL, décompresse la nouvelle version et met l'application en ligne.

L'étape 3 est généralement exécutée " manuellement " (un double-clic), mais parfois programmé pour tard dans la nuit. Vous pouvez faire exactement la même chose à partir d'un CD-ROM ou même écrire une jolie petite application Windows Forms en guise de wrapper.

Je suis heureux de donner des détails sur le script NAnt si cela vous intéresse.

Autres conseils

Avez-vous essayé d'utiliser le projet de déploiement Web ? VS 2008 également maintenant ..

Je déploie principalement des applications ASP.NET sur des serveurs Linux. Voici mon flux de travail standard:

  • J'utilise un référentiel de code source (comme Subversion)
  • Sur le serveur, j'ai un script bash qui effectue les opérations suivantes:
    • extrait le dernier code
    • Effectue une construction (crée les DLL)
    • Filtre les fichiers jusqu'à l'essentiel (supprime les fichiers de code par exemple)
    • Sauvegarde la base de données
    • Déploie les fichiers sur le serveur Web dans un répertoire nommé avec la date actuelle
    • Met à jour la base de données si un nouveau schéma est inclus dans le déploiement
    • Définit la nouvelle installation par défaut afin qu'elle soit servie lors du prochain hit

La commande est effectuée avec la version en ligne de commande de Subversion et la construction est réalisée avec xbuild (msbuild work-like du projet Mono). La majeure partie de la magie est faite dans ReleaseIt.

Sur mon serveur de développement, j’ai essentiellement une intégration continue, mais du côté de la production, j’ai SSH sur le serveur et initié le déploiement manuellement en exécutant le script. Mon script est intelligemment appelé 'deploy', donc c'est ce que je tape à l'invite bash. Je suis très créatif. Non.

En production, je dois taper "deploy" deux fois: une fois pour extraire, construire et déployer dans un répertoire daté et une fois pour faire de ce répertoire l'instance par défaut. Étant donné que les répertoires sont datés, je peux revenir à n’importe quel déploiement précédent en tapant simplement "deploy" dans le répertoire approprié.

Le déploiement initial prend quelques minutes et le retour à une version antérieure prend quelques secondes.

Cela a été une bonne solution pour moi et ne repose que sur les trois utilitaires de ligne de commande (svn, xbuild et releaseit), le client de base de données, SSH et Bash.

Je dois vraiment mettre à jour la copie de ReleaseIt sur CodePlex:

http://releaseit.codeplex.com/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top