J'ai été le développement d'un flux de travail pour la pratique d'un des plus automatisés déploiement continu du cycle d'un projet PHP. J'aimerais avoir quelques commentaires sur les processus ou les goulots d'étranglement techniques dans ce flux de travail, suggestions d'amélioration, et des idées sur la façon de mieux automatiser et d'augmenter la facilité d'utilisation pour mon équipe.
Composants principaux:
-
Hudson
Serveur CI -
Git
etGitHub
-
PHPUnit
tests unitaires Selenium RC
-
Sauce OnDemand
automatisée, de la croix-navigateur, le test du cloud avecSelenium RC
-
Puppet
pour l'automatisation des déploiements de serveur de test -
Gerrit
pour Git de la revue de code -
Gerrit Trigger
pourHudson
EDIT: j'ai changé le flux de travail graphique à prendre ircmaxwell les contributions du compte en: supprimant PHPUnit
s'extension pour Selenium RC
et l'exécution de ces tests dans le cadre de la QC étape, l'ajout d'une QC scène; le déplacement de l'INTERFACE utilisateur de test après l'examen du code, mais avant fusionne; le déplacement fusionne après le QC de la scène; le déplacement de déploiement après la fusion.
Ce flux de production graphique décrit le processus. Mes questions / pensées ou des préoccupations à suivre.
Mes préoccupations et les idées / questions:
La difficulté globale à l'aide de ce système.
Participation de temps.
La difficulté employant
Gerrit
.La difficulté employant
Puppet
.Nous allons déployer sur
Amazon EC2
cas plus tard. Si nous allons sur la configuration de l'Debian
des forfaits avec desPuppet
et le déploiement d'Linode
tranches d'aujourd'hui, il existe un potentiel pour un travail de déploiement surLinode
à la pause surEC2
? Devrions-nous plutôt nous faire de notre construit et les déploiements surEC2
de l'obtenir-aller?Autre question: re:
EC2
etPuppet
. Nous tenons aussi compte de l'aide Scalr comme une solution. Serait-il comme beaucoup de sens pour éviter la surcharge de l'Puppet
pour ce seul et investir dans Scalr à la place? J'ai un secondaire (ha!) ici une préoccupation au sujet des coûts; l'Selenium
tests ne devraient pas être en cours d'exécution que souvent qu'EC2
construire des instances de fonctionnement 24/7, mais pour quelque chose comme cinq minutes de construire, de payer pour une heure deEC2
d'utilisation semble un peu beaucoup.Possible du processus de goulets d'étranglement sur les fusions.
Pourrait", Un" être déplacé?
Crédits: les Portions de ce flux de travail sont inspirés par Digg est génial post sur le déploiement continu. Le flux de travail graphique ci-dessus est inspiré par le système d'exploitation Android de Projet.