|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Développeur Web Inscription : décembre 2004 Messages : 636 ![]() |
Bonjour,
je suppose que d'autres se sont déjà confronté à ce problème : moi et mon autre collègue développeur, on bosse "en direct" sur les sources d'applis/sites en exploitation, ce qui créé quelques problèmes avec les utilisateurs lorsque l'on est en train de faire une modif qui n'est pas finie ou débugguée ![]() Heureusement, j'ai fini par obtenir de mes chefs qu'ils me fournissent un serveur dédié au développement, afin qu'on puisse triturer le code et les données tranquilles sans stresser Ma question est la suivante : Quelle méthode ou outil utiliser pour verser les modifs une fois qu'elles sont prêtes ? L'idéal, ça serait que je puisse transférer les fichiers sources sur le serveur d'exploitation "d'un bloc" et en conservant les mêmes droits sur les fichiers et dossiers que ceux qui étaient positionnés sur le serveur de dev , histoire de ne pas avoir à me taper des chmod à la main dans tous les sens chaque fois que fais un versement, ce qui serait long et source d'erreurs. De plus, il y a le problème des bases de données : en effet, si mes modifs incluent des changements sur la structure des données, comment appliquer ces modifs de façon propre et sans erreur sur le serv d'exploit' ? Si mes modifs incluent des changements sur le contenu des données, comment faire pour les appliquer de façon sûre au serv d'exploit sans abimer les données qui doivent rester en place ? J'ai bien pensé à utiliser un CVS, mais je ne pense pas que ça gère les droits ? me trompe-je ? Et puis pour les BD, je pense que c'est carrément pas adapté, voir impossible de le faire par CVS ... Voilà, vous avez compris mon problème. Si vous connaissez des outils logiciels ou même méthodologique (voir simplement des conseils avisés) qui permettent de faire ça de façon propre et sûre, et si possible sans interruption de service lors de l'application des modifs (ou le moins possible), je suis plus que preneur Merci d'avance et bon week-end !
__________________
Ne cliquez pas sur ce lien |
|
|
00
|
|
|
#2 | |||||
![]() ![]() Inscription : août 2005 Messages : 8 307 ![]() |
Des méthodos documentées, je sais pas mais on devrait pouvoir te filer des tuyaux
![]() Déjà, une chose à faire avant tout : installer un serveur de versioning genre CVS ou Subversion. Ca vous permettra de travailler à plusieurs sur les mêmes fichiers, de travailler éventuellement en avance de phase et surtout pouvoir établir de manière certaines ce qui va être livré en prod (= versions). L'intérêt des versions c'est qu'en cas de pb, vous êtes capables de revenir en arrière et retrouver exactement le source utilisé à un moment donné sur la prod. Et bien entendu, CVS (ou l'autre outil de versioning) est installé sur un serveur sûr et sauvegardé régulièrement Logiquement, il serait bien que vous disposiez d'un 2ème environnement dit d'intégration qui soit le plus proche possible (en OS, versions des logiciels, etc.) de la prod : cet environnement vous servira à tester vos dév de prod et surtout vos procédures d'installation en prod. Ainsi, en cas de pb, vous n'avez rien cassé sur la prod et vous pouvez étudier le pb avant de recommencer éventuellement. Quand tout marche bien sur l'intégration (procédure d'installation et sources), passez en prod (voir plus loin). Une fois que ce serveur est en place, il faut initialiser ce référentiel de source avec ce qui se trouve aujourd'hui en prod puis construire votre environnement de dev à partir de ces sources et d'une extraction des données de prod. Vous construirez donc au besoin des fichiers SQL pour construire la structure de la base de données. L'idée pour récupérer des données de prod c'est de pouvoir évaluer les impacts de vos modifs sur le modèle de données et vos scripts. Si vous ne pouvez pas utiliser des données issues de la prod pour des raisons de confidentialité ou je ne sais quoi d'autre, on peut toujours utiliser un jeu de données bidon mais il faut absolument que ce jeu soit représentatif de la prod en qualité et en volume. Pour l'installation (en intégration ou prod), l'idéal est d'essayer d'automatiser au maximum les procédures. Pour 3 raisons : éviter les erreurs de manip, assurer un maximum de reproductibilité des procédures (corollaire du précédent) et aussi gagner du temps Pour l'installation en production, vous avez normalement fait un premier essai sur l'intégration. Il faut que l'intégration soit le plus proche possible de la prod pour pouvoir mesurer les impacts (comme par exemple les chmods à faire ou refaire et à scripter éventuellement pour éviter les erreurs ou les oublis) et évaluer vos procédures d'installation. pour faire les choses bien pour le passage en prod, il faut prévoir une mise en indisponibilité de la plateforme. D'abord, vous prévenez les clients de la date et de la durée de l'indisponibilité. Ensuite, vous mettez en place une procédure ou page qui empêchera les clients d'accéder à l'appli pendant que vous faites vos installations tout en vous permettant de faire des tests. Vous ne rendez l'application disponible que quand vous avez fini et validé vos modifs. Last but not least : avant d'installer quoi que ce soit, faire un backup pour pouvoir revenir en arrière à tout moment de manière sûre en cas de pb. Dans le détail : Citation:
Citation:
Citation:
Après, tout découle de ce que j'ai déjà dit : tu diposes d'un jeu de données représentatif de la prod donc tu peux évaluer les impacts de tes modifs et donc écrire des scripts de migration des données. Y a pas de recette miracle : faut savoir d'où on part, où on veut arriver et quoi faire pour y arriver Citation:
Citation:
Après tout ça, tu vas me dire que c'est le cirque, que ça va faire exploser les temps de développement et de livraison. C'est tout à fait vrai mais c'est le prix à payer pour la qualité, la sécurité et la satisfaction du client
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|||||
|
|
00
|
|
|
#3 | |
|
Membre chevronné
![]() Développeur Web Inscription : décembre 2004 Messages : 636 ![]() |
ouaouh ! déjà, première chose : MERCI pour ces explication claires et super détaillés, ca fait plaisir
![]() Le coup du serveur d'intégration et des patch scriptés c'est bien vu, on sent l'experience ... Je comprends parfaitement tout ce que ça peut m'apporter en terme de rigueur et de fiabilité des maj. Reste deux petits problèmes :
Je sais que j'en demande beaucoup, mais bon en même temps je veux être bien au point : si je réussis à avoir un 3e serv, et qu'au final mes devs prennent deux fois plus de temps, ça risque de pas très bien passer ![]() Et puis, quand je serais bien rodé sur ce genre de méthode, ça me servira bien sur le long terme, et ça ça interesse bigrement le p'tit jeunot que je suis ... Merci pour tout
__________________
Ne cliquez pas sur ce lien |
|
|
|
00
|
|
|
#4 | |||
![]() ![]() Inscription : août 2005 Messages : 8 307 ![]() |
Citation:
Tout est histoire de compromis par rapport à la criticité des données : si tes clients (même si tu n'es pas en SSII, on peut parler de clients : ce sont les donneurs d'ordre) sont prêt à accepter qu'il peut y avoir des bugs, des régressions et éventuellement qu'on soit obligé de restaurer des données, donc de perdre le travail de 1 ou 2 jours, pourquoi pas zapper la phase d'intégration pour aller plus vite. Mais c'est risqué, je trouve. Et il me semble que dans l'administration, quand on parle de délai, on s'autorise une certaine marge de manoeuvre. Me trompe-je ? Citation:
). D'expérience, tu écris toi-même tes scripts et tu les adaptes d'une livraison à une autre. C'est donc du temps à prévoir en plus de tes développements, malheureusement.Citation:
Et puis tu peux y aller progressivement, plutôt que d'y aller d'un coup CVS + intégration + scripts de déploiement et d'avoir à gérer beaucoup de changements à la fois. Tu peux commencer par mettre en place CVS. Quand tu es familiarisé avec la bête, tu passes aux scripts, mais là, tu verras que pour tester tes scripts, il te faudra un serveur identique à la prod, donc quelque part un environnement d'intégration
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|||
|
|
00
|
|
|
#5 | ||||
|
Membre chevronné
![]() Développeur Web Inscription : décembre 2004 Messages : 636 ![]() |
Encore merci !
Oui, je comprends bien que je ne suis pas obligé d'utiliser un 3e serv, et qu'il faut savoir s'adapter ... Mais c'est vrai qu'avoir un serveur d'intégration pour tester et appliquer des patches bien propres sur le serveur de production, ça serait quand même le top Citation:
Quand à mes "clients" ils veulent que ça aille vite ET que ça ne buggue pas, ET aussi que je devine les besoins qu'ils ne sont pas capables d'exprimer, ET que je sache quoi faire quand ils demande une nouvelle fonctionnalité résumée en une ligne dans un mail ... bref, il faut que ça soit magique ... Citation:
Mais c'est déjà insupportable quand on me reproche les retards dus à l'absence de gestion des projets, au manque d'expression des besoins, ou aux modifs sur le CDC en cours de développement (voire même après) ... mais bon, je suppose qu'on est un peu tous logés à la même enseigne :s Citation:
(après tout, je ne suis qu'un salaud d'informaticien, donc mon unique but dans la vie est de leur pourrir la leure)Bref, je m'égare un peu ! Pour ce qui est de faire touner dev et intégration sur la même machine, ça vient de me donner une idée : je pense que je vais essayer de faire tourner sur le serv de dev une image du serv de prod sous vmWare qui servira à l'intégration. En ajoutant une petite tâche cron (ou assimilé) qui écrase l'image chaque soir avec une copie toute fraiche du serv de prod, je suis sur d'avoir un serv d'intégration toujours bien propre et bien identique à l'environnement de prod. En plus, si jamais je foire une maj qui "casse tout" sur le serv d'intégration, ca sera très facile de le restaurer d'après l'image de la veille Citation:
Bon, et bien merci beaucoup pour tous ces conseils, _Mac_, grâce à toi je commence à avoir une idée plus précise de la façon dont je vais m'organiser ![]() Si d'autres ont des compléments à ajouter, un peu de leur expérience perso de ce genre de problème à me donner, des outils à me conseiller, des astuces etc ... n'hésitez pas ! Encore merci
__________________
Ne cliquez pas sur ce lien |
||||
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : août 2005 Messages : 8 307 ![]() |
Citation:
![]() Bon courage en tout cas.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com