Varnish 3 et le streaming : un cas d’usage

Varnish 3 propose une solution pour streamer du contenu : il permet de délivrer à un client un flux (audio, vidéo…) tout en le cachant pour les prochains utilisateurs. Malheureusement dans sa version actuelle, il ne permet de streamer du contenu qu’à un seul client . Les autres clients sont placés en file d’attente. Martin Blix Grydeland a développé une nouvelle implémentation qui sera disponible dans la prochaine release majeure. En attendant, il existe une version de Varnish patchée : Varnish 3.0.2s. Cet article est donc basé sur cette version. Plus d’infos sur le blog de Varnish. ...

Installer un serveur Puppet scalable – partie 2

Suite de l’article Installer un serveur Puppet scalable – partie 1 : vous avez maintenant un serveur Puppet qui fonctionne. On va rajouter un backend MySQL pour utiliser toutes les fonctionnalités offertes par Puppet et supprimer le serveur web WEBRick pour installer Apache/Passenger ou Nginx/Passenger. Dans cet article, on part donc de la configuration présentée dans la partie 1 pour arriver à un Puppet Master avec un premier niveau de scalabilité. ...

 16 janvier 2012 1397 mots 7 min

Installer un serveur Puppet scalable – partie 1

Voici une méthode pour installer un serveur Puppet (le Puppet Master) et le rendre par la suite scalable. Par défaut, l’installation “classique” ne permet pas d’atteindre de grosses performances : le Puppet Master utilise, par exemple, le serveur web WEBrick qui atteindra rapidement ses limites. L’idée ici est de remplacer WEBrick par un Apache/Phusion Passenger et dans un deuxième temps, d’ajouter l’utilisation d’un serveur SQL. Même si l’installation d’origine fonctionne sans ces modifications, certaines fonctionnalités ne sont pas disponibles (comme par exemple l’utilisation des ressources exportées, le dashboard… qui nécessitent un serveur SQL). Dans cet article, l’installation est basée sur une Debian Squeeze fraichement installée. Je fais le choix de partir sur des versions non packagées pour certaines briques : je veux par exemple profiter de la souplesse de mise à jour de Puppet via les gems et de Ruby Enterprise. La première partie couvre l’installation simple du serveur et du client. ...

 9 janvier 2012 1701 mots 8 min

Varnish 3 : booster le nombre de hits

Dans cet article, nous allons voir différentes solutions pour augmenter le nombre de hits sur votre cache Varnish. Le but recherché est qu’un maximum de requêtes soient servies depuis le cache plutôt que du backend généralement moins performant. On pourra également essayer de réduire le nombre d’objets en cache et donc l’utilisation mémoire (ou disque) de Varnish. ...

 9 décembre 2011 820 mots 4 min

Cluster Pacemaker Apache actif/actif avec partage de charge simple

Dans un article précédent, je vous ai présenté un cluster Apache en actif/passif. Nous allons voir ici comment le transformer rapidement en actif/actif avec un partage de charge simple. Je ne vais pas refaire tous les rappels de l’article précédent : si vous arrivez directement sur cet article et que vous souhaitez en savoir plus sur la configuration qui sera présentée dans cet article (ou sur le stonith, le quorum…), jetez un oeil à l’article Cluster Pacemaker Apache actif/passif. ...

Purger le cache de Varnish 3

Il y a deux solutions pour purger le cache Varnish : la purge “classique” et les “bans”. Je vais reprendre l’article de varnish-cache.org en rajoutant des exemples pour les différentes méthodes de purge. Mais d’abord, pourquoi purger le cache ? Tout simplement parce que vous avez (vous ou votre client), par exemple, mis à jour une image, une page de votre site et qu’il faut alors purger le cache afin de fournir la dernière version de la page. Dans le cas contraire, tant que le TTL de l’objet (de la page, de l’image…) n’est pas atteint, Varnish ne vérifiera pas s’il y a une version plus récente sur le backend et livrera un contenu “périmé”. Il est donc important d’avoir une méthode manuelle et automatique pour purger votre cache. ...

 15 novembre 2011 1055 mots 5 min

Cluster Pacemaker Apache actif/passif

Suite de l’article des clusters avec pacemaker : nous allons voir ici comment mettre en place un cluster de deux noeuds, en actif / passif avec deux ressources : une VIP et Apache. Le besoin est le suivant : apporter de la haute disponibilité au serveur http Apache. La VIP (adresse IP virtuelle) et Apache devront fonctionner sur le même noeud, basculer sur l’autre noeud en cas de panne du noeud actif ou si une ressource est en erreur au-delà de la valeur définie. ...

Recharger la configuration de Varnish à chaud

Voici un petit article pour vous présenter la procédure permettant de recharger ou charger une nouvelle configuration de Varnish à chaud. La solution consiste à utiliser le CLI Varnish pour charger et compiler la nouvelle version du fichier de configuration en lui ayant attribué un nom pour enfin l’activer. L’avantage est de ne pas interrompre le service et de se garder la possibilité de revenir rapidement, si besoin, à la configuration précédente. ...

 14 octobre 2011 406 mots 2 min

Utiliser Puppet avec un ENC (External Node Classifier)

Par défaut, la configuration des scénarios à jouer sur les serveurs clients de Puppet se fait au niveau du fichier “nodes.pp”. Cette solution atteint vite ses limites dès lors que vous avez de nombreux clients, paramètres, classes. En effet, ce fichier devient vite assez dense rendant sa lecture difficile et la porte ouverte aux erreurs qui peuvent rapidement se transformer en actions non désirées sur vos clients ! De même, connaître d’un coup d’oeil l’ensemble des scénarios joués ainsi que leurs paramètres devient compliqué. Puppet propose d’autres solutions comme par exemple utiliser un LDAP ou un External Node Classifier (ENC), ce que nous allons voir dans cet article. Je vais reprendre ici la définition d’un ENC que vous trouverez sur la documentation de Puppet tout en rajoutant des exemples précis sur l’utilisation de ressources de type “define” avec l’utilisation de tables de hachage en paramètre. ...

 10 octobre 2011 1038 mots 5 min

Les logs Varnish 3 avec varnishlog

Varnishlog permet de lire les logs Varnish de la mémoire partagée et de les afficher formatés pour en faciliter la lecture. C’est un outil très pratique pour voir le détail de la transaction et la façon dont elle a été traitée par Varnish. On va ainsi voir si la requête a été servie du cache, si l’objet a dû être récupéré d’un backend et si oui lequel (les entêtes reçues et envoyées, les boucles VCL utilisées…). Pour rappel, par défaut, les logs Varnish ne sont pas stockés sur disque : il n’y a donc pas, sous cette forme, d’historique (ou peu). Un outil à utiliser pour déboguer des transactions et comprendre comment et pourquoi, par exemple, il y a eu des HITS ou des MISS. ...

 3 octobre 2011 1221 mots 6 min