Migration du blog vers une Dedibox DC

Date: 3/09/2011 | Catégories: Blog,Open-source,Web | Tags: ,,,

Ce matin, vers les 10h, j'ai procédé à la migration de mon blog depuis un serveur VPS Gandi 4 parts vers une Dedibox DC.  J'ai choisi un samedi matin car c'est à ce moment là que le trafic est le plus faible sur le site.

Voici la procédure que j'ai suivi:

  • Installation du nouveau serveur en suivant cette procédure
  • Sauvegarde de la base MySQL depuis le serveur VPS Gandi
  • Fermeture des commentaires sur le blog WordPress du serveur VPS Gandi
  • Copie du répertoire wp-contents vers la Dedibox DC
  • Importation de la base MySQL sur la Dedibox DC
  • Test du nouveau serveur
  • Modification des serveurs DNS

 

La migration semble se dérouler comme sur des roulettes. J'ai encore quelques connexions sur l'ancien serveur, depuis des réseaux dont les DNS ne sont pas encore à jour.

Au niveau des performances, les graphes suivants parlent d'eux même, le nouveau serveur résiste beoucoup mieux à la charge, il faut dire que j'utilise un nouveau stack HTTP: Varnish 3 + Nginx.

Performances avant la migration:

Performances après la migration:

Si vous rencontrez des problèmes pour accéder à mon blog, merci de me prévenir :).

Update: Certains lecteurs rencontrent des effets de bord (page non mise à jour après un commentaire et affichage de la version mobile), j'ai donc désactivé Varnish en attendant de trouver LA configuration qui va bien. J'ai refait un test avec Load Impact et l'on voit clairement que l'on perd en perfo...

Update2: Tout est rentré dans l'ordre 🙂

  • Salut,

    Avec quel logiciel as tu réalisé les graphiques et les tests de performances ?

    Sinon ton test est un peu biaisé, car ce n’est pas la même architecture matériel. Un VPS contre un serveur physique, à mon avis tu aurais eu de meilleures performances sans même utiliser varnish… avoir.

  • Hmm, quelle est l’utilité de varnish, si tu n’as qu’un seul serveur ?

    • Caching des élements statiques (images, fichiers pdf…)

      • Bonsoir,

        Il me semble que Varnish sert à mettre en cache la page afin by-pass la génération via le php en backend (un peu comme avec squid ou nginx proxy).

        Concernant le cache des ressources statiques, c’est plutôt le job du serveur web via les entêtes HTTP (mod_expire => header 304).

        exemple avec nginx :

        location ~* ^.+\.(ico|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        if (-f $request_filename) {
        expires max;
        root /sites/example.com/public;
        access_log logs/static.log;
        }
        }

        https://github.com/paulirish/html5-boilerplate/wiki/nginx.conf

        Varnish est capable de transmettre les entêtes envoyées par le backend.

        • Je suis totalement d’accord avec ton analyse technique. Par contre je n’arrive pas à expliquer la différence de performance avec et sans Varnish.

          • Hello!

            Selon la config de ton varnish, il garde le cache en ram, ce qui rend les accès nettement plus rapide.

            As-tu tenté nginx + memcached ? Dans le cas de mon blog (pylons), je me suis amusé à faire que le moteur plante les pages dans memcached.
            J’ai fait en sorte que nginx cherche en premier dans le memcached, avant de faire appel au contrôleur pylons.
            Résultat: nettement plus rapide. Il faut encore que je joue sur la durée de vie des pages mises en cache, et que je complète le moteur de mon blog avec une gestion fine de ce même cache, de manière à ce qu’il le tienne à jour automatiquement en cas d’édition des posts, etc.

            ++

            T.

  • cyrinux

    Bonjour Nico,

    TU as un problème auquel j’ai été confronté à l’époque ou j’ai voulu installer la même « stack » que toi. Je n’ai pas eu le temps de m’y pencher et j’ai fini par viré varnish.

    En surfant à partir d’un firefox je me tappe de temps en temps des pages proovenant de wp-mobile.

    Il te faut surement améliorer quelques rêgles varnish.

    • Effectivement, j’ai qq retour d’effet de bord. En attendant d’avoir un peu de temps pour regarder cela j’ai donc désactivé Varnish.

  • J’espère que tu feras un billet spécial Varnish optimisé WordPress. Je m’y suis cassé les dents et j’espère tous les matins (suis abonné à la newsletter) que tu trouveras la solution 🙂

  • je serai curieux de voir le résultat du bench avec tout simplement nginx en front avec le proxy cache activé.

    Il me semble que ce module wordpress aide à faire cela (jamais tester, je n’utilise pas wordpress) :

    http://wordpress.org/extend/plugins/nginx-proxy-cache-integrator/

  • Cool, tu vas gouter aux joies d’un vrai serveur dédié.
    J’heberge 6 serveurs virtuels Xen sous ma Dedibox QC, et j’en suis très content.

  • numberxiii

    Bonjour

    Quand je déplace un site d’un serveur à un autre, j’utilisé les fonctionnalités de reverse proxy d’apache sur l’ancien serveur pour renvoyer les requêtes des internautes qui n’ont pas les dns à jour vers le nouveau serveur.
    Nginx propose du reverse proxy ? Ça serait possible avec varnish ?

    Longue vie au blog sur sa dedibox !

    ++

    • Gasmi christophe

      Oui c’est possible, simplement remplacer l’IP du backend dans varnish par l’IP du nouveau serveur.
      Si c’est seulement un domaine parmi d’autre, faire l’ajout d’un second backend et fait un match sur le host de la requête et lui définir ce backend distant.

  • JaCe

    Typiquement le genre d’utilisation de varnish faites par des gens qui ne savent pas s’en servir …

    D’ou d’ailleurs ton problème de page cache comme les commentaires et autres.

    +1 a Benjamin dos Santos

    • Le but est justement d’apprendre à m’en servir et de trouver (enfin) une configuration qui fonctionne avec WordPress. Comme tu as l’air de t’y connaitre, tu pourrais peut être nous éclairer, cela apporterait une petite valeur ajoutée à ton commentaire.

  • Je n’ai pas fais de Varnish avec WordPress mais avec typo3.
    Mais en gros, si tu n’est pas loggé dans wordpress, tu peux tout cacher… sauf les commentaires.
    Dans ce cas le mieux serait de les « ajaxiser ».
    Je sais qu’il existe un plugin wp_ajax_comment mais je sais pas si ca fait bien ca…

    Sinon il faudra que tu aille modifier ton theme… Ou faire en sorte que la fonction qui poste un commentaire aille faire un PURGE (un BAN dans varnish 3.0) de la dite page… J’imagine que ce serait ca le plus efficace…

    Dans tous les cas Varnish est un super outil.

    Pour ce que les autres ont dit, effectivement, Nginx devrait aussi pouvoir cacher certains fichiers… Mais si tu as varnish devant, pas besoin…

  • c’est technique mais c’est rudement bien fait!

  • merci pour tes explications.