CérénIT

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

Web, Ops, IoT et Time Series - Mars 2022

pythonasgigitgrepdockerzipclidjangonumériquergpdprivacy shielddocker composedockerfilegoogle analyticsmatomofugueduckdbpandassql

Conteneur et Orchestration

  • Docker Engine 20.10.13 : Docker compose v2 arrive dans docker : ce qui permet de faire docker compose (au lieu de l’original docker-compose coté en python)
  • COPY --chmod reduced the size of my container image by 35% : pour réduire la taille de vos images, plutôt que de faire un ADD ... puis un RUN chmod ..., faites directement un ADD/COPY --chmod. Marche aussi avec --chown.
  • Docker Compose > depends > condition: ready : depends_on a une syntaxe longue qui permet de définir une condition sur l'état du service dépendant : démarré (valeur par défaut de la version courte), "sain" (en fonction du résultat d'un healthcheck) ou "terminé avec succès" (si votre service dépend du résultat d'un job ou d'une tâche).

Numérique

Open Data

  • adresse.data.gouv.fr : le site national des adresses dont l'objectif est de référencer l’intégralité des adresses du territoire et les rendre utilisables par tous.

Outils

  • GitUI : si vous trouvez tig pas très intuitif/pratique, GitUI pourrait vous plaire. Prévu pour le terminal, il permet de se ballader facilement dans votre historique git & co. L' outil en codé en Rust.
  • igrep : un grep interactif qui permet d'ouvrir le fichier dans un éditeur et d'aller directement à la ligne contenant le motif recherché. Basé sur l'excellent ripgrep.

Python

RGPD & Privacy Shield

Web, Ops, IoT et Time Series - Janvier 2022

mqtttinygoinfluxdbpostgresqlopenhabawstatsgoaccessgrafanaesp32stm32gitpodwireguardvpnpythonsocket

IDE

IoT

Monitoring & Observabilité

Python

Réseau

  • Introducing 'innernet' : innernet est un gestionnaire de réseau basé sur WireGuard. Il permet de déclarer l'ensemble de votre réseau wireguard et de définir des politiques réseaux (VLAN, Associations, etc)

Time Series

Web

  • GoAccess 1.4, a detailed tutorial : en cherchant à déployer une instance AWStats pour avoir des statistiques de visites sur la base des logs du serveur web nginx, je suis tombé sur GoAccess qui semble offir les mêmes fonctionnalités et même plus tout en étant plus simple à déployer/configurer.

Web, Ops, Data et Time Series - Septembre 2021

warp10automltelegrafdiscoveryanomaliepythondockerpodmannpmnodejsjvmadoptopenjdkquestdbcloudflareawss3dockerwarp10discoverytinygocircuitpythonnrtsearchelasticsearchinfluxdb

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 et Time Series - Mai 2021

hashicorpnomadovhtimeleap secondgitlab-cipythondbtmetabasedatataskwarp10monitoringwasmsécuritéspectretimescalesqlclireadmebootstrapinfluxdatakapacitorchronograf

CI

Cloud

Conteneur et orchestration

  • Announcing General Availability of HashiCorp Nomad 1.1 : 10 nouvelles fonctionnalités au programme (7 en OSS, 3 en entreprise) : surallocation de mémoire (soft et hard limit), les CPU peuvent être réservés en tant que tel (et non plus uniquement via une fraction), amélioration d'UI, amélioration coté support CSI, distinction entre les "readyness checks" et "liveness checks" au niveau des health checks, exécution distante sur AWS Lambda et AWS ECS (tech preview). Pour la version entreprise : supper des namespaces consul, chargement automatique des licences lors du déploiement de nouveaux noeuds, amélioration de l'autoscaling.

Data

