Traefik

29/04/2020

Web, Ops & Data - Avril 2020

Code et Outillage 18 GitLab features are moving to open source : Gitlab va rendre disponible dans sa version Open Source 18 fonctionnalités de sa version payante. C’est un peu la lutte avec Github et ses Github Actions ou ses dernières évolutions tarifaires. Container & orchestration Announcing the Compose Specification : Docker Inc vient de lancer une spécificiation officielle autour de Compose (celle derrière les docker-compose.yml) pour la rendre plus “cloud native” et plus générique avec une extension au provider cloud d’une part et d’autre part à des solutions comme kubernetes ou Amazone ECS par ex. Announcing Traefik 2.2, ainsi que la version Entreprise TraefikEE 2.1 basée dessus : on notera le retour du support des annotations pour gérer les Ingress, le support de l’UDP (en plus de HTTP et TCP), le support d’Elastic APM, le support des stores KV (Consul, Etcd, Redis, etc) et le Dark Mode. Scaleway Kubernetes Kapsule : l’offre managée kubernetes de Scaleway est disponible. Dommage que les CPU des profils de machine DEV* soient surprovisionnés et qu’il faille envisager des profils GP* pour avoir des performances correctes. L’offre est du coup moins compétitive en termes de prix pour des petits clusters. Kubernetes 1.18 : Fit & Finish : une version de consolidation How to detect outdated Kubernetes APIs : présentation de Deprek8 et de Conftest pour vous permettre d’évaluer les ressources kubernetes pour lesquelles vous n’êtes pas à jour au niveau des API. Helm 3.2.0 avec un correctif de sécurité sur les versions 3.0.x et 3.1.x et d’autres améliorations (comme le retour de certaines fonctionnalités non encore migrées depuis la 2.x) Cortex v1.0 released: The highly scalable, fast Prometheus implementation is generally available for production use : la solution de monitoring distribuée et avec un stockage de long terme basée sur Prometheus arrive en version 1.0. C’est l’occasion de se repencher sur son architecture et son fonctionnement. Build your very own self-hosting platform with Raspberry Pi and Kubernetes : une série d’articles pour déployer un cluster kubernetes sur vos raspberrypi avec la distributions k3s et y déployer différentes applications. Rook v1.3: Storage Operator Improvements : si vous n’êtes pas dans un environnement cloud, il y a de fortes chances pour que vous utilisiez Rook. La version 1.3 vient de sortir et apporte son lot d’améliorations. Sidecar container lifecycle changes in Kubernetes 1.18 : dans la version 1.19, le cycle de vie des sidecars dans kubernetes sera améliorée. Ainsi, ils démarreront avant le conteneur principal et s’arrêteront après. Le billet revient sur les problèmes existant et comment ce nouveau cycle de vie va améliorer la situation. (Big) Data Confluent Raises $250M and Kicks Off Project Metamorphosis : Confluent, la soéciété éditrice de la Confluent Platform et d’Apache Kafka, vient de lever 250 millions de dollars et annonce le projet Metamorphosis et prévoit des annonces tous les mois sur Apache Kafka, Confluent Platform et ce projet à compter du mois de Mai. On en reparlera très certainement sur BigData Hebdo. Cassandra: The Definitive Guide, 3rd Edition : nouvelle édition de l’ouvrage de référence sur Cassandra, mis à jour notamment pour Cassandra 4.0 (version à venir) Announcing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pulsar : On en parle dans le prochain épisode de BigData Hebdo, mais Pulsar est une plateforme vraiment intéressante (Pulsar 101 en français ou en anglais) et les équipes d’OVHCloud viennent de publier un connecteur qui permet d’utliser l’API Kafka mais que les messages soient stockés dans Pulsar. Il existe aussi une vidéo sur Kafka on Pulsar et un article sur le blog d’OVHCloud. Time Series Release Announcement: Telegraf 1.14.0 : 9 nouveaux inputs, 3 nouveaux processors et 1 nouvel output warp10 sont au programme de cette version. Les versions 1.14.1 et 1.14.2 sont sorties également avec quelques corrections. Release Announcement: InfluxDB 1.8.0 with Long-Awaited Features : la branche 1.x d’InfluxDB se voit donc dotée d’une version récente de flux qui se veut “production ready” et les endpoints d’InfluxDB 2.x sont aussi disponibles. Ce qui permet d’utiliser les nouveaux clients officiels InfluxDB prévus pour la 2.x d’une part et de faire des requêtes en Flux d’autre part. Release Announcement: InfluxDB 2.0.0 Beta 9 : mise à jour de Flux, autocomplétion flux dans l’éditeur de requêtes et amélioration de la CLI. InfluxDB Templates: Easily Share Your Monitoring Expertise : le billet a pour intérêt de présenter des bonnes pratiques sur la réalisation de templates InfluxDB. Pour rappel, les templates InfluxDB sont des “ressources” que l’on peut déclarer, exporter et importer dans une instance InfluxDB 2.x. Cela concerne des variables, labels, tasks, dashboards, alertes, etc. April 2020: Warp 10 release 2.5.0 : La version 2.5 de Warp10 apporte notamment un Accelerator c’est à dire un cache en mémoire pour les versions standalones. D’autres corrections et améliorations font également partie de cette release. WarpScript ❤️ Kafka Streams : si vous utiliser Kafka Streams et que vous voulez utiliser Warpscript pour consommer, processer et envoyer des données vers Kafka, c’est possible. Forecasting : Microsoft publie des exemples et des bonnes pratiques autour de la prévision à base de séries temporelles. Il y a des exemples en Python / R et quelques exemples avec Azure-ML. TimescaleDB 1.7: fast continuous aggregates with real-time views, PostgreSQL 12 support, and more Community features : Nouvelle version de TimeScaleDB apportant la compatibilité avec Postgresql 12.x, des aggrégats en temps réel et des fonctionnalités de gestion de données (réordonnancement et rétention) de la version Entreprise sont maintenant disponibles dans la version Community. Web jQuery 3.5.0 Released! : une faille XSS a été identifiée sur jQuery.htmlFilter pour toutes les versions inférieures à 3.5.0 ; il est vivement encouragé de mettre à jour vos sites. Pour le reste, je vous renvoie à la lecture de l’article.

