Le blog tech de Nicolas Steinmetz (Time Series, IoT, Web, Ops, Data)
Je me suis rendu à KubeCon + CloudNativeCon Europe 2019 qui s’est tenu à Barcelone du 20 au 23 Mai. C’était la première fois que j’assistais à cette conférence.
Le veille de la conférence officielle, j’ai assisté à la première édition du Continus Delivery Summit organisé par la Continous Delivery Foundation. Différents événements en marge de la conférence officielle sont organisés par la communauté.
Plutôt que de faire un résumé par journée, je vais plutôt faire un résumé global sur ce que je retiens de la conférence.
Tout d’abord un écosystème toujours en ébullition et en pleine évolution :
Sur les produits qui ont retenu mon attention :
Au niveau des buzz word, même si le Service Mesh a encore de bons restes, les buzz word 2019 semblent être Operator, Fédération (communication inter clusters) et la sécurité (Open Policy Agent)
Sur les conférences en elles-mêmes, j’avoue être assez mitigé, voire déçu sur la qualité de nombreux talks. Le format 30mn y est peut être pour quelque chose mais n’explique pas tout - peut être que la conférence voulait surtout permettre à des profils plus jeunes de découvrir cet univers plutôt que de fournir des conférences plus riches. Je suis peut être tombé sur les mauvaises…
Néanmoins, celles que j’ai eu plaisir à voir - la playlist est déjà diponible.
Je recommande aussi la visualisation des vidéos de Keynote pour avoir une vision générale de l’écosystème, des retours d’expérience divers et sur la valorisation de la communauté et de la diversité. Ces deux sujets sont un véritable enjeux pour la pérénité des différents projets. D’ailleurs, on sent que le sujet de la diversité est important avec une petite moitié des keynotes présentée par des femmes. L’animation était aussi répartie entre un homme et une femme, de nombreuses conférences étaient présentées par des femmes. Je crois même au final qu’il s’agit de la conférence où j’ai vu le plus de femmes. C’est une bonne chose !
Sur la partie logistique, c’est très bien organisé - rien à redire de ces trois jours, c’est un véritable tour de force de savoir gérer aussi bien la venue de 7700 personnes.
Enfin, ce fut l’occasion de (re)voir et rencontrer des membres de la communauté (française) et de passer de bons moments en leur compagnie. Une mention spéciale pour l’équipe OVH avec qui j’ai passé une superbe semaine (et indépendamment des goodies et vouchers que j’ai pu obtenir).
Deux petites annonces pour démarrer cette édition :
Dans les bonnes pratiques Docker, il est dit d’utliser stdout/stderr pour avoir les logs de votre conteneur via docker logs. Toutefois, cette pratique va alimenter un fichier de log /var/lib/docker/containers/<container id>/<conteiner id>-json.log
. Ce fichier peut donc saturer votre disque et aller jusqu’à corrompre vos conteneurs. L’autre bonne pratique étant que tout fichier de log doit avoir une politique de rotation du fichier associée pour éviter toute saturation de disque ou d’avoir des trop gros fichiers de logs.
Docker permet de configurer le driver de logs au niveau du démon (via /etc/docker/daemon.json
), en argument lors d’un docker run
ou dans docker-compose.yml
.
Si l’on reste sur le driver json-file et que l’on veut piloter la rotation des logs au niveau de docker-compose.yml
, cela donne par ex (version simplifiée) :
version: '3'
services:
service_xxx:
image: docker_image_xxx
[...]
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
Vous pouvez alors définir une stratégie de rotation des logs par container si vous le souhaitez. Ainsi, vous gérer la taille maximale de logs qui vont être générés et êtes ainsi assurés de ne pas avoir de mauvaises surprises à ce niveau là.
Nous en avons beaucoup parlé dans l’épisode 69 de BigData Hebdo - je mets juste les liens et vous renvoie à notre discussion sur le sujet.
fsync()
, l’astuce consiste ici à désactiver fsync()
et/ou à mettre le dossier des données de votre base en RAM pour accélérer les temps de déroiulement de tests. Testé chez un client, c’est un gain d’au moins 20s qui a été constaté sur une opération de quelques minutes (< 5).kubectl diff
montrera les différences entre la ressource existante et celle décrite dans la nouvelle version du fichier yaml.