CérénIT

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

Web, Ops, IoT et Time Series - Octobre 2024

nist password produit service client ux postgres ia data traefik best practice

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

Data

  • Field Notes, Early Fall 2024 Edition : billet résumant l’état de la data et de l’IA par Joe Reis autour de la hype IA Générative, le futur et les turpitudes d’OpenAI, la hype du moment et le décalage entre le marketing de la hype et la réalité de la pratique et des déploiements.

Database

  • PostgreSQL 17 : comme chaque année vers fin septembre, la sortie de la nouvelle version majeure de PostgreSQL. Pour être dans une version supportée, il vous faut donc utiliser une version 13+ de PostgreSQL. On notera des améliorations notamment sur la partie SQL/JSON, la réplication, les process de VACUUM.

Produit

  • Why You Need Product Engineers : Un “Product Engineer”, c’est un “Software Engineer” qui prend en compte l’UX client lorsqu’il code. Il ne se limite pas à l’implémentation technique.
  • La révolution industrielle du service client : leçons de la tech : Pour une entreprise industrielle, la vente s’arrête souvent à l’acte de vente du produit fabriqué alors que les sociétés tech (notamment avec le SaaS), ont compris que l’acte de vente n’était pas la fin mais le commencement de la relation et qu’il était important d’accompagner le client. Evolution nécessaire de faire émerger un département de l’expérience client (ou customer success management) qui couvre tout le cycle de la vente (avant-vente, vente, après-vente + marketing + communication) ; on pourrait même aller jusqu’à mettre le département qualité sous la houlette de cette nouvelle direction…

Ops

  • Traefik Proxy v3.2 - A Munster Release : Sortie de la version 3.2 du reverse proxy Traefik avec des améliorations coté gestion des certificats (Configuration Let’s Encrypt, CA personnalisés, etc), des améliorations de performance avec Fast Proxy pour les connections HTTP/1, le support de la Kubernetes Gateway API v1.2, le support IPv6 des midlewares, le support d’OpenTelemetry, etc.

Python

Sécurité

  • NIST proposes barring some of the most nonsensical password rules : les recommendations de mot de passe du NIST ont été mises à jour pour être plus modernes et pragmatiques avec un assouplissement sur les règles de complexité de mot de passe (et qui terminent sur un post-it sur l’écran quand on n’a pas de gestionnaire de mot de passe) et sur la fréquence de renouvellement des mots de passe (on peut ne pas renouveller sauf suspicion de compromission du mot de passe)

Web

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 disponibles 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, IoT et Time Series - Février 2024

dns avif jpeg postgres git conventional commit architecture amnesie pwa ios refactor git-cliff changelog traefik

Code

  • The power of conventional commits : je suis assez fan de Gitmoji + Conventional Commits pour avoir des messages de comits visuels et pertinents. Si la mise en oeuvre est parfois pas très naturel, le plaisir d’avoir un changelog autogénéré et propre ou bien de pouvoir facilement retrouver un commit, son intention et le ticket gitlab associé, cela n’a pas de prix.
  • En liaison avec le billet précédent, le générateur de changelog Git-cliff est sorti en version 2.0 avec notamment une intégration plus poussée avec Github, des templates et plein d’autres choses. Git-cliff depuis la version 1.4 peut aussi générer votre prochain numéro de version sur la base de vos commits et la commande bump
  • Postgres à nouveau élu SGBD de l’année en 2023, mais je suis inquiet: le cloud et les ORM notamment ont permis de s’affranchir des DBA. Si dans un sens c’est tant mieux, à un certain stade, cela s’avère nécessaire de recourir à l’expertise d’un DBA (même si c’est parfois trop tard). Reste que le problème fondamental est plutôt que les développeurs n’ont plus les fondamentaux en SQL dans ce cas particulier et en architecure logicielle de manière plus globale et c’est peut être surtout ça le vrai problème.
  • The continuous amnesia issue : notre industrie est malade, on souffre d’une amnésie continue en ignorant les enseignements du passé. Le “jeunisme”, “la hype” et le fait qu’au delà de 30 ans, il faut être passé du coté du management font qu’on ne valorise/capitalise pas assez sur ce que nos ainés ont fait.
  • The High-Risk Refactoring : l’amémioration / la réécriture de code a son lot inhérent de risques techniques et métiers. L’article permet d’appréhener et de cadrer cette décision de façon assez pragmatique pour arriver au niveau de code juste nécessaire.

DNS

  • L’ICANN propose le domaine .internal pour votre réseau local : historiquement, il y avait le .local mais dont l’usage a été revu pour du zeroconf notamment. L’usage du .internal est en cours de discussion pour une décision en avril. On va pouvoir (enfin) sortir des domaines fictifs, des domaines publics utilisés en interne (adieu macompany.org) ou encore du “DNS menteur” (macompany.com résolu différemment suivant si on est en interne ou en externe). Néanmoins, une bonne question émerge : comment gérer et garantir les certificats en .internal que tout le monde peut revendiquer ? Aucune entité de certification publique ne pourra émettre de tels certificats… Cela repose alors la question de la PKI privée et de la diffusion des certificats de la CA pour valider les domaines sur votre parc informatique…

