
Les mises en ligne sont toujours des moments délicats, que ce soit votre site perso, le site de votre client ou pour votre entreprise, une mise à jour importante voir critique… voilà donc quelques conseils accumulés par quelques années d’expérience.
1. Serveur de dev ISO-PROD
C’est peut être le premier conseil à mettre en place le plus vite possible, si vous développez sur une machine qui n’est pas conforme à celle qui est en ligne (même version d’applicatif web, de base de données, même configuration, etc…) vous pouvez vous attendre à quelques surprises, des comportements étranges, des librairies pas implémentées, des erreurs de gestion de fichiers, etc…
Tout particulièrement si vous êtes sous MAMP, un serveur de dev ne coûte pas cher, donc installez une version ISO-PROD, cela vous simplifiera beaucoup la vie.
2. Tester, tester, tester et re-tester (en dev)
On ne le dit jamais assez, mais avant de livrer une modification mineure (ou qui semble mineure) ou un site complet, testez le en local, sur une machine de dev, faites le tester par vos camarades, par les chefs de projets, etc… faites le tester par des inconnus (au projet) pour éviter les surprises. On ne teste jamais assez (on a jamais non plus vraiment le temps…) donc mettez vos petits camarades à contribution et mettez vous dans l’optique d’un utilisateur standard (évitez le Lorem machin truc, introduisez des vrai phrases avec des accents, des apostrophes, etc…).
3. Avoir une méthode infaillible (packaging)
Suivant la méthode de livraison (fichier par fichier, package ou SVN) vous devez trouver LA méthode qui vous permettra de ne jamais être pris en défaut. Notez tous les fichiers qui doivent être mis en ligne et recheckez pour ne pas en oublier. Etablissez une méthode simple et efficace que vous devez suivre tout le temps à la lettre, cela vous évitera de vous poser des questions sur la méthode de mise en ligne et vous pourrez ainsi vous concentrer sur d’autres aspects foirreux de votre mise en ligne.
Personnellement j’aime l’update SVN ou la méthode de pacquets. Vous faites tout simplement un tar avec la reproduction de l’arborescence des fichiers modifiers, vous transférerez détarrez et hop c’est fait.
4. Eviter les livraisons hasardeuses
Evitez les livraisons bancales de développements pas testés ou trop peu, les ajouts de modules par des entreprises tiers dont vous n’avez pas confiance, etc… au final c’est vous qui devrez redresser la situation, donc en cas de gros doute, bottez en touche.
5. Eviter les livraisons du vendredi à 18h37
C’est peut être un des conseils les plus avisés… ne JAMAIS, je dis bien jamais faire une mise en ligne précipitée un soir, sans l’appui de votre équipe (et tout particulièrement des développeurs qui ont écrit le code), je sais que le cas arrive (trop?) souvent, mais c’est la pire des configurations: vous êtes fatigué, vous avez envie de rentrer à la maison, vous bâclez votre mise en ligne, le serveur est en rade, vous tenter de réparer dans la précipitation et vous aggravez le cas… une horreur
Si ce n’est pas une mise à jour critique, refusez tout simplement la mise en ligne!
6. Une seule personne en charge
Une des (nombreuses) sources de problèmes peut venir de la multiplication des personnes en charge de la mise en ligne (et du partage des accès root – berk ça c’est vilain, mais bon). Au lieu de X personnes qui mettent en ligne leur bouts de code respectifs, choisissez une seule personne en charge de la mise en ligne et donc de récupérer tous les éléments à mettre en ligne. Au moins vous savez qui a mis en ligne quoi, à quel moment (et vous évitez la chasse aux sorcière pour l’envoi d’un fichier corrompu ou tronqué)
7. Penser à TOUT (et le noter)
Souvent dans la précipitation ou le stress on oublie des choses: modification une configuration, changer le modèle de données, remonter un bout de base de données, supprimer certains anciens fichiers inutiles, etc…
La SEULE méthode qui fonctionne correctement est de se faire une mini check-list et de s’y tenir.
8. Responsabiliser les développeurs
Même si vous mettez en ligne, les développeurs ont certaines responsabilités:
- tester ses développements et s’assurer qu’il ne reste aucun bug
- vous fournir une liste exhaustive des fichiers modifiés ou créés (et ça veut dire TOUS les fichiers)
- etc…
en cas de problèmes, vous devez leur remonter gentiment (mais fermement) les bretelles pour leur rappeler leurs devoirs.
9. Eviter les livraisons multiples à la chaîne
C’est aussi une source d’embrouille… vous avez mis une version en ligne qui a été semi testée, on vous envoi ensuite 27 demandes de mise en ligne partielles de bouts de code toutes les 9 minutes. Il y a u grand risque que vous fassiez ces livraisons à la barbare sans trop vous soucier des effets de bord (voir en écrabouillant par mégarde certains fichiers).
Temporisez et mettez en place des règles de test et de livraison unitaire (qui représente un développement finalisé et testé)
10. Savoir dire NON
Au final c’est vous qui serez dans la merde, donc si vous voyez un problème se profiler, n’hésitez pas à dire non, à refuser une livraison si elle vous paraît risquée. Proposez un autre planning incluant tests divers plus réaliste et plus conforme à vos règles de sécurité.
11. Bonus spécial: Sauvegardez!!!
On ne le dis jamais assez mais avant une livraison qui peut s’avérer foireuse, il est important de pouvoir rétablir la version antérieure du serveur en quelques minutes. Donc sauvegardez (code et base de données de préférence) et en cas de besoin vous pourrez faire un roll-back rapide et efficace.
Par expérience une mise en ligne est toujours une opération délicate, qui peut se solder par de vrais catastrophes… seule parade: une méthode infaillible pour ne rien (ou le moins possible) laisser au hasard.
Et vous des conseils, quelques anecdotes croustillantes ?