traefik scaleway kubernetes telegraf cassandra kafka confluent helm influxdb warp10 timescaledb docker compose apache-pulsar pubsub deprek8 conftest opa raspberrypi gitlab sidecar
18/12/2019

Web, Ops & Data - Décembre 2019

Rendez-vous le 21 janvier prochain à la troisième édition du Paris Time Series Meetup consacré à TSL (billet introductif à TSL : TSL: a developer-friendly Time Series query language for all our metrics) et le module RedisTimeSeries qui apporte des fonctionnalités et des structures Time Seriies à Redis. Le meetup était prévu initialement le mardi 17 décembre mais a été reporté du fait des grèves. Container et orchestration DockerSlim : le projet vise à réduire la taille de vos images et à améliorer leur sécurité en procédant à différentes optimisations. Cela peut être intéressant dans une stratégie d’améliorations de vos images docker mais à tester néanmoins. Les exemples données partent d’Ubuntu 14.04 dont l’image fait 60 / 65 Mo alors que l’image Ubuntu 16.04 fait moitié moins et Alpine fait 30 fois moins. Donc certains gains semblent faciles à obtenir, à creuser plus en détail. Kubernetes 1.17: Stability : après une version 1.16 marquée notamment par la dépréciation de certaines APIs, cette version se veut plus une consolidation autour des “Cloud Provider Labels” qui passent en GA, le snapshot de volumes qui passe en beta, ainsi que la couche de stockage CSI avec la poursuite de la migration des plugins “in-tree” vs “out-of-tree”. La fin de cette migration est prévue pour les versions 1.19 / 1.20 et le retrait complet des plugins “in-tree” pour les versions 1.21 / 1.22. A visual guide on troubleshooting Kubernetes deployments : un guide du troublehooting des déploiements sous kubernetes avec un joli diagramme des cas possibles et les explications associées en repartant d’un exemple simple. How to migrate from Helm v2 to Helm v3 : les opérations à mener pour migrer de Helm V2 à Helm V3. Traefik 2.1 : le provider Consul Catalog fait son retour (il était absent en 2.0.x) et diverses améliorations sur la CRD Kubernetes ont été apportées pour mieux gérer le mirroring du traffic, les déploiements canary et la gestion des sessions. La migration ne consistant pas seulement à changer le numéro de version et suite à une remarque de ma part, une note a été ajoutée pour la migration 2.0.x vers 2.1.x Dataviz Pro Tips: Dashboard Navigation Using Links : améliorer vos dashboards Grafana avec des liens à différents niveaux dans l’interface pour pointer vers des ressources utiles. NoSQL Cassandra Reaper 2.0 was released : la solution de réparation de vos clusters Cassandra passe en 2.0 ; elle apporte un déploiement en mode sidecar (reaper est lancé dans la même jvm que Cassandra), le support d’Apache Cassandra 4.0 (pas encore officiellement disponible), de nouveaux thèmes, une amélioration du support de Postgresql comme backend de déploiement et pleins d’autres choses. Time Series Release Announcement: InfluxDB 2.0.0 Alpha 21 : Cette version alpha apporte notamment le début de la transpilation des requêtes InfluxQL en Flux. C’est peut être un des plus gros enjeux pour la migration entre la version 1.x et 2.x d’InfluxDB et la gestion de l’écosystème associé. Warp 10™ release 2.3.0 : la plateforme Warp10 continue son chemin avec une fonctionnalité intéressante permettant de mieux définir les points que l’on veut récupérer pour une requête donnée (nombre de points, échantillonage, points du début et de fin, etc) Motion Split : Présentation d’une autre fonctionnalité intéressante de Warp10 2.3.0 si vous suivez des objets qui se déplacent et que vous voulez définir des groupes de points en fonction d’un délai, d’une distance, d’arrêts. New: Helm Charts for deploying TimescaleDB on Kubernetes : pour ceux qui utilisent TimescaleDB, des charts helm sont à votre disposition pour déployer une instance, avec gestion de la réplication des données. Time series features extraction using Fourier and Wavelet transforms on ECG data : Application de la théorie des signaux sur des séries temporelles dans le cadre d’analyse d’électrocardiogramme. Cela complète les articles du mois précédent. Je n’ai plus qu’à vous souhaiter des bonnes fêtes de fin d’année ; nous nous retrouvons l’année prochaine !

