Quelques jours à peine après la sortie de la version 3.0.5, Varnish Cache arrive en version 4. Cette Technological Preview 1 attendue initialement pour la fin de l'été propose un produit suffisamment avancé et suffisamment stable pour être testé par la communauté.
Varnish est un cache HTTP qui met l'accent sur de très bonnes performances, une haute disponibilté, et la flexibilité de sa configuration. Son architecture est pensée pour du matériel moderne, et tire parti de fonctionnalités avancées des noyaux Linux et FreeBSD. Le développeur principal, Poul-Henning Kamp, étant lui même impliqué dans le développement de FreeBSD.
Les nouveautés
Cette version majeure arrive avec des fonctionnalités très attendues :
- un support complet du streaming partiellement implémenté dans Varnish 3.
- un découplage des requêtes clientes reçues par Varnish et les requêtes émises vers les serveurs (appelés backends) qui apporte des gains de performances et simplifie le rafraîchissement du cache.
- l'utilisation des entêtes
If-Modified-Since
etIf-None-Match
lorsque c'est approprié pour rafraîchir le cache. - la gestion des directors (assimilables à de la répartition de charge) dans un module, qui permet d'implémenter sa propre stratégie de répartition.
- un filtrage des logs beaucoup plus flexible.
Des incompatibilités
Très fréquent lors d'une mise à jour majeure, Varnish 4 arrive avec quelques incompatibilités avec la version 3 actuelle. Les changements les plus visibles pour un utilisateur se situent au niveau du VCL (Varnish Configuration Language) :
- le workflow de traitement des requêtes a légèrement changé.
- certaines fonctions ont été renommées pour plus de clarté.
- les directors ont été déplacés dans un module (VMOD).
Les utilitaires varnishhist
et varnishtop
ne sont pas encore compatibles avec cette nouvelle version, et la plupart des modules écrits pour Varnish 3 ne fonctionnent pas avec la version 4. A noter que la documentation n'est pas encore complètement à jour.
Varnish Cache 4 Technological Preview 1 est disponible au téléchargement, sous forme de sources ou de paquets pour Debian/Ubuntu ou RHEL.