Deux petites annonces pour démarrer cette édition : Je serai à KubeCon EU du 20 au 23 Mai à Barcelone. Si vous y allez aussi, dites le moi, ce sera une occasion de se rencontrer. Le BigData Hebdo a ouvert son slack - Vous pouvez nous rejoindre par vous même via ce lien APM Glowroot : Pour ceux qui s’intéressent au sujet de l’APM et qui ne veulent pas aller chez AppDynamics, Dynatrace ou Elastic, j’ai assisté à une démo intéressante sur Glowroot - il est forcément moins riche que ces concurrents mais il a l’air de faire l’essentiel de ce que l’on peut attendre d’un APM. Il ne marche qu’avec la JVM. Cloud Big Data Hebdo - Episode 71 : Google Cloud Next 19 : Vincent et Jérome passent en revue les annonces de Google Cloud Next 2019, en plus de nous faire un analyse fine de MS Excel vs Google Sheets ;-) - Personnellement, je retiens surtout Anthos (le kubernetes distribué multi-cloud et on-premise), Cloud Run (la capacité à exécuter des conteneurs dans une logique serverless et basé sur knative - il me fait penser à OpenFaaS) et Cloud Code (extension pour l’IDE VSCode et prochainement IntelliJ pour gérer plus facilement des déploiements Kubernetes). Vous retrouvrez les 122 annonces sur le blog de Google Cloud et les vidéos sont sur la chaine Youtube associée Container et Orchestration Kubernetes 1.14: Production-level support for Windows Nodes, Kubectl Updates, Persistent Local Volumes GA : les noeuds Windows et les conteneurs Windows sont supportés officiellement, kubectl se voit améliorer et bénéficie d’un nouveau site de documentation et se dote d’une intégration de kustomize. Les volumes locaux persistant passent en bêta et plein d’autres choses encore. Kubernetes 1.14: Local Persistent Volumes GA : les volumes locaux persistants sont intéressants car ils vont permettre de déployer un conteneur sur un même noeud de façon assurée dès lors que ce volume est défini. Cela n’est certes pas très résilient, mais cela peut réponre à un certain nombre de besoins. Les cas d’usages sont très bien décrits dans ce billet et peuvent donner des idées. Announcing General Availability of Traefik Enterprise Edition : la version Entreprise de Traefik est disponible officiellement. Elle adresse principalement le cas d’un déploiement haute disponibilité de Traefik avec la mise en place d’un data plane et d’un controle plane pour gérer tout ça. CNCF to Host CRI-O : le runtime de conteneurs développé par Red Hat et Google rejoint la fondation CNCF au stade de l’incubation. Introducing Kraken, an Open Source Peer-to-Peer Docker Registry : Uber vient de mettre à disposition Kraken, une “registry docker” pair à pair. Le nombre d’acteurs intéressés par ce genre de projet doit être assez faible mais sait-on jamais… DevOps JSON as configuration files: please don’t : Si certains pensaient utiliser JSON pour décrire des fichiers de configurations, l’article rappelle que JSON n’est qu’un format d’échange de données et surtout pas de fichiers de configuration. On peut comprendre la tentation mais on a déjà bien assez à faire avec YAML, INI voire XML. Aucun n’est parfait certes mais pas la peine d’en rajouter. In Defense of YAML : L’auteur critique l’abus autour de YAML pour l’utiliser pour tout et n’importe quoi. Comme format de données, il est utilisable mais nous voyons des détournements où du yaml devient du pseudo code. L’auteur cite la CI Gitlab ou encore Tekton. On ne peut que lui donner raison. Il serait plus simpe d’avoir un vrai langage de programmation plutôt que de tout “YAMLiser”. Licences Deprecation Notice: MIT and BSD (via Les Cast Codeurs) : Intéressant, les licences BSD/MIT serait à considérer comme dépréciée. L’auteur travaille pour le Blue Oak Council qui publie la licence du même nom. On peut éventuellement lui reprocher un certain biais mais il indique quand même que des licences modernes (comme ASL 2.0) seraient plus judicieuses que de rester sur du MIT/BSD. Sécurité Les serveurs de Matrix.org ont été compromis - l’équipe a joué la transaprence et donne les informations laissées par l’attaquant sur les failles existantes et les bonnes pratiques qu’il faut en déduire. C’est l’occasion de revoir notamment les options de ssh-agent pour éviter de telles mésaventures. SQL La recherche plein texte avec Postgresql : Présentation des tsvector et tsquery, deux fonctions postgres pour faire de la recherche plein texte. Timeseries Introducing Outflux: a smart way out of InfluxDB : l’équipe de TimescaleDB, l’extension Postgres qui permet de manipuler des données temporelles, sort son outil de migration des données d’InfluxDB vers TimescaleDB. Astuce du mois : gestion de la rotation des logs d’un container docker Dans les bonnes pratiques Docker, il est dit d’utliser stdout/stderr pour avoir les logs de votre conteneur via docker logs. Toutefois, cette pratique va alimenter un fichier de log /var/lib/docker/containers/<container id>/<conteiner id>-json.log. Ce fichier peut donc saturer votre disque et aller jusqu’à corrompre vos conteneurs. L’autre bonne pratique étant que tout fichier de log doit avoir une politique de rotation du fichier associée pour éviter toute saturation de disque ou d’avoir des trop gros fichiers de logs.
Avant de commencer cette revue de presse, un peu d’auto-promo, vu que j’ai eu le plaisir et l’honneur de participer au numéro de rentrée (épisode 59) du BigData Hebdo. Cloud Multi-Cloud Is a Trap : sujet à la mode, le multi-cloud selon l’auteur du billet est inutile/idiot et ne serait qu’une distraction/perte de temps et d’argent dans la plupart des cas ; certaines exceptions sont acceptées en fin de billet). Un point intéressant étant de dire qu’en voulant éviter le “lock-in”, on se prive de profiter au maximum de la plateforme cloud et que l’on se créée du coup un coût de “lock-out”. Containers et Orchestration The Future of Docker Swarm : Etat des lieux et perspectives sur Swarm par un Capitaine Docker. Le projet n’est pas mort et il peut suffire dans bon nombre de cas. Docker Config, how to always use base image with Docker Swarm! : Depuis Docker 17.06 et dans un contexte Swarm, il est possibile d’utiliser les configs. Les configs permettent de stocker un fichier de configuration au sein du cluster swarm et de le mettre à disposition des containers. Ainsi, en cas des modifications de la configuration, plus besoin de rebuilder l’image, il suffit de mettre à jour le service pour qu’une nouvelle version du container la prenne en compte. Pros and Cons of running all Docker Swarm nodes as Managers? : Revue par le Docker Captain Bret Fisher des avantages/incovénients d’utiliser que des nodes de type “managers” au sein d’un cluster Swarm. Trop est déconseillé (> 5) et ensuite c’est un compromis entre la sécurité, la disponibilité et la résilience. Traefik 1.7 — Yet Another Slice of Awesomeness : dans les nouveautés principales : une image Docker pour windows, le support de l’authentification dans les frontends, le support d’AWS Fargate, HC2 Support et le support du challenge TLS pour Let’s Encrypt (plus besoin d’avoir le port 80 ouvert). Apparemment pour la prochaine version, l’équipe de dév va prendre quelques libertés pour introduire des nouveautés - il faut donc s’attendre à quelques incompatibilités à l’avenir. DevOps Ansible Tips : Reboot & Continue : Astuce utile pour gérer un reboot d’un serveur via ansible et reprendre ensuite la connexion et l’exécution du reste d’un playbook. IA Finding and fixing software bugs automatically with SapFix and Sapienz : Sapienz et SapFix ne sont pas des produits SAP mais des projets Facebook. Le premier est un agent de test automatique et SapFix est une IA qui est en mesure d’identifier des correctifs pour les bugs identifiés par le premier. Le fix peut être un retour partiel ou total au code précédent mais aussi de prospoer des correctifs sur la base de modèle de code. Une fois les correctifs testés et qu’aucune régression n’est identifiée, alors le fix est proposé pour validation aux développeurs. Ingénierie Software disenchantment : “That is not engineering. That’s just lazy programming. Engineering is understanding performance, structure, limits of what you build, deeply. Combining poorly written stuff with more poorly written stuff goes strictly against that. To progress, we need to understand what and why are we doing.” - un plaidoyer pour de meilleures pratiques d’ingénierie partant du constat que les applications développées sont de plus en plus grosses, de moins en moins performantes pour un niveau de fonctionnalité à peine meilleur. Heureusement que les machines ont progressé pour compenser cette “obésité logicielle”. (No)SQL So you have a broken Cassandra SSTable file? : que faire lorsqu’une SSTable est corrmpue, c’est tout l’objet de cet article, de la plus simple et moins impactante à la plus complexe/impactante. Sans aller jusqu’à la corruption, nous avons eu un cas similaire et un nodetool scrub <keysapce> <table> a été suffisant. Incremental Repair Improvements in Cassandra 4 : les réparations incrémentales, déconseillées jusqu’alors par les gens de The Last Pickle, semblent devenir la solution recommandée avec la sortie prochaine de Cassandra 4.0. Les réprations complètes (full) ne seraient alors utiles que dans certains cas, car moins efficientes. Introducing cstar: The Spotify Cassandra orchestration tool, now open source : Spotify ouvre le code de son shell distribué pour Cassandra, sous le nom de cstar Il a pour intérêt d’être conscient de la topology du cluster et donc de pouvoir faire les commandes de façon optimisées. Architecture Lambda, Cassandra et synchronisation des données : après un petit rappel sur l’architecture lambda, l’article présente les différents patterns permettant de garantir qu’une donnée stockée dans Cassandra et pouvant être mise à jour de façon concurrente par un flux batch et un flux temps réel ait toujours la valeur la plus fraîche. Why We Built an Open Source Cassandra-Operator to Run Apache Cassandra on Kubernetes : Instaclustr propose un Operator Cassandra pour déployer plus faciment Cassandra sur Kubernetes. Terraform InfluxDB Module : InfluxData a annoncé un partenariat avec Hashicorp et le premier livrable est un module terraform permettant de déployer InfluxDB OSS ou Entreprise sur AWS. (Open)Web Removing jQuery from GitHub.com frontend : Github raconte son adoption jusqu’au retrait de JQuery de sa base de code. Il est intéressant de voir que les standards ont permis de remplacer pas mal de fonctionnalités et il reste encore quelques polyfills. The Cost Of JavaScript In 2018 : l’utilisation de Javascript, en particulier sur mobile, n’est pas neutre. L’article revoit les bonnes et mauvaises pratiques. your web app is bloated : Etude sur la consommation de mémoire de différnts sites sous Firefox - cela va de 0.8Mo (Gmail Vintage) à 200 Mo (Google Inbox) Python High-Performance in Python with Zero-Copy and the Buffer Protocol : astuce utile d’utiliser memoryview pour accélerer les accès aux données et éviter de l’usage inutile de mémoire. Astuce du mois J’ai cru à un bug ansible sur les surcharges de variables mais en fait non - pour des variables de même niveau (ici group_vars), l’ordre de fusion des variables est :
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.
Architecture Goodbye Microservices: From 100s of problem children to 1 superstar : L’article fait pas mal de “bruit” en ce moment mais je ne suis pas sur qu’ils arrivent à la bonne conclusion au final ; Partir de microservices et multiples dépots gits pour revenir à un monolithe/mono dépot git, j’ai l’impression que la réponse au travers des outils n’adresse pas le problème de fond à savoir la gouvernance de l’ensemble. En effet, si les versions différaient tant que cela, l’approche centralisé a peut être mis un terme en forçant tout le monde à se rencentrer sur une version donnée mais s’il n’y a pas de règles, le résultat sera le même prochainement mais ils auront moins de liberté. Miniservices as a Realistic Alternative to Microservices : du coup, pour réduire les frictions, certains proposent de faire des micro-services plus gros avec le risque d’arriver à plein de moyens monolites… Je mets donc pour rappel cet article que j’ai déjà mentionné : Enough with the microservices. Il rappelle que c’est surtout la modularité et une architecture propre du code qui donne de la flexibilité. Et puis tout le monde n’a ni le contexte, ni la maturité pour se lancer dans les micro-services. Automatisation Ansible 2.6: Your Time Has Come! : une version de consolidation avec des améliorations coté cloud et surtout sur l’utilisation de la mémoire lordque l’on utilise les “Dynamic Includes”. Container et Orchestration Blog: Kubernetes 1.11: In-Cluster Load Balancing and CoreDNS Plugin Graduate to General Availability : Kubernetes continue son travail de consolidation et de stabilisation. Service Mesh: Promise or Peril? : si les service mesh peuvent paraitre attrayant, leur intégration n’est pas forcément évidente et il faut aussi prévoir cette couche intermédiaire dans le développement de votre application. Leur utilisation n’est donc pas toujours recommmandée/souhaitable - l’article propose de faire le point sur le sujet. Container Native Development with Ralph Squillace : cet épisode de podcast petmet d’avoir une présentation d’Helm (package manager), Bridage (gestion de workflow kubernetes) et Draft (aide à la conteneurisation d’une app). D’autres outils sont mentionnés en fin d’épisode pour agrémenter son quotidien (extension vscode, etc). Extending Support Cycle for Docker Community Edition : A l’occasion de la sortie de Docker CE 18.06, quelques ajustements : les versions stables sortiront tous les 6 mois maintenant (et plus tous les 3 mois) et avec une période de maintenance de 7 mois, le canal edge (monthly release) est arrêté au profit d’un canal nightly, docker for Windows/Mac gardent une release mensuelle (pour le canal edge), plus de packaging par distribution pour mieux coller à l’actualité de la distribution. Dataviz Grafana v5.2 Released : L’alerting est disponible sur ElasticSearch, Builds ARM officiels, amélioration de la sécurité (support des secrets docker, gestion des mots de passe admin), amélioration coté InfluxDB et Prometheus, etc. Mapocalypse : Migrer depuis Google Maps, Maintenant 1/2 et Mapocalypse : Migrer depuis Google Maps, Maintenant 1/2 : si la partie 1 remet en contexte l’augmentation de tarifs de Google Maps, le second a pour intérêt de présenter et d’expliquer le fonctionnement des solutions alternatives. DevOps Une décennie DevOps, quels enseignements tirer ? : synthèse globale et assez factuelle sur 10 ans de DevOps qui a le mérite de signaler les points où ce n’est pas encore ça. Courage, la transformation/l’adoption est en cours malgré tout. (No)SQL Select all columns except one in MySQL? : Cela peut toujours être utile de le savoir… Timeseries Release Announcement: InfluxDB 1.6.0 OSS : InfluxData sort la version 1.6 de sa base de données temporelles avec comme améliorations significatives : fonctions supplémentaires sur InfluxQL, Accélération des backups via un meilleur parallélisme des tâches et l’arrive de la gestion du “back pressure” pour éviter la congestion lors des écritures. Flux (#fluxlang): a new (time series) data scripting language : présentation à date du design et des fonctionnalités de Flux (ex IFQL) Why We’re Building Flux, a New Data Scripting and Query Language : Paul Dix, CTO d’InfluxData revient sur les raisons de la création du langage flux et pourquoi SQL n’a pas été retenu. Chronograf 1.6 Released: Introducing Log Viewer and Additional Sharing Capabilities : J’en parlais le mois dernier, Chronograf se dote d’un visualiseur de log (log viewer) et semble aller plus loin que ce qui était annoncé dans la plateforme d’ingestion de logs. Les autres nouveautés tournent autour du partage des dashboards avec des tiers.
Automatisation Ansible 2.5: Traveling space and time : au programme de cette nouvelle version : des namespaces pour les “facts”, la capacité d’interdire des modules, des nouvelles “variables magiques” (les magic vars sont des variables spécifiques à Ansible et l’exécution des playbooks). On notera aussi des améliorations sur le support Windows, des nouveaux modules cloud (AWS, GCP, Azure, VMWare) et des nouveaux plugins. Container et Orchrestration Apache Spark 2.3 with Native Kubernetes Support : Intéressant de voir que Spark peut maintenant être exécuté comme un pod kubernetes. On sort ainsi du mode de déploiement standalone ou dans un contexte Yarn (Hadoop) ou Mesos. From open source to sustainable success: the Kubernetes graduation story : le projet Kubernetes sort d’incubation et devient un projet de 1er niveau de la CNCF. Le billet permet de faire un retour sur l’histoire du projet. CNCF Cloud Native Interactive Landscape : la CNCF a sortie un annuaire interactif de leurs projets et membres. Docker 18.03-ce : Pas de grandes nouveautés a priori, plutôt des efforts de consolidation et de stabilisation du produit. Kubernetes 1.10: Stabilizing Storage, Security, and Networking : la consolidation et la stabilisation de la plateforme se poursuivent : la nouvelle interface de stockage CSI (Container Storage Interface) et le “Local Storage” passent en béta, CoreDNS est disponible en alternative à kube-dns en attendant de le remplacer et enfin, coté sécurité en version alpha, kubectl peut gérer des identifiants de plateformes cloud. Dataviz Grafana v5.0 Released Superset, l’outil de DataViz de AirBnB : un tutoriel pratique pour la prise en main de l’outil de data visualisation Superset. d3.js 5.0 : la librairie de représentation de données d3.js passe en version 5.0 avec notamment une incompatibilité avec le passages aux Promesses Javascript plutôt que les callbacks. Java No Free Java LTS Version? : Oracle change ses pratiques de distribution du JDK Oracle (Une version majeure tous les 6 mois, moins de report de patches, etc). Let’s encrypt ACME v2 and Wildcard Certificate Support is Live : Let’s Encrypt va donc fournir des certificats wildcard (*.domaine.fr). Si je m’étais réjoui de l’idée au début, je ne vois finalement pas ou peu l’intérêt du fait de la méthode de validation (enregistrement DNS avec le temps de propagation associé). En dehors du cas où l’on dépassait les limites d’enregistrement de Let’s Encrypt en terme de nombre de certificats, la génération dynmique et unitaire via une méthode HTTP me semble plus simple. Surtout quand on utilise Traefik ;-) Postgres Publication des manuels de formations Dalibo ! : Dalibo rend publics l’ensemble de ses manuels de formation, pour permettre à un maximum de personnes de se former sur PostgreSQL. Python Python 2 EOL will be 2020-01-01 : Petit rappel, Python 2.x ne sera plus supporté au delà de 2020. Pour Python 3, la version supportée actuellement est 3.4+. Cf Status of Python Branches. TICK Release Announcement: InfluxDB 1.5.0 and InfluxDB Enterprise 1.5.0 : des améliorations surtout sur la partie sauvegarde/restoration et la disponibilité officielle du nouveau format TSI (Time Series Index) adaptés pour des séries épéhmères. Chronograf Adds Annotations, Smarter Dashboard Loading, Improved TICKscript Support, and More : Chronograf, la solution de dataviz de la plateforme TICK semble aussi bien avancer avec la sortie de la version 1.4.2. Peut-être pas encore de quoi concurrencer Grafana mais les progrès sont sensibles. Astuce(s) du mois J’utilise Ansible dans une logique d’IAC et pour automatiser un maximum des actions pour la gestion de l’infrastructure et des applications de mes clients. Toutefois, chaque client avait son arborescence et la réutilisation d’un composant d’un client à l’autre était fastidieuse (copier/coller).
Big Data Compte rendu du Spark Summit 2017 (Dublin) : La conférence européenne annulle de l’éditeur de Spark, Databricks, a cherché à montrer que le Streaming et le Deep Learning sont/seront bientôt plus accessibles via Spark et également la plateforme cloud DataBricks. Dataviz Grafana 4.6 Released : Nouvelle version de l’outil de visualisation des bases de données time series mais pas uniquement avec l’ajout de la source Postgres, du support de l’alerting pour Amazon Cloudwatch, des annotations simplifiées sur les graphs et autres améliorations sur la base prometheus. Wizzy : il s’agit d’un ensemble de script pour versionner et se simplifier la gestion de ses dashboards réalisés sous Grafana. Pas encore testé, sous peu ! Cloud Bootstrapping a Cloud with Cloud-Init and HypriotOS : j’avais croisé Cloud-Init dans Rancher OS mais n’avais pas eu le temps d’investiguer le sujet. Récemment, un podcast avec son créateur m’a permis d’en savoir plus sur le projet, à savoir que c’est un ensemble de script python qui permettent de configurer une machine lors de son initialisation (boot). Cet article permet du coup d’en avoir un exemple pratique par la configuration d’une image pour un Raspberry Pi 3 installant automatiquement le logiciel NextCloud sous la forme d’un container Docker. Elasticsearch An Ansible role to Manage your Elasticsearch Clusters : Synthesio publie son playbook ansible pour gérer des clusters Elasticsearch ; vu les clusters gérés, il y a surement de bonnes choses à récupérer - la limite étant peut être que pour un cluster de débutant, cela pourrait être trop complexe au regard du besoin. A évaluer suivant votre contexte. Operating Large Elasticsearch Clusters : un retour d’expérience de l’équipe Synthesio sur la bonne gestion de leurs clusters ElasticSearch lors des Sysadmindays il y a peu. La Stack ELK passe en 6.0 : Elasticsearch 6.0.0 GA released : mise à jour sans downtime, index filtré, meilleures performances, meilleure résilience et meilleure sécurité (mot de passe, usage de TLS). Logstash 6.0.0 GA released : il est désormais possible d’avoir des pipelines dont l’exécution se fait en parallèle et via X-Pack, il y a maintenant une UI pour piloter vos pipelines. Kibana 6.0.0 GA released : Plein d’améliorations au programme : Export CSV, Amélioration de l’UI, Mode lecture seule pour pouvoir partager des dashboards et d’autres nouveautés spécifiques à X-Pack. Beats 6.0.0 GA released : capture des données Docker/Kubernetes, auditbeat pour captuer les données d’auditd, une meilleure gestion des modules et de leur configuration, amélioration de performance et du stockage des données. Devez-vous migrer vers Elasticsearch 6 : l’équipe Jolicode passe en revue les avancées de la version 6 et globalement conseille de passer vers cette version 6. GraphQL Modernisez vos API, passez à GraphQL ! (slides et vidéo) : Une introduction à GraphQL présentée à Codeurs en Seine 2017. Je reste toujours sceptique sur GraphQL, si coté client cela semble magique, personne ne montre la partie backend pour que la “magie” opère. The GraphQL stack: How everything fits together : état des lieux suite à GraphQL Summit 2017 sur les parties cache, tracing (suivi d’une requête de bout en bout du système) et composabilité d’API (une requête GraphQL qui intérogge plusieurs API au lieu d’une). Kafka Apache Kafka Goes 1.0 : cette version 1.0 représente plutôt la complétude à l’égard d’une vision de ce que devait être Kafka que de sa stabilité ou de sa capacité à être utilisé en production. Le billet énoncce les derniers apports mais reviens surtout sur tout cette génése et la vision associée au produit. (No)SQL Memento PostgreSQL 10 : un petit memento pour Postgres 10 - toujours utile à avoir sous la main ! Time Series InfluxDB 1.4 Now Available: InfluxQL Enhancements, Prometheus Read/Write, Better Compaction and a lot more! : au programme de cette version des améliorations sur InfluxQL avec des commandes permettant de mieux connaitre les performances des requêtes (EXPLAIN & SHOW CARDINALITY), le support des endpoints prometheus en lecture/ecriture, des améliorations sur la compaction ainsi que le serveur http et le client (gestion des connexions). D’autres fonctionnalités plus expérimentales sont aussi disponibles. Announcing IFQL – A New Query Language and Engine for InfluxDB : parmi les nouvelles fonctionnalités expérimentales de InfluxDB 1.4, il y a IFQL, le nouveau langage de requêtage d’InfluxDB. La syntaxe s’apparente à celle de Javascript avec l’usage de fonctions et la possiblité d’enchainer des fonctions. select(db:"foo") .where(exp:{"_measurement"=="cpu" AND "_field"=="usage_system" AND "service"=="app-server"}) .range(start:-12h) .window(every:10m) .max() Announcing Prometheus 2.0 : Nouvelle version de la base de données orientées time series hébergée par la CNCF et qui a le vent en poupe. Cette version apporte notamment des améliorations en termes de performances (usage CPU, stockage, usage IO) TICK-Tac - Il est l’heure de collecter et exploiter vos données temporelles : les slides de mon talk à la conférence Codeurs en Seine 2017 sur les bases de données temporelles sur la base de la plateforme TICK (Telegraf, InfluxDB, Chrongraf, Kapacitor) et Grafana. En prime, la vidéo
Kubernetes Introducing Operators: Putting Operational Knowledge into Software : l’équipe de CoreOS vient de dévoiler les Operators, un complément à Kubernetes permettant, pour des applications stateful, de gérer une logique “métier” (création/suppression, perte d’un composant, mise à jour, sauvegarde, etc). Autant pour des applications stateless, il suffit d’instancier une nouvelle instance du composant, autant pour des applications stateful, il faut parfois avoir des commandes supplémentaires ou récupérer des informations des autres composants. C’est cette logique que les Operators apportent. On le comprend mieux en lisant les billets sur l’Operator d’etcd ou celui de Prometheus TICK (Telegraf, InfluxDB, Chronograf, Kapacitor) InfluxDB 1.1 released with up to 60% performance increase and new query functionality : des améliorations en termes de performance, stabilité (RAM) mais aussi de nouveaux filtres de requêtage. Kubernetes monitoring and utoscaling with Telegraf and Kapacitor : un exemple d’utilisation de la plateforme TICK pour monitorer son cluter Kubernetes mais aussi gérer de l’autoscaling via Kapacitor. Announcing the new Chronograf, a UI for the TICK stack & a complete open source monitoring solution : L’ancienne version de Chronograf se voulait une copie de Grafana et elle est abandonnée. La nouvelle version semble vouloir inspecter les données stockées dans Influxdb pour vous présenter des dashboards mais surtout faciliter l’interaction avec Kapacitor pour définir facilement des seuils et des alertes. La nouvelle version de Chronograf co-existerait donc avec Grafana dont elle pourrait reprendre des dashboards via l’API. Comme le dit l’annonce, c’est encore une version alpha de Chronograf qui est présentée ici, cela doit évoluer tous les 15 jours environ en fonction des retours de la communauté. A noter que le produit est (enfin) open source comme le reste des composants. Pour plus d’info, voir le dépot de chronograf et la doc d’installation Gestion des données personnelles Anonymisation des données : après la fuite des données chez Michael Page pour défaut d’anonymisation des données sur un environnement hors production, le billet sur les stratégies d’anonymisation des données est fort utile et judicieux. Comme le rappelle le billet, avec la nouvelle réglementation européenne sur la protection des données(RGPD), l’entreprise ayant une fuite de données peut être condamnée à payer jusqu’à 4% de son chiffre d’affaires et 20 millions d’euros à compter de mai 2018 - le réglement est applicable depuis mai 2016.
Containers Security Best Practices for Kubernetes Deployment : les points ne sont pas propres à Kubernetes : segmentation applicative via les namespaces, segmentation réseau, quota de ressources, utilisation d’images approuvées, maintient des images à jour, etc. Docker + Golang : le billet présente des astuces pour compiler un programme Go au travers de containers pour illustrer différents besoins (cross-compilation, etc) 12 fractured apps : une revue des bonnes pratiques à adopter pour gérer les fichiers de configurations, les connections à des bases de données dans un monde orientée micro-services. AngularJS AngularJS 2.0 : la version 2 du framework Javascript AngularJS de Google est (enfin) sorti et se dote d’un nouveau site angular.io. Etrangement, j’ai l’impression que c’est un non événement ? Cette version mainte fois discutée, tant attendue et au final ? Ou peut être que React est passé par là et à occuper le trou laissé par cette réécriture d’Angular ? Kafka Event sourcing, CQRS, stream processing and Apache Kafka: What’s the connection? : après un rappel sur ce qu’est CQRS et l’Event Sourcing, le billet décrit les apports de Kafka (et Kafka Streams / Kafka Connect) pour ce type de projet. Announcing the Certified DataStax Connector for Confluent Platform, Kafka Connect se dôte d’un connecteur Cassandra. Il s’agit d’un connecteur de type “Sink’, c’est à dire que vous pouvez pousser des données de Kafka vers Cassandra. TICK (Telegraf, InfluxDB, Chronograf et Kapacitor) La plateforme TICK atteint le palier de la version 1.0 ; InfluxDB, Telegraf et Kapacitor. Pas de grosses nouveautés dans ces releases, juste une stabilisation et le tampon 1.0 ; Chronograf est aussi estampillé 1.0 même s’il s’est fait discret depuis la version 0.13. A voir s’il rattrape son retard sur Grafana… Sécurité Obtenir une bonne note sur Mozilla Observatory : HTTPS/CSP/SRI/CORS/HSTS/HPKP/etc. : Le Mozilla Observatory est un outil d’aide à l’évaluation de la sécurité de votre site web. Le billet vulgarise les technoligies sous-jacentes et donne des pistes pour avoir une bonne note à ce test et améliorer la sécurté de vos sites. Postgres Is Bi-Directional Replication (BDR) in Postgres Transactional? : En gros BDR fonctionne si vous n’avez pas de contraintes transactionnelles fortes. D’autres solutions sont présentées sur le wiki de la fondation Postgres: Replication, Clustering, and Connection Pooling
Infrastructure Traefik : un reverse-proxy et load-balancer (comme Nginx, HAProxy ou encore Apache+mod_proxy) conçu dans une logique d’architecture micro-services. Il s’interface notamment avec Docker, etcd, consul ou encore une API REST. A tester et surveiller. Une image officielle docker pour Traefik est même disponible Container Elastikube : une solution de gestion d’une infrastructure Kubernetes ; cela fait penser à une version allégée d’Openshift. Containers Containers are not VM : Une clarification par l’équipe Docker sur la différence entre un container et une VM sur la base de l’analogie avec l’appartement (le container) et la maison (la VM). Une maison (VM) contient tout ce dont elle a besoin pour fonctionner alors que pour un immeuble, des ressources sont partagées et chaque appartement de l’immeuble en profite dans une certaine mesure. Docker a annoncé Docker pour Windows/Mac (beta) ; cela permet d’utiliser Docker de façon plus native et intuitive sous Windows/Mac. Pour Windows, cela demande d’avoir Windows 10 pour bénéficier de l’hypervision via Hyper-V. Sur ce sujet, l’équipe Hypriot dans leur revue de Docker pour Mac et Docker pour Windows montre le bonus (easter egg) de cette version à savoir qu’il est possible de faire tourner des conteneurs ARM sous environnement OSX/Windows ; cela permettrait de batir des conteurs pour Raspberry ou des projets IoT plus facilement. Je ne peux hélas pas le tester pour le moment, mais cela semble plus prometteur que Docker Toolbox qui reste un peu complexe à mettre en oeuvre. Rancher, une solution d’orchestration de conteneurs, après avoir annoncé le support de Kubernetes, vient d’annoncer la sortie de la version 1.0. A suivre, même si la notion d’environnement ne permettrait pas une allocation optimale des capacités d’infrastructure (chaque environnement aurait ses hôtes alors que Kubernetes pourrait a priori permettre une mutualisation totale via la gestion des “namespaces” ; à creuser !). Kubernetes, la solution d’orchestration de container (Docker/Rocket) développée par Google, est sorti en version 1.2 avec diverses améliorations et notamment une nouvelle GUI. Kubernetes on ARM vient de sortir sous la version 0.7.0 ; de quoi se faire la main sur Kubernetes avec vos Raspberry ;-) ; une image Rancher est d’ailleurs disponible. Docker en production : la bataille sanglante des orchestrateurs de conteneurs : Pour conclure, Octo compare Docker Swarm, Kubernetes et Openshift et donnant Kubernetes gagant pour le moment. Personellement, vu qu’a minima pour Kubernetes et Docker Swarm, on peut utiliser des containers docker, il est peut être intéressant de combiner les 2 solutions qui répondent plus ou moins bien à différentes problématiques. Je vois assez bien l’utilisation de Docker Swarm dans une logique de développement / labs et plus Kubernetes en effet dans une logique de production pure. Il ne faut pas se cacher que Kubernetes est plutôt “Ops friendly” et remonte la chaine de valeur vers les développeurs quand Docker fait le contraire… Elasticsearch & friends Reindex is coming : Avec Elasticsearch 2.3, vous pouvez (re)copier les documents d’un index et enrichir ses données dans un nouvel index ou bien mettre à jour les documents d’un index existant. Release Bonanza! Elasticsearch, Graph, Shield, Watcher, Marvel, Logstash 2.3, Beats 1.2, and Kibana 4.5 are Now Available! ; on note la sortie du nouveau produit Graph. C’est un plugin Kibana et qui permet de relier vos données et de les présenter sous la forme d’un graphe. A creuser ! Elasticsearch 2.3 est sorti avec comme apport notable la réindexation comme décrit précédemment et la notion de “task”, qui permerttrait notamment d’annuler certaines tâches (comme une réindexation !). Les autres composants sont également mis à jour : Kibana 4.5.0, Logstash 2.3 et Beats 1.2.0, Elastic a décidé d’uniformier ses numéros de versions et tout le monde passe en 5.0-alpha1 avec la sortie de l’Elastic Stack ; au-delà de la convention de nommage, c’est l’engagemet de fournir un socle cohérent pour les produits Elasticseach, Kibana, Logstash et Beats. Les produits Marvel, Shield et Watcher deviennent quant à eux le X-Pack. Je vous laisse consulter les apports d’elasticsearch 5.0.0-alpha1 ou encore le revamping de l’interface de Kibana. InfluxDB & Friends InfluxDB 0.12 est sorti (et précédemment la version 0.11) ; après l’annonce du retrait du mode cluster de la version open source car peu utilisé et qui passe en code propriétaire pour assurer leurs revenus, il y a néanmoins le module Relay qui doit répondre en partie à ce besoin de haute disponibilité / réplication. Sysadmin Teleport ; Une passerelle (bastion) SSH qui permet d’accéder à ses serveurs via SSH ou en HTTPS via une IHM Web. A tester ! Sécurité VNCFail ; vous reprendrez bien un peu de non sécurité: l’analyse des 4 milliards de plage IPv4 remonte 5 millions d’adresse pour lesquelles le logiciel VNC (prise de contrôle à distance) est accessible et au final 2.246 hotes avec des systèmes accessibles sans mot de passe dont des systèmes sensibles (contrôle d’aération, usine éléctrique, etc).
On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.
Contactez-nous →