influxdb docker kubernetes traefik grafana dashboard cassandra reaper warp10 timeseries timescaledb helm machine learning
05/12/2019

Exporter les métriques Traefik dans InfluxDB dans un contexte Kubernetes

Traefik, depuis sa version V1, permet d’envoyer des métriques vers différents backends (StatsD, Prometheus, InfluxDB et Datadog). J’ai enfin pris le temps d’activer cette fonctionnalité et de creuser un peu le sujet étant donné que le dashboard de Traefik V2 n’affiche plus certaines de ses statistiques. La documentation de Traefik sur le sujet : Traefik 1.x - Metrics Traefik 2.x - Metrics Commençons par créer une base traefik dans InfluxDB (version 1.7.8) influx Connected to http://localhost:8086 version 1.7.8 InfluxDB shell version: 1.7.9 > auth username: XXX password: XXX > CREATE DATABASE traefik > CREATE USER traefik WITH PASSWORD '<password>' > GRANT ALL ON traefik to traefik > SHOW GRANTS FOR traefik database privilege -------- --------- traefik ALL PRIVILEGES > quit Dans mon cas, l’accès à InfluxDB se fait en https au travers d’une (autre) instance Traefik. J’utilise donc la connexion en http plutôt qu’en udp.

kubernetes traefik influxdb métrique timeseries
08/11/2019

Kubernetes @ OVH - Traefik2 et Cert Manager pour le stockage des certificats en secrets

Avec la sortie de Traefik 2, il était temps de mettre à jour le billet Kubernetes @ OVH - Traefik et Cert Manager pour le stockage des certificats en secrets pour tenir compte des modifications. L’objectif est toujours de s’appuyer sur Cert-Manager pour la génération et le stockage des certificats Let’s Encrypt qui seront utilisés par Traefik. L’idée est de stocker ces certificats sous la forme d’un objet Certificate et de ne plus avoir à provisionner un volume pour les stocker. On peut dès lors avoir plusieurs instances de Traefik et non plus une seule à laquelle le volume serait attaché. Installation de cert-manager :

