CérénIT

Le blog tech de Nicolas Steinmetz (Time Series, IoT, Web, Ops, Data)

Web, Ops, IoT et Time Series - Septembre 2024

valkey redis elasticsearch s3 postgres duckdb ibis pandas kestra

Cette édition et les précédentes sont également disposnibles sur substack Web, Ops, IoT & Time Series pour ceux qui préfèrent les emails ou la consommation via l’app Substack

Cloud

Database

  • Elasticsearch is Open Source, Again : Elasticsearch et Kibana se voient ajouter une licence AGPL en plus des licences (restrictives) existantes pour revenir dans le monde de l’OSS. La vision positive est de dire que c’est le témoin de la fin d’une époque et que les relations entre les communautés OSS et les CSP américains se sont civilisées. Une vision plus critique consiste à dire qu’il y a toujours les anciennes licences et que le retour à l’OSS est peut être plus symbolique d’autre chose du fait de l’empilement de licences. A voir comment cela évolue mais l’épisode Redis du printemps nuance le sujet…
  • Valkey 8.0: Delivering Enhanced Performance and Reliability - Generally Available: Valkey 8.0.0 Valkey, le fork de Redis 7.2 sous l’égide de la Linux Foundation, a sorti sa version 8.0RC1 en aout et la version finale en septembre - Un point important est la sortie du “single thread model” qui pouvait devenir bloquant pour la scalabilité à force. Pas mal d’autres travaux sur les parties performance / réplication / résilience / observabilité. A ne pas confondre avec Redis 8
  • DuckDB, in-memory, mais pas totalement ! : En fonction de la taille de votre dataset, DuckDB peut être amené à créer (beaucoup) de fichiers temporaires. Utiliser le format interne de DuckDB semble être une bonne option pour éviter de créer ces fichiers temporaires et ne générer que les fichiers parquets ou autre qu’à la fin du process.
  • Announcing DuckDB 1.1.0 : Version 1.1 de DuckDB
  • Search on PostgreSQL, Building Extensions, and pg_analytics with Philippe Noël : Interview du fondateur de ParadeDB qui fait pg_lakehouse, pg_analytics et pg_search avec un retour sur les extensions Postgres.

Middleware

Python

Rendez-vous à la fin du mois prochain pour une nouvelle édition.

Web, Ops, IoT et Time Series - Mai 2024

aws s3 finops logs loki quickwit traefik reverse-proxy

Cette édition et les précédentes sont également disposnibles sur substack Web, Ops, IoT & Time Series pour ceux qui préfèrent les emails ou la consommation via l’app Substack

Une édition un peu courte avec ce mois de Mai où j’étais plus ⛵️ que 👨‍💻

Cloud

Ops

Web, Ops, Data et Time Series - Septembre 2021

automl telegraf anomalie python podman npm nodejs jvm adoptopenjdk questdb cloudflare aws s3 docker warp10 discovery tinygo circuitpython nrtsearch elasticsearch influxdb

Cloud

Container et Orchestration

  • Docker is Updating and Extending Our Product Subscriptions : TL;DR: Docker Desktop requiert un abonnement Pro/Team/Business si vous êtes une organisation de plus de 250 employés et 10 Millions de Chiffre d’affaires. L’abonnement commence à 5$/mois/utilisateur. Ce changement démarre au 31/08/2021 avec une période de grâce jusqu’au 31/01/2022. Si certains crient au scandale, il faut bien voir tout ce que Docker Desktop fourni et le travail d’intégration que cela représente. Il faut bien que la société Docker vive pour maintenir ses produits. Tout cela se retrouve dans The Magic Behind the Scenes of Docker Desktop.
  • Podman Release v3.3.0 : cette version apporte “podman machine” qui devrait notamment permettre un meilleur support de podman sous OSX avec une couche de virtualisation intermédiaire dans la même veine que Docker Desktop dans le but de proposer une intégration native. Cela ne semble pas fonctionner sur un Apple M1 à cause de l’incompatibilité actuelle de Virtual Box avec ces puces. Si Podman peut certes être une alternative à Docker (Desktop), cela montre aussi le travail d’intégration réalisé par Docker Inc notamment pour le support des Apple M1.
  • Podman on Macs Update : statut sur le support de Podman dans un context MacOS/Intel, Windows/Intel et le reste à faire pour MacOS/M1. En attendant, podman machine est supporté nativement sur Linux et MacOS/Intel et en remote client sur Windows/Intel.
  • How Docker broke in half : restrospective sur Docker de ses origines à aujourd’hui et quelques pistes pour le futur…
  • Docker Compose V2.0.0 : L’outil a été réécrit en go plutôt qu’en python et se veut accessible via la docker cli en tant que sous système (ie docker compose xxx). Pour Windows & OSX, il est fourni avec Docker Desktop.
  • Accelerating New Features in Docker Desktop où l’on parle de l’arrivée prochaine d’un Docker Desktop For Linux !!
  • No, we don’t use Kubernetes : un billet rafraichissant qui rappelle que Kubernetes n’est pas l’alpha et l’omega de l’infrasatructure.