Docs

  • readme.so (via MACI #42) : Vous ne savez pas quoi mettre dans votre README ? Ce site est fait pour vous et peut aussi vous aider à réorganiser vos fichiers.

Europe

  • Souveraineté et cloud, quel rapport ? : remise en perspective du cloud souverain et implications des décisions européenes. La remise en cause du Privacy Shield et les clauses contractuelles font qu'au final : "tout transfert de données personnelles sous juridiction américaine est illégal.". La reglementation européene, centré sur le respect des droits des personnes permettrait de fiare un protectionnisme reglementaire dans l'idée de développer un écosystème numérique européen et conforme aux valeurs européennes. A lire et méditer !

License

Système

  • negative leap second news! : une seconde est intercallée de temps à autre pour se resynchroniser avec la rotation terrestre. En général, on ajoutait une seconde. Là, on va retirer une seconde - c'est apparemment la première fois que cela se passe.

Sécurité

Time Series

  • $40 million to help developers measure everything that matters : Timescale annonce une levée en série B de 40 Millions de dollars - environ 2 millions d'instances actives et une dizaine de sorties produits pour le mois de Mai.
  • How we made DISTINCT queries up to 8000x faster on PostgreSQL : dans le cadre de la sortie de TimescaleDB 2.2.1, l'arrivée de "Skip Scan" permet d'accélérer les SELECT DISTINCT entre 28x et 8000x. Cela est valable tant pour les données Timescale que les données natives Postgres. Une contribution upstream est prévue.
  • TimescaleDB 2.3: Improving columnar compression for time-series on PostgreSQL : Après le rajout des ALTER/RENAME des colonnes compressées en 2.1 - le rajout des INSERT avec une compression en deux temps (compression de l'insert en lui même puis recompaction des données au niveau du chunk)
  • QuestDB 6.0 : implémentation de la gestion du Out Of Order, amélioration sur le InfluxDB Inline Protocol ainsi que sur l'UI et la couche SQL.
  • How we achieved write speeds of 1.4 million rows per second : retour plus détaillé sur la gestion du Out Of Order dans QuestDB.
  • InfluxDB OSS and Enterprise Roadmap Update from InfluxDays EMEA : InfluxData juge qu'à partir de la version 2.0.6, la mise à jour depuis une version 1.8 est stable. La version 1.8 sera donc maintenue jusqu'à la fin d'année. Au-delà de cette date, les correctifs ajoutés seront dans la branche master mais il n'y aura plus de packaging de la version 1.8 OSS. Seule la version 1.8 Entreprise aura de nouveaux binaires. Abandon des binaires en 32 bits pour InfluxDB 2.x. Concernant la version Entreprise, InfluxDB 1.9 va apporter des améliorations notamment concernant le support de Flux. Par ailleurs Chronograf 1.9 et Kapacitor 1.6 vont sortir en juin avec diverses améliorations. Ces deux produits seront compatibles avec InfluxDB 2.x pour aider à la montée de version vers InfluxDB 2.x. Enfin, InfluxDB 0SS 2.1 va sortir aussi en juin avec notamment l'ajout des notebooks, les annotations sur les dashboards et des améliorations de Flux.
  • Release Announcement: InfluxDB OSS and InfluxDB Enterprise 1.8.6 : version de maintenance avec une faille de sécurité pour la version Entreprise.
  • Monitorer son infra avec Warp 10 - Partie 1, Partie 2, Partie 3 : Mise en oeuvre des outils de la plateforme Warp 10 pour monitorer son infrastructure. Cela couvre l'installation, la collecte des métriques, l'exploration des données et calcul des premiers métriques, et pour finir la création des dashboards.
  • Mon Linky dans Warp 10 avec un joli dashboard : Ingestion des données issues du Linky dans Warp 10 et présentation de ces données dans un Dashboard Discovery.
  • May 2021: Warp 10 releases 2.8.0 and 2.8.1 - SenX : En résumé (liste non exhaustive, va falloir qqs billets plus détaillés pour comprendre toutes les nouveautés) : Gestion plus fine des "capabilities" au niveau des tokens, Utilisation de FLoWS simplifié, Intégration avec la blockchain Ethereum, Des fonctions de crypto / signature / ..., Des améliorations sur la manipulation de JSON, Une fonction HTTP pour permettre des appels distants, Ajout de mapper.geo.fence pour voir si un point est dans/en dehors d'une zone, Des choses autours des MACRO et plein d'autres améliorations/corrections.
  • Working with GEOSHAPEs: code contest results : le corrigé du concours lancé par SenX autour des GEOSHAPEs dans Warp 10. Concours que j'ai remporté et voici mes réponses : partie 1 & partie 2
  • Wikipedia / Warp 10 : Warp 10 dispose de sa page Wikipedia
  • « Le bateau qui vole » : l’analytique en temps réel au service d’un skipper : de l'utilité des séries temporelles dans le monde de la course au large pour une meilleure appréhension du fonctionnement du bateau et de ses performances. Ce retour d'expérience sera le thème d'une prochaine édition du Time Series France !

Web

  • Bootstrap 5 : nouvelle version majeure du framework Boostrap avec la suppression de la dépendance à JQuery et la fin de support de plein de vieux navigateurs notamment.

Web, Ops & Data - Octobre 2020

kubernetesingressyamlpipelinegitlabtraefikrootlessmeshyqjqdevopsdatamaturitémariadbs3flowswarp10timeseriesinfluxdbpulsaramqpmqttkafkapythongitvscodearmnvidia

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 - Septembre 2020

podmantimezonegrafanadashboardterraformsécuritéterrascanterracostnvidiaarmcnicsinetworkstorageciliumcalicolonghornportworxopenebsrancherpythongkewarp10influxdbdata-engineerdate-scientistsql

Cloud

  • terrascan : terrascan va scanner vos fichiers terraform et les valider contre 500+ règles de sécurité (au format Open Policy Agent) afin d'identifier les éventuels problèmes de sécurité. L'outil supporte AWS, GCP et Azure.
  • infracost : estimez le coût de vos projets terraform à l'heure ou au mois. Il est même possible de faire apparaitre les évolutions de vos coûts d'infra lors d'une MR/PR. A défaut d'être forcément précis, cela pourra au moins donner une idée et permettra peut être de sensibiliser les développeurs et/ou les clients aux évolutions de couts de leurs projets.

Code

  • All Python versions before 3.6 are now totally unsupported : Python 2 n'est plus supporté depuis le début de l'année - c'est au tour de Python 3.5 de ne plus l'être depuis le 13 sept. Pour Python 3.6, ce sera décembre 2021.
  • nackjicholson/aiosql : juste milieu (?) entre du SQL brut et un ORM, aiosql semble permettre d'associer une requête SQL à une fonction pour une manipulation assez simple ensuite dans le code par la suite.

Container et orchestration

(Big) data

  • #19. Lucien Fregosi - Hugo Larcher - Erika Gelinard - Dessine moi un data engineer : Pour cette saison 2 de DataBuzzWord, des réflexions intéressantes autour du Data Engineer / Data Scientists, le Data Engineer qui fait du Build/Run, les pipelines & job as a service et de l'importance de simplifier / déporter le run pour que le Data Engineer et a fortiori le Data Scientist se concentrent sur leurs pipelines ou leur exploitation et gérer moins d'infrastructure.

Hardware

Time Series

  • InfluxDB OSS 2.0 General Availability Roadmap : un bon résumé sur les avancées d'Influx 2.0 OSS et la transition 1.x vers 2.x ; Début septembre, j'étais sceptique quand même avec le retour du stockage et du requêtage da la V1 dans la branche v2 (cf la PR "Port TSM1 storage engine") et ce à un mois de la date de release prévue annoncés aux Influxdays de Londres (ie fin septembre). Au final, la version 2.0 OSS et Entreprise auront les feautres "frontend" de la V2 (Tasks, Dashobards, etc) mais uniquement le moteur de stockage de la V1. Si je comprends le besoin pour ne pas perdre leurs clients dans la migration, c'est un écart de plus entre les version OSS/Entreprise et la version Cloud. Les couches hautes (API, UI, fonctionnalités type Task/Dashboards/...) seront commmunes mais sous le capot (stockage, ingestion), cela diffère. On peut raisonnablement se demander si c'est une phase intermédiaire avant une migration ultérieure sur le moteur de stockage de la 2.0 quand InfluxData aura plus de recul sur le sujet ou bien si les projets Cloud et OSS/Entreprise ne vont pas diverger significativement à moyen terme. Ceux qui ont commencé à alimenter leur base InfluxDB 2.0 sur la base des versions beta devront repartir de zéro du fait de cette incompatibilité de version de moteur de stockage.
  • Popular community plugins that can improve your Grafana dashboards : une collection de plugins Grafana pour améliorer vos dashboards.
  • September 2020: Warp 10 release 2.7.0, ready for FLoWS : la version 2.7 de Warp 10 est disponible et est la première version qui va supporter FLoWS, la syntaxe fonctionnelle alternative à WarpScript. Pour en savoir plus sur FLoWS, je vous renvoie à l'édition 5 du Paris Time Series Meetup avec la présentation de FLoWS. D'autres améliorations font partie de cette release, tant d'un point de vue fonctionnalités que performances.

Web, Ops & Data - Août 2020

pythonvscodecassandranosqlmariadbs3cdkterraformptyhonsetuptoolsgitgitignorerookceph

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

Web, Ops & Data - Juillet 2019

warp10timeseriessouveraineté numériquepythonpostgresmongodb

Souveraineté numérique

SQL

  • Fastest Way to Load Data Into PostgreSQL Using Python : le billet revoit différentes façons de faire ingérer des données dans Postgres via du code python. Cela va de 2 minutes à une demi seconde. De quoi piocher des idées pour la mise en place de votre prochaine ingestion de données.
  • Quel avenir pour Postgresql? : Le mérite de l'article n'est pas tant de savoir si Postgres est une alternative crédible (spoiler: oui) mais de remettre en perspective l'histoire de Postgres jusqu'à nos jours.
  • Retour d’utilisation de Mongodb et pourquoi nous migrons vers Postgresql : Retour d'expérience de l'équipe de développement de Malt.io sur leur utilisation de MongoDB, les limites et leur récente migration à Postgres pour un certain nombre de cas d'usages. Pour autant, ils n'abandonnent pas MongoDB.

Time Series

  • Warp 10™ version 2.1 : Sortie de la version 2.1 de Warp10 avec son lot de nouveautés.
  • Warp 10™ Raspberry Pi 4 bench for industrial IoT : Warp10 2.1 parvient à ingérer jusqu'à 300.000 points par secondes sur un Raspberry Pi 4 (contre une valeur recommandée il y a 2 ans d'une à quelques dizaines de milliers de points par secondes). Preuve s'il en est de l'amélioration tant du Raspberry Pi que de la performance de Warp10.

Web, Ops & Data - Juin 2019

opendataschemaawspythondata.gouv.frschemavirtualisationdéploiementvendredisrereliabilityrésiliencerambleedramyubikeyhaproxy

Cloud

  • AWS costs every programmer should know : l'article donne le coût moyen d'un vCPU, de la RAM et du stockage chez AWS pour permettre de définir rapidement une estimation de votre infrastructure.

(Big|Open) Data

Containers et orchestration

Infrastructure

  • LCC 211 - Interview sur la virtualisation avec Quentin Adam : Quentin Adam part du CPU et remonte les couches pour expliquer la (para) virtualisation et les conteneurs. Un nouveau monde s'est découvert devant mes yeux, je ne regarde plus mon CPU de la même façon.
  • HAProxy 2.0 and Beyond et [ANNOUNCE] haproxy-2.0.0 : la version 2.0 du célèbre reverse proxy est sortie avec un nombre impressionnant de nouveautés/améliorations. On apprend aussi qu'une nouvelle version de l'ingress controller kubernetes devrait sortir sous peu.

Langages

Sécurité

  • RAMBleed, Reading Bits in Memory Without Accessing Them : les failles dans le CPU, c'est "so 2018", en 2019, on innove et on découvre des failles dans la RAM. Pas de mitigation sans racheter des barrettes DDR4 et en activant la fonctionnalité TRR (Targeted Row Refresh).
  • Security Advisory 2019-06-13 – Reduced initial randomness on FIPS keys : la déclinaison FIPS des clés Yubikey a une alerte de sécurité sur le niveau d'aléatoire fourni par lé clé pour certaines versions du firmware. Les propriétaires des clés éligibles peuvent les échanger auprès de Yubico en suivant une procédure.

SRE

  • Friday Deploy Freezes Are Exactly Like Murdering Puppies : réflexion intéressante sur le "On ne déploie pas en production le vendredi" ; on peut ne pas le faire mais pour les bonnes raisons. Si vous n'avez que les mauvaises raisons, alors il faut travailler votre outillage et vos habitudes. Cela rend ce site obsolète.
  • Reliability That Works : Le TL;DR est trop limitatif à mon sens : "TL:DR; Prefer investing in recovery instead of prevention" : si faire trop de prévention est illusoire et trop cher pour être acceptable, surtout quand elles sont hors de notre contrôle. Il convient plutôt de s'assurer que les erreurs ont un impact le plus petit possible quand elles surviennent et de pouvoir revenir à un état normal le plus rapidement/facilement possible. Il faut bien entrendre recovery comme retour à la normale et pas comme restauration/retour en arrière pour bien apprécier l'article.

Web, Ops & Data - Février 2019

kubernetestraefikpostgrespandaspythondockerruncoperatoransiblevitesstidbshardingtimeseriesovhkubedbfsyncovhdns

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

(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.
← Précédent 1 / 2