OPS

  • Traefik Proxy v2.11 is Now Available! Here are the Latest Updates. : Cette version apporte notamment les directives keepAliveMaxRequests et keepAliveMaxTime pour éviter que trop de connections ouvertes restent entre votre reverse proxy et votre applicatif.
  • Announcing Traefik Proxy v3.0 RC1: Au programme: Wasm, OpenTelemetry, HTTP/3, SPIFFE et des choses dans le monde Kubernetes. Alors que la migration V1/V2 avait été un peu pénible, l’équipe de Traefik promet une migration en douceur entre V2/V3.

Web

Web, Ops, IoT et Time Series - Janvier 2024

reverse-proxy caddy traefik docker cron lora lorawan duckdb mysql postgres sqlite

Après presque 2 ans de silence et le remplacement de Hugo et Bootstrap par Zola et Tailwind/daisyUI l’été dernier pour générer le site, je vous souhaite une bonne année à tous et la résolution de publier plus régulièrement mes trouvailles…

Data

TL;DR: DuckDB can attach MySQL, Postgres, and SQLite databases in addition to databases stored in its own format. This allows data to be read into DuckDB and moved between these systems in a convenient manner.

IoT

Ops

  • DKron via Dkron pilote vos crontab : un gestionnaire de cron distribué, avec une jolie interface et uen API - que demander de plus ? Sur un modèle agent/serveur, le serveur dRkon distribue les tâches aux agents dKron concernés. les agents dKron étant déployés sur les serveurs sur lesquels les jobs doivent s’exécuter.

Reverse Proxy

  • Caddy : si vous avez besoin d’un reverse-proxy avec gestion automatique des certificats et redirection HTTP > HTTPS et plein d’autres choses encore mais sans nécessité d’intégration avec Docker comme Traefik, alors jetez un coup d’oeil à Caddy. Il permet également d’avoir un certificat sur localhost. Comme Traefik, il est écrit en Go.

J’avoue que la concision de Caddy vs Traefik et le provider file est bien appréciable:

# Caddyfile
xxx.cerenit.fr {
	reverse_proxy 127.0.0.1:3000
}
# Traefik
http:
  middlewares:
    redirectToHttps:
      redirectScheme:
        permanent: true
        scheme: https
  routers:
    grafana:
      entryPoints:
        - websecure
        - web
      middlewares:
        - redirectToHttps
      rule: Host(`xxx.cerenit.fr`)
      service: grafana@file
      tls:
        certResolver: le
  services:
    grafana:
      loadBalancer:
        servers:
        - url: http://127.0.0.1:3000/

Pour un serveur, la migration de Traefik vers Caddy fait passer le fichier de configuration de 172 lignes à 27 - soit presque 6 fois moins ! 😏

  • Caddy-Docker-Proxy via Caddy Docker Proxy, Like Traefik But Better? : si vous souhaitez aller plus loin dans l’intégration Caddy/Docker dans l’objectif de remplacer Traefik, cela semble être une bonne piste. C’est une version modifiée de Caddy pour s’interfacer avec Docker. L’intégration se fait notamment via les labels, comme pour Traefik. A voir si on peut déployer la version standalone en dehors d’un conteneur comme on peut le faire avec Traefik. Cela éviterit ainsi que chaque container à exposer via Caddy-Docker-Proxy rejoigne le réseau ad-hoc.

Exemple:

services:
  whoami:
    image: traefik/whoami
    networks:
      - caddy
    labels:
      caddy: whoami.example.com
      caddy.reverse_proxy: "{{upstreams 80}}"

networks:
  caddy:
    external: true

Web, Ops, IoT et Time Series - Février 2022

traefik iot edge httpx semiconducteur rgpd google analytics font podman nebula wireguard jless json réseau tsfel timescale

Code & Langages

  • httpx : en gros, requests mais avec le support de l’asynchrone. L’API semble être la même. httpx peut aussi s’installer en tant que cli.
  • The Algorithms - Go : collection d’implémentation d’algorithme en Go à fin d’apprentissage

Fonts

  • Luciole : La police Luciole a été créée à destination des personnes malvoyantes et apporte un certain confort de lecture et une meilleure lisibilité.

Hardware

IoT

  • Anomaly Detection: Glimpse into the Future of IoT Data : intéressant le triplet Objet IoT, Edge / Data Routeur capable de réaliser des opérations et le noeud central. L’edge computing permet d’éviter de saturer le noeud central et de prendre des décisions au plus près de l’objet IoT.

Ops

Outils

RGPD & Vie Privée

Time Series

1 2 3 4 5