IoT

JVM

Recherche

Sécurité

Time Series

Web, Ops & Data - Octobre 2020

kubernetes ingress yaml pipeline gitlab traefik rootless mesh yq jq devops data maturité mariadb s3 flows warp10 timeseries influxdb pulsar amqp mqtt kafka python git vscode arm nvidia

Des nouvelles du Paris Time Series Meetup : l’éditions 6 sur TimescaleDB et l’édition 7 sur QuestDB

CI/CD

  • 3 YAML tips for better pipelines : la troisième est certainement la plus intéressante - il est possible d’avoir des mécanismes de “composabilité” / “héritage” avec YAML et Gitlab. Si les include et extends sont déjà sympathiques, les anchors ont l’air de faire des choses intéressantes aussi !

Code

  • What’s New In Python 3.9 et un thread twitter qui donne des exemples des principales nouveautés : au programme nouvelle syntaxe pour la fuston des dictionnaires, des méthides pour supprimer des suffixes/préfixes sur les strings, du typage et plein d’autres améliorations et corrections.
  • Fortunately, I don’t squash my commits : s’il peut être tentant sur une MR/PR de faire un squash des commits, l’article vous confortera dans l’idée que ce n’est pas une bonne idée. En écrasant l’historique des commits, on y perd sur nos capacités de debug. Par ailleurs, il est conseillé de faire des petits commits pour capturer un ensemble de changements traduisant un moment précis du développement.

Container et orchestration

  • Kubernetes Ingress Goes GA : l’apparition de IngressClassName dans k8s 1.19 va plus loin qu’un simple renommage de champ comme je l’avais compris initialement. C’est une vraie ressource et cela ouvre aussi des possibilités. Avant de l’utiliser, vérifiez aussi que vos ingress controller le supporte (en plus d’attendre d’être en 1.19)
  • Houston, we have Plugins! Traefik 2.3 Announcement : la version 2.3 dont on a déjà parlé ici, est arrivé en version stable avec son support des plugins, son intégration avec Traefik Pilot, le support d’Amazone ECS et le support de la ressource IngressClassName. Au passage, Containous, la société éditrice de Traefik s’appelle maintenant Traefik Labs.
  • Introducing Traefik Pilot 1.0: the Traefik Control Center : Version 1.0 de ce nouveau “Control Plane” de Traefik qui permet d’avoir une vision globale sur ses instances traefik, d’utiliser les plugins et d’avoir un monitoring et des alertes autour de la disponibilité, des performances et de la sécurité.
  • Rootless mode : A voir si cela pourra être inclus dans la version 1.20 mais le rootless mode est clairement une tendance de fond dans kubernetes et les conteneurs en général. Si vous ne vous y êtes pas déjà mis, ne tardez pas !
  • Announcing Traefik Mesh 1.4 - New Name, New Features : nouvelle version du service mesh par Traefik Labs et qui s’appelle maintenant Traefik Mesh (et non uniquement Maesh). Le reste des améliorations semble porter sur le filtrage des headers et des paths.
  • yq : A command line tool that will help you handle your YAML resources better : vous voulez faire des opératoins sur des fichiers YAML sans faire un chart helm ou sortir kustomize, vous pouvez faire des choses minimalistes avec yq (le pendant yaml de jq).
  • Bridge to Kubernetes GA, “bridge to kubernetes” est une extension pour vscode permettant de connecter une application tournant en local avec d’autres applications situées dans un ckuster kubernetes et faciliter ainsi l’expérience des développeurs.