kubernetes traefik ovh secrets cert-manager
30/10/2019

Web, Ops & Data - Octobre 2019

Rendez-vous le 5 Novembre prochain à la seconde édition du Paris Time Series Meetup consacré à QuasarDB pour des cas d’usages autour de la finance et des transports. Cloud The $10m engineering problem : retour d’expérience intéressant sur l’optimisation de sa facture cloud et donc l’accroissement de sa marge opérationnelle. Container et Orchestration What’s Going on with GKE and Anthos? : Si on rapproche ça avec le fait que Google ait gardé le lead sur knative plutôt que de le confier à une fondation, on peut avoir quelques sueurs froides sur le potentiel lock-in ou alors d’une offre k8s à 2 vitesses (GKE tel qu’on le connait actuellement et Anthos GKE avec des fonctionnalités & souscriptions additionnelles…). La seule limite que je vois à ça pour le moment est le fait que Google a vendu k8s comme runtime universel de workload et qu’ils ont besoin de garder cela pour piquer des parts de marché à AWS & Azure… Traefik 2.0 with Kubernetes et Advanced Traefik 2.0 with Kubernetes : pas encore implémenté mais a priori tout ce qu’il faut savoir pour passer de Traefik 1.x vers Traefik 2.x sous Kubernetes Helm 2.15.0 Released : dernière version stable à apporter des nouveautés a priori avant migration vers la version 3.0. La version 2.x va passer en maintenance (correctifs de bugs & sécurité) et s’éteindra progressivement (6 mois après la release de Helm 3, elle ne prendra que des correctifs de sécurité et fin du support au bout d’un an). En attendant, cette version apporte notamment le paramètre --output <table|json|yaml> à certaines commandes. Pratique quand on manipule les sorties de Helm dans des scripts… Comparing Ingress controllers for Kubernetes : une comparaison de 11 Ingress Controller (Nginx, Traefik, Kong, HAProxy, etc) sur une douzaine de fonctionnalités. (Big) data Why I Recommend My Clients NOT Use KSQL and Kafka Streams : la gestion des états et la capacité à pouvoir savoir à quel offset d’un topic kafka reprendre sa consommation peut être un sujet surtout dans le cadre d’une grosse volumétrie qui peut empêcher que le cas de reprendre la consommation du topic depuis son origine. Si Kafka Streams était doté de ce fameux “checkpoint” cela pourrait simplifier la chose. L’autre cas étant sur l’absence de “shuffle sort” utilisé dans des contexte analytiques. Du coup Kafka streams crée des topics supplémentaires pour le besoin et cela peut nuire au bon fonctionnement de votre cluster. Change data capture in production with Apache Flink - David Morin & Yann Pauly : un retour d’expérience très riche et très complet sur l’utilisation de Flink chez OVH, les problématiques qu’ils ont rencontré et comment ils ont itéré sur leur pipeline d’ingestion de données. La version française donnée à DataOps.rocks devrait être disponible sous peu.

kafka traefik kubernetes ksql kafka-streams gke anthos helm
26/09/2019

Web, Ops & Data - Septembre 2019

