27 votes

Quelle proportion du processus de construction Web automatisez-vous / devriez-vous?

Comment une grande partie du Web processus de construction faites-vous/devriez-vous automatiser?

Et qu'est-ce que votre système de choix?

Sur le dessus de ma tête, je dirais que pour un véritable one-step web 'construire' les étapes suivantes ont lieu:

  1. Prendre une source de capture instantanée
  2. Changer tout les fichiers de configuration pour la version
  3. Compression du CSS et JavaScript
  4. Exécuter les tests
  5. Prendre un instantané de base de données (sans données de test)
  6. Le déplacement de la source vers le serveur
  7. Importer un nettoyage, à la version actuelle de la base de données dans le serveur
  8. Confirmer automatiquement la "construction" a été un succès

Un système est-il que le fait toutes ces étapes?

16voto

Michiel de Mare Points 15888

Oui, en Ruby terre, nous avons Capistrano, qui a des "recettes" pour l'exécution de l'interpréteur de scripts sur vos serveurs.

Une recette typique de déploiement à la suivante:

  • découvrez la dernière version du code source sur votre serveur de production
  • avoir le serveur web direct à toutes les demandes à une "mise à niveau en cours de traitement"
  • prendre le serveur de l'application en mode hors connexion
  • point de la version en cours à la dernière version que vous venez de vérifié
  • mise à jour de la base de données
  • redémarrez le serveur d'applications
  • "ping" le serveur d'applications pour vous assurer que le cache est amorcée
  • point de du serveur web sur le serveur d'application

Si quelque chose va mal, il sait comment revenir à la version précédente.

Il est destiné à des développeurs Ruby, mais vous pouvez l'utiliser pour tout type de Unix à base de déploiement.

Aussi, chaque fois que j'ai vérifier dans le code source pour le serveur, le serveur s'exécute automatiquement mes tests, et envoie-moi un email si un d'eux échoue.

Le Ruby et Ruby on Rails de la communauté sont des fanatiques sur l'automatisation de choses. E. g. il y a aussi des recettes pour tourner les nettoyer Ubuntu installer dans un Ruby on Rails serveur avec Apache, MySQL, contrôle de code source, etc.

3voto

Mike Stone Points 21293

Je sais Ant build scripts sont assez moche, mais vous pouvez le faire dans Ant. En gros, tout ce que vous pouvez faire en Java, vous pouvez le faire en Ant (puisque vous pouvez créer des tâches écrit en Java, ce qui est à peu près tout programmable).

Dans mon entreprise, j'ai créé CruiseControl essentiellement que, et CruiseControl est alors courriel à quiconque vérifié dans le code cassé si l'échec de la construction. Nous n'avons pas toutes les mêmes étapes dans notre build, mais j'ai pensé à utiliser une sorte de JavaScript compresseur dans la construction.

Je dirais que vous pourriez ne pas traiter avec le déplacement du stuff sur le serveur, mais plutôt courir le construire avec une sorte de cible de déploiement sur le serveur réel. Aussi, pensez à ajouter dans un "exécuter tous les tests" à cette liste (ou d'exécuter une portion de tous les tests).

3voto

Rob Allen Points 7768

Nous avons récemment commencé à utiliser Visual Build Pro sur un serveur central dans le bureau. Vous maintenir le script sur la construction de la boîte et à terme servir pour publier une génération.

Les mesures que nous avons le script ne sont pour l'instant:

  • effacer le dossier du fichier de
  • tout télécharger à partir de la source de contrôle
  • projet de construction à l'aide de MSBuild
  • FTP au serveur (test, ou en direct)
  • envoyer succees e-mail aux personnes concernées.

Le temps et les maux de tête ce qui a sauvé sont énumérables. Rendre le script ci-dessus a fallu moins de 20 minutes et un autre de 15, ou alors pour tester.

Vous pouvez avoir Visual Build Pro appel sql de Comparer ou de scripts générés see Database Publishing Wizard pour pousser votre DB.

2voto

Michael Pryor Points 11198

Finalbuilder le fait et le fait bien.

C'est une application Windows standard que vous pouvez programmer avec n'importe quel type d'instruction ou de travail (beaucoup sont intégrés). Il sait parler à pratiquement n'importe quoi.

Et une fois que vous l'avez construit, vous pouvez exécuter son serveur Web qui vous permet de démarrer la construction de n'importe où et de voir les résultats.

1voto

Greg Hurlman Points 10944

Je sais que les scripts de construction de Ant sont plutôt laids, mais vous pouvez tout faire dans Ant. Fondamentalement, tout ce que vous pouvez faire en Java, vous pouvez le faire dans Ant (puisque vous pouvez créer des tâches personnalisées écrites en Java, ce qui est à peu près n'importe quoi programmable).

La même chose vaut pour NAnt /.NET - J'ai fait beaucoup de builds web en une seule étape comme ça.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X