2010-11-22 32 views
1

Je viens de terminer le codage d'une application Web de base et l'ai téléchargée sur mon vps. Jusqu'à présent, j'ai tout développé sur mon serveur domestique local. À l'avenir, je vais travailler avec 2 ou peut-être même 3 personnes pour développer l'application plus loin. Je n'ai pas les fonds pour des environnements physiquement séparés. Je veux juste pouvoir développer dans un environnement, le tester dans cet environnement et promouvoir le code à la production. Je ne vois même pas le besoin d'un environnement de test séparé.Stratégie d'environnement de développement/test/production simple pour une équipe de 2 personnes

J'imagine qu'ils sont des millions de codeurs solo comme moi, quelle est la solution générale à ce problème? Aussi, je sais que je devrais mais je n'utilise aucun contrôle de révision de source tel que GIT, est-ce nécessaire pour ce que j'essaye de réaliser?

Répondre

2

Je recommanderais SVN pour le contrôle de la source. C'est simple, facile à configurer, a un bon client Windows (Tortoise) si c'est ce que vous utilisez, et très facile à utiliser pour les petites équipes de développement. Avoir un "serveur de dev" central que partagent les 2 ou 3 développeurs, qui hébergerait le référentiel SVN. Le développement serait fait et testé sur des machines locales et engagé sur le serveur de dev une fois prêt (de petites fonctionnalités dans la durée d'une journée de travail, idéalement).

Le serveur dev peut également héberger une petite installation de TeamCity (un seul projet serait une version gratuite, je pense) ou une forme de serveur d'intégration continue. Cela peut être facilement configuré pour avoir des builds déclenchés par commit (donc les erreurs de build sont détectées immédiatement), builds et déployements nocturnes (pour des tests d'intégration continus), etc.

Le serveur de dev lui-même peut également héberger l'application web. Puisqu'il n'y a qu'un très petit nombre de personnes qui y accèdent et que la recherche de ressources peut être coordonnée verbalement, il n'est pas nécessaire d'être une machine sérieuse. Maintenant, votre question semble impliquer qu'il ne peut y avoir qu'une seule machine (manque de fonds pour des environnements séparés, se développer dans un environnement, etc.) pour vous tous au total. C'est très bien. Cela peut être hébergé sur la machine locale. Mais en séparant les préoccupations entre différents services (serveur de contrôle de source, serveur d'intégration continue, serveur de déploiement cible), il sera plus facile de décharger ces services sur d'autres machines au cours de toute croissance future.

Accordé, cela peut être trop pour vos besoins. C'est très bien. Supprimez TeamCity de l'équation et déployez-la manuellement sur la machine locale et testez-la à partir de là. Pas de problème alors que votre équipe est petite et assez proche pour une bonne communication verbale ouverte. Mais définitivement, ne prenez pas le contrôle de la source hors de l'équation. Ce n'est pas parce que vous êtes tous sur la même machine que vous ne pouvez pas marcher sur les pieds et casser le code. Si rien d'autre, le contrôle de la source fournit un grand journal d'audit des modifications apportées au code.Peut-être que vous voulez annuler quelque chose il y a des mois que vous avez fait, ou voir ce qu'il était avant que de se rappeler comment vous avez fait quelque chose, etc. Même un seul développeur sur une seule machine sur un petit projet doit absolument employer le contrôle source.

0
  • Vous devrait contrôle l'utilisation de révision pour tout projet non trivial.

  • Pour une équipe de 2 personnes, git est toujours approprié. Un flux de travail serait d'avoir un repo git "béni" qui reflétera la production, et que chaque développeur fasse un git push au dépôt béni une fois qu'il a testé ses changements (dans sa boîte de développement).

Mais tout dépend de l'environnement fourni par votre SMV. Par exemple, certaines versions plus anciennes de CentOS n'ont pas git (vous devrez maintenir vous-même une installation git).

Peut-être devriez-vous fournir un peu plus de contexte dans votre question?

0

Vous ne voulez pas faire le processus d'élaboration ou d'autre personne ne suivra. Rester simple.

je recommanderais git pour le contrôle de version. Simple, flexible, il facilite la création de branches et la fusion.

configuration possible: Avoir le repo principal où tout est poussé à. Une fois que vous êtes heureux (et il a été testé) et vous êtes prêt à passer à prod 'tag du référentiel avec un numéro de version et de l'environnement de prod tirer la version marquée du projet que vous voulez.

Cela permet de maintenir les choses simples et si vous l'aimez peut tous être sur un serveur (recommander différents répertoires bien).