Container et Orchestration Traefik 2.0 : la version tant attendue du reverse proxy “cloud native” Traefik sort en version 2.0 avec une réécriture complète et plein de nouvelles fonctionnalités : support du reverse proxy pour tcp et plus uniquement http, introduction des “middleware” pour de la configuration plus flexible, une CRD Traefik pour Kubernetes, un nouveau dashboard, le support du déploiement en mode canary, “mirroring” de traffic, etc. Il y a un guide de migration pour passer de la V1 à la v2. Announcing Maesh, a Lightweight and Simpler Service Mesh Made by the Traefik Team : l’équipe Containous, qui est derrière Traefik, sort sa solution de Service Mesh : Maesh. Elle respecte la spécification Service Mesh Interface (SMI) et a pour principal intérêt pour moi de ne pas modifier les objets kubernetes pour se déployer en mode sidecar (contrairement à Istio pour ne pas le nommer). Qu’est-ce qu’un Service Mesh ? : article d’information/rappel sur ce qu’est un Service Mesh et son intérêt dans une architecture micro-services. Rook v1.1: Accelerating Storage Providers & Rook v1.1: Ceph CSI, Bucket Provisioning, External Clusters, and much more!: rajout du support de Yugabyte, passage du support de EdgeFS d’alpha à beta, pleins d’améliorations pour Ceph, dont la gestion des clusters Ceph externes au cluster Kubernetes. Kubernetes 1.16: Custom Resources, Overhauled Metrics, and Volume Extensions & Release Notes : Passage en GA des CRD, des admissions webhooks, Refonte des métriques, le redimensionnement des volumes passe de alpha > beta, Support ipv4/ipv6 au niveau pods & services, dépreciation des api extensions/v1beta1, apps/v1beta1 et apps/v1beta2, plein de fonctionnalités pour les conteneurs Windows, etc. Deprecated APIs Removed In 1.16: Here’s What You Need To Know : ce qu’il faut savoir sur la dépréciation des API listées ci-dessus [ANNOUNCE] Security release of kubectl versions v1.16.0 / 1.15.4 / 1.14.7 and 1.13.11 - CVE-2019-11251 : une nouvelle faille sur kubectl cp et cette commande semble supprimée dans la version 1.16. Data Say Hello World to event streaming : Confluent publie des tutoriels sur Kafka, Kafka Streams et KSQL pour illustrer différents cas d’usages avec le code associé. Ils ont l’air assez bien fait. Time Series Release Announcement: Telegraf 1.12.0 : Telegraf, le collecteur de métriques/logs passent en version 1.12 avec 13 nouveaux plugins dont un pour l’ingestion des logs docker et plein d’autres améliorations. L’autre grande nouveauté est l’arrivée des plugins - il est possible d’ajouter des plugins à Telegrad de façon dynamique ; il n’est plus nécessaire de recompiler telegrad avec ces plugins en son sein.

kafka traefik service-mesh maesh rook ceph kubernetes kubectl ksql kafka-streams telegraf docker log
31/08/2019

Web, Ops & Data - Aout 2019

Surveillez le Time Series Paris Meetup, car la première édition du Meetup sera annoncée mardi avec une présentation des usages avancées des séries temporelles avec Warp10 (comprendre au-delà du monitoring classique) et une présentation par les équipes OVH sur du monitoring de datacenter aidé par du machine learning et leur offre Préscience. CI/CD How to trigger multiple pipelines using GitLab CI/CD : depuis une pipeline d’un dépôt gitlab, il va être possible d’appeler les pipelines des autres projets gitlab. Une fonctionnalité intéressante et qui pourrait lever la dépendance à Jenkins lorsque l’on a des pipelines un peu complexes et inter-projets. New up and coming GitLab CI/CD Features : bilan et perspectives par le responsable produit de gitlab sur les fonctionnalités CI/CD qui ont été rajoutées cette année et celles à venir. Code Highlights from Git 2.23 : Tentative de remplacement de git checkout par git switchet git restore pour mieux encadrer les usages Create Git diffs with proper function context : améliorer vos diff git avec une meilleure prise en compte du langage avec lequel vous travaillez. Conteneurs & orchestration Releasing HypriotOS 1.11.0: Docker 19.03.0 CE from Raspberry Pi Zero to 4 B : la distribution HypriotOS, pour raspberry pi, sort une nouvelle version avec les dernières versions de docker, docker-compose, etc. OVH 1.15 Certified : Le service managé kubernetes d’OVH passe en version 1.15 Traefik Release: v2.0.0-beta1 & Traefik Release: v2.0.0-rc1 : Traefik 2.0 commence à pointer le bout de son nez et les connecteurs docker / kubernetes notamment sont prêts, ainsi que plein d’autres choses. Helm 3.0.0-beta.1 : Helm 3.0 émerge doucement et on commence à se rendre compte des petits changements qui vont arriver… SQL Percona Distribution for PostgreSQL 11 (Beta) Is Now Available : Percona est connu pour son expertise autour de MySQL, de leur serveur et des outils qu’ils ont créés autour. Ils semblent vouloir faire la même chose avec Postgres. Cela semble prometteur ! Announcing PartiQL: One query language for all your data : AWS lance un langage visant à être un requêteur universel de données structurées et non structurées en SQL. C’est en open source et pour le moment cela traite surtout les données des services AWS, ainsi que Couchbase. time series RedisTimeSeries GA – Making the 4th dimension truly immersive : RedisLabs met à disposition un module permettant d’améliorer l’expérience utilisateur des développeurs manipulant des séries temporelles dans Redis. Ce module n’a a priori pas pour vocation à ce stade d’intégrer le coeur du produit. How Hulu Uses InfluxDB and Kafka to Scale to Over 1 Million Metrics a Second : retour d’expérience sur l’utilisation d’influxdb et kafka chez Hulu pour ingérer et apporter de la résilience à leurs données temporelles. How to use Prometheus for anomaly detection in GitLab : retour d’expérience de gitlab sur l’utilisation de Prometheus dans un contexte de détection d’anomalies.

