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 La culture de la résilience à travers le DevOps, DevPO, et DevQA : article intéressant de Paul Leclerq sur la résilience et la collaboration au sein d’une équipe. Data How to Measure Your Organization’s Data Maturity : les différents stade de maturité de votre organisation concernant la gestion et l’exploitation des données. Announcing MQTT-on-Pulsar: Bringing Native MQTT Protocol Support to Apache Pulsar: Apache Pulsar, la plateforme de message distribué et de streaming, se dote d’un plugin “MQTT On Pulsar” (MoP) permettant ainsi de migrer vos applications MQTT sur Apache Pulsar. Après le plugin Kafka (KoP) il y a quelques mois en partenariat avec OVHCloud, Pulsar ajoute une corde à son arc pour devenir la plateforme universelle. Le protocole AMQP est déjà aussi supporté depuis plusieurs mois. Building An Event-Driven Orchestration Engine : retour d’expérience sur les raisons de la migration à Apache Pulsar e la simplificaiton apportée en ayant une platforme riche et complète (streaming + queue + fonctions + data tiering sur S3 + …) Hardware NVidia’s Planned Acquisition of Arm Portends Radical Data Center Changes : une analyse assez en profondeur sur le rachat d’arm par nvidia et les autres acteurs du marché comme AMD. 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 Long-term store for Prometheus, with the combined power of SQL and PromQL : Timescale s’ajoute à la liste des solutions permettant un stockage long terme à vos données Prometheus. En plus de ce stockage long terme, elle fournit une couche d’analytics. Un connecteur récupère les données dans Prometheus et les injecte dans TimescaleDB. On en parle dans l’édition 6 du PTSM. 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 Introducing FLoWS, a functional language for Time Series Analytics : FLoWS est arrivé - il vous faudra utiliser une version 2.7.1+ de Warp10 pour profiter de cette approche fonctionnelle en alternative à Warpscript. How can you tell which Time Series Database is suited to your needs? : un petit rappel sur les critères à prendre en compte pour choisir une base de données séries temporelles ; j’avais déjà parlé du guide de Senx sur le sujet - il est disponible en fin de billet. InfluxDB 2.0 Release Candidate Now Available : la première Relese Candidate (RC0) pour InfluxDB 2.0 OSS avec le retour du moteur de stockage de la V1 - qui contrairement à ce que j’ai pu dire le mois dernier ne concernerait que la façon dont les données sont stockées sur disque et pas le reste d’une part et sera maintenu et amélioré par Influxdata d’autre part. Quelques changements sur le port (retour au port 8086). Pour ceux qui étaient en version alpha/beta, il faudra suivre une procédure de migration. La migration depuis une version 1.x n’est pas encore disponible, cela devrait être dans une prochaine RC. Vous pourrez tester néanmoins les API 1.x, les templates, une version récente de Flux ou encore les améliorations de la CLI. Release Announcement: InfluxDB 2.0.0 RC 1 : cette version apporte essentiellement l’upgrade des données 1.x vers 2.x et une mise à jour de Flux. Store and Access Time Series Data at Any Scale with Amazon Timestream – Now Generally Available - Getting Started with Amazon Timestream - AWS Releases Amazon Timestream into General Availability : AWS sort enfin son produit orienté time series après l’avoir annoncé il y a deux ans. Sur la base des informations disponibles pour le moment :
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.
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.
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.
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.
Cloud Announcement: Amazon S3 will no longer support path-style API requests starting September 30th, 2020 : Pour le stockage S3, AWS ne supportera plus le mode //s3.amazonaws.com/<bucketname>/key mais seulement le mode //<bucketname>.s3.amazonaws.com/key Container et Orchestration Rook v1.0 — A Major Milestone : Rook atteint le stade de la version 1.0 avec une amélioration de l’opérateur Ceph (simplification de la configuration, gestion des mises à jour, prise en charge des dernières versions de Ceph, etc), le driver Ceph CSI passe en bêta, le support d’EdgeFS passe en bêta également, l’opérateur NFS supporte l’approvisionnement dynamique et l’opérateur Minio a reçu également des améliorations. KubeDB 0.12 : cette version apporte principalement le support du sharding MongoDB et du Clustering MySQL et divers correctifs pour les autres “backends”. Announcing NGINX Ingress Controller for Kubernetes Release 1.5.0 : nouvelle version de l’ingress nginx avec une nouvelle configuration, des métriques (via prometheus), simplification de la gestion des certificats, etc. Grafana v6.2 Stable Release! : améliorations de sécurité sur le chiffrement des données des datasources, une nouvelle gauge et pleins d’autres améliorations. OpenEBS Project Update and whats coming in v1.0 : la solution de stockage sous kubernetes vient de sortir en version 0.9 et de rejoindre la CNCF. C’est l’occasion de faire un point sur le projet et la route vers la version 1.0 (Big) Data Kafka : Migrer un consommateur vers Streams et Connect : retour d’expérience intéressant sur la migration d’une intégration Kafka basée sur les producteurs/consommateurs vers une approche basée sur Kafka Connect et Kafka Streams. Security for Elasticsearch is now free : ces fonctionnalités, prélablement disponibles uniquement dans la version commerciale, font partie de la version gratuite : chiffrement des flux via TLS, authentification et gestion des rôles. IAC Ansible 2.8 : de nombreuses améliorations au rendez-vous, la liste est très longue. Pour ma part, je note l’arrivée du support de “docker stack” pour gérer des déploiements sur un cluster docker swarm. IDE Remote Python Development in Visual Studio Code & VS Code Remote Development : Lors de PyCon 2019, Microsoft a annoncé la sortie de plusieurs extensions qui permettent d’améliorer l’expérience utilisateur du développeur python via des “remote containers”, du “remote ssh” ou du “remote WSL”. Sécurité The inception bar: a new phishing method : sur mobile, dès lors que l’utilisateur fait défiler sa page, la barre de navigation va disparaitre et du coup il est possible d’injecter une fausse barre de navigation et faire croire à l’utilisateur qu’il est sur un autre site. Time series Zabbix, Time Series Data and TimescaleDB : le billet explique en quoi Zabbix doit faire face à l’enjeu des séries temporelles dans le cadre d’une solution de monitoring. Comme ils veulent avoir une technologie leur permettant d’utiliser SQL, ils ont fait le choix de TimescaleDB. Le point intéressant est en fin d’article lorsque les performances de Postgres 10 et TimescaleDB sont comparées.
Cloud & Open Source Redis Labs - Commons Clause - Redis will remain BSD licensed - Redis is not “open core”: ça chauffe entre l’OSS et les fournisseurs de cloud - pour que les fournisseurs de cloud évitent de se faire de l’argent sur le dos des solutions Open Source et sans contribuer en retour, Redis Labs va changer la licence de certains modules (et pas de tous le logiciel) pour limiter la revente via les fournisseurs de Cloud. It’s time for the open source community to get real : réflexion intéressance de Paul Dix (CTO InfluxData) sur le sujet du financement de l’Open Source au regard de l’événement Redis Labs. Container et orchestration Kubernetes is Now Available In Docker Desktop Stable Channel Announcing Istio 1.0 : la solution de service mesh à la mode vient de passer l’étape de la version 1.0 - Les release notes de la 1.0 vous donneront le détail. Reste à savoir si vous devez ou non utiliser une solution de Service Mesh… Kubernetes : comment écrire un déploiemnt : Billet faisant le tour des principales options de l’objet “Deployment” sous Kubernetes. Certaines options sont toutefois un peu trop résumées. (Big) Data & (No)SQL Reaper 1.2 Released : l’outil de gestion des “réparations” des données d’un keyspace Cassandra, initialement réalisé par Spotify et désormais maintenu par The Last Pickle, vient de sortir en version 1.2 avec son lot d’améliorations. Pour un client, il a été déployé, ce qui me permet de pouvoir contribuer modestement (#472, #473, #474) Re-Bootstrapping Without Bootstrapping : que faire lorsqu’un noeud d’un cluster Cassandra est sorti depuis plus longtemps que le temps de grace défini ? Le billet répond à la question pour ne pas repartir de zéro et le faire de façon “marginale”. Introducing Confluent Platform 5.0 : à l’occasion de la sortie d’Apache Kafka 2.0, une nouvelle version de la plateforme Confluent sort également avec les dernières nouveautés de KSQL, des améliorations coté stabilité/sécurité (Auth LDAP, Disaster Recovery, etc). Allez lire les notes pour en savoir plus et voir ce qui relève de la version 0SS et de la version Entreprise. Showdown: MySQL 8 vs PostgreSQL 10 – Hacker Noon : l’article confirme qu’avec MySQL 8.0, MySQL rattraperait Postgres au niveau des grandes fonctionnalités de base. DevOps The Site Reliability Workbook : Google sort un complément à son livre “Site Reliability Engineering”. Le livre est sensé donner des conseils pratiques ou partager des eemples issus de la réalité dans le cadre de la mise en place d’une démarche SRE. Timeseries Querying Prometheus with Flux (video - slides) : Paul Dix, CTO d’InfluxData, montre comment il est possible de requêter des données issues de Prometheus via Flux, le nouveau langage qu’InfluxData est en train de créer et dont l’objectif est de pouvoir manipuler des données temporelles. Ce cas permet de montrer l’utilisation de Flux dans un contexte autre qu’InfluxDB. CNCF to Host OpenMetrics in the Sandbox : OpenMetrics est une initiative de standardisation des formats de métriques - le projet rentre donc dans l’initiative de la CNCF. OpenMetrics to Join the CNCF ; Paul Dix a annoncé le support de ce format comme “citoyen de première classe” pour une version ultérieure d’InfluxDB. Le billet fait l’état des lieux du support au niveau de Telegrad et de Kapacitor. Prometheus Graduates Within CNCF : toujours coté CNCF, Prometheus, la plateforme de métriques, est le second projet (après Kubernetes) à passer au niveau officiel. TimescaleDB vs. InfluxDB: purpose built differently for time-series data : Comparaison par les gens de TimescaleDB entre leur produit TimescaleDB et InfluxDB. Même s"il est forcément un peu biaisé, il reste intéressant.
Big Data, Machine Learning & co Level Up Your KSQL : Confluent met à disposition une série de vidéos pour la prise en main de KSQL. Rounding Up Kafka Summit London 2018 : Confluent a égalemient mis à disposition les vidéos du dernier Kafka Summit à Londres. Introducing Confluent Hub : Confluent lance une plateforme communautaire autour de Kafka Connect. Cloud Amazon EKS – Now Generally Available : l’offre managée Kubernetes d’AWS sort en version stable. Azure Kubernetes Service (AKS) GA – New regions, more features, increased productivity : Pas de jaloux - Azure est aussi prêt pour son offre managée kubernetes. Announcing Terraform Support for Kubernetes Service on AWS : Hashicorp profite de l’annonce d’AWS pour annoncer également que Terraform permet de provisionner un cluster EKS. GKE vs AKS vs EKS – Hasura : comparatif synthétique des solutions managées kubernetes de Google, Azure et AWS. Container & Orchestration Making Compose Easier to Use with Application Packages : Docker Inc. sort un nouveau produit appelé “docker-app”. Il se veut comme une surcouche à docker-compose en permettant d’injecter des variables dans vos fichiers docker-compose.yml. Ainsi, vous n’auriez plus qu’un seul fichier docker-compose avec ses variables et les valeurs de ses variables dans des fichiers additionnels. Lors de l’exécution du container, docker-app réconcilie les deux et lance le conteneur avec les bonnes valeurs. Docker Swarm et Kubernetes seraient supportés si l’on en croit les exemples. Rigolo, sur le principe, c’est exactement ce que je fais pour une mission actuellement… Découverte de Buildkit : dans le cadre du découpage de Docker en programme modulaire indépendant, Moby avait lancé Buildkit. Il s’agit du builder d’images. L’article présente son fonctionnement et son architecture. HashiCorp Consul 1.2: Service Mesh : Hashicorp sort en beta son offre de service mesh basé sur Consul. Après le “Service Discovery” et le “Service Configuration”, voilà le Service Mesh. A voir dans la vraie vie mais on retrouve apparemment pas mal de fonctionnalités disponibles dans Istio. (No)SQL Vitess : J’en avais entendu parler, j’ai profité d’un épisode de Software Engineering Daily pour en savoir un petit peu plus : Je ne suis pas encore au bout du podcast mais cela semble être une couche entre l’application et la DB - elle analyse la requête et la distribue ensuite au sein du cluster. Vitess permettrait notamment que le développeur n’ait pas à connaitre la logique de clustering/sharding des données. L’overhead n’a pas encore été mentionné. Redis 5.0 RC1 : la version 5.0 de Redis pointe le bout de son nez avec notamment le type de donnée Stream - cf Introduction to redis streams Streaming Data out of the Monolith: Building a Highly Reliable CDC Stack : un CDC, Change Data Capture, est un système qui capture les changements de données (INSERT, UPDATE, DELETE) d’une source de données. BlaBlaCar explique ici comment ils ont mis en place leur CDC sur la base de Debezium et Kafka. Un des défis à relever étant la gestion de la déduplication des données. Elasticsearch 6.3.0 Released : plein de nouveautés mais la plus symoblique étant un début de support d’un requêtage SQL dans Elasticsearch. Sécurité Attacking Private Networks from the Internet with DNS Rebinding : TL;DR Following the wrong link could allow remote attackers to control your WiFi router, Google Home, Roku, Sonos speakers, home thermostats and more. il est donc possible d’abuser un navigateur via un DNS malicieux et donc être en mesure de scanner le réseau local de la personne abusée. Il faut donc considérer le réseau local comme une zone hostile et y appliquer les bonnes pratiques habituelles (authentification, urls en https, etc) Timeseries Les capacités d’alerting de Kapacitor : un billet sur l’utilisation de kapacitor pour générer des alertes. J’aurais bien aimé pouvoir l’avoir écrit… “Metrics First” Approach to Log Analysis : avec la version 1.7 de Telegraf (l’agent de collecte), un nouveau plugin syslog permet d’exposer les logs sous la forme d’événements. Et avec Chonograf 1.5, il est possible de voir ses données sous un format tabulaire. Pour autant, TICK n’a pas vocation à devenir une centrale de logs (à la ELK & co). Astuce(s) du mois Faîtes-vous plaisir et écouter le podcast Artisan Développeur - dans des formats de 10mn environ, un sujet autour de l’agilité, des tests, du TDD, de la responsabilité des développeurs, de SaFE, et de tout ce qui fait partie de notre quotidien de développeurs sont abordés. Depuis quelques épisodes, cela se fait en duo avec d’autres personnes (comme JP Lambert) ce qui rend les échanges encore plus intéressants. Vous retrouvez le podcast sur Soundcloud, Pocketcasts, etc.
Big Data, Machine Learning & co Confluent Platform 4.1 with Production-Ready KSQL Now Available : Basé sur Apache Kafka 1.1, la nouvelle mouture de la platform de Confluent signe l’arrivée de KSQL comme “production ready” notamment - a voir si le “Replicator” est dans la version OSS ou bien EE seulement. Le seul souci que j’ai avec kafka, c’est que l’on ne peut pas monitorer finement la consommation des queues vu que l’intelligence est coté consommateur et pas coté broker… Même avec la version EE et le Control Center qui ne remonte que des métriques globaux mais ne donne pas de détail sur l’état du topic. Tensorflow with Javascript Brings Deep Learning to the Browser : j’avais lu l’annonce il y a quelques temps mais sans bien comprendre l’intérêt de la chose. L’idée ici est de pouvoir faire tourner Tensorflox dans le navigateur au travers de Javascript et de WebGL (et donc de tirer parti des capacités de la carte graphique). En plus de rendre accessible le ML aux développeurs Web, cela permettrait aussi de soumettre des modèles ou d’entrainer des modèles dans le navigateur de l’utilisateur. Vers le Machine Learning au plus près de l’utilisateur ? Introducing Confluent Platform Preview Releases : Confluent met à disposition des versions intermédiaires de sa distribution. Cette première version permet de jouer avec KSQL et il semble que l’interface Control Center soit disponible sans frais particuliers. On notera d’ailleurs qu’en plus de la partie KSQL, des efforts ont été faits sur la partie inspection de topic et consumer lag. Cela progresse donc enfin dans l’observabilité et le monitoring d’un cluster kafka. Introducing the Confluent Operator: Apache Kafka® on Kubernetes Made Simple : Confluent va mettre à disposition un “Kubernetes Operator” permettant de déployer Kafka ou Confluent platform de façon (plus) aisée sur un cluster Kubernetes. Les templates Kubernetes et les images Docker vont être mis à disposition le mois prochain et le Kubernetes Operator d’ici le milieu d’année. Container et Orchrestration Announcing Docker Enterprise Edition 2.0 : Docker Inc annonce la version 2.0 de sa version Entreprise. Elle se veut indépendante de tout lock-in (Multi-Linux, Multi-OS, Multi-Cloud) et permettre d’utiliser soit Swarm ou Kubernetes comme orchestrateur. Cette version apporte également un routage avancé au niveau de Swarm (niveau L7). feat(agent): add agent support : Portainer est une solution de gestion d’un environnement Docker ou Docker Swarm. L’inconvénient sous Docker Swarm est que l’instance Portainer ne voit que les containers présents sur le même noeud que le sien et pas l’ensemble des containers (cf [FEATURE REQUEST] Be able to use all the Portainer built-in functionalities in all the containers running in a swarm cluster). Via un mécanisme d’agent (code source fermé) à déployer sur chaque noeud, l’éditeur annonce pouvoir contourner les limitations de l’API Docker. La justification du code fermée est motivée par les efforts de R&D réalisés. Un gist indique comment installer l’agent. Il n’est pas stipulé si en plus d’un code fermé, il y aura une offre commerciale autour ou pas. Traefik 1.6 — Get Our Latest tetedemoine! : la version 1.6 apporte le support des certificats Wildcard Let’s Encrypt, une nouvelle Web UI, le support des outils de tracing Zipkin et OpenTracing, le support du stockage des certficiats dans les secrets Kubernetes, une capacité d’altération des logs en vue du respect de la GDPR et une homogénéisation interne sur la gestion des labels. Open-sourcing gVisor, a sandboxed container runtime : Google vient de rendre opensource gvisor, une mécanisme permettant d’accroitre l’isolation des containers via un mécanisme de Sandbox. C’est “transaprent” pour l’utilisateur au sens qu’il peut utiliser gvisor de la même façon qu’il interagissait avec Docker ou Kubernetes. C’est juste le runtime qui change. C’est codé en go, cela intercepte les appels SYSCALLS et l’équivalent d’un noyaux linux codé en Go répond en lieu et place du noyau linux de la mâchine hôte. Par ailleurs, cette sandbox a un impact sur les performances du containers comme leurs auteurs l’expliquent bien dans le 3ème épisode du Kubernetes Podcast by Google. InfoQ publie également un article sur ce sujet : Google Release “gVisor”, a Lightweight Container Runtime Sandbox Used to Provide Secure Isolation Containers, Security, and Echo Chambers : Une ex employée de Docker ayant travaillé sur la sécurité et l’isolation des containers nuance le marketing autour de gvisor. Elle avait déjà nuancé l’arrivée de Kaniko (le builder d’images Docker make in Google). Introducing Play with Kubernetes : l’équipe Docker Inc, après son Play with Docker qui permet de se former à Docker depuis son poste de travail, annonce officiellement l’existence de son pendant pour Kubernetes : Play with Kubernetes. Officiellement, car le billet indique qu’il existe depuis l’été dernier. Il se base sur le workshop de Jerome Petazzoni. Kubernetes Containerd Integration Goes GA : Containerd est un runtime de containers, venant de chez Docker Inc et placé mainteant sous l’égide de la CNCF. Il semble en bonne voie de devenir le runtime par défaut de Kubernetes en lieu et place de docker. Même si Kubernetes se défend de s’affranchir de Docker, force est de constater qu’il y a des travaux pour s’affranchir des outils estampillés Docker Inc : gvisor pourrait remplacer runc à terme, kaniko pourrait replacer docker build. La registry docker étant aussi en passe de standardisation, on peut s’attendre à voir un nouveau produit arriver. Si Kubernetes (+ Google + CNCF + …) ont encore besoin de la liaison avec Docker d’un point de vue marketing, on a l’impression que cela cherche à s’éloigner des outils Docker Inc et dans une moindre mesure du projet Moby (qui lui même semble aussi avoir quelques distances avec Docker Inc). Certes, le docker engine de Docker Inc est basé sur containerd et donc Docker ne disparait pas de la plateforme mais ça semble bien en prendre le chemin. Développement Using Github CODEOWNERS file : Github, via un fichier CODEOWNERS, permet d’indiquer qui sont les responsables présumés d’une Pull Request. De quoi simplifier son workflow. Dataviz Grafana v5.1 Released : en plus de la consolidation de la version 5.x, les deux ajouts significatis sont une heatmap pour Prometheus et l’arrivée de SQL Server comme data source et donc faire des graphs sur vos données SQL Server. Infrastructure as code Terratest - an Open Source Go Library for Automated Infrastructure Testing : Terratest est une librairie en go permettant de valider une infrastructure déployée plutôt sur le cloud et avec les outils hashicorp. Il semble néanmoins possible de faire des commandes via ssh ou de l’utiliser pour des images Docker… (No)SQL What’s New in MySQL 8.0? (Generally Available) : même si je n’utilise plus trop MySQL (au mieux MariaDB pour quelques clients), il est intéressant de voir la progression significative de cette base avec cette nouvelle version : Window functions, Document Store, support du JSON, etc. Elle pourrait presque recommencer à concurrencer Postgres ;-) Installing MySQL 8.0 on Ubuntu 16.04 LTS in Five Minutes : tout est dans le titre - cela permet de déclarer le dépot Oracle/MySQL et d’accéder à differentes versions de MySQL, dont la 8.0. Python Flask 1.0 Released : le micro framework python Flask sort en version 1.0 après 8 années de déveloopement. Sécurité Use A Good Password Generator : revue de différents outils de génération et gestion de mots de passe. La feuille de calcul contient plusieurs onglets et permet de faire le tour des solutions existantes. TICK Platform (Telegaf, InfluxDB, Chronograf, Kapacitor) Kapacitor and Continuous Queries: How To Decide Which Tool You Need : la question m’a été posée à Breizhcamp et je n’avais pas forcément de réponse à fournir. Elle est fournie par l’éditeur : Conitunous Queries pour l’échantillonage et Kapacitor pour les requêtes custom et éventuellement déporter des workloads consommatrice de ressources. Le mode streaming de kapacitor permet aussi de faire vos requêtes au fil de l’eau et consommer moins de ressources (mais plus régulièrement) Intelligent Monitoring: Automating Dashboard Annotations in Chronograf : tutoriel intéressant qui montre comment l’on peut générer dynamiquement des annotations sur vos graphs dans Chronograf au travers de Kapacitor. Intéressant, car en général, les annotations sont souvent posées manuellement et a posteriori par des humains et pas de façon automatique/continue. Chronograf 1.5 and Kapacitor 1.5 Released : Chronograf permet maintenant d’avoir une vue tabulaire des données (et pas uniquement un graph ou une donnée) et Kapacitor peut maintenant envoyer des alertes vers Kafka, vers plusieurs canaux Slack. Web NGINX Releases Open Source Web Server with Dynamic Configuration : Nginx vient de sortir la version 1.0 de son projet Unit. C’est un serveur web et d’application que l’on peut reconfigurer à chaud / dynamiquement au travers d’une API REST. On est encore loin des intégrations Docker/Kubernetes/Consul/… de Traefik mais c’est un bon premier pas.
API, Rest, GraphQL GraphQL at the REST-aurant : une introduction à GraphQL et à ses avantages par rapport à un modèle REST en faisant une analogie avec un REST-aurant. J’ai découvert les “persisted queries”. Container & orchestration Going Production with Docker and Swarm : une présentation repassant les bonnes et mauvaises pratiques de Docker et Docker Swarm, les outils disponibles, des éléments de sizing de cluster swarm, etc. Globalement en phase avec ce que je pratique chez un client actuellement. Prochaine étape, ne plus utiliser “latest” comme référence d’images ! Dataviz What’s New in Grafana v5.0 : Grosse refonte de Grafana pour l’arrivée de cette version 5.0 : nouveau système de dashboard, gestion des permissions, gestion de groupes, gestion de dossiers, nouvelle UX, etc. Git –force considered harmful; understanding git’s –force-with-lease : Si l’usage de git --force est déconseillée si ce n’est proscrite, sa variante git --force-with-lease est plus intéressante et permet d’éviter d’écraser le travail de vos camarades alors que vous pensiez juste faire un push en force sur une branche distante suite à un rebase local. Advantages of monolithic version control : le débat mono-dépot vs multi-dépots est récurrent - celui- ci donne des raisons pro mono dépôt. Au delà du mono/multi dépôt, c’est surtout l’architecture d’une application et sa modularité qui sont prépondérants. Kafka Building Reliable Reprocessing and Dead Letter Queues with Kafka : Rien de révolutionnaire mais c’est assez bien documenté sur la gestion des erreurs / retry et au final des Dead Letter Queues afin d’avoir une vision sur ce qui se passe bien ou pas dans la chaine d’événements, pouvoir les reprocesser si besoin et surtout ne pas engorger le système bêtement. Sécurité & Compliance La fin d’une époque… : si vous utilisez des certificats issues de chez Thawte, GeoTrust et RapidSSL ayant été générés avant le 1er juin 2016 pour la 1er vague ou avant le 1er décembre 2017 (date de rachat de l’autorité de Symantec par Digicert), alors vos sites risquent d’être bloqués par les version de printemps et d’automne de Firefox et Chrome. Il vous faut renouveller vos certificats. Si votre certificat a été généré après le 1er Décembre 2017, vous n’avez rien à faire. Chef InSpec 2.0 Puts the Security into DevSecOps : la spécification InSpec permet de définir/tester/valider l’état d’une machine au regard de règles de conformité et de sécurité. Cette spécification a été initiée par l’entreprise Chef (éditrice du logiciel du même nom et d’Habitat entre autres). La version 2.0 vient de sortir et apporte une intégration AWS/Azure, de nouvelles ressources de validation (docker, configuration serveurs web, clés & certificats, etc) et une amélioration des performances. Astuce(s) du mois Lorsque l’on déploie une même application dans plusieurs contextes via docker-compose, il est intéressant d’utiliser le COMPOSE_PROJECT_NAME qui permet de donner un préfixe à vos réseaux et containers docker a minima.
On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.
Contactez-nous →