Culture DevOps

Data

Hardware

IaC

  • Announcing HashiCorp Terraform 0.14 Beta: la capacité à marquer des variables comme sensibles pour éviter que leur valeur soit visible dans les logs/diff/…, un diff plus concis, un lock sur les providers et des binaires disponibles pour arm64.

Monitoring

Pratique

  • endoflife.date : recense les dates de fin de support de vos langages et technologies préférées. Tout n’est pas complètement à jour mais cela permet de récupérer rapidement les informations.

SQL

  • Exciting and New Features in MariaDB 10.5 : évoqué au mois d’aout, le support de S3 dans MariaDB est disponible en version GA dans la version 10.5. D’autres améliorations existent comme le support du type INET6, des améliorations sur ColumnStore, la gestion des privilèges, le cluster Galera supporte complètement le GTID, du refactoring au niveau d’InnoDB et enfin les binaires mariadb vont enfin s’appeler mariadb et non plus mysql (avec une couche de compatibilité via des liens symboliques)

Time Series

Sur la base des informations disponibles pour le moment :

  • vous définissez une période de rétention en mémoire (entre 1h et 1 an) et une période de rétention sur stockage magnétique (1 jour à 200 ans),
  • le requêtage des données se fait en SQL (via Presto ?),
  • les données à requêter communément sont à mettre dans la même table,
  • le join est limité à la même table,
  • des mesures simples (pas de multi mesures pour un même enregistrement),
  • une intégration avec l’écosystème comme telegraf, grafana, etc en plus de l’intégration avec différents composants AWS

Pour les moins bons côtés :

  • pas d’UPDATE/DELETE sur vos données ; en cas de doublons, c’est le premier arrivé qui gagne
  • pas de bulk import de vos données, donc pas de reprise de vos données existantes. En effet, il n’est pas possible d’ingérer des données plus vieille que la période en mémoire,
  • dans la même veine, si un incident de production dépasse votre période de rétention, vous ne pourrez pas réinjecter vos données
  • il ne semble pas possible de mettre à jour ses durées de rétention - donc pas de ménage possible ou d’ajustements en cours de route

Une solution a priori très orienté pour du monitoring et qui semble souffir des mêmes travers qu’InfluxDB avec InfluxQL et pourtant en passe d’être résolus avec Flux.

On devrait en parler plus en détail dans une prochaine édition du Paris Time Series Meetup avec des personnes de chez AWS ;-)

Work

Web, Ops & Data - Août 2020

python vscode cassandra nosql mariadb s3 cdk terraform ptyhon setuptools git gitignore rook ceph

Cloud

  • CDK for Terraform: Enabling Python & TypeScript Support : cdk est le Cloud Development Kit édité par AWS, Hashicorp annonce donc son support dans terraform. Si la démo semble fonctionner (faut aimer typescript…), à voir ce que cela peut donner sur des projets de plus grande ampleur et ce que donne l’empilement d’abstractions (Code > CDK > Terraform > Provider) lors des erreurs et bugs.

Code

Container et orchestration

(No)SQL

  • Introducing Apache Cassandra 4.0 Beta: Battle Tested From Day One : Première beta pour la tant attendue Cassandra 4.0 - version GA espérée pour la fin d’année. On notera le passage à Java 11 et le nouveau ZGC, des gains de performance sur les tâches d’opération, un audit logging, et bien d’autres choses encore. A noter que l’écosystème semble prêt déjà à supporter la 4.0 comme avec Repair, Medusa, etc.
  • MariaDB S3 Engine: Implementation and Benchmarking : MariaDB dispose d’un plugin S3 en version alpha. Il permet de déporter des tables dans S3 et de les requêter. Pour des cas en lecture et suivant vos requêtes cela peut avoir du sens apparemment. D’autres billets sur le sujet devraient suivre prochainement.

OS

1 2