gitlab ci cd continous integration continous deployment git diff docker rpi traefik kubernetes ovh helm postgres percona aws partiql redis timeseries influxdb kafka prometheus
24/04/2019

Web, Ops & Data - Avril 2019

Deux petites annonces pour démarrer cette édition : Je serai à KubeCon EU du 20 au 23 Mai à Barcelone. Si vous y allez aussi, dites le moi, ce sera une occasion de se rencontrer. Le BigData Hebdo a ouvert son slack - Vous pouvez nous rejoindre par vous même via ce lien APM Glowroot : Pour ceux qui s’intéressent au sujet de l’APM et qui ne veulent pas aller chez AppDynamics, Dynatrace ou Elastic, j’ai assisté à une démo intéressante sur Glowroot - il est forcément moins riche que ces concurrents mais il a l’air de faire l’essentiel de ce que l’on peut attendre d’un APM. Il ne marche qu’avec la JVM. Cloud Big Data Hebdo - Episode 71 : Google Cloud Next 19 : Vincent et Jérome passent en revue les annonces de Google Cloud Next 2019, en plus de nous faire un analyse fine de MS Excel vs Google Sheets ;-) - Personnellement, je retiens surtout Anthos (le kubernetes distribué multi-cloud et on-premise), Cloud Run (la capacité à exécuter des conteneurs dans une logique serverless et basé sur knative - il me fait penser à OpenFaaS) et Cloud Code (extension pour l’IDE VSCode et prochainement IntelliJ pour gérer plus facilement des déploiements Kubernetes). Vous retrouvrez les 122 annonces sur le blog de Google Cloud et les vidéos sont sur la chaine Youtube associée Container et Orchestration Kubernetes 1.14: Production-level support for Windows Nodes, Kubectl Updates, Persistent Local Volumes GA : les noeuds Windows et les conteneurs Windows sont supportés officiellement, kubectl se voit améliorer et bénéficie d’un nouveau site de documentation et se dote d’une intégration de kustomize. Les volumes locaux persistant passent en bêta et plein d’autres choses encore. Kubernetes 1.14: Local Persistent Volumes GA : les volumes locaux persistants sont intéressants car ils vont permettre de déployer un conteneur sur un même noeud de façon assurée dès lors que ce volume est défini. Cela n’est certes pas très résilient, mais cela peut réponre à un certain nombre de besoins. Les cas d’usages sont très bien décrits dans ce billet et peuvent donner des idées. Announcing General Availability of Traefik Enterprise Edition : la version Entreprise de Traefik est disponible officiellement. Elle adresse principalement le cas d’un déploiement haute disponibilité de Traefik avec la mise en place d’un data plane et d’un controle plane pour gérer tout ça. CNCF to Host CRI-O : le runtime de conteneurs développé par Red Hat et Google rejoint la fondation CNCF au stade de l’incubation. Introducing Kraken, an Open Source Peer-to-Peer Docker Registry : Uber vient de mettre à disposition Kraken, une “registry docker” pair à pair. Le nombre d’acteurs intéressés par ce genre de projet doit être assez faible mais sait-on jamais… DevOps JSON as configuration files: please don’t : Si certains pensaient utiliser JSON pour décrire des fichiers de configurations, l’article rappelle que JSON n’est qu’un format d’échange de données et surtout pas de fichiers de configuration. On peut comprendre la tentation mais on a déjà bien assez à faire avec YAML, INI voire XML. Aucun n’est parfait certes mais pas la peine d’en rajouter. In Defense of YAML : L’auteur critique l’abus autour de YAML pour l’utiliser pour tout et n’importe quoi. Comme format de données, il est utilisable mais nous voyons des détournements où du yaml devient du pseudo code. L’auteur cite la CI Gitlab ou encore Tekton. On ne peut que lui donner raison. Il serait plus simpe d’avoir un vrai langage de programmation plutôt que de tout “YAMLiser”. Licences Deprecation Notice: MIT and BSD (via Les Cast Codeurs) : Intéressant, les licences BSD/MIT serait à considérer comme dépréciée. L’auteur travaille pour le Blue Oak Council qui publie la licence du même nom. On peut éventuellement lui reprocher un certain biais mais il indique quand même que des licences modernes (comme ASL 2.0) seraient plus judicieuses que de rester sur du MIT/BSD. Sécurité Les serveurs de Matrix.org ont été compromis - l’équipe a joué la transaprence et donne les informations laissées par l’attaquant sur les failles existantes et les bonnes pratiques qu’il faut en déduire. C’est l’occasion de revoir notamment les options de ssh-agent pour éviter de telles mésaventures. SQL La recherche plein texte avec Postgresql : Présentation des tsvector et tsquery, deux fonctions postgres pour faire de la recherche plein texte. Timeseries Introducing Outflux: a smart way out of InfluxDB : l’équipe de TimescaleDB, l’extension Postgres qui permet de manipuler des données temporelles, sort son outil de migration des données d’InfluxDB vers TimescaleDB. Astuce du mois : gestion de la rotation des logs d’un container docker 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.

influxdb timescaledb traefik kubernetes ssh-agent postgres recherche docker log google cloud next serverless apm glowroot docker registry
27/03/2019

Web, Ops & Data - Mars 2019

CI/CD Introducing the Continuous Delivery Foundation, the new home for Tekton, Jenkins, Jenkins X and Spinnaker : Google, Gitlab, CloudBees et bien d’autres acteurs du monde de la CI/CD lancent la fondation “Countinuous Delivery”. Au delà des projets qui y seront hébergés (en commençant par Jenkins, Jenkins X, Tekton et Spinnaker), la fondation a pour but de prendre en charge l’ensemble du cycle de développement/déploiement d’une application et surtout de favoriser les bonnes pratiques associées. La fondation fera son premier “CDF Summit” la veille de KubeCon Barcelone (où j’aurais le plaisir de me rendre). Cloud / Scaleway Nouvelles instances General Purpose avec des processeurs haut de gamme : Scaleway renouvelle son offre de machines dédiées avec des machines allant jusqu’à 48 coeurs et 256Go de RAM. Introducing GPU Instances: Using Deep Learning to Obtain Frontal Rendering of Facial Images : Scaleway étoffe son offre cloud avec des instances GPU - le billet présente comment faire de la reconnaissance d’images. Object Storage in General Availability : Scaleway a annoncé également plus tôt dans le mois la disponibilité de son service de stockage object compatible avec l’API d’AWS S3. Cloud vs OSS 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.

continous delivery continous integration cloud opensource* scaleway gpu aws redis elasticsearch grafana kubernetes traefik k3s k3d k9s
27/02/2019

Web, Ops & Data - Février 2019

