IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Performance Web Discussion :

Cas des petites mises à jour sur site à fort trafic


Sujet :

Performance Web

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Cas des petites mises à jour sur site à fort trafic
    Bonjour,

    Je suis confronté a un problème pour la première foi, qui en est devenu un depuis que notre site commence à avoir un certain nombre de visites (1500 à 2000 / jour). Bon certes ce n'est pas encore faramineux, mais ce nombre va croissant de jour en jour.

    Parallèlement le site est en constante évolution (service supplémentaires, refonte d'ancien contenu, etc), et en plus de mises à jour majeurs, j'effectue de petite mises à jour régulièrement, en remplaçant des scripts php via upload FTP.
    Le problème est que si quelqu'un se connecte alors que l'upload d'un des fichiers n'est pas terminée, il peut voir un message d'erreur du style :

    Parse error: syntax error, unexpected $end in /path/to/file.php on line XX
    (et pire pour les scriptes js, l’erreur n'est pas forcément visible)

    Avec 1500 visites la probabilité de se connecter pile au moment de l'upload commence à devenir élevée, sachant que toutes les connections se font principalement entre 8h et 22h, sa nous fait plusieurs connections par minutes (j'estime la probabilité de 1/10 à 1/5 selon les heures, je pense qu'il faudra vraiment trouver une solution pour quand on arrivera à 3000 visites/jour, je commence donc déjà a réfléchir ^^).

    Comment procédez vous? Quel est la "best practice" si il y en a une?
    Pour les grosses mise a jours, j'effectue une redirection 503 sur une page de maintenance, mais sa me parait vraiment fastidieux de le faire pour la moindre petite mise à jour, surtout que j'aimerai que cela se vois le moins possible.

    Merci d'avance pour vos conseils.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Points : 229
    Points
    229
    Par défaut
    Salut, ce qui me surprends le plus, c'est que tu utilise le protocole ftp pour faire des mises à jour. Aujourd'hui il existe plusieurs façon de procéder, que ce soit pour la mise en production ou pour les phases de test, en interne ou sur un serveur distant.

    Je ne suis pas expert en la matière, mais pour ma part je gère plusieurs sites avec des audiences supérieurs à tes données et je n'ai pas eu de retour négatif à ce sujet.

    En bref, j'utilise le protocole git (il y a pas mal de tuto et autres articles traitant du sujet sur le net), j'ai un "hook" qui me permet de mettre sur mon environnement de test distant la mise a jour (via une simple ligne de code). Je vérifie que les changements sont pris en compte. Une fois les vérifications effectuées, je pousse en production (toujours avec un hook).

    Mon script se connecte au serveur ftp de production, créer un dossier temporaire (auquel je peux accéder en live via un accès sécurisé), si je veux m'assurer du bon fonctionnement, en cas de doute, je peux le faire via ce dossier temporaire.

    A chaque fois que je pousse en production, je créé un fichier (à la fin du transfert, très rapide puisqu'en interne sur le serveur), contenant le timestamp de fin du protocole (correspondant à la date de création du fichier).

    Ensuite j'ai une cron tab qui s'effectue toutes les 6 heures (sauf le weekend, les jours fériés et le vendredi. Si le fichier de confirmation date de moins de 6h, alors le script se charge de remplacer le contenu live par le contenu du dossier temporaire de production.

    Je ne sais pas si je me fais bien comprendre, je n'ai pas la prétention de dire que c'est la meilleur façon de faire, mais ça fait un petit moment que ça tourne chez moi et actuellement je ne vois absolument aucune raison de changer.

    Si tu as des questions, n'hésites pas.

    Mais encore une fois, l'utilise d'un client ftp pour faire de la mise à jour sur un serveur de production est à mon humble avis, à bannir. Ça n'entre pas dans un workflow collaboratif et c'est vraiment galère quand tu as un bug à fixer par la suite.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Mh, je me doutait bien que le client ftp était a bannir, même si celui que j'utilise ne remplace que les fichier modifier, il ne gère même pas les cas de fichier corrompu x)

    J'utilise moi même git pour mes gestions de projets, quel qu'il soit, du plus gros au plus petit (c'est ma foi fort puissant même dans une équipe de 1 seul dev ^^).
    Mais je ne l'utilise que depuis peut, je commence tout juste a y être bien familiarisé .

    L'utilisation des hooks, même si j'ai la forte impression d'avoir lue ce terme a plusieurs reprise, m'étais inconnue: je pensais que quoi qu'il en sois il fallait une installation de git sur le serveur pour poussé un dépot modifié =o
    Si j'ai bien compris ce n'est pas le cas?
    mais alors ton cron tab remplace les fichiers modifier lui même?

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Points : 229
    Points
    229
    Par défaut
    Une réponse rapide, je complètement plus tard si besoin est...

    Evidemment pour profiter pleinement des bienfaits de git, il faut installer git sur son serveur, mais il existe des libs qui te permettes de gérer ton dépot via ftp pour l'utiliser sur un hébergement mutualisé par exemple.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Ok merci pour tes conseils en tout cas.
    Je vais faire quelque recherche, mais des bons liens sur tout sa serrai la bienvenue ^^ (pas sur git en général bien sur, j'ai déjà le lien vers pro git traduit en français fourni ici meme :p )

  6. #6
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    je sais pas sous quel os t'es, mais sous linux c'est génial, car tu peux monter (activer si tu prefere) un hdd virtuel qui représente ton serveur, donc tu peux ouvrir les fichiers et les modifier, dès que tu clique sur sauvegarder, le fichier est maj automatiquement.

    LINUX EST MAGIQUE

Discussions similaires

  1. Pericles: import mises à jour sur site web
    Par kihmjak dans le forum CRM
    Réponses: 0
    Dernier message: 05/03/2015, 18h19
  2. Réponses: 2
    Dernier message: 21/09/2009, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo