URL: https://linuxfr.org/news/kisscache-un-service-de-caching-kiss Title: KissCache un service de caching KISS Authors: Rémi Duraffort palm123, Nils Ratusznik, Pierre Jarillon, patrick_g et Ysabeau Date: 2020-03-17T17:33:31+01:00 License: CC by-sa Tags: validation, cache, service et logiciel_libre Score: 4 [KissCache](https://git.lavasoftware.org/ivoire/kisscache/) est un serveur de cache sous licence MIT pensé suivant le principe KISS : **K**eep **I**t **S**imple **S**tupid. Contrairement à un proxy transparent comme [squid](https://www.squid-cache.org), pour utiliser KissCache, il faut (et suffit) de préfixer l’url voulue par celle de l’instance locale de KissCache. KissCache va alors télécharger en arrière-plan le fichier demandé et le streamer au client. Si plusieurs clients demandent le même fichier au même moment, celui-ci ne sera téléchargé qu’une seule fois. KissCache n’étant pas transparent, il peut tout à fait mettre en cache des fichiers disponibles via https. ---- [Page du projet](https://git.lavasoftware.org/ivoire/kisscache/) [Instance de demo](https://cache.lavasoftware.org/) ---- Cas d’usage =========== A [Linaro](https://linaro.org), nous utilisons KissCache dans notre infrastructure de validation. En effet, les différents tests de validation vont tous utiliser les mêmes ressources (noyaux linux, root file system, dtb…) au même moment. Grâce à KissCache notre infrastructure de validation ne téléchargera chaque ressource qu’une seule fois, réduisant drastiquement la charge réseau. Nous avons longtemps utilisé squid, mais nous n’avons jamais réussi à le configurer pour : * télécharger une seule fois chaque fichier même en cas de demande parallèle * mettre en cache les ressources disponibles via https Usage ===== Pour installer une instance locale : ```shell git clone https://git.lavasoftware.org/ivoire/KissCache cd KissCache docker-compose build docker-compose up ``` L’instance sera disponible à http://localhost:8001 Il suffit maintenant de préfixer les urls par celle de notre instance KissCache : ```shell curl "http://localhost:8001/api/v1/fetch/?url=https://linuxfr.org" ``` KissCache va alors télécharger la page pour vous et la streamer. Configuration ============= TTL ### Par défaut, KissCache va garder chaque fichier pendant 10 jours. Cette valeur par défaut peut être changée par l’administrateur ou via le paramètre **ttl** dans l’url. ```shell curl "http://localhost:8001/api/v1/fetch/?ttl=1d&url=https://linuxfr.org" ``` Quota ##### Par défaut, KissCache n’utilisera que 2Go d’espace disque et retournera un code d’erreur 507 (Insufficient Storage) pour toute requête supplémentaire. Il est, évidemment, possible de changer cette valeur ou même de supprimer tout quota. Accès ##### L’accès à l’instance KissCache peut être restreint par IP pour, par exemple, n’autoriser que les machines de validation. L’interface web sera toujours accessible à tous, mais seules les IP autorisées auront le droit d’utiliser le système de cache. Technique ========= KissCache est une application [Django](https://fr.wikipedia.org/wiki/Django_(framework)) qui utilise [celery](http://www.celeryproject.org/) pour la récupération des ressources en arrière-plan.