Container et orchestration The Journey to Traefik Enterprise Edition: Product Evaluation Docker Security Update: CVE-2019-5736 and Container Security Best Practices : Vous avez sans doute tous entendus parlé de la faille de runc, sous le doux nom de CVE-2019-5736. Le billet indique qu’il faut utiliser une version 18.06.2+ pour Docker CE et rappelle quelques bonnes pratiques de gestion de containers. Il n’y a pas que les serveurs à mettre à jour, il y a aussi les postes de développeurs, tout aussi exposés. rancher/runc-cve : Pour les gens qui ne peuvent pas mettre à jour le binaire docker, l’équipe de Rancher met à disposition des versions du binaire runc pour les versions depuis docker 1.12.6 jusqu’à 18.06.1 CVE 2019-5736 dans runC : l’article indique une façon d’exploiter la faille de RunC. Ansible Operator: What is it? Why it Matters? What can you do with it? : Ansible ne fournit pas un “oprator” en tant que tel pour Kubernetes mais de quoi permettre de créer un operator en se basant sur des playbooks/roles ansible. Ainsi, si votre ressource change d’état par exemple, alors le playbook associé est joué. Idem pour la gestion d’un upgrade, etc. Cela s’inscrit dans la logique de pouvoir développer ses propres Operator sans avoir à les écrire en Go. Mastering the KUBECONFIG file : différentes astuces autour de la gestion du fichier KUBECONFIG. KubeDB : KubeDB est un operator kubernetes qui vise à pouvoir déployer et gérer différentes bases sur un cluster kubernetes. Les bases supportées sont MySQL, Postgres, Elasticsearch, Redis, MongoDB et Memcached. Le niveau de fonctionnalités dépend beaucoup de la base de données retenus (la réplication semble être gérée pour Postgres mais pas pour MySQL par ex). La version 0.10 vient de sortir, apportant le support du cluster Redis Managed Kubernetes Service : OVH vient de lancer son offre kubernetes managé et pour l’utiliser depuis deux mois maintenant, elle fonctionne plutôt bien. DNS Attaques récentes contre les noms de domaine, que se passe-t-il ? et Détails techniques sur les récentes attaques contre les noms de domaine : deux articles autour de l’actualité autour des attaques DNS évoquée ces derniers jours. Cela permet de distinguer le vrai du faux et de mieux comprendre le fonctionnement de ces attaques dans la chaine DNS. (No)SQL Contrainte d’exclusion : nous connaissons tous les contraintes d’unicité mais parfois cela ne suffit pas. L’exmple montre comment mettre en place une contrainte d’exclusion sur la base de filtre de plage de réseaux : 192.168.122.0/28 est compris dans 192.168.122.0/24, donc si le 2nd est entré dans la base, le 1er ne pourra jamais être ajouté car il y a recouvrement. On retrouve un autre exemple de cette contrainte d’exclusion sur des dates dans l’astuce de la semaine de l’édition 289 de Posrgres Weekly. Understanding Database Sharding : un billet très explicite sur le partitionnement (sharding) de base de données, pourquoi et comment le faire. Il rappelle aussi les inconvénients à le faire et ce qu’il vaut mieux faire avant d’en arriver au sharding. TiDB: Distributed NewSQL with Kevin Xu : TIDB est une base qui se déploie sur Kubernetes et qui s’appuie sur RocksDB. Elle se veut “NewSQL” dans le sens où elle veut supporter à la fois des transactions et de l’analytique. Elle veut offrir notamment un support de MySQL mais dans les faits, le support reste encore limité. Pour ceux qui veulemnt déployer du MySQL sur Kubernetes avec du sharding, il vaut mieux aller voir du coté de Vitess Farewell to fsync(): 10× faster database tests with Docker : alors que l’actualité était plutôt sur le fait que Postgres gérait mieux les erreurs lors d’un 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). Timeseries Tutorial: Time Series Analysis with Pandas : un tutoriel assez progressif et didactique sur la manipulation de données temporelles avec Pandas. TSL: a developer-friendly Time Series query language for all our metrics : L’équipe d’OVH Metrics a crée son propre langage de requêtage orienté séries temporelles pour Prometheus et Warp10. Le billet raconte leur épopée dans le monde des base de données temporelles et comment ils en sont arrivés à créer TSL. On retrouve une syntaxe fonctionnelle et qui se retrouve assez proche de celle de Flux, qui lui supporte InfluxDB et Prometheus.

kubernetes traefik postgres pandas python docker runc operator ansible vitess tidb sharding timeseries kubedb fsync ovh dns

Besoin d'un C(P)TO / Architecte « hands-on » ?

On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.

Contactez-nous